Utilizzare l'ADSL con OpenBSD
|
Come utilizzare un servizio ADSL, con un modem Alcatel e, naturalmente, un sistema operativo OpenBSD. Dunque, mi presento, mi chiamo oVERDRIVE
, e ho scritto questo articoletto, che poi è una traduzione che
ho modificato, per far si che gli utenti di OpenBSD possano trovare delle
informazioni per configurare il proprio sistema operativo e usufruire
del servizio ADSL. http://www.f00bar.net/dl/pptp-obsd.tar.gz una volta scaricati i sorgenti, scompattateli ed installateli: % make Se qualcosa non dovesse andare per
il verso giusto copiate a mano i file: % cp pptp /usr/bin Create il file /etc/ppp/options, e inseritegli le seguenti rige: name "NOMELOGIN" Naturalmente il campo "NOMELOGIN"
deve essere sostituito con la login che vi ha assegnato il vostro provider. NOMELOGIN 10.0.0.138 PASSWORD Come nel file precedente, il campo
NOMELOGIN va sostituito con lo stesso campousato precendentemente, il
campo PASSWORD va sostituito con la password che vi ha assegnato il vostro
provider. % chmod 600 /etc/ppp/pap-secrets Giunti a questo punto dobbiamo inserire i nomi dei server DNS, del vostro provider nel file /etc/resolv.conf (se non esiste createlo): nameserver 212.216.112.112 Ho inserito gli ip dei server DNS
del mio provider (non dovrei fare pubblicità), voi inserite i vostri. % ifconfig INTERFACCIA inet 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255 Sostituite il campo INTERFACCIA con il nome del dispositivo, nel mio caso il modem si trova connesso a una scheda ethernet Realtek, quindi rl0. Per rendere queste modifiche sull'interfaccia in modo permanete, bisogna modificare il file /etc/hostname.INTERFACCIA (nel mio caso /etc/hostname.rl0) nel modo seguente: inet 10.0.0.1 255.255.255.0 NONE media autoselect Bon, ora siete pronti per connettervi, %pptp 10.0.0.138& e per chiudere la connessione potete killare i processi: % kill -9 [numero del processo del
pppd] Se avete dei problemi con la connessione fate riferimento al file di log /var/log/messages potete monitorare il tutto con il seguente comando: % tail -f /var/log/messages Se la vostra connessione alla rete resta in piedi solamente qualche manciata di secondi, molto probabilmente vi trovate di fronte ad un problema con lo pseudo device GRE, che se attivo nel kernel cattura tutti i pacchetti GRE e il PPTP non riesce a vederli !!!! causandone un time out. Se fate riferimento al file di log sopracitato (/var/log/messages), vi troverete una dicitura simile a questa: LCP:Timeout sending Config-Request Potete provare a disabilitare lo pseudo device GRE usando il comando "sysctl" % sysctl -w net.inet.gre.allow=0 Se non dovesse funzionare, cosa molto probabile (nella versione 2.9, ad esempio non funziona), allora la soluzione è la ricompilazione del kernel !!! Non temete non è una cosa difficile. Naturalmente, non serve che ve lo dica io, dovete avere i sorgenti del kernel, se non li avete, scaricateli. Questa modifica del kernel serve solo a disabilitare lo pseudo device GRE: Aprite il file /usr/src/sys/conf/GENERIC Commentate la riga: option pseudo-device gre Per commentare una riga intendo l'inserimento del simbolo # Ora entrate nella dir che corrisponde alla vostra macchina (mi riferisco all'architettura) es: /i386 se avete una macchina con architettura intel % cd /usr/src/sys/arch/i386/conf bene, compiliamo il kernel con la modifica che abbiamo appena apportato: % config ./GENERIC Bene, una volta compilato il kernel bisogna copiarlo nella directory / con il nome "bsd.2" % cp bsd /bsd.2 Rebootate... non è una parolaccia... dovete riavviare la macchina, e durante il prompt del loader, digitiamo "bsd.2" boot:bsd.2 Provate ora a connettervi, dovrebbe essere andato tutto per il verso giusto, e se vi da fastidio oppure vi reca impedimenti immettere bsd.2 ad ogni prompt di boot, potete salvare il vostro vecchio "kernel", con il nome di bsd.old (ad esempio), e rinominare bsd.2 con il nome bsd % cp /bsd /bsd.old % mv /bsd.2 /bsd In questo modo il boot caricherà
direttamente il kernel da voi compilato. In aggiunta a questo articoletto, potrete scaricare uno script che in modo automatico si riconnette alla rete, quando si verificano dei problemi, tramite il crontab: é stato scritto da Peter Chiocchetti.
*******************/etc/ppp/ppp.conf
********************************* Taglia qui' Tramite il parametro "set device" locato nella linea 6, il ppp, incarica il programma /usr/sbin/pppoe, che dopo chiamerò per facilità solo pppoe, di gestire l'input e l'output, anzichè usare una porta seriale oppure un altra connessione per la rete. Daremo uno sguardo più avanti al programma pppoe, ma per ora continuiamo a dare un occhiata alla linea 9, nella quale troviamo il valore dell'mtu (Maximum Transmit Unit), settato a 1492, ma potrebbe variare dalle esigenze, dato che questo valore, insieme a quello dell'"mru", serve solamente a dare la possibilità ai pacchetti ethernet in uscita, lo spazio per gli headers del pppoe. Infatti il Maximum Etheret frame
è di 1518 bytes, 14 bytes sono usati dall'header e 4 bytes per
il frame-check La linea con la dicitura "set speed sync" informa il ppp di usare una decodifica in modo sincrono per i pacchetti inviati tra esso ed il pppoe. Vi sconsiglio di non abilitare il "protocol compression", ed il "protocomp" (date un occhiata all' RFC 2516 per ulteriori delucidazioni). Non c'è bisogno di ricordarvi di inserire la userid e password (linea 17 e 18), che il vostro provider vi ha assegnato. La configurazione è finita ! facile no ?, naturalmente dovete configurare il file /etc/resolv.conf (vedi sopra) e lanciare la connessione in questo modo: %ppp -ddial pppoe & lasciate stare per ora i messaggi che vi butta fuori il demone. Il ppp non fa altro che aprire un interfaccia chiamata "tun" (ad sempio "tun0", oppure "tun1" se la tun0 è già stata attivata), e successivamente va in background. Il collegamento non sarà in piedi fino a quando i dati uscenti, non saranno trovati sull'interfaccia "tun" e a quel punto ppp, prova a metter su il collegamento in tutto e per tutto. Nell'arco di tempo in cui il ppp inizia a creare il collegamento (oppure il "link"), i pacchetti ricevuti (compreso il primo), rimarranno in coda per un periodo di circa 2 minuti. Potete settare questo valore di
timeout con l'opzione "set choked [timeout]", dove timeout è
un numero che indica in secondi, il lasso di tempo, in cui i pacchetti
vengono tenuti in attesa e dopo di che scartati da ppp. Come detto prima il ppp usa il programma /usr/sbin/pppoe per gestire il traffico sulla scheda di rete, se volete potete usare il comando /usr/sbin/pppoe, anche per metter su un server PPPoE la sitassi è la seguente: pppoe [-s [-p system]] [-v] [-i interface] [-n service] Anche quì il parametro "-i interface" è lo stesso, e cioè indica l'interfaccia sulla quale è in ascolto in modem ( nel mio caso la rl0), nel caso in cui non venga specificato questo parametro, il programma pppoe userà la prima interfaccia ethernet che trova configurata. Una cosa da sapere (mi riferisco agli utenti alle prime armi), è che con OpenBSD il nome di un interfaccia non fa riferimento al tipo di connessione, ma al nome del tipo di scheda di rete. Potete vedere il tipo di scheda di rete durante il processo di boot, oppure successivamente con il comando "dmesg (8). Per esempio, io ho due schede Realtek 8139, quindi mi troverò una rl0 e una rl1, se avessi avuto una Intel EtherExpress 16 ed una Novell NE2000 mi sarei ritrovato con una "ie0" ed una "ne1". Il parametro "-n service", vi permette di usare un nome per il servizio, ad esempio -n BBB, quando negozierete con il vostro server/provider. Di default, il client vi chiederà il nome del servizio, e non lo farà naturalmente il server che risponderà dall'altra parte della connessione. Se volete specificare i dati di configurazione in modo da usarli per una connessione PPP Over Ethernet, potete usare il parametro "-p server", ma di solito questi dati si maneggiano solo se si vuol metter su un server PPPoE, in altri casi vi consiglio di non toccar nulla. Per far partire il pppoe come server
passate pure il parametro "-s" al comando pppoe, altrimenti
se non è menzionato, il pppoe girerà in modalità
client, e vi collegerà al vostro gestore. Vi ricordo che il software gira completamente in user mode, e se cercate altri programmi per l'implementazione del pppoe siete dei kamikaze ! comunque se siete votati all'auto lesionismo e dovete smanettare su tutto ciò che che vi capita date un occhiata al programma rp-pppoe scritto però per NetBSD. Lo potete scaricare qui: http://www.roaringpenguin.com/pppoe/#download Non so se il pacchetto per NetBSD giri correttamente su Open, comunque io vi ho avvertito... Una volta scaricato date: %tar xvfz rp-pppoe-3.4.tar.gz (Da quello che dicono i coder di Roarin Penguin, c'è un piccolo bug nel codice, che vi conviene ignorare in fase di compilazione "usando l'opzione -i"!!!! dicono che non abbia conseguenze durante l'utilizzo del programma.) Con questo è tutto, se avete domande, suggerimenti, quesiti, critiche fatelo mandandomi una e-mail a: Steno Francesco aka "oVERDRIVE" overdrive@OpenBEER.it Un ringraziamento va fatto a: |