GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So konfigurieren Sie die Netzwerkschnittstellenbindung unter RHEL 8 / CentOS 8 Linux

Network Interface Bonding besteht aus der Aggregation von zwei oder mehr physischen Netzwerkschnittstellen, die als slaves bezeichnet werden , unter einer logischen Schnittstelle namens master oder bond Schnittstelle. Je nach Verbindungsmodus kann eine solche Einrichtung nützlich sein, um Fehlertoleranz und/oder Lastausgleich zu erreichen. In diesem Tutorial lernen wir die verfügbaren Bonding-Modi kennen und wie man ein Netzwerk-Bonding unter RHEL 8 / CentOS 8 erstellt.

In diesem Tutorial lernen Sie:

  • Was ist Network Interface Bonding
  • So konfigurieren Sie Netzwerkschnittstellen-Bonding auf RHEL 8 / CentOS 8
  • Was sind die verschiedenen Bindungsmodi


Der Bond-Status, wie er vom Linux-Kernel gesehen wird

Softwareanforderungen und verwendete Konventionen

Softwareanforderungen und Linux-Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder verwendete Softwareversion
System RHEL 8 / CentOS 8
Software Das Dienstprogramm nmtui zur Steuerung des NetworkManager-Daemons. Die Anwendung ist in einer minimalen Systeminstallation enthalten.
Andere Root-Rechte zum Ändern von Systemeinstellungen
Konventionen # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Welcher Verbindungsmodus?

Es gibt grundsätzlich 7 Bindungsmodi, die wir verwenden können:

Round Robin

Pakete werden gleichmäßig in sequentieller Reihenfolge an alle Slave-Schnittstellen (von der ersten bis zur letzten) verteilt. Dieser Modus bietet sowohl Lastausgleich als auch Fehlertoleranz, benötigt jedoch Unterstützung auf den Switches.

Aktive Sicherung

Es wird nur die primäre Slave-Schnittstelle verwendet. Wenn es fehlschlägt, wird an seiner Stelle ein anderer Slave verwendet. Es bietet nur Fehlertoleranz; es gibt keine besonderen Anforderungen.

XOR (exklusives ODER)

Abhängig vom Hash der Quell- und Ziel-MAC-Adressen, berechnet mit der folgenden Formel:

, werden Pakete übertragen und einem der Slave-Interfaces zugewiesen
[(source MAC address XOR’d with destination MAC address) modulo slave count]

Dieser Modus bietet sowohl Fehlertoleranz als auch Lastenausgleich.

Ausstrahlung

Wenn dieser Modus verwendet wird, werden alle Pakete auf allen Slave-Schnittstellen übertragen, wodurch Fehlertoleranz, aber kein Lastausgleich bereitgestellt wird.

802.3ad

Dieser Modus nutzt die IEEE 802.3ad Link Aggregation, die auf den Switches unterstützt werden muss. Erstellt Aggregationsgruppen mit denselben Geschwindigkeits- und Duplexeinstellungen. Sendet und empfängt auf allen Slaves in der aktiven Gruppe. Bietet sowohl Lastausgleich als auch Fehlertoleranz.

Adaptive Lastverteilung beim Senden

Ausgehende Pakete werden abhängig von ihrer Auslastung über die Slave-Schnittstellen übertragen, und eingehender Datenverkehr wird vom aktuellen Slave empfangen. Fällt dieser aus, übernimmt ein anderer Slave dessen MAC-Adresse. Dieser Modus bietet Fehlertoleranz und Lastausgleich.

Adaptives Load-Balancing

Funktioniert wie das Adaptive Transmit Load Balancing , stellt aber auch inbound zur Verfügung Ausgleich über ARP (Address Resolution Protocol) Verhandlung.

Die Umwelt

Für dieses Tutorial arbeiten wir an einem virtualisierten Red Hat Enterprise Linux 8 System. Um unsere Netzwerkbindung zu erstellen, werden wir mit nmtui arbeiten , ein Dienstprogramm für die Textbenutzeroberfläche, das zur Steuerung von NetworkManager verwendet wird Dämon. Die gleichen Operationen können jedoch mit nmcli durchgeführt werden Befehlszeilendienstprogramm oder über die GUI mit dem Network Manager Connection Editor .

