Pppoeconf: differenze tra le versioni
Wtf (discussione | contributi) Nessun oggetto della modifica |
Wtf (discussione | contributi) |
||
Riga 21: | Riga 21: | ||
{{Warningbox|La specifica RFC 2684 presuppone l'utilizzo di pppoe da parte del proprio ISP, quindi se così non fosse l'utente deve necessariamente usare un dispositivo autonomamente in grado di "trasformare" i pacchetti pppoe in pppoa. Poiché tali dispositivi non sono molto comuni si cita a titolo puramente d'esempio il Draytek vigor120}} | {{Warningbox|La specifica RFC 2684 presuppone l'utilizzo di pppoe da parte del proprio ISP, quindi se così non fosse l'utente deve necessariamente usare un dispositivo autonomamente in grado di "trasformare" i pacchetti pppoe in pppoa. Poiché tali dispositivi non sono molto comuni si cita a titolo puramente d'esempio il Draytek vigor120}} | ||
== Installazione e configurazione del software == | == Installazione e configurazione del software == |
Versione attuale delle 13:33, 16 feb 2019
Versioni Compatibili Debian 7 "wheezy" Debian 8 "jessie" Debian 9 "stretch" |
Gateway-Router |
Sommario |
Introduzione
Questo strumento permette di configurare facilmente ed in maniera guidata pppd
al fine di creare una connessione ADSL direttamente gestita dalla macchina debian su cui è installato pppoeconf
.
Questa possibilità risulta utile in due scenari:
- si ha a disposizione un modem ADSL ethernet puro, ovvero che non offra anche funzionalità di router/gateway;
- si ha a disposizione un modem ADSL/router/gateway ethernet, ma lo si vuole usare solo come modem ADSL per poter dedicare una propria installazione debian al ruolo di router/gateway (e quant'altro si voglia).
Ora, il primo scenario è ormai puramente teorico, visto che ormai da diversi anni tutti i modem in commercio sono in realtà dispositivi integrati che forniscono numerose funzionalità, tra cui appunto anche quella di router/gateway. Rimane dunque il solo secondo scenario, cui questa guida farà riferimento.
Prima di proseguire si rammenta che l'utente deve già avere in essere un contratto di fornitura ADSL con un qualche internet service provider.
Requisiti hardware della macchina debian
Almeno due interfacce di rete, di cui una da collegare al modem/router/gateway e l'altra da usare per la connessione con tutti i dispositivi della lan. L'interfaccia verso la LAN può essere a filo o wireless, ma quella verso il modem deve necessariamente essere a filo, almeno per quanto concerne la presente guida.
Requisiti del modem/router/gateway
Prima di passare all'installazione e configurazione del software sulla macchina debian è necessario configurare correttamente la modalità di funzionamento del modem/router/gateway. L'unico modo infatti che un tale dispositivo ha di funzionare come semplice modem è di essere impostato come full bridge, ovvero secondo quanto definito dalla specifica RFC 2684 (ex RFC 1483).
Poiché ogni produttore fa storia a se non è possibile dare delle istruzioni precise su come configurare il proprio modem/router/gateway, tuttavia in linea generale questa modalità di funzionamento sarà identificabile per esclusione, visto che di norma i suddetti dispositivi offrono tre modalità, di cui due sono sempre pppoe
e pppoa
. Alternativamente è anche possibile che tale opzione sia da tutt'altra parte, per esempio potrebbe essere possibile scegliere tra una modalità "Router+Modem" e una "Modem only".
Installazione e configurazione del software
Contrariamente al solito si descriverà prima la procedura di configurazione invece che presentare subito il comando di installazione, poichè al termine della procedura d'installazione viene immediatamente avviata la procedura di configurazione guidata e quindi è utile prepararsi in anticipo alcuni dati che saranno richiesti. Tale procedura in primis esamina tutte le interfacce di rete presenti per rilevare tutti i concentratori d'accesso presenti (cioè i modem, che in un ambito soho sarà ragionevolmente solo uno), dopo di che pone le seguenti domande all'utente:
- confermare l'interfaccia di rete usata per il collegamento col modem;
- indicare il nome utente da usare per la procedura di autenticazione col proprio ISP;
- indicare la password da usare per la procedura di autenticazione col proprio ISP;
- indicare una serie di parametri di cui si può in genere accettare il valore predefinito. Si richiama l'attenzione solo sulla richiesta dell'uso dei peer DNS: se l'utente ha già un suo server dns nella LAN ragionevolmente risponderà no a tale domanda, viceversa sì.
Si noti che verranno apportate modifiche al file /etc/network/interfaces
, quindi l'utente è invitato a farsi una copia di tale file prima dell'installazione.
ATTENZIONE pppoeconf non configura nessun tipo di firewall! L'utente è quindi invitato a navigare il minimo indispensabile al fine di testare la propria connessione ADSL. |
Premesso quanto sopra si proceda all'installazione di pppoeconf
digitando:
# aptitude install pppoeconf
Tutte le informazioni fornite sono state salvate nei seguenti due file:
- credenziali di accesso del proprio ISP in
/etc/ppp/chap-secrets
. - parametri di configurazione della linea adsl in
/etc/ppp/peers/dsl-provider
, posto naturalmente di aver accettato il nome suggerito dapppoeconf
.
Di seguito un esempio di file di configurazione minimale:
# Minimalistic default options file for DSL/PPPoE connections noipdefault defaultroute replacedefaultroute hide-password #lcp-echo-interval 30 #lcp-echo-failure 4 noauth persist mtu 1456 #persist #maxfail 0 #holdoff 20 plugin rp-pppoe.so eth1 user "vostro_nome_utente" #usepeerdns
Se si è accettato di attivare la connessione ADSL direttamente all'avvio del computer il file /etc/network/interfaces
dovrebbe risultare modificato come segue, almeno limitatamente all'interfaccia usata per il collegamento col modem, cioè eth1
nel seguente esempio:
auto dsl-provider iface dsl-provider inet ppp pre-up /bin/ip link set eth1 up # line maintained by pppoeconf provider dsl-provider auto eth1 iface eth1 inet manual
Dovrebbe essere inoltre già possibile navigare in internet, in caso contrario si veda la prossima sezione per i comandi manuali da usare per avviare e fermare la connessione ADSL.
Comandi manuali
È sempre possibile avviare manualmente la propria connessione col comando:
$ pon dsl-provider
mentre per terminarla:
$ poff dsl-provider
Chiaramente il lettore dovrà sostituire dsl-provider col nome della propria connessione se ne è stato indicato uno differente in fase di installazione.
Impostazioni aggiuntive
Al termine della procedura qui descritta la connessione sarà utilizzabile solo dalla macchina su cui è stato installato pppoeconf
. Per permettere anche agli altri dispositivi della LAN di accedere a internet ci sono quattro condizioni da soddisfare:
- attivare l'ip forwarding a livello kernel;
- avere una seconda interfaccia di rete per il collegamento della macchina al resto della LAN;
- attivare il masquerading per le connessioni in uscita;
- cambiare su ogni macchina (o nel server dhcp qualora se ne abbia uno) l'ip del gateway in modo che coincida con quello del computer su cui si è installato
pppoeconf
.
IP forwarding
Digitare:
# echo 1 > /proc/sys/net/ipv4/ip_forward
che equivale ad editare il file /etc/sysctl.conf
e impostare a 1 la seguente variabile:
net.ipv4.ip_forward = 1
Interfaccia di rete per la LAN
Lo scenario più semplice è costituito da un interfaccia a filo, nel qual caso sarà sufficiente configurare come di norma un indirizzo IP statico o dinamico.
Anche un interfaccia senza fili è adatta allo scopo, tuttavia la faccenda si complica poiché diviene necessario impostare tale interfaccia in modalità master (cioé access point) e tipicamente configurare la crittografia per gestire le connessioni wireless. Si veda ad esempio la guida Wireless Access Point (WAP) personalizzato.
Nel caso poi si possiedano sia un interfaccia a filo aggiuntiva che un'interfaccia senza fili è possibile creare un bridge di rete che includa entrambe in modo da garantire simultaneamente l'accesso a internet a dispositivi collegati tramite cavo e via wifi. Si veda la guida Ethernet Bridging per maggiori informazioni sull'argomento.
Masquerading e SNAT
Poiché in genere il proprio ISP mette a disposizione un solo indirizzo pubblico è evidente che questo dovrà essere utilizzato per tutti i dispositivi della propria LAN.
Tale condizione può essere soddisfatta ricorrendo a masquerading o SNAT, ovvero due diverse impostazioni per permettere il NAT degli indirizzi della LAN. In entrambi i casi è richiesto l'uso di iptables
(si tratta comunque di un singolo comando).
Masquerading
Si usa quando il proprio ISP mette a disposizione un indirizzo pubblico dinamico:
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
SNAT
Si usa quando il proprio ISP mette a disposizione un indirizzo pubblico statico:
# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source IP_PUBBLICO
Possibili problemi
È possibile che alcune pagine, all'apparenza del tutto casuali, risultino inaccessibili, mentre la stragrande maggioranza sia visualizzabile normalmente. In tale situazione è molto probabile che il nodo del problema sia da ricercarsi in un'errata indicazione del valore di MTU. Provare in primis a riconfigurare il proprio modem-router in modalità "modem-router", ovvero disabilitare la modalità RFC 1483/2684 e ritornare a quella PPPoE. Se il problema sparisce è molto probabile che la causa risieda proprio nell'aver indicato un valore di MTU errato. Per i client PPPoE è molto comune l'indicazione di un MTU pari a 1492 (per esempio questo è il valore ottimale indicato da telecom per i suoi abbonamenti adsl), tuttavia in modalità RFC 1483/2684 questo valore dovrà essere probabilmente più basso. La determinazione del parametro MTU avviene per tentativi, tuttavia è probabile che il valore corretto sia pari a quello ideale del caso PPPoE diminuito di otto, ad esempio se MTU PPPoE vale 1492 quello relativo a RFC 1483/2684 sarà probabilmente pari a 1484. In ogni caso la procedura per la determinazione dell'MTU corretto è semplice e non richiede molto tempo. Da terminale digitare:
ping www.google.com -c5 -s1456
Nota Indicare una dimensione di 1456 significa specificare un MTU di 1484, poiché al valore indicato "il sistema aggiunge sempre 28". |
Se come output si ottiene quanto segue:
PING www.google.com (216.58.212.68) 1456(1484) bytes of data. 72 bytes from mil01s24-in-f68.1e100.net (216.58.212.68): icmp_seq=1 ttl=55 (truncated) 72 bytes from mil01s24-in-f68.1e100.net (216.58.212.68): icmp_seq=2 ttl=55 (truncated) 72 bytes from mil01s24-in-f68.1e100.net (216.58.212.68): icmp_seq=3 ttl=55 (truncated) 72 bytes from mil01s24-in-f68.1e100.net (216.58.212.68): icmp_seq=4 ttl=55 (truncated) 72 bytes from mil01s24-in-f68.1e100.net (216.58.212.68): icmp_seq=5 ttl=55 (truncated) --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 35.481/36.157/36.713/0.451 ms
Il valore indicato di 1456, cioè un MTU di 1484, va bene, ma ancora non si sa se è il massimo valore ammissibile. Per verificarlo basta incrementare il valore della dimensione del pacchetto, fino a che non si ottiene un output di questo tipo:
PING www.google.com (216.58.212.68) 1457(1485) bytes of data. --- www.google.com ping statistics --- 5 packets transmitted, 0 received, 100% packet loss, time 4030ms
A questo punto si è certi che l'ultimo valore che non ha prodotto errori e anche il valore massimo ammissibile (nel succitato esempio è 1456, visto che 1457 è il primo valore che produce un errore).
Come ultima nota si evidenzia il fatto che l'output del comando ping cambia leggermente tra il caso in cui il modem-router sia in modalità PPPoE o RFC 1483/2684, in particolare cambia quello relativo al caso di insuccesso.
Il comando ping www.google.com -c5 -s1464
resituisce nel caso PPPoE:
PING www.google.com (149.3.176.53) 1464(1492) bytes of data. 1472 bytes from 149.3.176.53 (149.3.176.53): icmp_seq=1 ttl=57 time=36.8 ms 1472 bytes from 149.3.176.53 (149.3.176.53): icmp_seq=2 ttl=57 time=36.3 ms 1472 bytes from 149.3.176.53 (149.3.176.53): icmp_seq=3 ttl=57 time=35.6 ms 1472 bytes from 149.3.176.53 (149.3.176.53): icmp_seq=4 ttl=57 time=36.2 ms 1472 bytes from 149.3.176.53 (149.3.176.53): icmp_seq=5 ttl=57 time=38.8 ms --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 35.699/36.792/38.893/1.115 ms
Cioè successo.
Il comando ping www.google.com -c5 -s1465
resituisce invece:
PING www.google.com (149.3.176.22) 1465(1493) bytes of data. From gateway (192.168.1.254) icmp_seq=1 Frag needed and DF set (mtu = 1492) 1473 bytes from 149.3.176.22 (149.3.176.22): icmp_seq=2 ttl=57 time=36.7 ms 1473 bytes from 149.3.176.22 (149.3.176.22): icmp_seq=3 ttl=57 time=39.9 ms 1473 bytes from 149.3.176.22 (149.3.176.22): icmp_seq=4 ttl=57 time=36.2 ms 1473 bytes from 149.3.176.22 (149.3.176.22): icmp_seq=5 ttl=57 time=36.1 ms --- www.google.com ping statistics --- 5 packets transmitted, 4 received, +1 errors, 20% packet loss, time 4003ms rtt min/avg/max/mdev = 36.189/37.285/39.947/1.569 ms
Cioè fallimento.
Approfondimenti
Manpages
man pppoeconf
Sitografia
- ADSLPPPoE su help.ubuntu.com
- PPPoE su wiki.debian.org
- MTU discovery su andreabeggi.net
- ADSL overhead spiegato.
Guida scritta da: Wtf 22:40, 15 set 2015 (CEST) | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |