Recherche de site Web

Comment configurer l'agrégation de liens réseau sous Linux


Regroupement de réseau sous Linux est une technique qui vous permet de combiner plusieurs interfaces réseau (NIC) en une seule interface logique pour une meilleure redondance et performance. Dans ce guide complet, nous allons explorer le concept de regroupement de réseau, ses avantages, les différents modes de regroupement et la configuration du regroupement de réseau sous Linux.

Qu'est-ce que l'agrégation de liens réseau ?

Liaisons réseau, également connues sous le nom de liaison NIC ou teaming, sont une méthode de combinaison de deux interfaces réseau ou plus en une seule interface logique appelée bond.

Les deux avantages importants de la configuration de l'agrégation de réseau sous Linux :

  • Redondance : Le bonding offre des capacités de basculement, garantissant la connectivité réseau même si une interface tombe en panne.
  • Répartition de charge : Elle peut distribuer le trafic réseau sur des interfaces agrégées, améliorant les performances globales du réseau.

Modes de liaison

Linux prend en charge plusieurs modes de liaison, chacun conçu pour répondre à des cas d'utilisation spécifiques. Voici deux des modes les plus couramment utilisés :

  1. Mode 0 (Round Robin) : Envoie des paquets de manière circulaire à chaque interface agrégée.
  2. Mode 1 (Actif-Secours) : Une interface est active et les autres sont en mode veille. Si l'interface active échoue, une autre prend le relais.

Jetons un coup d'œil rapide à ces deux modes.

1. Mode 0 : Round Robin

Dans ce mode, les paquets sont transmis de manière cyclique sur les interfaces agrégées. Bien qu'il fournisse une forme de répartition de charge de base, il ne prend pas en compte la charge réelle ou l'état de chaque interface.

Ce mode est utile lorsque vous souhaitez répartir le trafic de manière uniforme sur les interfaces.

2. Mode 1 : Actif-Secours

Le mode Active-Backup désigne une interface comme le lien actif, tandis que les autres restent en mode veille. Si l'interface active tombe en panne, l'une des interfaces en veille prend le relais.

Ce mode est idéal pour la redondance, garantissant que votre réseau reste opérationnel même si une interface réseau tombe en panne.

J'espère que vous avez acquis la compréhension de base du bonding réseau sous Linux. Voyons maintenant comment créer une interface de bonding réseau en utilisant Netplan et la commande nmcli sous Linux.

Tout d'abord, nous allons voir la méthode Netplan.

Méthode 1 - Configuration de l'agrégation de réseau sous Linux avec Netplan

Créer un bond réseau en utilisant Netplan sous Linux est un processus simple. Netplan est un utilitaire de configuration réseau basé sur YAML utilisé dans les distributions Linux modernes comme Ubuntu. Pour configurer un bond réseau, suivez ces étapes :

1. Vérifier les noms des interfaces réseau

Avant de créer une configuration Netplan pour l'agrégation de liens réseau, il est essentiel d'identifier les noms des interfaces réseau que vous souhaitez agréger.

Vous pouvez utiliser les commandes ip link show ou ifconfig pour lister les interfaces réseau disponibles. En général, ces interfaces ont des noms comme enp0sX, ensX ou ethX.

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff
    altname enp0s18
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 96:d2:11:4a:6d:ad brd ff:ff:ff:ff:ff:ff
    altname enp0s19
4: ens20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether ea:3a:8b:6c:38:e1 brd ff:ff:ff:ff:ff:ff
    altname enp0s20

Comme vous pouvez le voir, mon système possède trois interfaces réseau, à savoir ens18, ens19 et ens20.

2. Créer un fichier de configuration Netplan

Créer ou modifier un fichier de configuration Netplan. Les fichiers de configuration Netplan sont généralement stockés dans le répertoire /etc/netplan/ et ont une extension .yaml. Vous pouvez utiliser n'importe quel éditeur de texte pour créer ou modifier le fichier de configuration, comme nano ou vim.