Das System verfügt derzeit über zwei ethernet Links, enp1s0
und enp7s0 :

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: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff:ff:ff
3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:32:37:9b brd ff:ff:ff:ff:ff:ff

Erstellen der Netzwerkverbindung

Als erstes löschen wir die aktuell vorhandenen Konfigurationen für die Slave-Schnittstellen. Dies ist nicht unbedingt erforderlich, da wir solche Konfigurationen an Ort und Stelle bearbeiten könnten, aber um von vorne zu beginnen, werden wir auf diese Weise vorgehen. Rufen wir nmtui auf :

$ sudo nmtui

Aus dem Hauptmenü wählen wir „Verbindung bearbeiten“ und bestätigen.



Nmtui-Hauptmenü.

Wir wählen zuerst die zu löschende Verbindung in der Liste aus und gehen dann weiter zu <Delete> . Abschließend bestätigen wir:



Nmtui-Verbindungsliste.

Abschließend bestätigen wir, dass wir die Verbindung löschen möchten:



Nmtui-Bestätigungsaufforderung zum Löschen einer bestehenden Verbindung.

Wir wiederholen den Vorgang für die andere Schnittstelle. Sobald wir alle vorhandenen Konfigurationen entfernt haben, können wir die bond erstellen Schnittstelle. Wir wählen <Add> im Menü und aus der Liste der Verbindungstypen wählen wir Bond :



Auswahlmenü für den Nmtui-Verbindungstyp.

Es öffnet sich ein neues Fenster, in dem wir unsere Schnittstelle konfigurieren können. In diesem Fall verwende ich, auch wenn es völlig optional ist, bond0 sowohl als Profil- als auch als Gerätename. Der wichtigste Teil ist jedoch die Auswahl der Slave-Schnittstellen, die dem Bond hinzugefügt werden sollen. In den BOND Slaves Menü auf <Add> klicken , und wählen Sie den Typ der hinzuzufügenden Slave-Verbindung aus, in diesem Fall ethernet .



Nmtui-Menü zur Auswahl des Slave-Verbindungstyps.

Geben Sie den Gerätenamen ein, wählen Sie <OK> und bestätigen. Der Vorgang muss für jede der Slave-Schnittstellen wiederholt werden.



Nmtui-Schnittstelle zum Bearbeiten der Slave-Verbindung.

Im nächsten Schritt wählen Sie den bonding mode aus :Für dieses Tutorial verwenden wir Active Backup ein. Wir wählen die entsprechende Option im Menü und geben im Feld „Primär“ den Namen der primären Slave-Schnittstelle an. Zum Schluss wählen wir einfach <OK> um die Erstellung der Bindungsschnittstelle zu bestätigen.



Das Network-Bonding-Setup.

Wir können jetzt das nmtui verlassen Anwendung. Um zu überprüfen, ob die Bindungserstellung erfolgreich war, können wir den folgenden Befehl ausführen:

$ ip addr show bond0

Das Ergebnis ist folgendes:

4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.164/24 brd 192.168.122.255 scope global dynamic noprefixroute bond0
       valid_lft 3304sec preferred_lft 3304sec
    inet6 fe80::48:d311:96c1:89dc/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Die ifcfg Konfigurationsdateien, die sich auf unsere Konfiguration beziehen, wurden innerhalb von /etc/sysconfig/network-scripts generiert Verzeichnis:

$ ls /etc/sysconfig/network-scripts
ifcfg-bond0  ifcfg-enp1s0  ifcfg-enp7s0

Um den aktuellen Status von bond0 anzuzeigen Schnittstelle, wie sie vom Kernel gesehen wird, können wir ausführen:

$ cat /proc/net/bonding/bond0

Die Ausgabe des Befehls ist unten aufgeführt:

