Bonding sous Debian

Voilà quelques heures que je m'acharne sur Lynse pour essayer de faire marcher 2 cartes réseau simultanément sur un kernel 2.6.10. Le principe est assez simple. Il faut que les 2 cartes disent qu'elles ont la même adresse max, afin que le switch comprennent quelque chose. Si bien sur il ne supporte pas le trucking, dans ce cas là le problème ne se poserait pas.

Donc voilà, je possède 2 cartes réseaux différentes, une à base de realtek 8139 et une dlink à base de via-rhine. Je vous passe le passage sur les modules du kernel appropriés.

Tout d'abord, il faut déclarer que l'interface bond0 sera géré par le module bonding. Pour celà j'ai crée un fichier network dans /etc/modutils/. Comme çà je suis sur que je ne serai pas dérangé par les prochaines mises à jour. Dedans j'y ai mis :

alias bond0 bonding
options bonding mode=0 miimon=100 downdelay=200 updelay=200

Le mode=0 permet de faire du round robin entre les deux cartes. Le mode 1 fait en sorte d'utiliser la 1ère interface, et la 2ème seulement en cas de besoin ( d'après ce que j'ai compris )

Le miimon=100 sert pour la surveillance avec MII des liens. Il est dis dans la doc ( /usr/src/linux/Documentation/network/bonding.txt ) que c'est une bonne valeur de départ.

downdelay et updelay sont les temps avant que l'interface ne soit désactivée si le liens vient à ête coupé.

Les modules sont mis en place, les alias sont bien fait. Attaquons nous au ficher qui nous interesse, celui de la configuration des interfaces réseaux : /etc/network/interfaces.

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto bond0
iface bond0 inet static
        address 192.168.0.5
        netmask 255.255.255.0
        network 192.168.0.0
        up ifenslave bond0 eth1 eth0
        down ifenslave -d bond0 eth1 eth0
        gateway 192.168.0.200


auto eth0
iface eth0 inet static
        address 192.168.0.253
        netmask 255.255.255.0 

auto eth1
iface eth1 inet static
        address 192.168.0.254
        netmask 255.255.255.0

Il faut, apparement, déclaré l'interface bond0 avant les autres interfaces eth*. Certaines lignes sont en commentaires, vous pouvez les utiliser si vous en avez besoin. Sachez que les interfaces eth0 et eth1 ( dans mon cas ) restent actives. Je peut donc toujours pinguer 192.168.0.253 et 192.168.0.254 ! Je vous dis ça au cas ou... que vous ne vous retrouviez pas avec des conflits d'adresses IP ;p

[1]

Notes

[1] Truncking: Aggrégation de liens coté switch, le bonding étant coté machine

Haut de page