Par exemple, créez un fichier nommé 01-bond.yaml :

$ sudo nano /etc/netplan/01-bond.yaml

3. Configurez l'interface Bond

Dans le fichier de configuration Netplan, définissez l'interface bond et ses paramètres. Voici un exemple de configuration pour créer un bond avec trois interfaces (ens18, ens19 et ens34) en mode active-backup :

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      dhcp4: no
    ens19:
      dhcp4: no
    ens20:
      dhcp4: no
  bonds:
    bond0:
      interfaces: [ens18, ens19, ens20]
      addresses: [192.168.1.10/24]
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.101
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
      parameters:
        mode: active-backup
        primary: ens18

Remplacez les noms d'interface, l'adresse IP, le sous-réseau, la passerelle et les autres paramètres par votre configuration réseau spécifique. Vous pouvez utiliser différents modes d'agrégation en changeant le paramètre mode (par exemple, balance-rr pour le tourniquet ou 802.3ad pour LACP).

4. Appliquer la configuration

Après avoir créé ou modifié le fichier de configuration Netplan, appliquez les changements en utilisant la commande netplan apply :

$ sudo netplan apply

5. Vérifiez la configuration

Vérifiez l'état de votre interface agrégée en utilisant les commandes ip link ou ifconfig. Par exemple :

$ ip link show bond0

Vous devriez voir l'interface groupée (bond0) et son état.

6. Tester la connectivité réseau

Assurez-vous que votre serveur ou poste de travail peut accéder au réseau via l'interface agrégée. Vous pouvez pinguer d'autres périphériques sur le réseau pour vérifier la connectivité.

Nous avons également diverses méthodes pour tester si votre section d'interface de liaison fonctionne. Rendez-vous dans la section "Tester votre interface de liaison réseau Linux" et utilisez l'une des méthodes pour vérifier si l'interface de liaison fonctionne comme prévu.

C'est tout ! Vous avez créé avec succès une configuration de liaison de réseau en utilisant Netplan. N'oubliez pas d'adapter la configuration à vos besoins spécifiques, tels que le mode de liaison, l'adresse IP et les paramètres de passerelle, afin de convenir à votre environnement réseau.

Méthode 2 - Configurer l'agrégation de réseaux sous Linux avec nmcli

Pour créer une liaison réseau en utilisant la commande nmcli dans Linux, vous pouvez suivre ces étapes. nmcli est un utilitaire en ligne de commande pour gérer NetworkManager, un outil de configuration réseau couramment utilisé dans de nombreuses distributions Linux.

1. Vérifier les noms des interfaces réseau

Avant de créer une interface agrégée en utilisant nmcli, vous devriez identifier les noms des interfaces réseau que vous souhaitez agréger.

Vous pouvez utiliser les commandes ip link show ou ifconfig pour lister les interfaces réseau disponibles. Les interfaces ont généralement des noms comme ensX, enp0sX ou ethX.

$ ip link show

Exemple de sortie :

Vérifier les noms des interfaces réseau

Comme vous le voyez dans la sortie ci-dessus, j'ai trois interfaces réseau à savoir ens18, ens19 et ens20.

2. Vérifier le statut de NetworkManager

Assurez-vous que NetworkManager est installé et en cours d'exécution sur votre système. Vous pouvez vérifier son état avec la commande suivante :

$ sudo systemctl status NetworkManager

Si ce n'est pas en cours d'exécution, vous pouvez le démarrer en utilisant :

$ sudo systemctl start NetworkManager
$ sudo systemctl enable NetworkManager

3. Créer une nouvelle connexion de lien

Vous pouvez créer une nouvelle connexion bond en utilisant la commande nmcli. Voici la syntaxe de base :

$ sudo nmcli connection add type bond ifname bond0 mode MODE_NAME

Remplacez bond0 par le nom que vous voulez donner à votre interface agrégée, et remplacez MODE_NAME par le mode d'agrégation que vous souhaitez utiliser, comme active-backup, balance-rr ou 802.3ad.

