Maîtriser le teaming NIC avec PowerShell et GUI

Voulez-vous que les serveurs restent disponibles de manière transparente même lorsqu’un commutateur principal tombe en panne au travail ? Voulez-vous que votre serveur accède à plusieurs VLAN sans dépendre des pilotes spécifiques d’un fournisseur particulier ? Souhaitez-vous simplifier la configuration de votre réseau pour les hôtes physiques et virtuels de votre environnement ? Si vous avez répondu oui à l’une de ces questions, alors cet article est fait pour vous. Laissez NIC Teaming s’en charger.

NIC Teaming peut améliorer la tolérance aux pannes de vos machines, mieux utiliser les ressources réseau (répartition de charge), configurer les VLAN que la machine utilisera et simplifier votre configuration réseau.

Dans cet article, vous apprendrez ce qu’est le teaming NIC, les considérations spéciales à prendre en compte pour utiliser le teaming NIC dans les machines virtuelles, et comment le déployer au sein de votre organisation.

Prérequis

Vous n’avez pas besoin d’être un expert en administration Windows ou en administration réseau pour comprendre le teaming NIC. Cependant, vous avez besoin de quelques connaissances techniques préalables pour comprendre et appliquer cet article. Voici ce dont vous avez besoin :

  • Compréhension du fonctionnement des réseaux (adresses MAC, adresses IP, VLAN)
  • Accès à Windows Server 2016 (ou 2019) avec deux cartes réseau disponibles ou plus – presque tout ce que vous verrez s’applique également à Windows Server 2016, 2012R2 et Windows Server 2012

Compréhension du teaming NIC

Dans une configuration réseau traditionnelle pour un serveur physique, vous assurez la tolérance aux pannes en connectant plusieurs câbles réseau du serveur à plusieurs commutateurs physiques (éventuellement faisant partie d’une seule pile de commutateurs). Ainsi, le serveur dispose de plusieurs adresses IP actives en permanence et la répartition de charge est inexistante.

En déployant une équipe NIC sur votre serveur, vous pouvez maintenir une connexion à plusieurs commutateurs physiques mais n’utiliser qu’une seule adresse IP. L’équilibrage de charge devient rapidement disponible. La tolérance aux pannes devient instantanée au lieu d’attendre l’expiration/mise à jour des enregistrements DNS et la gestion devient plus simple.

La mise en équipe NIC est une fonctionnalité de Windows Server qui vous permet de regrouper des NIC en « équipes ». Chaque équipe est composée d’un ou plusieurs membres de l’équipe (NIC qui sont dans l’équipe) et d’une ou plusieurs interfaces virtuelles qui sont disponibles à l’utilisation.

Les membres de l’équipe sont les adaptateurs réseau que l’équipe utilise pour communiquer avec le commutateur. Les interfaces de l’équipe sont les adaptateurs réseau virtuels qui sont créés lorsque vous créez l’équipe. Il peut être difficile de se souvenir de la différence entre les deux car les interfaces de l’équipe reçoivent une adresse IP.

Quelle est la différence entre la mise en équipe NIC et le bonding?

La mise en équipe NIC est synonyme de bonding NIC.

La mise en équipe NIC est disponible dans toutes les éditions de Windows Server à partir de Windows Server 2012. Cette fonctionnalité est extrêmement flexible et offre aux administrateurs une solution beaucoup plus simple pour l’agrégation de liens/l’équilibrage de charge, la bascule et la mise en réseau définie par logiciel (VLAN).

Il existe des solutions similaires sur certains matériels de certains fournisseurs, cependant, l’implémentation de la mise en équipe NIC par Microsoft vise à fournir ces fonctionnalités de manière indépendante du matériel et du fournisseur.

Quelle est la différence entre la mise en équipe NIC et le pontage?

La mise en réseau NIC (Network Interface Card) vous permet de créer une interface NIC qui couvre une ou plusieurs cartes NIC qui se trouvent toutes sur le même sous-réseau. Le pontage NIC vous permet d’associer des adaptateurs NIC provenant de sous-réseaux différents afin de permettre la communication entre les deux sous-réseaux.

Lors de la configuration d’une équipe NIC, vous définirez le mode de mise en réseau, le mode de répartition de charge, l’adaptateur de secours, et l’interface VLAN de l’équipe. Chacun de ces composants est expliqué ci-dessous.

Mode de mise en réseau

Lorsque vous créez une équipe NIC, vous devez sélectionner le mode de mise en réseau à utiliser. Le mode de mise en réseau détermine comment le serveur et le(s) commutateur(s) répartiront le trafic entre les liens multiples. Il existe trois types de modes de mise en réseau : indépendant du commutateur, LACP et statique.

Indépendant du commutateur

Le mode indépendant du commutateur vous permet de connecter les membres de l’équipe à plusieurs commutateurs non empilés. Le mode indépendant du commutateur est le seul mode de mise en réseau qui n’implique aucune modification de configuration sur les commutateurs auxquels vous le connectez. Ce mode utilise uniquement les adresses MAC pour contrôler vers quelle interface les données entrantes doivent être envoyées.

Il existe quelques situations dans lesquelles vous pouvez choisir d’utiliser le mode de mise en réseau indépendant du commutateur, par exemple lorsque :

  • vous ne souhaitez pas effectuer de modifications de configuration sur vos commutateurs connectés
  • vous utilisez plusieurs commutateurs non empilés pour les membres de l’équipe
  • vous créez une équipe NIC à l’intérieur d’une machine virtuelle (plus d’informations à ce sujet dans la section Considérations d’utilisation dans les machines virtuelles ci-dessous)

Si vous préférez utiliser un adaptateur pour le trafic et passer à un adaptateur de secours uniquement en cas de défaillance de la liaison physique, vous devez utiliser le mode de groupement indépendant du commutateur et configurer un adaptateur de secours.

A standby adapter is not used often because it reduces the total bandwidth that is available for communicating with the server. The default setting is “None (all adapters Active)”.

Le groupement statique

statique nécessite que vous configuriez manuellement les ports du commutateur qui se connectent à l’équipe NIC en un groupe de mise en agrégation de liens (LAG). Le serveur et le commutateur répartiront le trafic entre tous les liens qui sont actifs.

Si un port de l’une ou l’autre extrémité est connecté à un autre appareil, le trafic sera réparti sur ce lien qui ne l’attend pas. Par conséquent, cela n’aide pas à isoler les erreurs telles que les câbles branchés de manière incorrecte.

Vous ne devez utiliser le mode de groupement statique que lorsque vos commutateurs ne peuvent pas prendre en charge le LACP.

LACP est similaire au groupement statique, mais il vérifie également que chaque câble actif dans le lien est effectivement connecté au LAG prévu. LACP ne transmettra pas de données sur des liens qui ne sont pas connectés au LAG attendu.

Vous devez utiliser LACP lorsque vous souhaitez que le commutateur soit conscient de l’équipe NIC afin d’équilibrer la charge des données que le commutateur envoie à l’équipe NIC.

Important : Les modes de groupement statique et LACP nécessitent que l’hôte soit connecté à un seul commutateur ou à une seule pile de commutateurs.

Mode d’équilibrage de charge

Le mode de répartition de charge détermine comment l’équipe présentera les interfaces pour les données entrantes et déterminera quels adaptateurs utiliser pour les données sortantes. Les options disponibles sont Adresse Hash, Port Hyper-V, et Dynamique.

Contrairement à un « appareil de répartition de charge », le trafic entrant ne sera pas réparti uniformément entre chaque lien utilisé par les membres de l’équipe.

Le mode Adresse Hash

Adresse Hash tentera d’utiliser les adresses IP et les ports source et destination pour créer un équilibre efficace entre les membres de l’équipe. Si aucun port ne fait partie d’une connexion, il n’utilisera que les adresses IP pour déterminer comment répartir la charge. Dans les cas où aucune adresse IP ne fait partie d’une connexion, il utilisera les adresses MAC.

Lors de la création d’une équipe de cartes réseau (NIC team), vous pouvez forcer l’équipe à utiliser IP+Port, IP seule ou MAC seule. IP+Port est la valeur par défaut et offre le meilleur équilibre entre les membres de l’équipe. Pour utiliser uniquement IP ou uniquement l’adresse MAC, vous devrez créer votre équipe de cartes réseau via PowerShell.

Bien que le mode de répartition de charge Adresse Hash fasse un bon travail pour répartir le trafic sortant entre les membres de l’équipe, il est incapable de s’adapter aux membres de l’équipe sur-utilisés ou sous-utilisés. De plus, tout le trafic entrant utilise l’adresse MAC de l’interface principale de l’équipe. Cependant, cela est limité à un seul lien si vous utilisez le mode de mise en équipe Switch Independent.

