Website-Suche

Wie man Ethernet-Kanalkopplung in Linux einrichtet


Wenn Sie zwei oder mehr Netzwerkschnittstellenkarten (NICs) haben und sich fragen, ob Sie sie zusammen verwenden können, um die Geschwindigkeit zu erhöhen oder Ihre Netzwerkverbindung zuverlässiger zu machen, sind Sie hier richtig.

Dieser Leitfaden erklärt Ethernet-Channel-Bonding (auch NIC-Teaming oder Interface-Bonding genannt) – wie man es einrichtet, wie es funktioniert und wie es Ihnen helfen kann, den Datenverkehr auszugleichen oder Netzwerkausfälle zu verhindern.

Was ist Ethernet-Kanalbündelung?

Einfach ausgedrückt ermöglicht Ethernet-Kanalbündelung das Kombinieren mehrerer physischer Netzwerkkarten (NICs) zu einer einzigen virtuellen NIC (bond0), die eine virtuelle Schnittstelle ist, die den Netzwerkverkehr verwaltet und im Hintergrund mit den physischen Schnittstellen (wie eth1 und eth2) kommuniziert.

Das bekommen Sie daraus:

  • Redundanz: Wenn eine Netzwerkkarte ausfällt (abgesteckt wird oder versagt), läuft Ihr Server weiter und nutzt die andere.
  • Lastverteilung: Der Datenverkehr wird zwischen beiden Netzwerkkarten geteilt, was in einigen Fällen die Leistung verbessern kann.
  • Einzelne IP: Auch wenn Sie zwei Netzwerkkarten haben, benötigen Sie nur eine IP-Adresse für die gebündelte Schnittstelle.

Dieses Setup wird häufig auf Servern, Produktionssystemen oder Netzwerkgeräten verwendet, bei denen Betriebszeit und Leistung entscheidend sind.

Übersicht der Bindungsarten

Es gibt etwa 6 Bonding-Modi in Linux, aber vorerst werden wir uns nur die beiden gebräuchlichsten und praktischsten ansehen:

Modus 0 – Lastverteilung (Round-Robin)

  • Sendet Pakete in der Reihenfolge über alle verfügbaren Schnittstellen (eth1, eth2 usw.).
  • Bietet Ihnen sowohl Redundanz als auch eine Leistungssteigerung.
  • Ideal für ausgeglichenen ausgehenden Verkehr.
  • Hinweis: Ihr Switch muss dies unterstützen (wie LACP oder statische Link-Aggregation).

Modus 1 – Aktiv-Backup

  • Nur eine Netzwerkkarte ist gleichzeitig aktiv.
  • Wenn die aktive Netzwerkkarte ausfällt, übernimmt die andere.
  • Bietet Ihnen hohe Verfügbarkeit (Redundanz), nicht Geschwindigkeit.
  • Keine spezielle Switch-Konfiguration erforderlich.

Voraussetzungen

Bevor wir anfangen, stellen Sie sicher:

  • Sie befinden sich auf einem Red Hat-basierten System (wie RHEL, Alma Linux, Rocky Linux).
  • Sie haben Root-Zugriff oder Sudo-Rechte.
  • Sie haben zwei Netzwerkkarten: eth1 und eth2.
  • Ihr System verwendet network-scripts oder NetworkManager.

(Wenn Sie auf Ubuntu/Debian sind – Bonding wird über Netplan durchgeführt.)

Schritt 1: Laden Sie das Bonding-Kernel-Modul

Bevor Linux zwei oder mehr Netzwerkkarten (NICs) kombinieren kann, muss es ein spezielles Softwarestück laden, das als Bonding-Kernelmodul bezeichnet wird.

Standardmäßig haben die meisten Linux-Systeme dieses Bonding-Modul verfügbar, aber es wird nicht automatisch geladen, es sei denn, man sagt ihm, dass es geladen werden soll.

sudo modprobe bonding

Um sicherzustellen, dass die Bonding-Funktion jedes Mal verfügbar ist, wenn Ihr System startet, müssen Sie sie für das automatische Laden registrieren.

echo "bonding" | sudo tee /etc/modules-load.d/bonding.conf

Um zu überprüfen, ob das Modul erfolgreich geladen wurde, verwenden Sie:

lsmod | grep bonding

Schritt 2: Konfigurieren Sie eth1 und eth2 für Bonding

In diesem Schritt bereiten wir jedes physische Netzwerkinterface (eth1 und eth2) darauf vor, der Bonding-Gruppe beizutreten. Betrachten Sie bond0 als Teamleiter, und diese beiden Interfaces sind seine Teammitglieder (Slaves). Sie werden nicht mehr unabhängig funktionieren – sie werden nur noch über bond0 kommunizieren.

Wir tun dies, indem wir Konfigurationsdateien für jede Schnittstelle erstellen oder bearbeiten.

  • /etc/sysconfig/network-scripts/ifcfg-eth1
  • /etc/sysconfig/network-scripts/ifcfg-eth2

Öffnen Sie nun die Datei ifcfg-eth1 und bearbeiten Sie sie mit der folgenden Konfiguration.

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

Mach dasselbe für ifcfg-eth2.

DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