Par exemple, pour créer un lien appelé bond0 en mode active-backup :

$ sudo nmcli connection add type bond ifname bond0 mode active-backup

Cette commande créera une nouvelle connexion réseau nommée 'bond-bond0'.

Connection 'bond-bond0' (e68041f8-d836-4b83-a743-1bcadec9d19e) successfully added.

4. Ajouter des interfaces membres

Maintenant, vous devez ajouter les interfaces réseau que vous souhaitez inclure dans le bond en tant qu'interfaces membres.

Par exemple, je vais ajouter ens19 et ens20 en tant que membres de l'interface bond0 en utilisant la commande nmcli.

Remplacez ens19 et ens20 par les noms de vos interfaces réseau réelles :

$ sudo nmcli connection add type ethernet ifname ens19 master bond0
$ sudo nmcli connection add type ethernet ifname ens20 master bond0

Cela ajoutera ens18, ens19 et ens20 comme interfaces membres à la connexion de liaison bond0.

Vous pouvez vérifier les nouvelles connexions réseau créées en utilisant la commande :

$ nmcli connection show

Exemple de sortie :

NAME                UUID                                  TYPE      DEVICE 
bond-bond0          e68041f8-d836-4b83-a743-1bcadec9d19e  bond      bond0  
Wired connection 1  60e8eaf3-89f9-3e9f-9919-1944e7abee20  ethernet  ens18  
bond-slave-ens19    578bb27f-f3ff-4059-bd94-5291b98ce2fb  ethernet  ens19  
bond-slave-ens20    e338b080-6dc6-41b2-bb08-53d0470dccbd  ethernet  ens20       
Wired connection 2  5527636c-50a9-35a4-b92b-adcc4f106cba  ethernet  --     
Wired connection 3  878666ef-2160-338b-aadf-e24e9a52509a  ethernet  --     

5. Configurer les options de liaison

Vous devrez peut-être configurer des options supplémentaires en fonction de votre mode de liaison et de votre configuration réseau. Par exemple, si vous utilisez le mode active-backup, vous pouvez spécifier l'interface principale :

$ sudo nmcli connection modify bond-bond0 primary ens19

L'étape de spécification de l'interface principale est requise dans certains modes de liaison, tels que actif-sauvegarde, pour déterminer quelle interface doit être l'interface principale qui transporte activement le trafic réseau dans des conditions normales.

Ce paramètre est crucial pour garantir que le mode de liaison fonctionne comme prévu et que le trafic est correctement réparti ou bascule en cas de défaillance du réseau.

En mode actif-sauvegarde, par exemple, désigner l'interface principale garantit que le trafic réseau passe principalement par cette interface, et si elle devient indisponible, l'interface de secours prend le relais.

Sans spécifier l'interface principale, le bond peut ne pas savoir quelle interface utiliser comme choix par défaut pour l'envoi et la réception du trafic.

6. Configurer l'adresse IP et les paramètres DNS

Vous pouvez définir l'adresse IP, le masque de sous-réseau, la passerelle et les paramètres DNS pour la connexion bond0 en utilisant la commande nmcli. Par exemple :

$ sudo nmcli connection modify bond-bond0 ipv4.method manual
$ sudo nmcli connection modify bond-bond0 ipv4.addresses "192.168.1.10/24" 
$ sudo nmcli connection modify bond-bond0 ipv4.gateway "192.168.1.101"
$ sudo nmcli connection modify bond-bond0 ipv4.dns "8.8.8.8, 8.8.4.4"

Vous pouvez également mentionner tous les détails du réseau dans une seule commande comme ci-dessous :

$ sudo nmcli connection modify bond-bond0 ipv4.method manual ipv4.addresses "192.168.1.10/24" ipv4.gateway "192.168.1.101" ipv4.dns "8.8.8.8,8.8.4.4"

Ajustez l'adresse IP, le masque de sous-réseau, la passerelle et les serveurs DNS selon la configuration de votre réseau.

