L'ADSL de France Telecom sous Linux

Par Jérôme PETAZZONI, skaya@mygale.org

Avertissement : ce document est une version pre alpha, ce qui veut dire qu'il manque pas mal de choses et que c'est sûrement bourré de photes. Mais si des gens sont interessés pas le sujet, alors promis je pond quelquechose de plus présentable.

En guise d'introduction : ces informations ne sont pas spécifiques à Linux ni au service ADSL de France Telecom. On peut les utiliser pour *BSD (en particulier FreeBSD pour les PCs, et NetBSD ou OpenBSD pour le reste - vieilles stations Sun, Vax, DEC, qui font d'excellents firewall UNIX bien blindés, beaucoup plus fiables que les serveurs NT).

Comment qu'ça marche

Si vous êtes pressé, vous pouvez sauter ce paragraphe et passer au suivant. En fait, aussi bien l'ADSL de France Telecom, que celui commercialisé aux USA, que de nombreux câblo-opérateurs, utilisent le protocole DHCP pour attribuer les adresses IP. Sans faire trop de technique : sur Internet, une machine est repérée par son adresse IP. Elle est unique, et attribuée de façon hiérarchique (on ne la choisit pas comme ça ; il y a un organisme central qui redistribue les adresses par paquets, et au final c'est France Telecom - ou votre provider plus généralement - qui vous l'attribue). Exemple d'adresse IP : 192.168.9.4 (ne pas confondre avec ppp52.provider.fr, qui est un nom DNS ; chaque nom DNS se traduit en une adresse IP, parceque c'est plus pratique de dire altavista.digital.com que 204.123.2.66).

Vous aurez sûrement noté que votre adresse IP change souvent. Effectivement, comme il y a (chiffres au pif) 100 adresses pour 1000 personnes, mais qu'il n'y a jamais plus de 100 personnes simultanément, eh bien on note les adresses disponibles, et dès que quelqu'un veut "faire de l'Internet", on lui donne une adresse dans le lot disponible. Et quand il a fini, on remet l'adresse dans le stock. Vue simpliste des choses? Non, c'est exactement comme ça que ça se passe. Le modem ADSL est relié à l'ordinateur d'un côté, et au centre FT de l'autre. Il est "connecté" 24h/24. Heureusement, car il peut mettre plusieurs minutes pour se synchroniser (regardez les petites LEDs clignoter avant de passer au vert lorsque vous l'allumez). Lorsque votre ordinateur veut accéder … Internet, cela veut dire du traffic IP. Et pour faire du traffic IP, il faut une adresse.

Pour obtenir une adresse, le système intercepte la requête IP (il la bloque) et lance des appels DHCP, c'est à dire qu'il demande au serveur DHCP de FT "dis, tu aurais une adresse pour moi?", et celui lui en attribue une. Ensuite, il débloque la demande IP. Le tout aura duré à peine un dixième de seconde : on n'a rien vu!

Comment le serveur "récupère"-t-il les adresses? Simple, chaque adresse est allouée pour un temps donné. On appelle ça un "bail". Chez France Telecom je crois qu'il est d'une heure (si ça n'a pas changé). Si au bout d'une heure, votre ordinateur n'a pas utilisé son adresse, le bail n'est pas renouvelé (c'est votre ordinateur qui renouvelle automatiquement le bail).

On peut observer cela avec l'outil winipcfg sous Windows 9x, et avec ipconfig (? je ne me rappelle plus du nom exact) sous NT.

Besoins matériels

Avertissement important : pour relier le modem ADSL à l'ordinateur, ce dernier doit être muni d'une prise réseau RJ45 (en général il faut une carte réseau Ethernet ; sur les Powermacs, c'est intégré). Attention, pas de BNC, du RJ45 (un peu comme les prises téléphone des modems, en un chou‹a plus gros). On relie avec un câble classique (câble droit ou croisé, je ne me rappelle plus ; si quelqu'un le sait, qu'il m'envoie un mail).

Re-avertissement encore plus important : ne pas relier le modem sur un Hub. Il y a des risques, en procédant ainsi, de "squatter" plusieurs adresses IP (chaque machine demandera la sienne). Si on veut être à la fois branché au modem et au réseau local, prendre 2 cartes réseau. Pas de problème ni sous Linux ni sous Windows, ni sous MacOS si l'autre réseau est en AppleTalk.

Sous Linux, comment je fais?

Le bazar qui s'occupe du DHCP est un petit programme qui va s'occuper d'obtenir une adresse IP et de renouveler régulièrement le bail. Il s'appelle dhcpcd, comme DHCP Client Daemon. On peut le télécharger sur ftp://ftp.lip6.fr/pub2/linux/networking/net-source/bootp/dhcpcd-0.6.tar.gz, par exemple.

Attention, il faut le compiler (ce qui n'est pas trop dur, mais quand on n'a jamais fait on peut paniquer ;) et l'installer correctement. Pour le compiler, décompresser l'archive : "cd /tmp ; tar zxvf /chemin/dhcpcd-0.6.tar.gz", puis "cd dhcpcd-0.6.tar.gz", et lancer la compilation avec "make". Si tout se passer bien (pas de "error") faire "make install". Ensuite, ajouter dans le /etc/rc.d/rc.inet1 une ligne du genre "/usr/sbin/dhcpcd eth1" si le modem est sur la carte réseau désignée par eth1.

Si votre bécane Linux héberge un serveur DHCP, je conseille de killer le serveur DHCP, de lancer dhcpcd, puis de relancer le serveur DHCP. Avec certains noyaux, c'est nécessaire. Avec d'autres, pas la peine. A vous de voir.

Sous *BSD

Désolé, je n'ai pas encore pu tester une machine *BSD reliée à l'ADSL. Mais a priori pas de gros changement en vue (si dhcpcd ne marche pas, on peut se tourner vers dhclient, fourni avec dhcpd).

Performances

Elles sont au moins aussi bonnes sous Linux et *BSD que sous un autre OS. A titre indicatif, j'obtiens entre 80 et 150 kilo octets par seconde avec le site ftp.lip6.fr .

Linux étant par essence conçu autour du TCP/IP, ayant un vrai multitâche préemptif, et une vraie gestion protégée de la mémoire, il va plus vite que Windows et ça on ne peut rien y faire ;)

Si vous voulez partager l'accès ADSL pour un réseau local, aucun problème. Inutile de prévoir une bête de course (un DX2/66 est amplement suffisant). Il faut un noyau avec le "masquerading support", et utiliser ipfwadm. Il faut aussi 2 cartes réseaux, comme dit plus haut.

Si cela intéresse du monde d'avoir des détails, je suis prêt à donner de petites explications sur le sujet. M'envoyer un mail.

Avertissements importants

Les temps sont durs. Le 18 novembre 98, la personne avec qui j'administre un petit serveur sur une ligne ADSL a reçu un mail de FT, lui disant en substance "attention, vous êtes connectés 24h/24, alors soit vous prenez une IP fixe, soit vous dégagez". En ajoutant que nous squattions des adresses IP, gênant les autres utilisateurs. Je tiens à préciser qu'il est effectivement possible de bloquer plusieurs adresses IP (avec un Hub, ou avec des paquets "spoofés"), mais que cela est facilement détectable (j'utilise un script Perl qui compare toutes les minutes la base de données du serveur DHCP et la table ARP pour cela).

Si vous utilisez dhcpcd, il est donc recommandé de le "killer" tous les soirs, pour le relancer quelques heures plus tard (avec le crontab, par exemple). Cette solution me semble assez "sale", car rien n'empêche la machine d'être en train de dialoguer avec Internet à ce moment. Je ne l'avais donc pas mise en place jusqu'ici, mais il va bien falloir s'y résoudre.

NB : le point important pour moi n'est pas d'avoir une IP fixe (option que FT facture près de 2 fois plus cher que l'abonnement normal) mais d'avoir une machine tout le temps joignable (et le contrat de chez FT spécifie bien un accès illimité).


Fin de cette HOWTO. J'ai oublié des choses? Raconté des bêtises? Parlez m'en vite, skaya@mygale.org attend vos mails ;)

Je suis actuellement étudiant en Licence d'Informatique à l'Université de Marne-La-Vallée. Je fournis à des petits Workgroups des solutions de partage d'accès Internet. J'administre un petit serveur sur une ligne ADSL, qui me sert de "point de chute" afin d'apprendre à me servir d'Unix, et surtout à administrer un serveur "pour de vrai", relié à Internet. Ce serveur n'a aucune fin lucrative ou commerciale. Je fais de la musique, joue à Starcraft, et me brosse les dents tous les matins. J'ai aussi écrit une WHATIS sur le TCP/IP - en français. Disponible sur the-floyd.dyn.ml.org/~skaya.