Bridging mini HOWTO
Christopher Cole <mailto:
[email protected]>
Version fran�aise : Samuel Tribehou <mailto:Samuel-
[email protected]>
v1.11, 7 Septembre 1998.
Ce document d�crit l'installation d'un pont ethernet. Un pont est une
machine qui contr�le des paquets de donn�es � l'int�rieur d'un sous-
r�seau dans le but de r�duire le trafic. Un pont est g�n�ralement
pla�� entre deux groupes diff�rents d'ordinateurs qui peuvent communi�
quer entre eux, mais pas avec les ordinateurs de l'autre groupe. Un
bon exemple est de consid�rer 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 r�seau engendre des
collisions pour les autres machines qui tentent de communiquer. Un
pont sera pla�� entre ces groupes d'ordinateurs. Son r�le sera alors
d'examiner la destination des paquets de donn�es un par un et de
d�cider de passer ou non les paquets de l'autre c�t� du segment ether�
net. Le r�sultat est un r�seau plus rapide, �silencieux�, et engen�
drant moins de collisions.
______________________________________________________________________
Table des mati�res
1. Installation
2. Questions fr�quemment pos�es.
______________________________________________________________________
11.. IInnssttaallllaattiioonn
� 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 relan�ant 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 trouv�es en rajoutant plus de d�cla�
rations ether. Par d�faut le noyau ne cherche � d�tecter qu'une seule
carte ethernet, et d�s qu'il en a trouv� une la d�tection cesse. La
d�claration append ci-dessus indique au noyau de continuer � chercher
d'autres cartes ethernet une fois la premi�re trouv�e. Alternative�
ment, les param�tres de boot peuvent �tre utilis�s � 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
v�ritable 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
d�river sur ce point. Faites ce que vous devez faire ! S'il y a
plus de 2 interfaces sur ce pont, soyez s�r de faire les
configurations correspondantes pour les autres aussi.
� Rebootez, de fa�on � utiliser le nouveau noyau avec l'option
bridging, et pour �tre s�r que des adresses IP ne sont pas
attach�es aux interfaces reseau.
� Une fois que le syst�me est pr�t, mettez les cartes ethernet en
mode �promiscuous�, de fa�on � ce qu'elles regardent chaque paquet
qui passe par leur interface :
ifconfig eth0 promisc; ifconfig eth1 promisc
Toutes les interfaces qui sont connect�es aux segments r�seau � relier
doivent �tre mises en �promiscuous mode�.
� Mettez le pont en route en utilisant le programme brcfg :
brcfg -ena
� V�rifiez qu'il y a un trafic diff�rent pour chaque interface :
tcpdump -i eth0 (dans une fen�tre).
tcpdump -i eth1 (dans une autre fen�tre).
� Lancez un sniffer ou tcpdump sur une autre machine pour v�rifier
que le pont s�pare les segments correctement.
22.. QQuueessttiioonnss ffrr��qquueemmmmeenntt ppooss��eess..
� QQ ::
_J_'_a_i _l_e _m_e_s_s_a_g_e _: ioctl(SIOCGIFBR) failed~: Package not installed.
Qu'est-ce que �a veut dire ?
RR :: Le support du pontage n'est pas int�gr� dans votre noyau.
Utilisez un noyau 2.0 ou sup�rieur, et recompilez-le avec l'option
BRIDGING.
� QQ :: _L_e_s _m_a_c_h_i_n_e_s _q_u_i _s_o_n_t _d_'_u_n _c_�_t_� _d_u _p_o_n_t _n_e _p_e_u_v_e_n_t _p_a_s _�_p_i_n_g_e_r_�
_l_e_s _a_u_t_r_e_s _!
RR ::
1. Avez vous activ� le pontage en utilisant �brcfg -ena� ? (brcfg
devrait r�pondre �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 g�rer plusieurs sortes
d'interface, v�rifiez que c'est la bonne qui est utilis�e. Il se
peut que vous ayez besoin d'utiliser le programme de
configuration qui est livr� avec votre carte r�seau.
� QQ :: _J_e _n_e _p_e_u_x _p_a_s _u_t_i_l_i_s_e_r _t_e_l_n_e_t _o_u _f_t_p _d_e_p_u_i_s _l_e _p_o_n_t _!
_p_o_u_r_q_u_o_i _?
RR :: 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 r�seau.
� QQ :: _Q_u_e _d_o_i_s_-_j_e _c_o_n_f_i_g_u_r_e_r _p_o_u_r _q_u_e _l_e _r_o_u_t_a_g_e _s_e _f_a_s_s_e _b_i_e_n _?
RR :: Rien ! Tout le m�chanisme de routage est d�l�gu� 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 : bbrrccffgg --ddeebb
� QQ :: _L_e _p_o_n_t _s_e_m_b_l_e _m_a_r_c_h_e_r_, _m_a_i_s _p_o_u_r_q_u_o_i traceroute ne montre pas
le pont comme faisant partie du chemin ?
RR :: � 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 r�seau.
� QQ :: _E_s_t_-_i_l _n_�_c_e_s_s_a_i_r_e _d_e _c_o_m_p_i_l_e_r _l_e _n_o_y_a_u _a_v_e_c _l_'_o_p_t_i_o_n
IP_FORWARD ?
RR :: 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 associ�es � ses interfaces.
� QQ :: _P_o_u_r_q_u_o_i _e_s_t_-_c_e _q_u_e _l_e_s _a_d_r_e_s_s_e_s _e_t_h_e_r_n_e_t _p_h_y_s_i_q_u_e_s _p_o_u_r _l_e
_p_o_r_t _1 _e_t _2 _s_o_n_t _l_e_s _m_�_m_e_s _s_e_l_o_n brcfg ? Ne devraient-elles pas
�tre diff�rentes ?
RR :: Non. Chaque port sur un pont est intentionellement assign� � la
m�me adresse ethernet physique par le code de pontage.
� QQ :: _B_r_i_d_g_i_n_g _n_'_a_p_p_a_r_a_i_t _p_a_s _d_a_n_s _l_e_s _o_p_t_i_o_n_s _l_o_r_s_q_u_e _j_e _f_a_i_s _u_n_/
make config sur les sources du noyau. Comment faire pour pouvoir le
s�lectionner ?
RR :: Pendant la configuration du noyau, r�pondez Y � la
question�Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) Y/n/?�.
� QQ :: _T_r_o_p _d_e _h_u_b_s _(_4 _o_u _p_l_u_s_) _c_h_a_�_n_�_s _l_'_u_n _a_p_r_�_s _l_'_a_u_t_r_e _(_e_n _s_�_r_i_e_)
_p_o_s_e_n_t _d_e_s _p_r_o_b_l_�_m_e_s _d_e _t_i_m_i_n_g _s_u_r _u_n _e_t_h_e_r_n_e_t_. _Q_u_e_l _e_f_f_e_t _a _u_n
_p_o_n_t _d_a_n_s _u_n _s_o_u_s_-_r_�_s_e_a_u _a_c_c_�_d_� _p_a_r _d_e_s _h_u_b_s _?
RR :: Un pont annule la r�gle des 3/4/5 hubs. Un pont ne g�re pas les
paquets de la m�me fa�on qu'un hub, et ne contribue donc pas aux
probl�mes de timing dasns un r�seau.
� QQ :: _E_s_t_-_c_e _q_u_'_u_n _p_o_n_t _p_e_u_t _�_t_r_e _i_n_t_e_r_f_a_�_� _a_v_e_c _d_e_s _s_e_g_m_e_n_t_s
_e_t_h_e_r_n_e_t _d_'_u_n _c_�_t_� _d_e _1_0_M_b _e_t _d_e _l_'_a_u_t_r_e _d_e _1_0_0_M_b _?
RR :: Oui, un pont peut joindre entre eux un segment de 10Mb avec un
autre de 100Mb. Du moment que la carte r�seau du c�t� rapide du
r�seau est une 100Mb, TCP prendra en charge le reste. Bien qu'il
soit vrai que les paquets d'un h�te dans le r�seau � 100Mb
communiquant avec un autre du r�seau � 10Mb se d�placeront �
seulement 10Mb/s, le reste du trafic sur l'ethernet rapide n'est
pas ralenti.