7. Activez la connexion Bond

Enfin, activez la connexion de liaison en utilisant la commande nmcli :

$ sudo nmcli connection up bond-bond0

Cela activera l'interface liée et la rendra disponible pour la communication réseau.

Configurer l'agrégation de liens réseau sous Linux en utilisant nmcli

8. Vérifiez la configuration

Vérifiez que l'interface agrégée bond0 est active et fonctionne en utilisant la commande nmcli :

$ sudo nmcli connection show

C'est tout ! Vous avez réussi à créer une configuration de liaison de réseau en utilisant la commande nmcli. Votre interface liée est maintenant configurée pour la redondance et l'équilibrage de charge, selon le mode de liaison que vous avez choisi.

Vous pouvez utiliser l'une des méthodes suivantes pour vérifier si votre interface de liaison réseau fonctionne ou non.

Tester votre interface de liaison réseau Linux

Pour vérifier si l'interface de liaison fonctionne correctement, vous pouvez effectuer divers tests et contrôles afin de vous assurer qu'elle offre la redondance et la répartition de charge prévues.

Voici quelques étapes pour vous aider à vérifier la fonctionnalité d'une interface de bond sur Linux :

1. Vérifier le statut de l'obligation

Utilisez la commande suivante pour vérifier l'état de votre interface bond (remplacez bond0 par le nom réel de votre interface bond) :

$ sudo cat /proc/net/bonding/bond0

Cette commande affichera des informations détaillées sur l'interface de liaison, y compris son mode, l'état des interfaces esclaves et toutes les erreurs ou défaillances.

Afficher les détails de l'interface de liaison réseau

2. Tester la bascule

Pour vérifier que le basculement fonctionne comme prévu, vous pouvez déconnecter physiquement l'une des interfaces esclave (par exemple, débrancher le câble réseau) et surveiller le comportement du bond.

Le bond devrait automatiquement transférer le trafic vers l'interface esclave active restante. Vous pouvez vérifier cela en observant le statut du bond avec la commande mentionnée à l'étape 1.

3. Tester l'équilibrage de charge

Si votre bond est configuré pour la répartition de charge (par exemple, en utilisant le mode "balance-rr"), vous pouvez utiliser des outils comme iperf pour générer du trafic réseau et vérifier s'il est distribué de manière uniforme sur les interfaces agrégées.

Installez iperf s'il n'est pas déjà installé et effectuez des tests entre votre serveur et d'autres appareils réseau.

Exemple:

  • Sur le serveur (interface agrégée) : iperf -s
  • Sur un client : iperf -c <server_ip>

Vérifiez que le trafic circule à travers toutes les interfaces agrégées et que vous obtenez un débit accru par rapport à une seule interface.

Si l'interface de liaison réseau fonctionne correctement, vous devriez voir une sortie similaire à celle ci-dessous sur le système où vous avez configuré l'interface de liaison.

$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  1] local 192.168.1.10 port 5001 connected with 192.168.1.101 port 39808
[ ID] Interval       Transfer     Bandwidth
[  1] 0.0000-10.0011 sec  38.7 GBytes  33.3 Gbits/sec
[...]

4. Vérifier l'état de l'interface

Utilisez des outils de diagnostic réseau standard tels que ifconfig, ip ou nmcli pour vérifier l'état des interfaces réseau individuelles (à la fois esclave et bond). Assurez-vous que toutes les interfaces sont activées et disposent des adresses IP et de la configuration prévues.

Exemple:

$ ip addr show

Vérifier l'état de l'interface de liaison réseau

5. Examiner les journaux système

Vérifiez les journaux système (par exemple, /var/log/syslog, /var/log/messages) pour tout message d'erreur ou notification liée à l'interface bond. Recherchez tout message indiquant des défaillances ou des problèmes d'interface.

6. Surveiller le trafic réseau