Ohne diese Konfiguration würde der Kernel nicht wissen, dass eth1 und eth2 zusammenarbeiten sollen. Außerdem sollten eth1 oder eth2 keine IP-Adressen zugewiesen bekommen. Nur bond0 sollte eine IP haben. Andernfalls würde das Betriebssystem verwirrt sein, wenn es versucht, den Datenverkehr zu routen.

Schritt 3: Erstellen Sie die Bond-Schnittstelle (bond0)

Alles klar, bisher hast du Linux gesagt, dass eth1 und eth2 als Slaves agieren sollen, aber Slaves brauchen einen Master, richtig? Dieser Master ist das, was wir hier erstellen: eine gebundene Schnittstelle namens bond0.

Für Lastverteilung (Modus 0) – Erstellen Sie eine Konfigurationsdatei ifcfg-bond0.

vi /etc/sysconfig/network-scripts/ifcfg-bond0

Fügen Sie die folgende Konfiguration hinzu.

DEVICE=bond0
TYPE=Bond
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"

Für Active-Backup (Modus 1) – Ändern Sie einfach die Bonding-Option:

BONDING_OPTS="mode=1 miimon=100"

Je nach Ihrem System:

sudo systemctl restart NetworkManager

Oder, wenn Sie den älteren Netzwerkdienst verwenden:

sudo systemctl restart network

Schritt 4: Überprüfen Sie den Bindungsstatus

Sobald Sie Ihr Bonding-Setup konfiguriert und Ihren Netzwerkdienst neu gestartet haben, möchten Sie überprüfen, ob das Bonding korrekt funktioniert.

watch -n 1 cat /proc/net/bonding/bond0

Beispielausgabe für Modus 0 (Round-Robin):

Bonding Mode: load balancing (round-robin)
Slave Interface: eth1
Slave Interface: eth2
MII Status: up

Beispielausgabe für Modus 1 (Aktiv-Backup):

Bonding Mode: fault-tolerance (active-backup)
Currently Active Slave: eth1
Slave Interface: eth2

Dies zeigt, welche Netzwerkkarte aktiv ist und ob beide Verbindungen hergestellt sind.

Optional: Failover testen (Aktiv-Backup-Modus)

Willst du testen, was passiert, wenn eine Netzwerkkarte ausfällt?

sudo ifconfig eth1 down
eth2 should automatically become active
watch -n 1 cat /proc/net/bonding/bond0

Bring es zurück:

sudo ifconfig eth1 up

Sie werden sehen, wie Linux Schnittstellen automatisch ohne Ausfallzeit wechselt – das ist die Schönheit des Bonding!

Fehlerbehebungstipps

  • Wenn bond0 nicht angezeigt wird, überprüfen Sie Ihre Konfigurationsdateien noch einmal und stellen Sie sicher, dass alle Schnittstellen aktiviert sind.
  • Stellen Sie sicher, dass das Bonding-Modul geladen ist (lsmod | grep bonding).
  • Für Modus 0 erfordern einige Switches Link-Aggregation-Einstellungen auf ihrer Seite.
  • Verwenden Sie ip addr anstelle von ifconfig auf neueren Systemen.

Wie man Ethernet-Kanalbündelung entfernt

Manchmal möchten Sie vielleicht das Bonding entfernen und Ihre NICs wieder einzeln verwenden, vielleicht zum Testen, zur Fehlerbehebung oder weil Sie den Server neu konfigurieren.

sudo systemctl stop NetworkManager
sudo ip link set bond0 down
sudo modprobe -r bonding

Gehe nun und lösche die Konfigurationsdateien, die das Bonding einrichten:

sudo rm /etc/sysconfig/network-scripts/ifcfg-bond0

Bearbeiten Sie also die Konfigurationsdateien für eth1 und eth2, um die Zeilen MASTER und SLAVE zu entfernen und sie wieder als eigenständige Schnittstellen zurückzubringen.

So sollte eine eigenständige ifcfg-eth1-Datei aussehen:

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp

Oder mit einer statischen IP:

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.101
NETMASK=255.255.255.0

Machen Sie dasselbe für eth2.

Sobald alles sauber ist, starten Sie den NetworkManager neu, um die Schnittstellen wieder hochzufahren.

sudo systemctl start NetworkManager

Sie können bestätigen mit:

ip addr

Sie sollten jetzt eth1 und eth2 wieder im Einsatz sehen, und bond0 sollte verschwunden sein.

Fazit

Ethernet-Kanalbündelung ist ein nützliches und einfaches Werkzeug, um sowohl die Netzwerkleistung als auch die Zuverlässigkeit auf Ihren Linux-Systemen zu verbessern. Ganz gleich, ob Sie den Datenverkehr über mehrere Netzwerkschnittstellen ausgleichen oder Redundanz im Falle eines NIC-Ausfalls sicherstellen müssen, ermöglicht Ihnen das Bonding, das Beste aus Ihrer Hardware herauszuholen.

Wenn Sie die Schritte in diesem Leitfaden befolgen, sollten Sie nun in der Lage sein, das Bonding einfach mit zwei Netzwerkkarten zu konfigurieren und je nach Ihren Bedürfnissen zwischen Lastverteilung oder Active-Backup-Modi zu wählen.