réseau · 3 min read · Oct 30, 2025
Bonding/Teaming NIC - Debian Sarge
Résumé:
Vous pouvez trouver une version plus facile à lire ici : 5dollarwhitebox.org
Le concept de Bonding NIC (ou parfois appelé Teaming NIC) est que vous avez deux NICs liées ensemble pour apparaître comme si elles étaient le même appareil physique. C’est-à-dire qu’elles présenteront toutes deux la même adresse matérielle (MAC). Cela est réalisé grâce à l’utilitaire ifenslave, qui permet au noyau de voir/utiliser un seul appareil, tout en envoyant des paquets via les deux appareils esclaves en utilisant un planificateur round-robin.
Système : Debian Sarge 3.1 (noyau vanille 2.6.12.4)
Modules impliqués : bonding, mii, nic_module (e100 dans cet exemple)
Utilitaires : ifenslave, mii-tool
Préparation:
Avant d’essayer de lier deux NICs, il est fortement recommandé de vérifier l’intégrité et la fonctionnalité de chaque NIC individuellement. Ce document suppose que vous avez déjà fait cela. En utilisant ‘mii-tool’, vous devriez voir quelque chose comme ceci :
testbox:/# mii-tool
eth0 : négocié 100baseTx-FD, lien ok
eth1 : négocié 100baseTx-FD, lien ok
Pour que cela fonctionne, le noyau doit avoir le support pour les appareils de bonding. Quelques façons de vérifier seraient :
testbox:/# modprobe –list | grep* bonding /lib/modules/2.6.12.4-vs2.0/kernel/drivers/net/bonding/bonding.ko
- testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i bonding
CONFIG_BONDING=m
Nous utilisons le mii-tool (module mii.o) pour surveiller les interfaces pour le basculement… bien que, comme la plupart des adaptateurs Ethernet utilisent un MII (Media Independante Interface) pour négocier automatiquement les vitesses de lien, il est assez standard que vous ayez cela.
testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i mii ** *# CONFIG_MPENTIUMII n’est pas défini
CONFIG_MII=y ** *
testbox:/# modprobe –list | grep -i mii
/lib/modules/2.4.26-2-686/kernel/drivers/net/mii.ko
Deuxièmement, vous allez devoir installer l’utilitaire ifenslave.
testbox:/# apt-get update && apt-get install ifenslave
………. sortie standard supprimée (rien d’intéressant)
Il n’y a pas de configuration ici, donc c’est tout. Maintenant, nous sommes prêts pour les fichiers de configuration.
Fichiers de Configuration:
Il existe de nombreuses variations différentes de cela, mais pour l’instant… voici comment je l’ai fait pour le faire fonctionner.
vi /etc/modutils/aliases et ajoutez/modifiez ce qui suit :
alias bond0 bonding
alias eth0 e100
alias eth1 e100
options bonding mode=0 miimon=100
vi /etc/modutils/actions et ajoutez/modifiez ce qui suit :
probeall bond0 eth0 eth1 bonding
Après avoir modifié les fichiers de configuration modprobe, vous devez exécuter la commande :
testbox# update-modules
vi /etc/network/interfaces et ajoutez/modifiez ce qui suit :
auto bond0
iface bond0 inet static
address 10.1.100.63
netmask 255.255.255.0
hwaddress ether 00:02:B3:48:50:2C
gateway 10.1.100.1
up ifenslave bond0 eth0 eth1
down ifenslave -d bond0 eth0 eth1
Vous ne devez PAS configurer d’entrées pour ‘eth0’ ou ‘eth1’ en dehors de ce qui est listé ci-dessus sous l’entrée ‘bond0’. Bond0 sera maintenant l’interface avec laquelle le noyau travaille. L’exécution d’un ‘ifconfig’ affichera les trois interfaces (bond0, eth0, eth1), toutes avec les mêmes adresses MAC et IP.
Et c’est à peu près tout. Maintenant, tout ce que vous devez faire est de charger le module ‘bonding’ et d’arrêter/démarrer le réseau… et les modules appropriés devraient se charger automatiquement :
testbox:/# modprobe bonding
testbox:/# /etc/init.d/networking stop testbox:/# /etc/init.d/networking start
Vous devrez peut-être jouer un peu avec cette partie. Pour moi, j’ai dû configurer manuellement l’appareil bond0 :
testbox:/# ifconfig bond0 10.1.15.63 netmask 255.255.255.0 up
En supposant qu’il n’y ait pas d’erreurs, vous devriez pouvoir tester cela. Essayez de pinger votre adresse IP depuis une autre machine. Vous remarquerez que les deux NICs répondent aux requêtes ping de manière alternée (round robin). Si vous débranchez eth0, vous obtiendrez une erreur dans la console “eth0 a échoué, eth1 devenant primaire” ou quelque chose comme ça (et vice versa si vous débranchez eth1). Mais vous ne devriez pas perdre de requêtes ping (ou pas plus que quelques-unes), car il a maintenant une connexion réseau redondante.
Dans un environnement de haut niveau, vous pourriez brancher chaque NIC dans un commutateur séparé (en restant sur le même VLAN) et améliorer encore votre configuration de haute disponibilité… et ainsi de suite.
BJ Dierkes, RHCE4-LPIC1
wdierkes [at] 5dollarwhitebox [dot] org
Texas, USA
Ressources:
Debian GNU/Linux : https://www.debian.org
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.