Ripescato da: https://web.archive.org/web/20050403162123/http://www.openmagazine.it/download/Numero-1.0.pdf
In questo articolo vedremo per linee generali e molto pratiche come configurare ppp su linux e freeBSD e collegarci ad internet, il tutto ovviamente accompagnato da diversi links per approfondire l’argomento. L’unica cosa che e’ necessario saper usare e’ un qualsiasi editor: vi, vim, nano, emacs…
Molte distribuzioni di linux hanno un tool, ppp-config, che permette di creare i file di configurazione di ppp. Vedi slackware o debian… potete usare quel tool per poi studiare i file di configurazione da esso generati, oppure seguire questo articolo e crearvi tutto a mano, esperienza molto piu’ edificante. Per quanto riguarda freeBSD il discorso e’ molto piu’ semplice perche’ sta tutto in /etc/ppp/ppp.conf
1. PPP, un accenno di teoria
PPP sta per Point-to-Point Protocol, ovvero un protocollo di connessione da un punto ad un altro punto, ovvero da una macchina ad un’altra macchina. Nel nostro caso il mezzo sara’ il modem, o cmq qualsiasi dispositivo a caratteri al quale potremo accedere e dialogare. Potra’ essere quindi un modem seriale, un modem usb, o anche un cellulare GPRS/EDGE/UMTS collegato via irDa, Bluetooth, cavo seriale o usb. Comunque i file di configurazione e gli script saranno leggermente diversi a seconda della periferica utilizzata, ma ovviamente pppd lavorera’ sempre allo stesso modo, vediamo come.
Pppd si occupa di attivare e mantenere una interfaccia di rete (la maggior parte delle volte si chiamera’ ppp0) col protocollo PPP dopo che vari script avranno inizializzato la periferica, composto il numero ed avviata la connessione. A grandi linee la connessione inizia quando non sentiamo piu’ i fruscii dall’altoparlante del modem, quando essi cessano significa che in qualche maniera i due punti riescono a dialogare, ma non e’ ancora detto che riusciranno a stabilire una connessione. Questa fase si chiama Handshake (stretta di mano). Durante questa fase verrano scambiate le credenziali (user name e password), verrano proposte delle impostazioni che potranno o no essere accettate (ad esempio il MTU, il MRU, compressioni, la richiesta dei DNS, la proposta di un IP fisso). Se tutta questa procedura va a buon fine riceveremo il nostro IP, tramite il quale potra’ essere attivata con successo l’interfaccia di rete ppp0. Diciamo che a questo punto il grosso e’ fatto, resta solamente da decidere o meno se far dirigere i nostri pacchetti verso la nuova interfaccia, ovvero impostare una Default Route. Nella maggior parte dei casi pppd fara' questo per noi, ma potrebbe capitare che esista gia un Default Route e che pppd non riesca a modificarlo. La maggior parte delle volte potrebbe darsi che un default route sia gia’ impostato verso una interfaccia tipo eth0, se ad esempio il nostro pc e’ collegato in una lan… in quel caso sara' necessario modificare a mano la tabella di routing del kernel, vedremo in seguito come fare.
A questo punto l’unica cosa che potrebbe tornarvi molto utile (ma non di vitale necessita’ per una prima connessione) e’ conoscere per bene le stringhe ed i comandi AT per il vostro modem. Su questo punto vale la pena spendere qualche parola. Le stringhe ed i comandi AT sono delle sequenze di caratteri per lo piu’ standard con le quali si dialoga con il modem. Niente paura, anche se non le conoscete con precisione riuscirete a connettervi, ma per attivare particolari protocolli come il V.90, il V.92, x2 (per alcuni USrobotics) o K56flex che potrebbero velocizzare la connessione saranno necessarie stringhe di configurazione particolari che variano da chipset a chipset. Nei file di configurazione che vi proporro' ci saranno comandi standard che ogni modem supporta, ma in seguito potrete sostituirli con altri piu’ adeguati. Su questo sito[^1] probabilmente troverete quello che vi serve. Per quanto riguarda le connessioni GPRS/UMTS/EDGE anche quelle stringhe cambiano da modello a modello di cellulare e da gestore e gestore di telefonia. In quel caso vi conviene telefonare al vostro servizio clienti, li sapranno darvi di sicuro le stringhe esatte, ve lo consiglio soprattutto per la bella esperienza di parlare con l’operatore e quando vi dira’ “apra il pannello di controllo e…” voi potrete rispondere “grazie non mi interessa, non uso windows!”. :D
2. Creare i file di configurazione su linux
pppd
su linux, a differenza di freeBSD che ne ha uno solo, ha bisogno di diversi file di configurazione e script. Vedremo qua degli esempi
semplici ma funzionanti.
/etc/ppp/peers/provider
Questo file e’ quello che contiene le opzioni di pppd, relative al provider. Cio’ significa che potete averne piu’ di uno… infatti quando vi appresterete a connettervi col comando pppd call provider lui cerchera’ le impostazioni dentro la directory /etc/ppp/peers/. Ovvero se darete pppd call infostrada lui andra’ a cercare le impostazioni relative su /etc/ppp/peers/infostrada. E via dicendo… ecco un esempio.
asyncmap 0
updetach
debug debug debug
connect /etc/ppp/peers/provider-connect-chat
disconnect /etc/ppp/peers/provider-disconnect-chat
/dev/usb/acm/0
115200
-crtscts
local
mtu 1024
mru 1024
noipdefault
defaultroute
usepeerdns
name "pippo@provider.net"
Vediamone velocemente il significato: updetach e’ molto utile, ovvero lascia andare pppd in background staccandolo dal terminale sul quale e' stato eseguito solamente quando la connessione va a buon fine; debug tre volte imposta al massimo la verbosita’, per vedere per bene quello che sta accadendo; /dev/usb/acm/0 e’ il device che verra’ utilizzato, va modificato in base al vostro; default route cerca di impostare il percorso default su ppp0; usepeerdns cerca di scaricare i dns durante la connessione e li mettera’ in /etc/ppp/resolv.conf; name “pippo@provider.net” definisce l’username da utilizzare, e’ strettamente legato al file pap-secrets o chap-secrets, poiche’ e’ in uno di quei due file che verra’ cercata la password relativa.
/etc/ppp/peers/provider-connect-chat
Questo e’ lo script relativo al modem tramite il programma provider chat (avrete notato che e’ specificato anche nel file di configurazione precedente) che si occupa di dialogare col prima che pppd venga avviato.
exec chat \
TIMEOUT 5 \
ECHO ON \
ABORT '\nBUSY\r' \
ABORT '\nERROR\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nNO CARRIER\r' \
ABORT '\nNO DIALTONE\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rATZ \
TIMEOUT 12 \
OK ATV1\&C1\&D2 \
OK 'ATDTnumeroprovider' \
TIMEOUT 22 \
CONNECT "" \
SAY "\nConnected.
" \
/etc/ppp/peers/provider-disconnect-chat
pppd con un killall pppd Questo script non e’ di vitale importanza, volendo si potrebbe anche omettere perche’ la maggior parte delle volte per disconnetterci killeremo . Ma ha comunque una sua importanza, magari se la periferica che utilizziamo ha bisogno di ricevere qualche comando per reinizializzarsi.
exec chat \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO DIALTONE" \
SAY "\nSending break to the modem\n" \
"" "+++ATH"
/etc/ppp/chap-secrets o /etc/ppp/pap-secrets
Entrambi questi file hanno la stessa sintassi, bisogna sapere che metodo di autenticazione usa il vostro provider, quindi se e’ la vostra prima connessione, nel dubbio, vi conviene compilarli entrambi. “pippo@provider.net” * “miaPASSword”
Connettersi
A questo punto non vi resta che personalizzare questi file e provare a lanciare un pppd call provider e sperare che tutto vada bene e killall pppd per disconnettervi.
I potenziali problemi potrebbero essere due:
- Se siete collegati in una lan pppd potrebbe non essere stato in grado di impostare un default route, dato che se ce ne e’ gia settato uno pppd non lo puo’ sostituire. In questo caso potete lanciare un ifconfig ppp0, vedere quale e’ il vostro IP e poi lanciare route add default gw x.x.x.x, dove x.x.x.x e’ il vostro IP. /etc/resolv.conf Se il vostro provider supporta l’opzione usepeerdns sta li, bensi’ in che punti a /etc/ppp/resolv.conf. verra’ creato un file /etc/ppp/resolv.conf contenente i DNS… ma il file di default non /etc/resolv.conf. Sara’ quindi necessario copiare il primo al posto del secondo, oppure fare un link simbolico in
Configurare ppp su freeBSD
freeBSD ci semplifica notevolmente la vita con ppp. Tutto quello che bisogna fare e’ editare ed apportare qualche modifica al file /etc/ppp/ppp.conf
per poterci connettere immediatamente.
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)
set device /dev/cuaa1
set speed 115200
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
\"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
set timeout 180
enable dns
provider:
set phone numerotel
set authname USERNAME
set authkey PASSWORD
add default HISADDR
Dovrete ovviamente personalizzare il tutto con il device node della vostra periferica, col numero di telefono del vostro provider, le vostre
credenziali. Per quanto riguarda la stringa AT per inizializzare il vostro modem freeBSD ne fornisce una proprio basilare e standard, la potete
con ATE1Q0
e dopo aver fatto una ricerca sul sito fornito in linkografia sostituirla con una piu’ adatta.
NB: Su linux l’eseguibile per PPP si chiama pppd
, mentre su freeBSD si chiama ppp
.
Buon divertimento!
Rispondi o commenta via email.