Lorsque nous installons une connexion PPP, telle que celle que nous utilisons sur une liaison série avec notre modem RTC, Il n'existe pas à proprement parler d'interface physique. Sous Windows, par exemple, nous installons le « client d'accès distant » que nous lions à notre modem, puis nous le configurons pour qu'il utilise TCP/IP pour la connexion Internet. GNU/Linux utilise le service pppd
.
Lorsque nous installons une interface Ethernet destinée à nous connecter sur un réseau local (ou sur notre connexion ADSL, si notre fournisseur adopte cette stratégie), nous installons le « driver » de la carte réseau, puis nous y associons TCP/IP. Nous configurons alors TCP/IP, soit « en dur » dans le cas d'un petit réseau local, soit de façon automatique via DHCP dans le cas d'un réseau plus complexe.
Dans le cas de PPPoE, vous l'avez compris, il y a une couche de plus.
Nous avons donc une couche de plus et IP se « voit » sur un transport PPP, exactement comme dans le cas d'une connexion par modem RTC, et non plus directement sur un transport Ethernet. Les captures documentées sur la page « Reniflons un peu... » le montrent bien.
Aujourd'hui tous les systèmes d'exploitation proposent un client PPPoE. Pour ceux que je connais :
C'est terminé.
Nous allons voir ça sur une Debian Etch. Vous pouvez normalement utiliser les services du paquet pppoeconf
avec la commande /usr/sbin/pppoeconf
. Nous allons tout de même regarder de plus près les trois fichiers de configuration à modifier.
Editez le fichier /etc/ppp/pap-secrets
pour y placer les informations d'identification données par le fournisseur d'accès. Ce fichier est de la forme :
"<nom d'utilisateur>" "<domaine>" "<mot de passe">
Le domaine sera avantageusement remplacé par une astérisque *
. Exemple :
"fti/epikoi@fti" * "password"
Dans certains cas, un fichier identique, mais nommé /etc/ppp/chap-secrets
pourra être nécessaire. Son contenu est exactement le même.
Le fichier /etc/ppp/peers/dsl-provider
installé par défaut contient beaucoup de commentaires explicatifs. Il y a deux lignes qu'il faut modifier :
user "fti/epikoi@fti" pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452"
user
doit contenir le nom d'utilisateur tel qu'écrit dans pap-secrets
;pty
doit être modifiée en fonction de l'interface connectée au modem (ici eth0).Au total, nous devrions avoir un fichier proche de ceci :
~# cat /etc/ppp/peers/dsl-provider user "fti/epikoi@fti" pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452" noipdefault defaultroute hide-password lcp-echo-interval 60 lcp-echo-failure 3 connect /bin/true noauth persist mtu 1492 noaccomp default-asyncmap
Je vous laisse retrouver par vous-même la signification exacte des divers paramètres. Notons tout de même :
defaultroute
qui permettra de placer automatiquement la route par défaut sur cette connexion ;mtu 1492
qui évitera une fragmentation toujours peu souhaitable. Voir les détails sur le fonctionnement de PPPoE.
Nous devons ajouter dans /etc/network/interfaces
les lignes suivantes :
auto ppp0 iface ppp0 inet ppp provider dsl-provider
Notez que dans le cas de PPPoE, le lien ppp se faisant sur Ethernet, l'interface eth1 n'a pas besoin d'être configurée au niveau IP. Vous n'aurez besoin de configurer au niveau IP que si votre modem propose un accès IP pour sa configuration, ou simplement pour la lecture de son état, mais cette configuration IP n'est absolument pas nécessaire à PPPoE.
Au final, vous devriez avoir dans /etc/network/interfaces
:
auto eth0 iface eth0 inet static address 192.168.0.253 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 auto ppp0 iface ppp0 inet ppp provider dsl-provider
Normalement, l'interface ppp0
doit maintenant pouvoir se manipuler comme n'importe quelle interface réseau.