Linux:Bonding pour fiabiliser son réseau ethernet

Un article de Djjnet.

Le bonding permet de fiabiliser et augmenter la bande passante d'un réseau ethernet. Cela est obtenu en multipliant les interfaces réseaux connectées pour un même lien virtuel. Si une carte réseau tombe en panne, le lien réseau est toujours assuré.

Attention, l'utilisation du bonding nécessite une attribution des IP de manière statique, sans DHCP.

Configuration du module noyau bonding

Le module bonding possède 7 modes de fonctionnement. Nous prenons ici le premier balance-rr ou 0. Il fait du round robin sur les cartes esclaves configurées.

Pour un noyau 2.6 récent, sur une debian Etch par exemple, créer un fichier /etc/modprobe.d/network-bond avec pour contenu :

alias bond0 bonding
options bonding mode=balance-rr miimon=100 downdelay=200 updelay=200

Pour un noyau 2.6 ancien, il faut créer un fichier /etc/modutils/network-bond avec le même contenu et lancer la commande :

update-modules

Sur une de mes cartes mères, j'ai dû ajouter un alias pour le module skge nécessaire pour la carte ethernet Marvell.

alias eth3 skge

Résultat de lshw pour cette carte réseau :

product: 88E8001 Gigabit Ethernet Controller
vendor: Marvell Technology Group Ltd.

Installation du package ifenslave

apt-get install ifenslave-2.6 

Configuration du réseau

Modification du fichier /etc/network/interfaces :
Dans les lignes up et down, il faut indiquer à ifenslave les interfaces réseaux à ajouter ou supprimer du bonding

auto bond0
iface bond0 inet static
       address 192.168.100.101
       netmask 255.255.255.0
       network 192.168.100.0
       broadcast 192.168.100.255
       gateway 192.168.100.1
       up /sbin/ifenslave bond0 eth0 eth3
       down /sbin/ifenslave -d bond0 eth0 eth3