L'association de cartes réseau est le concept de combinaison ou de liaison de 2 interfaces réseau ou plus en une seule interface logique pour fournir un débit élevé et une redondance. Cette pratique est populaire, en particulier avec les serveurs critiques où une haute disponibilité est attendue à tout moment. Dans un serveur avec 2 NIC ou plus cartes réseau, le concept d'association de cartes réseau est essentiel en cas de défaillance d'une carte réseau. Avec l'association de cartes réseau, l'interface réseau logique garantira que la carte réseau restante continuera à fonctionner et à servir l'objectif de la carte réseau défectueuse. Dans ce guide, nous vous expliquons la configuration de l'association de cartes réseau dans CentOS 8 et RHEL 8.
Jetons un coup d'œil à certains des concepts autour
- Équipe – Il s'agit d'un démon qui vous permet de configurer une interface réseau d'équipe. Teamd fait partie du projet libteam et exploite la bibliothèque libteam pour la mise en œuvre de l'équilibrage de charge et de la logique de tourniquet.
- Teamdctl - Il s'agit d'un outil utilitaire permettant d'interroger une instance de teamd pour obtenir des informations de configuration et des statistiques détaillées.
- Coureurs - Il s'agit d'unités de code distinctes au format JSON utilisées pour implémenter différents concepts d'association de cartes réseau telles que Round robbin
Les coureurs existent dans les modes suivants :
- Tourniquet :Dans ce mode, les données sont transmises tour à tour sur tous les ports.
- Diffusion :Ici, les données sont transmises sur tous les ports.
- Équilibrage de charge :Le trafic est réparti sur toutes les cartes réseau.
- Sauvegarde active :où un lien ou un port est activé alors que les autres sont réservés en tant que sauvegarde. Ceci est utilisé pour le basculement afin de fournir une redondance, comme nous le verrons plus tard dans ce guide.
- Lac :utilise le protocole 802.3ad pour l'agrégation de liens
Continuons maintenant et configurons l'association de cartes réseau dans CentOS 8.
Étape :1) Installer le démon Teamd
Teamd est le démon qui permet la configuration des réseaux d'équipe. Heureusement, CentOS 8 est livré avec le démon déjà installé. Si, pour une raison quelconque, teamd est manquant sur votre système CentOS 8 / RHEL 8, exécutez la commande :
$ sudo dnf install teamd
Une fois son installation terminée, vous pouvez recueillir des informations détaillées sur teamd en exécutant la commande :
$ rpm -qi teamd
Étape 2) Configurer l'association de cartes réseau avec l'outil nmcli
Nmcli est un utilitaire de ligne de commande utilisé pour gérer NetworkManager. Mais d'abord, vérifions les interfaces réseau connectées sur notre système. Exécutez la commande
$ nmcli device status
À partir de la sortie ci-dessus, il y a 2 connexions Ethernet et 1 connexion Wi-Fi sur le système. Je vais utiliser les périphériques réseau enp0s3 et enp0s8 comme connexions esclaves.
Vous pouvez également utiliser la commande :
$ nmcli connection show
Je vais donc supprimer les périphériques réseau enp0s3 et enp0s8 qui seront utilisés comme périphériques esclaves en utilisant la syntaxe
$ nmcli connection delete UUID
Alors, continuez et exécutez les commandes :
$ nmcli connection delete a2533841-93bf-4a78-9c84-4f7e8669e92f $ nmcli connection delete 77c70d70-2fb2-4a19-bc02-d71b49a6ffac
Après la suppression, les deux périphériques réseau doivent maintenant être déconnectés. Vous pouvez le vérifier en exécutant :
$ nmcli device status
Créons maintenant une nouvelle interface d'équipe et appelons-la bond0
$ nmcli connection add type team con-name bond0 ifname bond0 config '{"runner": {"name": "activebackup"}}'
La valeur 'activebackup ' est un runner qui peut être remplacé par round-robin, broadcast , random ou lacp.
La configuration est ajoutée dans le /etc/sysconfig/network-scripts/ifcfg-team-bond0 dossier. Pour avoir un aperçu des autres valeurs attribuées, exécutez la commande :
$ nmcli con show bond0
Pour visualiser les interfaces que nous venons de configurer, lancez la commande :
$ nmcli connection show
Nous avons maintenant une interface bond0. Notez que les interfaces enp0s3 et enp0s8 ne sont pas répertoriées car nous les avons supprimées plus tôt.
Ensuite, configurez l'adressage IP et les entrées DNS sur l'interface de l'équipe et assurez-vous qu'il se connecte automatiquement
$ nmcli con mod bond0 ipv4.addresses 192.168.43.100/24 $ nmcli con mod bond0 ipv4.gateway 192.168.43.1 $ nmcli con mod bond0 ipv4.dns 8.8.8.8 $ nmcli con mod bond0 ipv4.method manual $ nmcli con mod bond0 connection.autoconnect yes
Ajoutez ensuite les esclaves du réseau à l'interface de l'équipe
$ nmcli con add type team-slave con-name bond0-slave0 ifname enp0s3 master bond0 $ nmcli con add type team-slave con-name bond0-slave1 ifname enp0s8 master bond0
Pour afficher l'interface de l'équipe et les esclaves, exécutez à nouveau la commande :
$ nmcli connection show
Redémarrez enfin l'interface de l'équipe
$ nmcli connection down bond0 && nmcli connection up bond0
Pour afficher l'interface de l'équipe, utilisez la commande :
$ ip address show dev bond0
Utilisez la commande teamdctl pour recueillir des détails plus fins sur l'interface de l'équipe
$ sudo teamdctl bond0 state
D'après la sortie ci-dessus, nous pouvons clairement voir que nous avons 2 liens qui sont actifs - enp0s3 et enp0s8 et le port actif est enp0s3.
Test de la fonctionnalité d'Active-Backup Teaming
Pour tester la redondance d'Active-backup, nous allons désactiver le port actif intitulé enp0s3 et vérifier si l'autre lien apparaîtra.
$ nmcli device disconnect enp0s3 $ sudo teamdctl bond0 state
Comme vous pouvez le voir, lien enp0s8 a démarré et est maintenant le port actif. Cela se produit en quelques millisecondes et montre que même lorsqu'un lien est en panne pour une raison ou une autre, la connectivité au serveur sera toujours maintenue par l'autre lien.
Faire un ping sur la passerelle par défaut et le DNS donnera également un résultat positif.
À ce stade, nous avons configuré avec succès l'association de cartes réseau et testé la fonction de redondance à l'aide de l'exécuteur Active-Backup.
Comment supprimer une équipe
La première étape pour supprimer une équipe consiste à la désactiver pour faire tomber l'interface de l'équipe.
$ nmcli connection down bond0
Ensuite, continuez et supprimez les esclaves comme indiqué
$ nmcli connection delete bond0-slave0 bond0-slave1
Supprimez enfin l'équipe qui a été créée
$ nmcli connection delete bond0
Cela nous amène à la fin de ce guide sur la façon dont vous pouvez configurer l'association de cartes réseau sur CentOS 8.