Linux bonding : agrégation de liens avec NetworkManager et nmcli

Deux cartes réseau, une seule interface logique : le bonding protège un serveur de la perte d'un câble ou d'un port de switch. Voici la méthode NetworkManager des distributions Red Hat actuelles.

Schéma : enp7s0 et enp8s0 rattachées à bond0 192.168.10.30/24 en mode active-backup, chacune reliée au switch, puis à la passerelle 192.168.10.1
Illustration schématique — ne reproduit aucune interface réelle.

L'agrégation de liens (bonding, souvent cherché comme « linux bonding ») regroupe plusieurs interfaces Ethernet physiques en une interface logique, bond0 par exemple, qui porte l'adresse IP du serveur. Selon le mode choisi, elle sert à la tolérance de panne (un lien prend le relais de l'autre) ou à la répartition de charge entre les liens.

Une erreur de configuration réseau peut couper l'accès distant au serveur : travaillez depuis la console de la machine ou de l'hyperviseur, sur une VM de lab d'abord, et prenez un instantané avant toute modification en production.

CentOS 7 et les fichiers ifcfg : ce qui a changé

Les anciens guides « bonding sous CentOS » éditaient à la main des fichiers ifcfg-bond0 et ifcfg-ethX. CentOS Linux 7 est en fin de vie depuis le 30 juin 2024, selon le projet CentOS. Sur les versions actuelles, Red Hat documente la configuration d'un bond par NetworkManager, avec l'outil en ligne de commande nmcli. La documentation Rocky Linux 10 va plus loin : les Network-Scripts, déjà dépréciés dans Rocky Linux 9, ont disparu, et NetworkManager impose ses fichiers keyfile à la place des fichiers ifcfg. Cette page suit la documentation de RHEL 10, avec les mêmes commandes nmcli sur Rocky Linux 10. Si vous partez d'une machine neuve, voyez d'abord l'installation de Rocky Linux.

Choisir le mode, et prévenir l'équipe réseau

Le mode de bonding conditionne la configuration du switch. Red Hat le résume ainsi : selon le mode utilisé, il faut configurer les ports du switch.

ModeNomConfiguration du switch selon Red Hat
0balance-rrEtherChannel statique, sans LACP
1active-backupaucune
2balance-xorEtherChannel statique, sans LACP
3broadcastEtherChannel statique, sans LACP
4802.3adEtherChannel négocié par LACP
5balance-tlbaucune
6balance-albaucune

Pour débuter ou dans un lab, active-backup est le choix le plus sûr : Red Hat précise qu'il apporte la tolérance de panne sans aucune configuration du switch. Le mode 802.3ad demande que les deux ports du switch soient configurés en LACP ; à valider avec l'équipe réseau avant de basculer.

La topologie du lab

HôteRôleInterfaceAdresse
srv-app01serveur Rocky Linux 10enp7s0 (port 1 du bond)—
srv-app01serveur Rocky Linux 10enp8s0 (port 2 du bond)—
srv-app01interface logiquebond0192.168.10.30/24
passerellerouteur du lab—192.168.10.1

Repérez les noms réels de vos interfaces avec nmcli device avant de commencer. Red Hat signale aussi que certaines fonctions du bonding, dont le basculement, ne fonctionnent pas avec des câbles reliés directement, sans switch.

Créer le bond avec nmcli

1. L'interface bond

nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"

bond.options reçoit les options du pilote sous forme de paires clé=valeur. miimon fixe l'intervalle de surveillance de lien MII (Media Independent Interface) ; la valeur 1000 est celle de l'exemple Red Hat, à adapter.

2. Les deux ports

nmcli connection add type ethernet port-type bond con-name bond0-port1 ifname enp7s0 controller bond0
nmcli connection add type ethernet port-type bond con-name bond0-port2 ifname enp8s0 controller bond0

Si les interfaces ont déjà un profil de connexion, Red Hat montre aussi comment rattacher un profil existant au bond avec nmcli connection modify <profil> controller bond0.

3. L'adresse IP

L'adresse se configure sur le bond, jamais sur les ports :

nmcli connection modify bond0 ipv4.addresses '192.168.10.30/24' ipv4.gateway '192.168.10.1' ipv4.dns '192.168.10.11' ipv4.dns-search 'lab.local' ipv4.method manual

4. Activer les ports automatiquement, puis le bond

D'après Red Hat, activer un port active aussi le bond, mais pas les autres ports. L'option connection.autoconnect-ports évite ce piège :

nmcli connection modify bond0 connection.autoconnect-ports 1
nmcli connection up bond0

Vérifier l'agrégation

Deux contrôles, tous deux donnés par la documentation Red Hat :

nmcli device
cat /proc/net/bonding/bond0

Attention à l'interprétation : Red Hat prévient qu'aucun outil logiciel ne permet de tester correctement une vraie panne de lien. Désactiver un port avec nmcli montre seulement que le pilote gère un changement de configuration. Pour un vrai test, débranchez un câble ou coupez le port côté switch, pendant une fenêtre de maintenance.

Les erreurs courantes

Un bond fiabilise aussi les services critiques, comme un serveur DNS BIND 9 primaire et secondaire. Pour suivre l'état des interfaces depuis un navigateur, voyez Cockpit sous Linux, et pour les commandes ip et nmcli, la liste des commandes Linux. Les autres guides sont dans les tutoriels Serveurs Linux.

Questions fréquentes

Qu'est-ce que le bonding sous Linux ?

C'est l'agrégation de plusieurs interfaces réseau physiques en une interface logique unique. Selon le mode, elle assure la tolérance de panne, la répartition de charge, ou les deux, et porte une seule adresse IP.

Quel mode de bonding choisir ?

Sans accès à la configuration du switch, active-backup : Red Hat indique qu'il assure la tolérance de panne sans configuration côté switch. Pour agréger le débit avec LACP, 802.3ad, à condition que le switch soit configuré en conséquence.

Faut-il configurer le switch ?

Cela dépend du mode. Selon Red Hat, active-backup, balance-tlb et balance-alb ne demandent rien ; balance-rr, balance-xor et broadcast exigent un EtherChannel statique ; 802.3ad un EtherChannel négocié par LACP.

Comment vérifier l'état d'un bond ?

Lisez /proc/net/bonding/bond0, qui donne le mode et l'état de chaque port, et nmcli device pour voir les interfaces rattachées. Ces commandes ne simulent pas une vraie panne de lien.

Les fichiers ifcfg de CentOS 7 fonctionnent-ils encore ?

CentOS 7 est en fin de vie depuis le 30 juin 2024. Sur Rocky Linux 10, la documentation indique que les Network-Scripts ont été retirés et que NetworkManager utilise des fichiers keyfile : passez par nmcli.