Beherrschen von NIC-Teaming mit PowerShell und GUI

Möchten Sie, dass Server nahtlos verfügbar bleiben, auch wenn ein Kernswitch bei der Arbeit ausfällt? Möchten Sie, dass Ihr Server auf mehrere VLANs zugreifen kann, ohne von bestimmten Treibern eines bestimmten Anbieters abhängig zu sein? Möchten Sie Ihre Netzwerkkonfiguration für physische und virtuelle Hosts in Ihrer Umgebung vereinfachen? Wenn Sie eine dieser Fragen mit Ja beantwortet haben, dann ist dieser Artikel für Sie. Lassen Sie NIC Teaming dies tun.

NIC Teaming kann die Ausfallsicherheit Ihrer Maschinen verbessern, Netzwerkressourcen besser nutzen (Lastenausgleich), VLANs für die Maschine konfigurieren und Ihre Netzwerkkonfiguration vereinfachen.

In diesem Artikel erfahren Sie, was NIC Teaming ist, welche besonderen Überlegungen bei der Verwendung von NIC Teaming in virtuellen Maschinen zu beachten sind und wie Sie es in Ihrer Organisation bereitstellen können.

Voraussetzungen

Sie müssen kein Experte für Windows- oder Netzwerkadministration sein, um NIC Teaming zu verstehen. Sie benötigen jedoch einige technische Voraussetzungen und Kenntnisse, um diesen Artikel zu verstehen und anzuwenden. Diese sind:

  • Verständnis dafür, wie Netzwerke funktionieren (MAC-Adressen, IP-Adressen, VLANs)
  • Zugriff auf Windows Server 2016 (oder 2019) mit zwei oder mehr verfügbaren Netzwerkadaptern – alles, was Sie sehen, gilt gleichermaßen für Windows Server 2016, 2012R2 und Windows Server 2012

Verständnis von NIC Teaming

In einer traditionellen Netzwerkkonfiguration für einen physischen Server stellen Sie die Ausfallsicherheit bereit, indem Sie mehrere Netzwerkkabel vom Server in mehrere physische Switches einstecken (möglicherweise Teil eines einzigen Switch-Stacks). Der Server hat also jederzeit mehrere aktive IP-Adressen und Lastenausgleich ist nicht vorhanden.

Durch Bereitstellung eines NIC-Teams auf Ihrem Server können Sie eine Verbindung zu mehreren physischen Switches herstellen, aber nur eine IP-Adresse verwenden. Load Balancing wird einfach verfügbar. Die Ausfallsicherheit wird sofort gewährleistet, anstatt auf das Timeout/Update der DNS-Einträge zu warten, und die Verwaltung wird einfacher.

NIC Teaming ist eine Funktion in Windows Server, mit der Sie NICs zu „Teams“ gruppieren können. Jedes Team besteht aus einem oder mehreren Teammitgliedern (NICs, die dem Team angehören) und einem oder mehreren virtuellen NICs, die verwendet werden können.

Teammitglieder sind die Netzwerkadapter, die das Team zur Kommunikation mit dem Switch verwendet. Team-Schnittstellen sind die virtuellen Netzwerkadapter, die erstellt werden, wenn Sie das Team erstellen. Es kann schwierig sein, sich zu merken, welches welches ist, da den Team-Schnittstellen eine IP-Adresse zugewiesen wird.

Was ist der Unterschied zwischen NIC Teaming und Bonding?

NIC Teaming ist gleichbedeutend mit NIC Bonding.

NIC Teaming ist in allen Editionen von Windows Server ab Windows Server 2012 verfügbar. Diese Funktion ist äußerst flexibel und bietet Administratoren eine wesentlich einfachere Lösung für Link Aggregation/Load Balancing, Failover und Software Defined Networking (VLANs).

Es gibt ähnliche Lösungen auf bestimmter Hardware von bestimmten Herstellern, jedoch zielt die Implementierung des NIC Teaming von Microsoft darauf ab, diese Funktionen hardware- und herstellerunabhängig bereitzustellen.

