Avanti Indietro Indice

14. Instaurare manualmente una connessione PPP

Una volta creati i propri file /etc/ppp/options e /etc/resolv.conf (e, se necessario, il file /etc/ppp/pap|chap-secrets), è possibile verificare le impostazioni stabilendo manualmente una connessione PPP (una volta che la connessione funziona manualmente, automatizzeremo il processo).

Per far ciò, il proprio software di comunicazione dev'essere in grado di uscire SENZA reinizializzare il modem. Minicom lo può fare con ALT Q (o nelle versioni più vecchie con CTRL ALT Q).

Ci si assicuri di essere loggati come root.

Si lanci il proprio software di comunicazione (come minicom), si componga il numero del server e si faccia normalmente il login. Se è necessario dare un comando per avviare il PPP nel server, lo si faccia. Ora si vedranno le porcherie di cui si è parlato in precedenza.

Se si usa pap o chap, allora semplicemente connettendosi al sistema remoto si dovrebbe far partire il ppp e si vedranno le porcherie senza fare il login (sebbene ciò possa anche non accadere per alcuni server - si provi a premere Enter e si veda se iniziano le porcherie).

Ora si esca dal software di comunicazione senza reinizializzare il modem (ALT Q o CTL A Q in minicom) e al prompt di Linux (come root) si digiti


pppd -d -detach /dev/ttySx 38400 &

L'opzione -d abilita il debug - la conversazione di avvio di connessione ppp sarà registrata nei file di log del proprio sistema - il che torna utile in caso di problemi.

Le lucette del proprio modem dovrebbero accendersi e spegnersi finché la connessione PPP non è stabilita.

A questo punto si può dare un'occhiata all'interfaccia PPP, usando il comando


ifconfig

Oltre ai vari dispositivi Ethernet e loopback che si possiedono, si dovrebbe vedere qualcosa di simile a


ppp0     Link encap:Point-Point Protocol
         inet addr:10.144.153.104  P-t-P:10.144.153.51 Mask:255.255.255.0
         UP POINTOPOINT RUNNING  MTU:552  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0
         TX packets:0 errors:0 dropped:0 overruns:0

dove

(naturalmente, ifconfig non riporterà questi numeri IP ma quelli usati dal proprio server PPP).

Nota: ifconfig dice anche che la connessione è SU e FUNZIONANTE!

Se non viene riportato nessun dispositivo ppp o qualcosa di simile a


ppp0     Link encap:Point-Point Protocol
         inet addr:0.0.0.0  P-t-P:0.0.0.0  Mask:0.0.0.0
         POINTOPOINT  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0
         TX packets:0 errors:0 dropped:0 overruns:0

la propria connessione PPP non è stata fatta...si veda oltre per il debug!

Si dovrebbe essere in grado di vedere anche un instradamento all'host remoto (ed oltre). Per far ciò, si lanci il comando


route -n

Si dovrebbe vedere qualcosa di simile a


Kernel routing table
Destination     Gateway         Genmask         Flags MSS    Window Use Iface
10.144.153.3    *               255.255.255.255 UH    1500   0        1 ppp0
127.0.0.0       *               255.0.0.0       U     3584   0       11 lo
10.0.0.0        *               255.0.0.0       U     1500   0       35 eth0
default         10.144.153.3    *               UG    1500   0        5 ppp0

Di particolare importanza, si noti che ci sono DUE voci che puntano alla propria interfaccia ppp.

La prima è un instradamento di tipo HOST (indicato dal flag H) e che permette di vedere l'host al quale si è connessi, ma niente altro.

La seconda è l'instradamento predefinito (default), stabilito fornendo a pppd l'opzione defaultroute. Questo è l'instradamento che dice al proprio PC Linux di inviare qualsiasi pacchetto NON destinato alle Ethernet locali - per le quali ci sono degli instradamenti specifici - al server PPP stesso. I server PPP è quindi responsabile dell'instradamento dei nostri pacchetti verso Internet e dell'instradamento dei pacchetti di ritorno verso di noi.

Se non si vede una tabella di instradamento con queste due voci, qualcosa è andato storto. In particolare se i log di sistema mostrano un messaggio che dice che pppd non ha rimpiazzato un instradamento predefinito, allora si ha l'instradamento predefinito che punta alla propria interfaccia Ethernet - il quale DEVE essere rimpiazzato da un instradamento di rete specifico: SI PUÒ AVERE SOLO UN INSTRADAMENTO PREDEFINITO!!!

Si dovranno allora esplorare i file di inizializzazione del sistema per trovare dove viene impostato questo instradamento predefinito (probabilmente verrà usato un comando tipo route add default...). Si cambi questo comando in qualcosa di simile a route add net....

Ora si verifichi la connessione facendo 'ping' al server usando il numero IP riportato dall'output di ifconfig, i.e.


ping 10.144.153.51

Si dovrebbe ricevere un output simile a


PING 10.144.153.51 (10.144.153.51): 56 data bytes
64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms
64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms
64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms
64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms

Questo elenco andrà avanti per sempre - per fermarlo si usi CTRL C, e a quel punto si riceveranno un altro po' di informazioni:


--- 10.144.153.51 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 170.7/219.2/328.3 ms

Fin qua tutto bene.

Ora si provi a fare il ping ad un host usando il suo nome (non il nome del server PPP stesso ma un host in un altro sito che si SA essere probabilmente attivo...). Per esempio


ping sunsite.unc.edu

A questo punto ci sarà una piccola pausa mentre Linux ottiene dal DNS specificato in /etc/resolv.conf il numero IP per il nome host "fully qualified" al quale si è fatto il ping - quindi non ci si preoccupi (si vedranno comunque le lucette del modem lampeggiare). In breve si otterrà un output simile a


 PING sunsite.unc.edu (152.2.254.81): 56 data bytes
64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms
64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms
64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms
64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms
64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms

Ancora, lo si fermi con CTRL C per ottenere le statistiche...


--- sunsite.unc.edu ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 169.8/176.3/190.1 ms

Se non si riceve nessuna risposta, si provi a fare il ping all'indirizzo IP del server DNS del proprio ISP. Se si ottiene risposta, allora sembra proprio che ci sia qualche problema nel proprio /etc/resolv.conf.

Se non funziona, invece si ha un problema di instradamento oppure il proprio ISP ha qualche problema ad instradare i pacchetti di ritorno. Si verifichi che la tabella di instradamento sia come quella vista prima, e se è a posto si contatti il proprio ISP. Un buon test per ISP è di usare un altro sistema operativo per connettersi. Se si può andare oltre il proprio ISP con quello, allora il problema dipende dalla propria terminazione del collegamento.

Se tutto funziona, si può buttare giù la connessione digitando


ppp-off

Dopo una breve pausa, il modem dovrebbe riattaccare da solo.

Se questo non funziona, si spenga il proprio modem oppure si lanci il proprio software di comunicazione e si interrompa il modem con +++ e poi si riagganci con ATH0 quando si riceve il prompt OK del modem.

Si deve inoltre cancellare il file di lock creato da pppd


rm -f /var/lock/LCK..ttySx


Avanti Indietro Indice