L’agrégation de lien permet de regrouper plusieurs interfaces physiques sous une même interface virtuelle, afin de permettre la tolérance de panne et/ou l’augmentation du débit.
Nous allons donc voir comment mettre en place l’agrégation de lien (ou « bonding », « port trunking », ou encore « link aggregation ») sous Debian.

Mise en place
Notre mise en place de l’agrégation de lien se fera sous Debian 10 (le fonctionnement est le même sous Ubuntu), notre machine disposera de deux interfaces réseaux. Ces interfaces se nommeront donc « ens192 » et « ens224 ». Le fonctionnement est le même pour les distributions disposant de « eth0 / eth1 / ethX ».
Tout d’abord, on installe le paquet permettant le bonding :
# apt-get install ifenslave-2.6
Choix du mode
Avant toute modification, il faudra étudier la configuration que vous souhaitez mettre en place, en effet le bonding permet 7 modes de fonctionnement différents.
Mode 0 : Round Robin Équilibrage de charge La transmission des paquets se fait de façon séquentielle sur chacune des cartes actives dans l'agrégat. Ce mode augmente la bande passante et gère la tolérance de panne. Mode 1 : Active - passive Ce mode gère uniquement la tolérance de panne. Si une des interfaces est désactivée, une autre du pool prend le relais. Mode 2 : Balance XOR Une interface est affectée à l'envoi vers une même adresse MAC. Mode 3 : Broadcast Tout le trafic est envoyé par toutes les interfaces. Mode 4 : 802.3ad Ce mode s'appuie sur la norme IEEE 802.3ad Dynamic link aggregation. Toutes les interfaces du groupe sont agrégées de façon dynamique, ce qui augmente la bande passante et gère la tolérance de panne. Votre switch doit alors gérer la norme 802.ad et les interfaces doivent être compatibles mii-tool / ethtool. Mode 5 : balance-tlb Adaptive transmit load balancing : seule la bande passante en sortie est load balancée selon la charge calculée en fonction de la vitesse, ceci pour chaque interface. Alors, le flux entrant est affecté à l'interface courante. Si celle-ci devient inactive, une autre prend alors l'adresse MAC et devient l'interface courante. Mode 6 : balance-alb Adaptive load balancing : ce mode inclut en plus du tlb un load balancing sur le flux entrant et seulement pour un trafic.
Source : https://doc.ubuntu-fr.org/bonding
Configuration
Maintenant que notre choix est fait, nous allons commencer par arrêter nos interfaces :
# service networking stop
Ensuite nous modifierons le fichier d’interfaces réseaux :
# vim /etc.network/interfaces
Dans celui-ci on commence par indiquer que nos interfaces « ens192 » et « ens224 » sont attribuées à « bond0 ». Après nous attribuons une IP « 192.168.66.66 » à notre interface logique. Dans cet exemple nous avons choisi le « mode 0 ».
auto ens192 iface ens192 inet manual bond-master bond0 auto ens224 iface ens224 inet manual bond-master bond0 auto bond0 iface bond0 inet static address 192.168.66.66 gateway 192.168.66.254 netmask 255.255.255.0 bond-mode 0 bond-miimon 100
Enfin, nous redémarrons notre service :
# service networking start
Afin de vérifier l’état de votre agrégat de lien, effectuez la commande suivante :
cat /proc/net/bonding/bond0
Un résultat comme celui-ci doit apparaître :
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: adaptive load balancing Primary Slave: None Currently Active Slave: ens192 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens192 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:00:0c:66:bc Slave queue ID: 0 Slave Interface: ens224 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:00:0c:66:ac Slave queue ID: 0
Pour activer et désactiver votre interface bond0, comme avec vos anciennes interfaces vous disposez des commandes ifup et ifdown.
# ifup bond0 # ifdown bond0
Si vous rencontrez des messages d’avertissement de duplication de paquets de type « DUP! » lors de tests de ping, n’hésitez pas à redémarrer votre machine cela devrait corriger cette erreur.
Finalement, votre agrégation de lien (ou bonding) sous Debian est fonctionnelle, si vous perdez la connexion sur l’une de vos interfaces, l’autre prendra le relai !
Retrouvez tous nos articles sur Linux à cette adresse :
https://sqx-bki.fr/categorie/linux/
Avez-vous un exemple de configuration avec le Mode 6 : balance-alb ?
Le tutoriel fonctionne très bien pour le round robin mais pas pour d’autres modes.
Bonjour,
Je n’ai jamais été amené à utiliser le mode 6 mais d’après la documentation le fonctionnement semble similaire, as-tu des erreurs en particulier ?