Vous devez utiliser le mode Adresse Hash lorsque vous créez une équipe à l’intérieur d’une machine virtuelle.

Port Hyper-V

Le mode Hyper-V Port est destiné uniquement à être utilisé sur les hôtes de machines virtuelles Hyper-V. Ce mode attribue une adresse MAC à chaque machine sur l’hôte de la machine virtuelle, puis attribue un membre de l’équipe à chacune des adresses MAC. Cela permet à une VM spécifique d’avoir un membre d’équipe prévisible en temps normal.

Des membres d’équipe prévisibles pour chaque VM signifient que la bande passante d’une VM est limitée au maximum du lien unique sur lequel elle opère. Lorsqu’un hôte Hyper-V contient peu de VM, l’utilisation du mode d’équilibrage de charge Hyper-V Port risque de ne pas être très équilibrée.

Normalement, vous n’avez pas besoin d’utiliser le mode Hyper-V Port, mais vous pourriez le trouver bénéfique si vous devez vous assurer que chaque VM utilise le même lien en permanence.

Le mode dynamique utilise les meilleures fonctionnalités des modes Address Hash et Hyper-V Port pour équilibrer le trafic réseau sortant et entrant. Comme avec Hyper-V, le trafic entrant est réparti en attribuant des membres de l’équipe à différentes adresses MAC. Comme avec Address Hash, le trafic sortant est réparti par une combinaison de hachage dérivée de l’IP/Port. Ce mélange offre un meilleur équilibrage par rapport aux méthodes précédentes.

Le mode dynamique comporte une amélioration importante : la surveillance dynamique du trafic. Lorsque l’algorithme du mode dynamique détermine que certains membres de l’équipe sont sur-utilisés ou sous-utilisés, il rééquilibre le trafic sortant vers d’autres membres de l’équipe selon les besoins.

Les flux TCP ont un rythme naturel qui permet de prédire les quantités de trafic/décalages futurs dans le TCP ; Microsoft les appelle des « flowlets ». Le mode de répartition de charge dynamique peut également anticiper, grâce aux flowlets, quels membres de l’équipe seront sur-utilisés ou sous-utilisés et rééquilibrer le trafic sortant en conséquence.

Le mode dynamique est presque toujours la meilleure option de répartition de charge à utiliser.

Le VLAN de l’interface de l’équipe

Lorsque vous créez une équipe, par défaut, elle crée une seule interface d’équipe. L’interface d’équipe dispose d’un paramètre de VLAN pour marquer le trafic sur une interface vers un VLAN spécifique. Le réglage du VLAN de l’interface d’équipe sur un VLAN marqué est généralement uniquement effectué lorsque les membres de l’équipe NIC utilisent le mode « trunk ».

Après avoir créé l’équipe, vous pouvez créer des interfaces d’équipe supplémentaires sur différents VLAN.

Avertissement : Microsoft recommande de ne jamais définir le VLAN pour une interface à l’intérieur d’une machine virtuelle. Utilisez plutôt l’option avancée « ID VLAN » du commutateur Hyper-V pour définir des VLAN pour une machine virtuelle.

La création d’équipes NIC dans des machines virtuelles

La configuration d’équipes NIC dans une machine virtuelle présente certaines limitations. Microsoft souligne spécifiquement que l’utilisation de « Teams on Teams » (équipes au niveau de l’hôte et équipes au niveau de la machine virtuelle) peut être très imprévisible et entraîner une perte de connexion.

Traditionnellement, pour assurer la tolérance aux pannes d’une machine virtuelle (VM), celle-ci devait être connectée à plusieurs commutateurs virtuels externes. Il fallait planifier quels VM partageraient chaque commutateur virtuel afin de garantir qu’aucun ne devienne trop congestionné. Les problèmes d’équilibrage de charge étaient encore compliqués par la possibilité de congestion des autres VM sur l’hôte.

Aujourd’hui, vous pouvez déployer une équipe de cartes réseau (NIC team) sur l’hôte de la VM avec un seul adaptateur réseau pour chaque VM. Toutes les VM bénéficient d’une tolérance aux pannes complète en cas de défaillance d’un port physique ou d’un commutateur. Le trafic de toutes les VM peut être réparti sur les membres de l’équipe pour une meilleure performance globale et une meilleure gestion de la congestion. Votre configuration peut maintenant ressembler à ceci :