Vous pouvez utiliser des outils de surveillance réseau comme tcpdump ou wireshark pour capturer et analyser le trafic réseau sur l'interface bond. Cela peut vous aider à confirmer que le trafic est équilibré ou que la bascule fonctionne comme prévu.

7. Ping et tester la connectivité

Effectuez des tests ping et testez la connectivité réseau entre votre serveur groupé et les autres appareils du réseau. Vérifiez que vous pouvez atteindre diverses destinations et qu'il n'y a pas de problèmes de connectivité.

8. Test de charge

En plus de iperf, vous pouvez effectuer des tests de charge plus complets en utilisant des outils comme netperf ou ttcp pour évaluer les performances du bond sous des charges réseau importantes.

En effectuant ces tests et vérifications, vous pouvez vous assurer que votre interface de liaison fonctionne correctement, offrant à la fois la redondance et l'équilibrage de charge comme configuré.

Cette approche complète vous aidera à identifier tout problème et à vérifier que votre configuration de regroupement de réseau répond à vos attentes et exigences.

Modifier l'adresse IP de l'interface Bond

Pour changer l'adresse IP d'une interface bond dans Linux plus tard, vous pouvez suivre ces étapes :

Modifier l'adresse IP de l'interface Bond en utilisant Netplan

1. Modifier la configuration de Netplan (pour les systèmes utilisant Netplan) :

Si vous utilisez Netplan pour la configuration réseau (courant dans les distributions Linux modernes), vous devrez modifier le fichier de configuration Netplan. Par exemple, si votre interface bond est configurée dans un fichier nommé 01-bond.yaml, vous pouvez le modifier avec un éditeur de texte :

$ sudo nano /etc/netplan/01-bond.yaml

2. Modifier l'adresse IP:

Dans le fichier de configuration Netplan, localisez la section addresses sous la configuration de votre interface bond. Cela ressemblera à quelque chose comme ceci :

addresses: [192.168.1.10/24]

Modifiez l'adresse IP et le masque de sous-réseau selon les valeurs souhaitées. Par exemple :

addresses: [192.168.1.20/24]

3. Appliquer la configuration:

Après avoir apporté les modifications, enregistrez le fichier de configuration et appliquez les changements en utilisant la commande netplan apply :

$ sudo netplan apply

Ceci appliquera la nouvelle adresse IP à l'interface de liaison.

Si vous n'utilisez pas Netplan et utilisez plutôt d'autres méthodes de configuration réseau comme NetworkManager ou ifupdown, les étapes peuvent varier légèrement.

Dans de tels cas, vous devrez modifier les fichiers de configuration de l'interface de liaison, puis redémarrer ou recharger le service réseau pour appliquer les modifications.

Modifier l'adresse IP de l'interface Bond en utilisant nmcli

Par exemple, pour changer l'adresse IP d'une interface bond en utilisant la commande nmcli, suivez les étapes ci-dessous.

1. Vérifier la configuration de liaison existante:

Avant de procéder à des modifications, vérifiez la configuration existante de votre interface de liaison en utilisant la commande nmcli :

$ nmcli connection show bond0

Remplacez bond0 par le nom de votre interface bond.

2. Modifier l'adresse IP:

Utilisez la commande nmcli pour modifier l'adresse IP de l'interface bond. Remplacez bond0 par le nom de votre interface bond et new_ip_address par la nouvelle adresse IP que vous souhaitez attribuer :

$ sudo nmcli connection modify bond0 ipv4.addresses new_ip_address/24

Par exemple, pour changer l'adresse IP en "192.168.1.20/24" :

$ sudo nmcli connection modify bond0 ipv4.addresses 192.168.1.20/24

3. Appliquer les modifications:

Après avoir modifié l'adresse IP, vous pouvez appliquer les changements à l'interface de liaison en utilisant la commande suivante :

$ sudo nmcli connection up bond0

Cette commande active l'interface bond avec la nouvelle adresse IP.

4. Vérifiez les modifications:

Vérifiez que les modifications ont été prises en compte en vérifiant l'état et l'adresse IP de l'interface de liaison :

