rp-pppoe & Linux
Le Kit proposé par Wanadoo contient (ou a contenu à une époque) une version d'Enternet pour Linux, soumis à la même licence que celle des versions Windows. La société "Roaring Penguin" propose un client sous licence GPL.
La manipulation qui suit présente l'installation et la configuration de rp-pppoe sur une distribution Mandrake 8.1
La distribution Debian propose un paquetage PPPoE qui n'est autre qu'une adaptation de rp-pppoe.
Il est nécessaire d'avoir installé au préalable le démon pppd.
rp-pppoe est proposé sous la forme de paquetage RPM, autant en profiter. A l'heure où je rédige ces lignes, Mandrake propose la version 3.1 alors que l'on trouve la version 3.3 sur le site de Roaring Penguin. J'ai choisi d'installer le rp-pppoe-3.3-1.i386.rpm pour RedHat, qui semble fonctionner parfaitement sur la Mandrake.
Un deuxième paquetage, rp-pppoe-gui-3.3-1.i386.rpm, permet comme son nom le laisse supposer, de disposer d'une interface graphique pour configurer, démarrer et arrêter la connexion PPPoE. Ce paquetage ne présente un intérêt que si vous utilisez la connexion sur une machine Linux qui vous sert de poste de travail avec une interface graphique.
Nous allons voir comment utiliser rp-pppoe dans deux cas de figure :
Une configuration plutôt adaptée à une connexion permanente, initialisée au démarrage de la machine, et qui sera utilisable par tout le monde. Cette méthode est particulièrement adaptée si votre machine Linux est une passerelle vers votre réseau privé.
Une configuration plutôt adaptée à une connexion selon les besoins, initialisée manuellement par l'utilisateur. Elle fait appel à une interface graphique. Correspond à un usage proche de celui d'un modem RTC.
Installez le paquetage ppp si ce n'est déjà fait (ppp-2.4.1-2mdk sur Mandrake 8.1)
Assurez-vous que vous disposez d'une interface réseau convenable. Elle doit être installée, mais pas nécessairement activée. (Eth1 dans l'exemple).
Installez le paquetage rp-pppoe-3.3-1.i386.rpm.
Installez éventuellement le paquetage rp-pppoe-gui-3.3-1.i386.rpm
Vous avez tout ce qu'il faut. l'installation de rp-pppoe place quelques scripts utiles:
/etc/rc.d/init.d/adsl
qui permet de démarrer la connexion PPPoE dans les divers niveaux du
SystemV que vous pouvez configurer de façon graphique par kSysV, fourni
dans la Mandrake 8.1.
adsl-connect, adsl-start et adsl-stop
qui, comme leurs noms l'indiquent, permettent de démarrer et d'arrêter la
connexion PPPoE depuis une console.
adsl-connect est un peu plus compréhensible que adsl-start au niveau de
l'affichage produit.
adsl-setup
C'est un script qui permet de mettre à jour le fichier de configuration de
rp-pppoe : /etc/ppp/pppoe.conf, ainsi que les fichiers de mots de passe
pap-secrets et chap-secrets dans le même répertoire.
Vous pouvez bien entendu utiliser ce script, mais les fichiers de
configuration sont tellement simples...
Toutefois, attendez un peu, qu'on ait eu le temps de voir ce que la
configuration nécessite comme informations
Le paquetage propose également quelques autres outils de diagnostics et de mise au point qui ne devraient pas nous servir.
![]() |
Par des moyens graphiques, netconf permet facilement de configurer vos diverses cartes réseau. |
![]() |
Dans l'exemple, c'est l'adaptateur 2 qui sera utilisé pour la connexion
PPPoE
Pour une connexion sur le câble, le mieux est de désactiver cette interface. Pour le moment, si vous utilisez les services DHCP, la carte est activée et est configurée comme indiqué sur l'image. |
Vous devez retrouver dans /etc/sysconfig/network-scripts un fichier nommé ifcfg-eth1 qui contient ces informations.
La méthode que nous voyons ici est plutôt adaptée à une connexion établie de façon permanente, lors du boot de la machine. Tous les utilisateurs pourront alors en profiter. C'est ce qu'il faudra faire si votre machine est une passerelle vers votre réseau privé.
Si vous optez pour une utilisation plus "personnelle" où chaque utilisateur pourra à sa guise ouvrir ou fermer la connexion, vous préfèrerez probablement utiliser l'interface graphique, que nous verrons plus loin.
Voici le fichier en intégralité. Ce qu'il est important de voir est signalé en gras surligné.
#*********************************************************************** # # pppoe.conf # # Configuration file for rp-pppoe. Edit as appropriate and install in # /etc/ppp/pppoe.conf # # NOTE: This file is used by the adsl-start, adsl-stop, adsl-connect and # adsl-status shell scripts. It is *not* used in any way by the # "pppoe" executable. # # Copyright (C) 2000 Roaring Penguin Software Inc. # # This file may be distributed under the terms of the GNU General # Public License. # # $Id: pppoe.conf,v 1.7 2001/09/14 19:07:39 dfs Exp $ #*********************************************************************** # When you configure a variable, DO NOT leave spaces around the "=" sign. # Ethernet card connected to ADSL modem # ici doit figurer le nom de l'interface que vous allez utiliser. ETH=eth1 # ADSL user name. You may have to supply "@provider.com" Sympatico # users in Canada do need to include "@sympatico.ca" # Sympatico uses PAP authentication. Make sure /etc/ppp/pap-secrets # contains the right username/password combination. # For Magma, use xxyyzz@magma.ca # ici doit figurer le nom d'utilisateur que votre fournisseur vous a donné. USER=fti/xxxxxxx@fti # Bring link up on demand? Default is to leave link up all the time. # If you want the link to come up on demand, set DEMAND to a number indicating # the idle time after which the link is brought down. # Ici, vous indiquez si vous voulez utiliser une connexion permanante # (choix par défaut) DEMAND=no # Ou à la demande. La valeur indiquée est le temps d'inactivité au bout duquel # la connexion sera interrompue (en secondes probablement). #DEMAND=300 # DNS type: SERVER=obtain from server; SPECIFY=use DNS1 and DNS2; # NOCHANGE=do not adjust. # Ici, vous choisissez la façon dont le ou les DNS vont être choisis # SERVER pour récupérer automatiquement les informations du FAI # (vous devrez alors exploiter USEPEERDNS) # SPECIFY pour indiquer vous-même le ou les DNS que vous voulez utiliser # (vous devrez alors exploiter DNS1 et DNS2) # Dans cet exemple, nous utiliserons les DNS indiqués par le FAI DNSTYPE=SERVER # Obtain DNS server addresses from the peer (recent versions of pppd only) USEPEERDNS=yes DNS1= DNS2= # Make the PPPoE connection your default route. Set to # DEFAULTROUTE=no if you don't want this. # Normalement, votre route par défaut doit pointer sur la passerelle de votre FAI # Sauf si vous savez exactement ce que vous faites, laissez cette option à YES DEFAULTROUTE=yes ### ONLY TOUCH THE FOLLOWING SETTINGS IF YOU'RE AN EXPERT # Puisqu'on nous le dit... # Tout de même, il y a une ou deux options à voir : # How long adsl-start waits for a new PPP interface to appear before # concluding something went wrong. If you use 0, then adsl-start # exits immediately with a successful status and does not wait for the # link to come up. Time is in seconds. # # WARNING WARNING WARNING: # # If you are using rp-pppoe on a physically-inaccessible host, set # CONNECT_TIMEOUT to 0. This makes SURE that the machine keeps trying # to connect forever after adsl-start is called. Otherwise, it will # give out after CONNECT_TIMEOUT seconds and will not attempt to # connect again, making it impossible to reach. # rp-pppoe essaye de reconnecter à chaque interruption de la liaison # si la connexion n'est pas à la demande. # l'option suivante permet éventuellement d'obliger rp-pppoe à essayer d'établir # la connexion indéfiniment. Ici, nous nous contenterons de 30 secondes. # Si vous devez pouvoir accéder à votre machine à distance (ssh, telnet...) # mettez alors cette valeur à 0 pour forcer les tentatives à l'infini. CONNECT_TIMEOUT=30 # How often in seconds adsl-start polls to check if link is up CONNECT_POLL=2 # Specific desired AC Name ACNAME= # Specific desired service name SERVICENAME= # Character to echo at each poll. Use PING="" if you don't want # anything echoed PING="." # File where the adsl-connect script writes its process-ID. # Three files are actually used: # $PIDFILE contains PID of adsl-connect script # $PIDFILE.pppoe contains PID of pppoe process # $PIDFILE.pppd contains PID of pppd process CF_BASE=`basename $CONFIG` PIDFILE="/var/run/$CF_BASE-adsl.pid" # Do you want to use synchronous PPP? "yes" or "no". "yes" is much # easier on CPU usage, but may not work for you. It is safer to use # "no", but you may want to experiment with "yes". "yes" is generally # safe on Linux machines with the n_hdlc line discipline; unsafe on others. SYNCHRONOUS=no # Do you want to clamp the MSS? Here's how to decide: # - If you have only a SINGLE computer connected to the ADSL modem, choose # "no". # - If you have a computer acting as a gateway for a LAN, choose "1412". # The setting of 1412 is safe for either setup, but uses slightly more # CPU power. # Option fort intéressante, surtout si la machine agit comme une passerelle # entre le Net et votre réseau local. Cette option permet à vos hôtes du réseau # privé d'adopter un MTU compatible avec PPPoE CLAMPMSS=1412 #CLAMPMSS=no # LCP echo interval and failure count. LCP_INTERVAL=20 LCP_FAILURE=3 # PPPOE_TIMEOUT should be about 4*LCP_INTERVAL PPPOE_TIMEOUT=80 # Firewalling: One of NONE, STANDALONE or MASQUERADE # Personellement, je préfère m'occuper du firewall à part en écrivant mes propres règles # dans netfilter. FIREWALL=NONE # Il n'est normalement pas nécessaire de modifier les autres paramètres. # Linux kernel-mode plugin for pppd. If you want to try the kernel-mode # plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so LINUX_PLUGIN= # Any extra arguments to pass to pppoe. Normally, use a blank string # like this: PPPOE_EXTRA="" # Rumour has it that "Citizen's Communications" with a 3Com # HomeConnect ADSL Modem DualLink requires these extra options: # PPPOE_EXTRA="-f 3c12:3c13 -S ISP" # Any extra arguments to pass to pppd. Normally, use a blank string # like this: PPPD_EXTRA=""
Le "CLAMP MSS", est un moyen d'agir sur la taille maximale des paquets au niveau TCP. Nous verrons ça plus en détail un peu plus loin. Il est possible de pousser cette valeur jusqu'à 1452. Au delà, nous aurons des problèmes.
Ils ont la même allure tous les deux :
# Secrets for authentication using PAP # client server secret IP addresses fti/xxxxxxx@fti * xxxxxxx *
Bien entendu, le mot de passe (secret) est écrit en clair dans ces fichiers. Attention donc aux droits d'accès... Normalement, dans ce type de configuration, seul root a accès en lecture et en écriture.
Presque toutes ces options auraient pu être configurées par l'intermédiaire du script adsl-setup. Maintenant que l'on sait à peu près de quoi l'on parle, il n'y a plus aucun inconvénient à le faire à votre choix, par le script ou par la mise à jour de ces fichiers.
Il ne vous reste plus qu'à configurer votre SystemV pour qu'il appelle /etc/rc.d/init.d/adsl start au démarrage et vous aurez alors une interface ppp0 active.
Dans le cas où la machine Linux est utilisée comme un poste de travail, on aura certainement intérêt à utiliser plutôt cette méthode, à moins que l'on souhaite disposer d'une connexion permanente.
![]() |
il faut lancer l'utilitaire tkpppoe. Le bouton "Properties" permet le paramétrage du client. |
![]() |
L'onglet "Basic" permet la saisie de l'identifiant de l'utilisateur. |
![]() |
L'onglet NIC and DNS permet de spécifier:
|
![]() |
L'onglet "Options"...
Attention, la connexion PPP synchrone peut ne pas fonctionner correctement. Il faut essayer. La connexion synchrone est moins gourmande en ressources CPU |
Il suffit maintenant d'utiliser les boutons "Start" et Stop" pour utiliser sa connexion comme on le ferait avec un modem RTC.
La configuration, pour un utilisateur donné, n'est, bien entendu, à faire qu'une fois
La mise en oeuvre de rp-pppoe à travers l'interface graphique n'utilise pas les fichiers de configuration vus plus haut. ses propres fichiers sont créés dans /etc/ppp/rp-pppoe-gui, ce qui permet de disposer d'une configuration éventuellement différente pour chaque utilisateur.
C'est somme-toute assez similaire. La configuration testée est une Woody stable.
Utilisez le script pppoeconf, qui recherchera automatiquement l'interface attachée au modem, vous posera les questions essentielles et configurera convenablement le client.
L'originalité de la Debian, c'est qu'elle intègre plus intimement PPPoE à la connexion PPP "classique".
Vous démarrerez et arrêterez votre connexion PPPoE par un :
/etc/init.d/ppp start (ou stop)
Dans la pratique, le script pppoeconf effectue :
une mise à jour du fichier /etc/ppp/peers/dsl-provider,
une mise à jour du fichier /etc/ppp/peers/provider,
une mise à jour du fichier /etc/ppp/pap-secrets,
une mise à jour du fichier /etc/ppp/ppp_on_boot.dsl,
crée un lien symbolique /etc/ppp/ppp_on_boot qui pointe sur /etc/ppp/ppp_on_boot.dsl,
(et peut-être d'autres choses encore)...
Normalement, vous n'avez rien à modifier pour que ça fonctionne, mais faisons tout de même les remarques suivantes :.
chap-secrets reste vide, si bien que l'authentification PPP se fait en clair. Ce n'est pas très gènant pour l'ADSL, ça peut l'être bien d'avantage pour le câble. Vous avez tout intérêt à copier pap-secrets dans chap-secrets et à vider ensuite pap-secrets.
Certains paramètres qui peuvent intervenir sur le bon fonctionnement de la connexion PPP et de son partage sur le LAN, comme le MTU et le MSS CLAMP se trouvent dans le fichier /etc/ppp/peers/dsl-provider. N'hésitez donc pas à visiter ce fichier, qui, à peu de choses près, correspond au pppoe.conf de rp-pppoe