Was ist der Unterschied zwischen NIC Teaming und Bridging?

NIC Teaming ermöglicht es Ihnen, eine NIC-Schnittstelle zu erstellen, die sich über einen oder mehrere NIC-Adapter erstreckt, die sich alle im selben Subnetz befinden. Mit NIC Bridging können Sie NIC-Adapter aus verschiedenen Subnetzen koppeln, um die Kommunikation zwischen den beiden Subnetzen zu ermöglichen.

Bei der Konfiguration eines NIC-Teams legen Sie den Teaming-Modus, den Load-Balancing-Modus, den Standby-Adapter und das Team-Interface-VLAN fest. Jede dieser Komponenten wird nachstehend erläutert.

Teaming-Modus

Beim Erstellen eines NIC-Teams müssen Sie den gewünschten Teaming-Modus auswählen. Der Teaming-Modus bestimmt, wie der Server und die Switch(es) den Datenverkehr zwischen den verschiedenen Verbindungen aufteilen. Es gibt drei Arten von Teaming-Modi: Switch-unabhängig, LACP und Statisch.

Switch-unabhängig

Das Switch-unabhängige Teaming ermöglicht es Ihnen, Teammitglieder an mehrere, nicht gestapelte Switches anzuschließen. Der Switch-unabhängige Modus ist der einzige Teaming-Modus, der keine Konfigurationsänderungen an den angeschlossenen Switches erfordert. In diesem Modus werden nur MAC-Adressen verwendet, um zu steuern, an welche Schnittstelle eingehende Daten gesendet werden sollen.

Es gibt einige Situationen, in denen Sie sich für den Switch-unabhängigen Teaming-Modus entscheiden könnten. Dies könnte der Fall sein, wenn:

  • Sie keine Konfigurationsänderungen an Ihren angeschlossenen Switches vornehmen möchten
  • Sie mehrere nicht gestapelte Switches für die Teammitglieder verwenden
  • Sie ein NIC-Team innerhalb einer virtuellen Maschine erstellen (mehr dazu im Abschnitt Überlegungen zur Verwendung in virtuellen Maschinen unten)

Wenn Sie bevorzugen, nur einen Adapter für den Datenverkehr zu verwenden und nur bei physischem Linkausfall auf einen Standby-Adapter umzuschalten, müssen Sie den Teaming-Modus „Switch unabhängig“ verwenden und einen Standby-Adapter konfigurieren.

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)”.

Beim statischen

statischen Teaming müssen Sie die Ports am Switch, die mit dem NIC-Team verbunden sind, manuell in eine Link Aggregation Group (LAG) konfigurieren. Der Server und der Switch teilen den Datenverkehr zwischen allen aktiven Links auf.

Wenn ein Port an einem der Enden mit einem anderen Gerät verbunden ist, wird der Datenverkehr über diesen Link aufgeteilt, was nicht erwartet wird. Dadurch werden Fehler wie falsch angeschlossene Kabel nicht isoliert.

Sie sollten den statischen Teaming-Modus nur verwenden, wenn Ihre Switches LACP nicht unterstützen.

LACP ist ähnlich wie das statische Teaming, überprüft jedoch auch, ob jedes aktive Kabel in der Verbindung tatsächlich mit dem beabsichtigten LAG verbunden ist. LACP sendet keine Daten über Links, die nicht mit dem erwarteten LAG verbunden sind.

Sie sollten LACP verwenden, wenn Sie möchten, dass der Switch über das NIC-Team informiert wird, um Daten auszugleichen, die der Switch an das NIC-Team sendet.

Wichtig: Die Teaming-Modi „Statisch“ und „LACP“ erfordern, dass der Host nur mit einem einzelnen Switch oder einer einzelnen Switch-Gruppe verbunden ist.

Load-Balancing-Modus