$ nmcli connection show bond0

Vous devriez voir l'adresse IP mise à jour dans la sortie.

En suivant ces étapes, vous pouvez changer avec succès l'adresse IP d'une interface bond en utilisant nmcli. Assurez-vous de remplacer bond0 et new_ip_address par le nom spécifique de votre interface bond et l'adresse IP souhaitée que vous voulez attribuer.

Les fichiers de configuration spécifiques et les commandes peuvent varier en fonction de votre distribution Linux et des outils de gestion de réseau utilisés.

Questions Fréquemment Posées (FAQ)

Voici quelques FAQ courantes sur le bonding réseau sous Linux.

Q : Qu'est-ce que le bonding réseau sous Linux ?

A : L'agrégation de réseaux, également connue sous le nom d'agrégation de cartes réseau (NIC bonding) ou de team, est une technique sous Linux qui combine plusieurs interfaces réseau en une seule interface logique. Elle améliore la redondance et les performances des serveurs ou des stations de travail.

Q : Pourquoi devrais-je utiliser l'agrégation de réseau ?

A : L'agrégation de réseaux offre une fiabilité réseau améliorée en fournissant des capacités de basculement. Elle améliore également les performances du réseau grâce à l'équilibrage de charge entre plusieurs interfaces réseau.

Q : Quels modes de bonding sont disponibles sous Linux ?

A : Linux prend en charge divers modes de liaison, y compris « active-backup » (basculement), « balance-rr » (round-robin), « 802.3ad » (LACP), et plus encore. Chaque mode a des objectifs différents et convient à des configurations réseau spécifiques.

Q : Comment puis-je tester si mon interface de liaison fonctionne correctement ?

A : Vous pouvez tester votre interface de liaison en surveillant son état, en simulant des pannes réseau pour vérifier le comportement de basculement et en utilisant des outils comme iperf pour vérifier l'équilibrage de charge.

Q : Que dois-je faire si je dois changer l'adresse IP d'une interface de liaison ?

A : Pour changer l'adresse IP d'une interface bond, modifiez le fichier de configuration approprié (par exemple, Netplan, ifupdown, NetworkManager), mettez à jour l'adresse IP et appliquez les modifications en utilisant la commande ou l'outil approprié (par exemple, netplan apply, nmcli connection up).

Q : Est-il possible de combiner différents modes de liaison sur le même système ?

A : Oui, il est possible d'avoir plusieurs interfaces de liaison avec différents modes de liaison sur le même système. Chaque interface de liaison fonctionne de manière indépendante.

Q : Puis-je ajouter ou supprimer des interfaces esclaves d'une interface de bond sans perturber la connectivité réseau ?

A : Oui, vous pouvez ajouter ou supprimer dynamiquement des interfaces esclaves d'une interface bond sans perturber la connectivité réseau. L'interface bond s'adaptera aux changements, à condition qu'elle soit correctement configurée.

Conclusion

L'agrégation de réseau est une méthode précieuse pour améliorer la disponibilité du réseau, la redondance et la répartition de la charge dans les systèmes Linux. En combinant plusieurs interfaces réseau physiques en une seule interface logique, l'agrégation de réseau peut fournir une bande passante accrue, une tolérance aux pannes et une répartition du trafic.

Netplan et nmcli sont deux outils puissants qui peuvent être utilisés pour configurer le bonding réseau sous Linux. Netplan offre une approche déclarative basée sur YAML pour définir les configurations réseau, tandis que nmcli fournit une interface en ligne de commande pour gérer les connexions réseau.

Grâce à une combinaison de netplan et de nmcli, le bonding réseau peut être efficacement mis en œuvre sur les systèmes Linux, garantissant une connectivité réseau fiable et performante.

Lecture connexe :

  • Comment configurer une adresse IP statique sous Ubuntu
  • Comment attribuer plusieurs adresses IP à une seule carte réseau dans Linux
  • Comment attribuer une adresse IP aux systèmes Linux distants via SSH