
                              Bridging mini HOWTO

Christopher Cole mailto:cole@coledd.com
Version franaise : Samuel Tribehou mailto:Samuel-TRIBEHOU@mail.cpod.fr

   v1.11, 7 Septembre 1998.
     _________________________________________________________________

   _Ce document dcrit l'installation d'un pont ethernet. Un pont est une
   machine qui contrle des paquets de donnes  l'intrieur d'un
   sous-rseau dans le but de rduire le trafic. Un pont est gnralement
   pla entre deux groupes diffrents d'ordinateurs qui peuvent
   communiquer entre eux, mais pas avec les ordinateurs de l'autre
   groupe. Un bon exemple est de considrer un groupe de Macintosh et un
   autre de machines Unix. Ces groupes de machines tendent  beaucoup
   communiquer entre eux, et le trafic qu'ils produisent sur le rseau
   engendre des collisions pour les autres machines qui tentent de
   communiquer. Un pont sera pla entre ces groupes d'ordinateurs. Son
   rle sera alors d'examiner la destination des paquets de donnes un
   par un et de dcider de passer ou non les paquets de l'autre ct du
   segment ethernet. Le rsultat est un rseau plus rapide, silencieux,
   et engendrant moins de collisions._
     _________________________________________________________________

1. Installation

     * Se procurer Bridge Config :
       ftp://shadow.cabi.net/pub/Linux/BRCFG.tgz
     * Authoriser de multiples interfaces ethernet sur la machine en
       ajoutant ceci  votre /etc/lilo.conf, et en relanant lilo :

append = "ether=0,0,eth1"

       Si vous avez trois interfaces sur votre pont, utilisez cette ligne
        la place :

append = "ether=0,0,eth1 ether=0,0,eth2"

       D'autres interfaces pourront tre trouves en rajoutant plus de
       dclarations ether. Par dfaut le noyau ne cherche  dtecter
       qu'une seule carte ethernet, et ds qu'il en a trouv une la
       dtection cesse. La dclaration append ci-dessus indique au noyau
       de continuer  chercher d'autres cartes ethernet une fois la
       premire trouve. Alternativement, les paramtres de boot peuvent
       tre utiliss  la place :

linux ether=0,0,eth1

       ou, avec 3 interfaces, utilisez :

linux ether=0,0,eth1 ether=0,0,eth2

     * Recompilez le noyau en rajoutant l'option BRIDGING.
     * Un pont ne devrait pas avoir d'adresse IP. Il PEUT, mais un
       vritable pont n'en a pas besoin. Pour enlever l'adresse IP de
       votre pont, allez dans /etc/sysconfig/network-scripts/ (pour une
       RedHat) et copiez ifcfg-lo0 dans ifcfg-eth0 et ifcfg-eth1. Dans
       ces deux fichiers, changez la ligne contenant DEVICE=lo en
       device=eth0 et DEVICE=eth1. Les autres distributions peuvent
       driver sur ce point. Faites ce que vous devez faire ! S'il y a
       plus de 2 interfaces sur ce pont, soyez sr de faire les
       configurations correspondantes pour les autres aussi.
     * Rebootez, de faon  utiliser le nouveau noyau avec l'option
       bridging, et pour tre sr que des adresses IP ne sont pas
       attaches aux interfaces reseau.
     * Une fois que le systme est prt, mettez les cartes ethernet en
       mode promiscuous, de faon  ce qu'elles regardent chaque paquet
       qui passe par leur interface :

ifconfig eth0 promisc; ifconfig eth1 promisc

       Toutes les interfaces qui sont connectes aux segments rseau 
       relier doivent tre mises en promiscuous mode.
     * Mettez le pont en route en utilisant le programme brcfg :

brcfg -ena

     * Vrifiez qu'il y a un trafic diffrent pour chaque interface :

tcpdump -i eth0 (dans une fentre).
tcpdump -i eth1 (dans une autre fentre).

     * Lancez un sniffer ou tcpdump sur une autre machine pour vrifier
       que le pont spare les segments correctement.