A NIC Team topology

L’utilisation d’une équipe de cartes réseau (NIC team) dans une VM est parfois utilisée pour activer SR-IOV afin de réduire la charge CPU de la pile réseau. Vous avez également besoin du support BIOS et du support NIC pour que SR-IOV soit fonctionnel.

Exigences

L’utilisation de l’équipe de cartes réseau (NIC team) au sein d’une VM comprend ces exigences pour être une « configuration prise en charge » :

  1. Vous devez utiliser plusieurs adaptateurs dans la VM.
  2. Les adaptateurs doivent être connectés à deux commutateurs virtuels de type « externe ».
  3. Si vous vous connectez à des commutateurs physiques, ces commutateurs doivent être sur le même sous-réseau L2.
  4. Le mode de l’équipe de NIC de la VM doit être défini sur Indépendant du commutateur et le mode d’équilibrage de charge doit être défini sur *Hash d’adresse*.

Dans Hyper-V, vous devez également activer la mise en équipe du NIC pour la machine virtuelle à partir de l’onglet Fonctionnalités avancées de chaque adaptateur réseau qui fera partie d’une équipe. Vous pouvez voir ci-dessous un exemple de ce à quoi ressemble ce paramètre.

NIC Teaming Hyper-V option

Optimisation des performances

Bien que la mise en équipe du NIC offre de bonnes performances dès le départ, il existe différentes situations où vous devrez vous concentrer sur l’amélioration des performances. Les détails de ces situations dépassent le cadre de cet article, mais si vous souhaitez en savoir plus sur l’optimisation des performances, concentrez-vous sur les termes suivants :

  • Accès direct à la mémoire à distance (RDMA)
  • Mise en équipe intégrée au commutateur (SET)
  • Équilibrage de la charge côté réception (RSS)
  • Virtualisation d’E/S à racine unique (SR-IOV)

En général, ces paramètres supplémentaires réduisent la charge CPU pour la pile réseau et la latence entre les connexions. Vous pouvez en savoir plus sur l’amélioration des performances dans les articles Expliquant les technologies logicielles et matérielles et Amélioration des performances grâce au RDMA avec SET.

Création d’une équipe NIC sur Windows Server

Muni d’une connaissance de la façon dont la mise en équipe du NIC fonctionne et d’une vision pour simplifier votre réseau, vous devriez maintenant être prêt à créer une équipe NIC !

Pour cette démonstration, une équipe NIC sera créée sur une machine virtuelle en raison des contraintes de l’environnement de démonstration. La configuration d’une équipe NIC sur un serveur physique est la même, mais si des étapes spécifiques à la machine virtuelle sont nécessaires, elles seront indiquées.

Comment vérifier si la mise en équipe NIC est activée ?

La mise en équipe NIC est activée dans toutes les versions de Windows Server depuis 2012 (Server 2012, 2012R2, 2016 et 2019).

Déploiement de la mise en équipe NIC via l’interface graphique

Pour commencer, ouvrez le Gestionnaire de serveur sur une machine Windows Server. Assurez-vous d’être connecté à la machine sur laquelle vous souhaitez configurer l’équipe NIC.

  1. Tout d’abord, faites un clic droit sur le nom du serveur sur lequel vous souhaitez créer l’équipe NIC, puis sélectionnez Configurer l’équipe NIC.
Configure NIC Teaming option in Server Manager

2. Dans le panneau Adaptateurs et interfaces, sélectionnez les cartes NIC à ajouter à la nouvelle équipe. Ensuite, faites un clic droit sur les adaptateurs sélectionnés et sélectionnez Ajouter à une nouvelle équipe.

Add to New Team option in Server Manager

Note : Vous pouvez configurer une équipe NIC avec une ou plusieurs cartes (maximum : 32) et une ou plusieurs interfaces d’équipe.

3. Saisissez un nom d’équipe descriptif et configurez les propriétés supplémentaires selon vos besoins, puis cliquez sur OK pour créer l’équipe.

Dans cet exemple, l’équipe NIC est configurée sur une machine virtuelle. Par conséquent, le mode d’équipe ou le mode de répartition de charge ne peuvent pas être utilisés. Si cette démonstration était réalisée sur un serveur physique, vous utiliseriez probablement Switch Independent ou LACP si vous utilisez une agrégation de liens sur le commutateur.