Der Modus für Lastausgleich bestimmt, wie das Team Schnittstellen für eingehende Daten präsentiert und welche Adapter für ausgehende Daten verwendet werden sollen. Die verfügbaren Optionen sind Address Hash, Hyper-V Port, und Dynamisch.

Im Gegensatz zu einer „Lastausgleichs-Appliance“ wird der eingehende Verkehr nicht gleichmäßig auf jeden vom Teammitglied verwendeten Link aufgeteilt.

Address Hash

Address Hash Modus wird versuchen, die Quell- und Ziel-IP-Adressen und Ports zu verwenden, um eine effektive Balance zwischen den Teammitgliedern zu schaffen. Wenn keine Ports Teil einer Verbindung sind, wird es nur IP-Adressen verwenden, um zu bestimmen, wie der Lastausgleich durchgeführt wird. In Fällen, in denen keine IP-Adressen Teil einer Verbindung sind, werden MAC-Adressen verwendet.

Beim Erstellen eines NIC-Teams können Sie das Team zwingen, IP+Port, nur IP oder nur MAC-Adresse zu verwenden. IP+Port ist die Standardeinstellung und bietet die beste Balance zwischen den Teammitgliedern. Um nur IP oder nur MAC-Adresse zu verwenden, müssen Sie Ihr NIC-Team über PowerShell erstellen.

Obwohl der Address Hash Lastausgleichsmodus eine gute Arbeit bei der Aufteilung des ausgehenden Verkehrs zwischen den Teammitgliedern leistet, kann er sich nicht an über-/unterausgelastete Teammitglieder anpassen. Außerdem nutzt der gesamte eingehende Verkehr die MAC-Adresse der primären Team-Schnittstelle. Dies ist allerdings auf einen einzigen Link beschränkt, wenn der Switch Independent Teaming-Modus verwendet wird.

Sie müssen Address Hash verwenden, wenn Sie ein Team innerhalb einer virtuellen Maschine erstellen.

Hyper-V Port

Der Modus Hyper-V Port ist nur für die Verwendung auf Hyper-V-Virtualisierungsservern vorgesehen. In diesem Modus wird jeder virtuellen Maschine eine MAC-Adresse zugewiesen und jedem dieser MAC-Adressen ein Teammitglied zugeordnet. Dadurch kann eine bestimmte virtuelle Maschine unter normalen Betriebsbedingungen immer das gleiche Teammitglied verwenden.

Die Verwendung vorhersehbarer Teammitglieder für jede virtuelle Maschine bedeutet, dass die Bandbreite einer virtuellen Maschine auf das Maximum der einzelnen Verbindung begrenzt ist. Wenn auf einem Hyper-V-Host nur wenige virtuelle Maschinen vorhanden sind, ist der Hyper-V-Port-Lastausgleichsmodus wahrscheinlich nicht sehr gut ausbalanciert.

Sie müssen normalerweise keinen Hyper-V-Port-Modus verwenden, können jedoch von Vorteil sein, wenn Sie sicherstellen müssen, dass jede virtuelle Maschine immer dieselbe Verbindung verwendet.

Der

Dynamische Modus verwendet die besten Funktionen der Modi Address Hash und Hyper-V Port, um den ein- und ausgehenden Netzwerkverkehr auszugleichen. Wie bei Hyper-V wird der eingehende Verkehr durch die Zuordnung von Teammitgliedern zu verschiedenen MAC-Adressen aufgeteilt. Wie bei Address Hash wird der ausgehende Verkehr anhand einer Kombination aus IP/Port-Hash aufgeteilt. Diese Mischung bietet eine bessere Ausbalancierung im Vergleich zu den beiden oben genannten Methoden.

Der dynamische Ausgleichsmodus bietet eine wichtige Verbesserung: die dynamische Überwachung des Datenverkehrs. Wenn der Algorithmus des dynamischen Modus feststellt, dass bestimmte Teammitglieder über- oder unterausgelastet sind, wird der ausgehende Datenverkehr bei Bedarf auf andere Teammitglieder neu ausbalanciert.

TCP-Streams haben einen natürlichen Rhythmus, der es ermöglicht, zukünftige Datenmengen/Pausen im TCP-Verkehr vorherzusagen; Microsoft nennt diese Flowlets. Der dynamische Lastausgleichsmodus kann auch über Flowlets vorhersagen, welche Teammitglieder über- bzw. unterausgelastet werden und den ausgehenden Verkehr entsprechend neu ausbalancieren.

Der dynamische Modus ist in der Regel die beste Option für den Lastausgleich.

Das Team Interface VLAN

Beim Erstellen eines Teams wird standardmäßig eine einzelne Team-Schnittstelle erstellt. Die Team-Schnittstelle verfügt über eine VLAN-Einstellung, um den Verkehr auf einer Schnittstelle mit einem bestimmten VLAN zu markieren. Das Einstellen des VLANs für die Team-Schnittstelle auf ein markiertes VLAN wird in der Regel nur dann durchgeführt, wenn die Teammitglieder, aus denen das NIC-Team besteht, den Trunk-Modus verwenden.

Nach dem Erstellen des Teams können Sie zusätzliche Team-Schnittstellen auf verschiedenen VLANs erstellen.

Warnung: Microsoft empfiehlt, das VLAN für eine Schnittstelle innerhalb einer virtuellen Maschine niemals festzulegen. Verwenden Sie stattdessen die erweiterte Option „VLAN-ID“ des Hyper-V-Switches, um VLANs für eine virtuelle Maschine zu definieren.

NIC-Teaming in virtuellen Maschinen

Das Einrichten von NIC-Teams in einer virtuellen Maschine ist mit einigen Einschränkungen verbunden. Microsoft weist explizit darauf hin, dass die Verwendung von „Teams auf Teams“ (Teams auf Host-Ebene und Teams auf VM-Ebene) sehr unvorhersehbar sein und Verbindungsverluste verursachen kann.

Traditionell war es erforderlich, dass eine VM für eine Ausfallsicherheit mit mehreren externen virtuellen Switches verbunden sein musste. Sie mussten planen, welche VMs jeden virtuellen Switch gemeinsam nutzen würden, um sicherzustellen, dass keiner überlastet wurde. Load-Balancing-Probleme wurden zusätzlich durch die Möglichkeit von Überlastungen durch andere VMs auf dem Host erschwert.

Heutzutage können Sie auf dem VM-Host ein NIC-Team mit einem einzelnen Netzwerkadapter für jede VM bereitstellen. Alle VMs profitieren von einer vollständigen Ausfallsicherheit bei physischen Port- oder Switch-Ausfällen. Der Datenverkehr aller VMs kann auf die Teammitglieder verteilt werden, um eine insgesamt bessere Durchsatz- und Überlastungsverarbeitung zu erzielen. Ihre Konfiguration kann nun wie folgt aussehen:

A NIC Team topology

Das NIC-Teaming in einer VM wird manchmal verwendet, um SR-IOV zu aktivieren, um den CPU-Overhead des Netzwerkstapels zu reduzieren. Sie benötigen auch BIOS-Unterstützung und NIC-Unterstützung für die Funktionsweise von SR-IOV.

Anforderungen

Die Verwendung von NIC-Teaming in einer VM erfordert, dass bestimmte Anforderungen erfüllt sind, um eine „unterstützte Konfiguration“ zu sein:

  1. Sie müssen mehrere Adapter in der VM verwenden.
  2. Die Adapter müssen mit zwei virtuellen Switches verbunden sein, die beide vom Typ „extern“ sind.
  3. Wenn Sie sich mit physischen Switches verbinden, müssen diese sich im selben L2-Subnetz befinden.
  4. Der VM-NIC-Teammodus muss auf „Switch Independent“ und der Lastenausgleichsmodus auf „Address Hash“ eingestellt sein.