2. Questions frquemment poses.

     * _Q : __J'ai le message : ioctl(SIOCGIFBR) failed~: Package not
       installed. Qu'est-ce que a veut dire ?_
       _R : _Le support du pontage n'est pas intgr dans votre noyau.
       Utilisez un noyau 2.0 ou suprieur, et recompilez-le avec l'option
       BRIDGING.
     * _Q : __Les machines qui sont d'un ct du pont ne peuvent pas
       pinger les autres !_
       _R : _
         1. Avez vous activ le pontage en utilisant brcfg -ena ?
            (brcfg devrait rpondre bridging is ENABLED )
         2. Avez vous mis l'interface en promiscuous mode ? (Tapez la
            commande ifconfig. Le drapeau (flag) devrait tre mis sur
            les deux interfaces.)
         3. Si vous utilisez des cartes pouvant grer plusieurs sortes
            d'interface, vrifiez que c'est la bonne qui est utilise. Il
            se peut que vous ayez besoin d'utiliser le programme de
            configuration qui est livr avec votre carte rseau.
     * _Q : __Je ne peux pas utiliser telnet ou ftp depuis le pont !
       pourquoi ?_
       _R : _C'est parce que le pont n'a d'adresse IP pour aucune de ses
       interfaces. Un pont doit tre une partie transparente d'un rseau.
     * _Q : __Que dois-je configurer pour que le routage se fasse bien ?_
       _R : _Rien ! Tout le mchanisme de routage est dlgu au code de
       pontage du noyau. Pour voir les adresses ethernet telles qu'elles
       sont comprises par le noyau, utilisez le programme brcfg en mode
       debug : _brcfg -deb_
     * _Q : __Le pont semble marcher, mais pourquoi traceroute ne montre
       pas le pont comme faisant partie du chemin ?_
       _R : _ cause de la nature d'un pont, traceroute ne devrait PAS
       montrer le pont comme faisant partie du chemin. Un pont doit tre
       transparent pour le reste du rseau.
     * _Q : __Est-il ncessaire de compiler le noyau avec l'option
       IP_FORWARD ?_
       _R : _Non. Le code de pontage dans le noyau se charge du transport
       des paquets. IP_FORWARD sert pour une passerelle qui a des
       adresses IP associes  ses interfaces.
     * _Q : __Pourquoi est-ce que les adresses ethernet physiques pour le
       port 1 et 2 sont les mmes selon brcfg ? Ne devraient-elles pas
       tre diffrentes ?_
       _R : _Non. Chaque port sur un pont est intentionellement assign 
       la mme adresse ethernet physique par le code de pontage.
     * _Q : __Bridging n'apparait pas dans les options lorsque je fais
       un/ make config sur les sources du noyau. Comment faire pour
       pouvoir le slectionner ?_
       _R : _Pendant la configuration du noyau, rpondez Y  la
       questionPrompt for development and/or incomplete code/drivers
       (CONFIG_EXPERIMENTAL) Y/n/?.
     * _Q : __Trop de hubs (4 ou plus) chans l'un aprs l'autre (en
       srie) posent des problmes de timing sur un ethernet. Quel effet
       a un pont dans un sous-rseau accd par des hubs ?_
       _R : _Un pont annule la rgle des 3/4/5 hubs. Un pont ne gre pas
       les paquets de la mme faon qu'un hub, et ne contribue donc pas
       aux problmes de timing dasns un rseau.
     * _Q : __Est-ce qu'un pont peut tre interfa avec des segments
       ethernet d'un ct de 10Mb et de l'autre de 100Mb ?_
       _R : _Oui, un pont peut joindre entre eux un segment de 10Mb avec
       un autre de 100Mb. Du moment que la carte rseau du ct rapide du
       rseau est une 100Mb, TCP prendra en charge le reste. Bien qu'il
       soit vrai que les paquets d'un hte dans le rseau  100Mb
       communiquant avec un autre du rseau  10Mb se dplaceront 
       seulement 10Mb/s, le reste du trafic sur l'ethernet rapide n'est
       pas ralenti.
