PPPoE : Installation

Ce qu'il faut d'abord comprendre

Le cas du modem RTC

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.

Le cas du réseau local Ethernet

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.

Le cas de PPPoE

Dans le cas de PPPoE, vous l'avez compris, il y a une couche de plus.

  • Nous installons le « driver » de la carte réseau ;
  • nous lions dessus le client PPPoE. Cette procédure peut être transparente pour l'utilisateur. Windows XP par exemple, propose un assistant qui fera les choses à votre place en vous posant quelques questions ;
  • TCP/IP va venir se lier à ce client de façon plus ou moins transparente. Notez bien qu'à aucun moment, TCP/IP n'a été directement lié à Ethernet, comme c'est le cas pour le réseau local.

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.

  • Un client DHCP ne fonctionnera pas. Ce protocole n'est utilisable que sur Ethernet. Votre adaptateur réseau n'a pas besoin d'être configuré en client DHCP. Il ne doit pas l'être, sinon votre pile IP va perdre du temps à chercher un serveur DHCP qu'elle ne trouvera forcément pas.
  • Pour établir la connexion, il vous faudra initier une connexion PPP, comme avec votre bon vieux modem RTC (login, mot de passe) et c'est PPP qui récupèrera alors votre IP, la passerelle par défaut et le DNS. Il n'y a plus de bail, les paramètres sont inchangés pour toute la durée de la session. Nous verrons cela dans le détail un peu plus loin, à la page « Les détails ».

Les clients PPPoE les plus courants

Aujourd'hui tous les systèmes d'exploitation proposent un client PPPoE. Pour ceux que je connais :

  • GNU/Linux utilise généralement rp-pppoe de façon plus ou moins aménagée, suivant la distribution employée. Debian installe deux paquets :
    • pppoe qui est un aménagement de rp-pppoe, et s'appuie sur le paquet ppp, service générique pour les connexions de type point à point ;
    • pppoeconf qui porpose des outils pour configurer simplement sa connexion pppoe.
  • MS Windows XP propose également un client natif.

Vous utilisez une plate-forme Win32

  • démarrez l'assistant « Créer une nouvelle connexion » à partir des « connexions réseau » dans le panneau de configuration ;
  • choisissez « Etablir une connexion à Internet » ;
  • configurez votre connexion manuellement ;
  • choisissez « Se connecter en utilisant une connexion large bande qui nécessite un nom d'utilisateur et un mot de passe » ;
  • donnez un nom à votre connexion. Ce nom apparaitra dans vos connexions réseau. C'est pour vous, vous mettez ce que vous voulez ;
  • Choisissez si vous voulez que cette connexion soit accessible à tous les utilisateurs ou seulement à vous. Dans ce dernier cas, les autres utilisateurs devront eux aussi configurer leur connexion ;
  • remplissez le formulaire avec les informations que votre fournisseur d'accès vous a communiquées.

C'est terminé.

Vous utilisez une plate-forme Linux

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.

Le fichier « pap-secrets »

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 « dsl-provider »

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"
  • La ligne user doit contenir le nom d'utilisateur tel qu'écrit dans pap-secrets ;
  • la ligne 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.
Le fichier « interfaces »

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.