In Hyper-V müssen Sie auch die NIC-Teambildung für die VM aus dem Erweiterte Funktionen-Tab jedes Netzwerkadapters aktivieren, der Teil eines Teams sein soll. Sie können ein Beispiel für diese Einstellung unten sehen.

NIC Teaming Hyper-V option

Maximierung der Leistung

Obwohl die NIC-Teambildung von Haus aus eine gute Leistung bietet, gibt es verschiedene Szenarien, in denen Sie die Leistung verbessern möchten. Die Details dieser Szenarien fallen jedoch nicht in den Rahmen dieses Artikels. Wenn Sie mehr über Leistungsoptimierung erfahren möchten, konzentrieren Sie sich auf die folgenden Begriffe:

  • Remote Direct Memory Access (RDMA)
  • Switch Embedded Teaming (SET)
  • Receive Side Scaling (RSS)
  • Single-Root I/O Virtualization (SR-IOV)

Im Allgemeinen reduzieren diese zusätzlichen Einstellungen die CPU-Auslastung für die Netzwerkstapel und die Latenz zwischen Verbindungen. Weitere Informationen zur Leistungsverbesserung finden Sie in den Artikeln Erklärung von Software- und Hardwaretechnologien und Höhere Leistung durch RDMA mit SET.

Erstellen eines NIC-Teams auf Windows Server

Mit dem Wissen darüber, wie die NIC-Teambildung funktioniert, und mit dem Ziel, Ihr Netzwerk zu vereinfachen, sind Sie nun bereit, ein NIC-Team zu erstellen!

Für diese Demonstration wird aufgrund von Einschränkungen der Demo-Umgebung ein NIC-Team auf einer VM erstellt. Das Einrichten eines NIC-Teams auf einem physischen Server ist dasselbe, aber wenn spezifische Schritte für VMs erforderlich sind, werden sie hervorgehoben.

Wie überprüfen Sie, ob NIC-Teaming aktiviert ist?

NIC-Teaming ist in allen Versionen von Windows Server seit 2012 (Server 2012, 2012R2, 2016 und 2019) aktiviert.

Bereitstellung von NIC-Teaming über die GUI

Um zu beginnen, rufen Sie den Server-Manager auf einem Windows Server auf. Stellen Sie sicher, dass Sie mit dem Server verbunden sind, auf dem Sie das NIC-Team konfigurieren möchten.

  1. Klicken Sie zunächst mit der rechten Maustaste auf den Servernamen, auf dem das NIC-Team erstellt werden soll, und wählen Sie NIC-Teaming konfigurieren.
Configure NIC Teaming option in Server Manager

2. Wählen Sie im Bereich Adapter und Schnittstellen die NICs aus, die dem neuen Team hinzugefügt werden sollen. Klicken Sie anschließend mit der rechten Maustaste auf die ausgewählten Adapter und wählen Sie Zu neuem Team hinzufügen.

Add to New Team option in Server Manager

Hinweis: Sie können NIC-Teaming mit einer beliebigen Kombination aus einem oder vielen Adaptern (maximal: 32) und einer oder mehreren Team-Schnittstellen konfigurieren.

3. Geben Sie einen aussagekräftigen Teamnamen ein und konfigurieren Sie Zusätzliche Eigenschaften nach Bedarf. Klicken Sie auf OK, um das Team zu erstellen.

In diesem Beispiel wird das NIC-Team auf einer VM eingerichtet. Daher können der Teaming-Modus oder der Load-Balancing-Modus nicht verwendet werden. Wenn diese Demo auf einem physischen Server ausgeführt würde, würden Sie wahrscheinlich Switch Independent oder LACP verwenden, wenn Sie eine LAG am Switch verwenden.

New Team dialog box

Das NIC-Team sollte jetzt auf dem Windows Server erstellt sein.

Hinzufügen weiterer NICs oder Schnittstellen zum NIC-Team