New Team dialog box

L’équipe NIC devrait maintenant être créée sur le serveur Windows.

Ajout de plus de cartes NIC ou d’interfaces à l’équipe NIC

Une fois créée, vous pouvez ajouter des cartes NIC à une équipe configurée depuis la même fenêtre de l’équipe NIC. Pour ce faire, cliquez avec le bouton droit de la souris sur une carte NIC disponible et sélectionnez Ajouter à l’équipe « <Nom de l’équipe> ».

Add to Team “Demo” option

Vous pouvez également ajouter d’autres interfaces à une équipe en sélectionnant l’onglet Interfaces d’équipe, puis en cliquant sur TÂCHES —> Ajouter une interface comme indiqué ci-dessous.

Add Interface option

Une fois que l’entrée apparaît, saisissez le VLAN à utiliser et éventuellement un nom, comme indiqué ci-dessous.

New Team interface dialog box

Déploiement de la mise en équipe des NIC via Windows PowerShell

Maintenant que vous savez comment configurer une équipe NIC via l’interface graphique, voyons comment le faire via PowerShell.

Recherche des noms des NIC

Tout d’abord, vous devez décider des NIC que vous ajouterez à l’équipe. Plus précisément, vous devrez trouver les noms des NIC.

Pour trouver les noms des NIC, utilisez la cmdlet Get-Adapter. Exécutez cette cmdlet et remarquez vos options, comme indiqué ci-dessous.

Get-Adapter PowerShell cmdlet

Une fois que vous avez noté les noms, vous pouvez maintenant créer l’équipe avec PowerShell ! Pour cette démonstration, nous utiliserons les NIC Ethernet 3 et 4 pour la nouvelle équipe NIC.

Création de l’équipe NIC

Maintenant que vous avez les noms des adaptateurs en main, il ne vous reste plus qu’à exécuter une seule autre cmdlet (New-NetLbfoTeam). Vous pouvez voir un exemple d’exécution de la cmdlet New-NetLbfoTeam et sa sortie ci-dessous.

Pour le paramètre TeamMembers, vous utiliserez les noms des NIC collectés précédemment.

Dans cet exemple, le TeamingMode est défini sur SwitchIndependent. Si vous configurez les ports du commutateur en un groupe de mise en grappe (LAG), vous voudrez probablement utiliser la valeur LACP. Si vous n’utilisez pas de LAG sur le commutateur, vous choisiriez probablement d’utiliser SwitchIndependent.

La valeur du paramètre LoadBalancingAlgorithm est définie sur Dynamic car ce mode offre une répartition de charge plus uniforme entre les membres de l’équipe.

New-NetLbfoTeam -TeamMembers <NIC Names> -Name "<Desciptive Name>" -TeamingMode SwitchIndependent -LoadBalancingAlgorithm TransportPorts
Using the New-NetLbfoTeam PowerShell cmdlet

Une fois terminé, vous verrez apparaître une nouvelle carte réseau virtuelle dans la liste des adaptateurs de Get-NetAdapter:

New virtual NIC created

Notes sur l’équipe de cartes NIC sur une machine virtuelle :

– Vous devez utiliser le mode d’équipe « SwitchIndependent ».
– Vous devez utiliser l’un des types de hachage d’adresse pour l’algorithme de répartition de charge (TransportPorts).
– La répartition de charge dynamique serait utilisée sur un serveur physique au lieu de TransportPorts.*

Ajout de plus de cartes NIC ou d’interfaces à l’équipe de cartes NIC

Une fois que vous avez créé l’équipe de cartes NIC, vous pouvez ajouter des cartes NIC et des interfaces de la même manière qu’avec l’interface graphique. Pour ajouter plus de cartes NIC à l’équipe, utilisez la commande Add-NetLbfoTeamMember.*

Add-NetLbfoTeamMember -Name NIC1 -Team Team1

Vous pouvez également ajouter d’autres interfaces d’équipe avec la commande Add-NetLbfoteamNIC.

Add-NetLbfoTeamNIC -Team Team1 -VlanID 42

Résumé

Vous avez maintenant appris ce qu’est la mise en équipe de NIC, comment elle est liée aux performances/utilisation de VM/simplification de votre réseau, et comment la déployer via une interface graphique ou PowerShell.

Source:
https://adamtheautomator.com/nic-teaming/