NIC Teaming ist die Aggregation oder das Bonding von zwei oder mehr Netzwerkverbindungen zu einer einzigen logischen Verbindung, um Redundanz und hohe Verfügbarkeit zu gewährleisten. Die logische Schnittstelle/Link wird als Team-Interface bezeichnet. Fällt die aktive physische Verbindung aus, springt automatisch eine der Backup- oder reservierten Verbindungen ein und gewährleistet eine ununterbrochene Verbindung zum Server.
Teaming-Terminologien
Bevor wir die Ärmel hochkrempeln, ist es wichtig, sich mit den folgenden Terminologien vertraut zu machen:
- Teamd – Dies ist der nic-Teaming-Daemon, der die libteam-Bibliothek verwendet, um mit Team-Geräten über den Linux-Kernel zu kommunizieren.
- Teamdctl- Dies ist ein Dienstprogramm, das es Benutzern ermöglicht, eine Instanz von teamd zu steuern. Sie können den Portstatus überprüfen und ändern sowie zwischen Backup- und aktivem Zustand wechseln.
- Runner – Dies sind in JSON geschriebene Codeeinheiten, die für die Implementierung verschiedener NIC-Teaming-Konzepte verwendet werden. Beispiele für Runner-Modi sind Round robbin, Load Balancing, Broadcast und Active-Backup.
In diesem Leitfaden wird das NIC-Teaming mit dem Active-Backup-Modus konfiguriert. Dies bedeutet, dass ein Link aktiv bleibt, während die anderen im Standby-Modus sind und als Backup-Links reserviert werden, falls der aktive Link ausfällt.
Beginnen wir ohne viel Aufhebens.
Schritt 1: Installieren Sie den teamd-Daemon in CentOS
Teamd ist der Daemon, der für die Erstellung eines Netzwerkteams verantwortlich ist, das zur Laufzeit als logische Schnittstelle fungiert. Standardmäßig wird er mit CentOS/RHEL 8 installiert, sollte er aber, aus welchen Gründen auch immer, nicht installiert sein, führen Sie den folgenden dnf-Befehl aus, um ihn zu installieren.
$ sudo dnf install teamd
Nach der Installation überprüfen Sie, ob teamd installiert ist, indem Sie den Befehl rpm ausführen:
$ rpm -qi teamd
Schritt 2: Konfigurieren Sie das NIC-Teaming in CentOS
Um das NIC-Teaming zu konfigurieren, werden wir das praktische Tool nmcli verwenden, das für die Verwaltung des NetworkManager-Dienstes verwendet werden kann. In meinem System habe ich 2 NIC-Karten, die ich verbinden oder kombinieren werde, um eine logische Team-Schnittstelle zu erstellen: enp0s3
und enp0s8
. Dies kann in Ihrem Fall anders sein.
Um die aktiven Netzwerkschnittstellen zu bestätigen, führen Sie aus:
$ nmcli device status
Die Ausgabe bestätigt die Existenz von 2 aktiven Netzwerkverbindungen. Um weitere Informationen über die Schnittstellen, wie z.B. die UUID, zu erhalten, führen Sie den folgenden Befehl aus:
$ nmcli connection show
Um einen Network Teaming Link oder eine Schnittstelle zu erstellen, die unsere logische Verbindung sein wird, löschen wir die vorhandenen Netzwerkschnittstellen. Danach erstellen wir Slave-Schnittstellen unter Verwendung der gelöschten Schnittstellen und verknüpfen sie mit dem Teaming-Link.
Führen Sie die folgenden Befehle unter Verwendung der jeweiligen UUIDs aus, um die Links zu löschen:
$ nmcli connection delete e3cec54d-e791-4436-8c5f-4a48c134ad29$ nmcli connection delete dee76b4c-9alb-4f24-a9f0-2c9574747807
Wenn Sie jetzt die Schnittstellen überprüfen, werden Sie feststellen, dass sie nicht mehr verbunden sind und keine Verbindung zum Server herstellen. Im Grunde genommen wird Ihr Server vom Rest des Netzwerks isoliert.
$ nmcli device status
Als Nächstes erstellen wir eine Teamschnittstelle namens team0
im Active-Backup-Runner-Modus. Wie bereits erwähnt, verwendet der aktive Backup-Runner-Modus eine aktive Schnittstelle und reserviert die anderen als Redundanz für den Fall, dass die aktive Verbindung ausfällt.
$ nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
Um die der Schnittstelle team0
zugewiesenen Attribute anzuzeigen, führen Sie folgenden Befehl aus:
$ nmcli connection show team0
Perfekt! Zu diesem Zeitpunkt haben wir nur eine Schnittstelle, nämlich die team0
Schnittstelle wie gezeigt.
$ nmcli connection show
Als nächstes konfigurieren Sie die IP-Adresse für die team0
Schnittstelle wie gezeigt mit dem Befehl nmcli. Vergewissern Sie sich, dass Sie die IP-Adressen gemäß dem IP-Adressierungsschema für das Subnetz & Ihres Netzwerks zuweisen.
Erstellen Sie anschließend die Slave-Links und verbinden Sie die Slaves mit dem Team-Link:
$ nmcli con add type team-slave con-name team0-slave0 ifname enp0s3 master team0$ nmcli con add type team-slave con-name team0-slave1 ifname enp0s8 master team0
Überprüfen Sie den Status der Links erneut, und Sie werden feststellen, dass die Slave-Links jetzt aktiv sind.
$ nmcli connection show
Als nächstes deaktivieren und aktivieren Sie den Team-Link. Dadurch wird die Verbindung zwischen den Slave-Links und dem Team-Link aktiviert.
$ nmcli connection down team0 && nmcli connection up team0
Nächstes Beispiel: Überprüfen Sie den Status der Team-Link-Verbindung wie gezeigt.
$ ip addr show dev team0
Wir sehen, dass der Link mit der korrekten IP-Adressierung, die wir zuvor konfiguriert haben, aktiv ist.
Um weitere Details über den Team-Link abzurufen, führen Sie den Befehl aus:
$ sudo teamdctl team0 state
Aus der Ausgabe können wir ersehen, dass beide Links (enp0s3
und enp0s8
) aktiv sind und dass der aktive Link enp0s8
ist.
Schritt 3: Testen der Netzwerk-Teaming-Redundanz
Um unseren Active-Backup-Teaming-Modus zu testen, trennen wir den derzeit aktiven Link – enp0s3
– und prüfen, ob der andere Link anspringt.
$ nmcli device disconnect enp0s3$ sudo teamdctl team0 state
Wenn Sie den Status der Teaming-Schnittstelle überprüfen, werden Sie feststellen, dass der Link enp0s8
aktiviert wurde und Verbindungen zum Server bedient. Dies bestätigt, dass unsere Einrichtung funktioniert!
Schritt 4: Löschen einer Netzwerk-Teaming-Schnittstelle
Wenn Sie die Teaming-Schnittstelle/den Link löschen und zu den Standard-Netzwerkeinstellungen zurückkehren möchten, müssen Sie zunächst den Teaming-Link deaktivieren:
$ nmcli connection down team0
Nächste Schritte: Löschen Sie die Slaves.
$ nmcli connection delete team0-slave0 team0-slave1
Schließlich löschen Sie die Teaming-Schnittstelle.
$ nmcli connection delete team0
Zu diesem Zeitpunkt sind alle Schnittstellen ausgefallen und Ihr Server ist nicht erreichbar. Um Ihre Netzwerkschnittstellen zu aktivieren und die Konnektivität wiederherzustellen, führen Sie die folgenden Befehle aus:
$ sudo ifconfig enp0s3 up$ sudo ifconfig enp0s8 up$ sudo systemctl restart NetworkManager
Schlussfolgerung
NIC-Teaming bietet eine hervorragende Lösung für Netzwerkredundanz. Mit 2 oder mehr Netzwerkschnittstellen können Sie eine Teaming-Schnittstelle in einem beliebigen Runner-Modus konfigurieren, um eine hohe Verfügbarkeit zu gewährleisten, falls eine Verbindung versehentlich ausfällt. Wir hoffen, dass Sie diesen Leitfaden hilfreich fanden. Melden Sie sich bei uns und lassen Sie uns wissen, wie Ihre Erfahrungen waren.