Agrégation de lien (ou bonding) sous Debian

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.

Agrégation de lien (ou bonding) 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/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *