Créer une NIC bond0

Créer une NIC bond0

  • NIC = Network Interface Card (NIC) ou (Carte d’Interface Réseau)

Salut ! 👋

Si comme moi vous avez un homelab chez vous, vous savez à quel point il est important d’avoir une connexion réseau stable et fiable. C’est là que la NIC bonding en mode active-backup peut être particulièrement utile. Cette technique permet de combiner plusieurs interfaces réseau en une seule, tout en ajoutant une couche de tolérance aux pannes en utilisant une interface active et une ou plusieurs interfaces de secours. En cas de panne de l’interface active, l’une des interfaces de secours prend immédiatement la relève pour assurer la continuité de la connexion réseau. Cela peut être très utile pour votre homelab, où la disponibilité de votre connexion peut être cruciale pour l’accès à vos appareils et services.

J’ai utilisé une configuration de base, l’interface de bonding bond0 avec deux interfaces esclaves (eth0 et eth1), une adresse IP statique (192.168.0.10/24) et un mode de bonding active-backup.

Faissons le point sur les différents modes de bonding

Il existe plusieurs modes de bonding, chacun ayant ses propres avantages et inconvénients. Je vais tenter de vous expliqer les différents modes de bonding et comment chacun d’entre eux peut être utilisé dans différents contextes.

Le premier mode de bonding que je vais couvrir est le mode active-backup. Ce mode permet à un seul adaptateur réseau de fonctionner à la fois, tandis que les autres adaptateurs sont en veille en cas de panne de l’adaptateur actif. Cela signifie que, si l’adaptateur actif tombe en panne, un autre adaptateur prend immédiatement sa place, ce qui garantit une connexion continue. Le mode active-backup est particulièrement utile pour les applications critiques qui nécessitent une connexion stable et fiable.

Le deuxième mode de bonding que je vais couvrir est le mode balance-tlb. Ce mode utilise tous les adaptateurs réseau de manière équitable, en répartissant la charge de travail entre eux. Cela peut être particulièrement utile si vous avez besoin de plus de bande passante et que vous disposez de plusieurs adaptateurs réseau de haute performance. Le mode balance-tlb est également utile pour les applications de stockage en réseau, car il permet d’accéder à plusieurs disques durs en même temps.

Le troisième mode de bonding que je vais couvrir est le mode balance-alb. Ce mode est similaire au mode balance-tlb, mais il prend en compte les paquets de données de manière plus intelligente. Au lieu de répartir la charge de travail de manière équitable entre les adaptateurs réseau, le mode balance-alb envoie les paquets de données sur l’adaptateur le moins chargé, ce qui permet d’éviter les goulots d’étranglement et de maximiser l’utilisation de la bande passante. Le mode balance-alb est particulièrement utile pour les applications de transfert de fichiers volumineux.

Il existe plusieurs modes de bonding, chacun ayant ses propres avantages et inconvénients. Selon vos besoins en termes de performance, de stabilité et de scalabilité, vous devrez peut-être expérimenter avec différents modes de bonding pour trouver celui qui convient le mieux à votre environnement.

Avec systemd-networkd

  1. Créez un fichier dit de Périphérique de Réseau Virtuel (virtual network device) nommé bond0.netdev dans le répertoire /etc/systemd/network et ajoutez les lignes suivantes :
# /etc/systemd/network/bond0.netdev
[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=active-backup
MIIMonitorSec=1
PrimaryReselectPolicy=always
  1. Créez un fichier de configuration nommé bond0.network dans le répertoire /etc/systemd/network et ajoutez les lignes suivantes :
# /etc/systemd/network/bond0.network
[Match]
Name=bond0

[Network]
Address=192.168.0.10/24
Bond=bond0
  1. Créez un autre fichier de configuration nommé eth0.network dans le répertoire /etc/systemd/network et ajoutez les lignes suivantes :
# /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
Bond=bond0
# PrimarySlave doit être exclusivement présente dans la configuration
# de l'interface "eth0" si elle est votre interface primaire.
PrimarySlave=true
  1. Répéter l’étape 3 pour eth1

Enregistrez et fermez tous les fichiers de configuration. Redémarrez le service systemd-networkd avec la commande suivante :

systemctl restart systemd-networkd

Votre NIC bond0 est maintenant configurée avec les interfaces eth0 et eth1 comme slaves. Vous devriez être en mesure de vérifier la configuration en utilisant la commande networkctl ou en consultant les fichiers de configuration dans le répertoire /etc/systemd/network.

Avec ifupdown2

  1. Ouvrez le fichier de configuration des interfaces réseaux, généralement situé dans /etc/network/interfaces et ajoutez les lignes suivantes pour définir l’interface bond0 :
auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto bond0
iface bond0 inet static
    address 192.168.0.10
    netmask 255.255.255.0
    bond-slaves eth0 eth1
    bond-mode active-backup
    bond-miimon 1000
    bond-primary eth0

Ceci définit l’adresse IP de mon bond0 (192.168.0.10), le masque de sous-réseau (255.255.255.0 donc un /24), les interfaces esclaves (eth0 et eth1), le mode de bonding (active-backup), le délai de contrôle des interfaces esclaves (1 sec) et l’interface esclave primaire (eth0).

  1. Redémarrez le gestionnaire de réseau avec la commande sudo systemctl restart networking pour appliquer les modifications.

Vous devriez être en mesure de vérifier la configuration en utilisant la commande ip -c addr.

Avec netplan

  1. Ouvrez votre fichier de configuration de réseau /etc/netplan/01-bond0.yaml et ajoutez les lignes suivantes dans votre fichier de configuration pour définir votre bond0 :

Relevez les adresses MAC des NIC eth0 et eth1 avec la commad ip link

# /etc/netplan/01-bond0.yaml
network:
  version: 2
  bonds:
    bond0:
      interfaces:
      - "eth0"
      - "eth1"
      addresses:
      - "192.168.0.10/24"
      parameters:
        mode: "active-backup"
        primary: "eth0"
        miimon: 100
  ethernets:
    eth0:
      match:
        macaddress: "00:11:22:33:44:55"
      set-name: "eth0"
    eth1:
      match:
        macaddress: "66:77:88:99:aa:bb"
      set-name: "eth1"
  1. Enregistrez et fermez votre fichier de configuration.
  2. Générez et appliquez votre configuration de réseau :
sudo netplan generate
sudo netplan apply

Vous devriez maintenant avoir une NIC bond0 active-backup avec eth0 et eth1 comme slaves et configurée pour le sous-réseau 192.168.0.10/24, vérifiez la configuration en utilisant la commande ip -c addr.


En utilisant la NIC bonding en mode active-backup, vous pouvez être sûr que votre connexion sera toujours disponible, même en cas de problème avec une de vos interfaces réseau.

Enjoy! 😉

Rafraîchis la page si la section des commentaires ci-dessous ne s'affiche pas correctement !
(Win) Ctrl+Shift+R ou (Mac) Cmd+Shift+R

Qui suis-je ?

Babacar TALL

Babacar TALL

Je suis un architecte cloud Microsoft Azure et senior DevOps (+15 ans d’expérience) avec une longue expérience de développeur sur des systèmes distribués on-premise et cloud public Microsoft Azure, exclusivement sur Linux. Au cours de mon …

En savoir plus