Sobald erstellt, können Sie dem konfigurierten Team NICs aus demselben NIC-Teaming-Fenster hinzufügen. Klicken Sie dazu mit der rechten Maustaste auf eine verfügbare NIC und wählen Sie Zu Team „<Teamname>“ hinzufügen.

Add to Team “Demo” option

Sie können auch weitere Schnittstellen zu einem Team hinzufügen, indem Sie den Tab Team-Schnittstellen auswählen und dann auf AUFGABEN —> Schnittstelle hinzufügen klicken, wie unten dargestellt.

Add Interface option

Sobald die Eingabe erscheint, geben Sie die zu verwendende VLAN-Nummer und optional einen Namen ein, wie unten gezeigt.

New Team interface dialog box

Bereitstellung von NIC-Teaming über Windows PowerShell

Jetzt, da Sie wissen, wie Sie ein NIC-Team über die GUI einrichten können, schauen wir uns an, wie Sie dies über PowerShell tun können.

Ermitteln der NIC-Namen

Zuerst müssen Sie sich entscheiden, welche NICs Sie dem Team hinzufügen möchten. Genauer gesagt müssen Sie die NIC-Namen herausfinden.

Verwenden Sie das Cmdlet Get-Adapter, um die NIC-Namen zu finden. Führen Sie dieses Cmdlet aus und beachten Sie Ihre Optionen, wie unten gezeigt.

Get-Adapter PowerShell cmdlet

Nachdem Sie die Namen notiert haben, können Sie nun das Team mit PowerShell erstellen! Für diese Demo verwenden wir die NICs Ethernet 3 und 4 für das neue NIC-Team.

Erstellen des NIC-Teams

Jetzt, da Sie die Adapternamen zur Hand haben, müssen Sie nur noch ein weiteres Cmdlet (New-NetLbfoTeam) ausführen. Sie können ein Beispiel für das Ausführen des Cmdlets New-NetLbfoTeam und dessen Ausgabe unten sehen.

Für den Parameter TeamMembers verwenden Sie die zuvor ermittelten NIC-Namen.

In diesem Beispiel ist der TeamingMode auf SwitchIndependent eingestellt. Wenn Sie die Switch-Ports in einen LAG konfigurieren, möchten Sie wahrscheinlich den Wert LACP verwenden. Wenn Sie keinen LAG auf dem Switch verwenden, würden Sie wahrscheinlich SwitchIndependent wählen.

Der Parameterwert Dynamic für LoadBalancingAlgorithm wird verwendet, da dieser Modus die gleichmäßigste Lastverteilung über die Teammitglieder bietet.

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

Nach Abschluss sehen Sie eine neue virtuelle NIC in der Adapterliste von Get-NetAdapter:

New virtual NIC created

NIC-Team in einer VM Hinweise:

– Sie müssen den TeamingMode ‚SwitchIndependent‘ verwenden.
– Sie müssen einen der Address-Hash-Typen für den LoadBalancingAlgorithmus (TransportPorts) verwenden.
– Dynamic Load Balancing würde auf einem physischen Server anstelle von TransportPorts verwendet.*

Hinzufügen weiterer NICs oder Schnittstellen zum NIC-Team

Nachdem Sie das NIC-Team aufgebaut haben, können Sie NICs und Schnittstellen genauso wie in der GUI hinzufügen. Verwenden Sie zum Hinzufügen weiterer NICs zum Team das Cmdlet Add-NetLbfoTeamMember.*.*

Add-NetLbfoTeamMember -Name NIC1 -Team Team1

Sie können auch weitere Team-Schnittstellen mit dem Cmdlet Add-NetLbfoteamNIC hinzufügen.

Add-NetLbfoTeamNIC -Team Team1 -VlanID 42

Zusammenfassung

Sie haben nun gelernt, was NIC Teaming ist, wie es sich auf die Leistung/Verwendung von virtuellen Maschinen/Netzwerkvereinfachung auswirkt und wie Sie es über die GUI oder PowerShell implementieren können.

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