Ethernet Channel Bonding Driver: v3.7.1 (April
27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: enp1s0 (primary_reselect always)
Currently Active Slave: enp1s0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: enp1s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:cb:25:82
Slave queue ID: 0

Slave Interface: enp7s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:32:37:9b
Slave queue ID: 0

Wir können sehen, wie beide Slave-Schnittstellen aktiv sind, aber nur enp1s0 aktiv ist, da es als primärer Slave verwendet wird.

Testen der aktiven Sicherung

Wie können wir überprüfen, ob unsere Konfiguration funktioniert? Wir können die primäre Slave-Schnittstelle herunterfahren und sehen, ob die Maschine immer noch auf Pings reagiert. Um die Schnittstelle herunterzufahren, führen wir Folgendes aus:

$ sudo ip link set enp1s0 down

Reagiert die Maschine noch? Lassen Sie es uns überprüfen:

$ ping -c3 192.168.122.164
PING 192.168.122.164 (192.168.122.164) 56(84) bytes of data.
64 bytes from 192.168.122.164: icmp_seq=1 ttl=64 time=0.385 ms
64 bytes from 192.168.122.164: icmp_seq=2 ttl=64 time=0.353 ms
64 bytes from 192.168.122.164: icmp_seq=3 ttl=64 time=0.406 ms

--- 192.168.122.164 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 88ms
rtt min/avg/max/mdev = 0.353/0.381/0.406/0.027 ms

Es tut! Mal sehen, wie sich der Status der Anleihe geändert hat:

Ethernet Channel Bonding Driver: v3.7.1 (April
27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: enp1s0 (primary_reselect always)
Currently Active Slave: enp7s0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: enp1s0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: 52:54:00:cb:25:82
Slave queue ID: 0

Slave Interface: enp7s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:32:37:9b
Slave queue ID: 0

Wie Sie sehen können, da wir die primäre Slave-Schnittstelle heruntergefahren haben (enp1s0 ), der andere Slave, enp7s0 wurde als Backup verwendet und ist jetzt das aktuell aktive. Außerdem der Link Failure Count für den primären Slave erhöht und ist jetzt 1 .

Schlussfolgerungen

In diesem Tutorial haben wir gelernt, was ein Netzwerk-Bonding ist und welche Möglichkeiten es gibt, ein Netzwerk-Bonding zu konfigurieren. Außerdem haben wir mit Active Backup eine Netzwerkverbindung zwischen zwei Ethernet-Schnittstellen erstellt Modus. Mit Red Hat Enterprise Linux 7 wurde ein neues Konzept eingeführt, network teaming . In einigen Aspekten ähnelt Teaming dem Bonding, ist aber anders implementiert und hat mehr Funktionen. Wir werden es in zukünftigen Artikeln behandeln.


Cent OS
  1. CentOS / RHEL 7:So ändern Sie die Namen von Netzwerkschnittstellen

  2. CentOS / RHEL 7 :So erstellen Sie ein Network Bonding (NIC-Teaming) mit nmcli

  3. CentOS / RHEL 7 :So konfigurieren Sie Network Bonding oder NIC-Teaming

  4. So konfigurieren Sie das Netzwerk-Teaming in CentOS/RHEL 7

  5. So konfigurieren Sie Schnittstellen im Promiscuous-Modus unter CentOS/RHEL 7 (dauerhaft)

So konfigurieren Sie eine statische IP-Adresse unter RHEL 8 / CentOS 8 Linux

So konfigurieren Sie eine virtuelle Netzwerkschnittstelle auf RHEL 8 / CentOS 8

So konfigurieren Sie den NTP-Server unter RHEL 8 / CentOS 8 Linux

Konfigurieren Sie das NIC-Bonding (Network Interface Card) in CentOS 7 / RHEL 7

So konfigurieren Sie die IP-Adresse in CentOS 7 / RHEL 7 und CentOS 6 / RHEL 6

So ändern Sie den Namen der Netzwerkschnittstelle in eth0 unter CentOS 8 / RHEL 8