Netzwerk-Bonding mit LACP: Ausfallsicherheit und Bandbreite bündeln
AI generated
$
/etc
Linux
Netzwerk-Bonding mit LACP
Ausfallsicherheit und Bandbreite bündeln

Ein einzelner Netzwerk-Port ist auf produktiven Servern ein struktureller Single Point of Failure, egal wie zuverlässig die restliche Hardware ist. Linux Bonding bündelt mehrere physische Interfaces zu einem logischen Bond und schafft damit, je nach gewähltem Modus, entweder Ausfallsicherheit, gebündelte Bandbreite oder beides gleichzeitig.

10 Min. Lesezeit Linux Networking High Availability

1. Warum ein einzelner Netzwerk-Port nicht ausreicht

Server mit nur einer aktiven Netzwerkkarte sind gegenüber Kabelbruch, defekter Netzwerkkarte oder einem ausfallenden Switch-Port völlig ungeschützt, unabhängig davon, wie redundant Storage oder Stromversorgung ausgelegt sind. Gerade bei Datenbankservern oder Application-Servern, die permanent erreichbar sein müssen, ist ein solcher Single Point of Failure in der Netzwerkanbindung ein oft übersehenes Risiko, das im Vergleich zu redundanten Netzteilen oder RAID-Arrays deutlich seltener konsequent adressiert wird.

Linux Bonding, umgesetzt über den Kernel-Treiber bonding, fasst zwei oder mehr physische Netzwerkschnittstellen zu einem einzigen logischen Interface zusammen, das nach außen wie eine gewöhnliche Netzwerkkarte erscheint. Je nach gewähltem Modus übernimmt der Bond entweder reine Ausfallsicherheit, bei der eine Schnittstelle als Backup bereitsteht, oder echte Lastverteilung über mehrere physische Links hinweg, wodurch sich die nutzbare Bandbreite gegenüber einer einzelnen Verbindung erhöht.

2. Die Bonding-Modi im Überblick: active-backup, LACP und Co.

Der Linux Bonding Treiber unterstützt sieben Modi, von denen in der Praxis vor allem drei relevant sind. Mode 1, active-backup, betreibt zu jedem Zeitpunkt nur eine Schnittstelle aktiv, während die übrige als reine Reserve bereitsteht und bei Ausfall der aktiven Verbindung übernimmt. Dieser Modus benötigt keine spezielle Switch-Konfiguration, weil aus Sicht des Switches immer nur eine MAC-Adresse an einem Port aktiv kommuniziert, was ihn zur einfachsten und robustesten Wahl für reine Redundanz macht.

Mode 4, 802.3ad, auch als LACP bekannt, verhandelt über das Link Aggregation Control Protocol mit dem angeschlossenen Switch eine echte Bündelung mehrerer Links zu einer Link Aggregation Group. Anders als active-backup verteilt LACP den Datenverkehr aktiv über alle beteiligten Links, wodurch sich sowohl Ausfallsicherheit als auch aggregierte Bandbreite ergeben, allerdings nur, wenn der Switch selbst LACP unterstützt und entsprechend konfiguriert wurde. Balance-rr, Mode 0, verteilt Pakete zwar auch über alle Links im Round-Robin-Verfahren, ohne jedoch mit dem Switch zu verhandeln, was in der Praxis häufig zu Problemen mit Paketreihenfolge führt und für die meisten Produktivszenarien ungeeignet ist.


# Verfuegbare Bonding Modi und aktuellen Status eines Bonds pruefen
cat /sys/class/net/bond0/bonding/mode
cat /proc/net/bonding/bond0

3. Switch-Konfiguration: Warum LACP ohne Gegenstelle nicht funktioniert

LACP ist ein Verhandlungsprotokoll zwischen zwei Endpunkten, weshalb der angeschlossene Switch zwingend eine passende Port-Channel- oder Link-Aggregation-Group-Konfiguration benötigt, die dieselben physischen Ports zu einer logischen Gruppe zusammenfasst. Ohne diese Gegenkonfiguration sendet der Server zwar LACP-Kontrollpakete, erhält aber keine Antwort, und der Bond bleibt in einem Zustand, in dem einzelne Slave-Interfaces als nicht aggregierbar markiert werden, obwohl der Bond selbst aktiv erscheint.

Zusätzlich muss die LACP-Rate zwischen Server und Switch übereinstimmen: Der schnelle Modus sendet alle Sekunde ein Kontrollpaket, der langsame Modus alle dreißig Sekunden. Eine Abweichung führt zwar meist nicht zum kompletten Ausfall der Aggregation, verzögert aber die Erkennung eines ausgefallenen Links erheblich, was gerade bei Datenbankservern mit strengen Verfügbarkeitsanforderungen ein unterschätztes Risiko darstellt. Ebenso wichtig ist eine konsistente Hash-Policy auf beiden Seiten, da Switch und Server sonst unterschiedliche Kriterien für die Lastverteilung verwenden und die Bündelung faktisch wirkungslos bleibt.

4. Bond-Konfiguration mit netplan auf Ubuntu Servern

Auf modernen Ubuntu Server Installationen wird Netzwerkkonfiguration standardmäßig über netplan verwaltet, das YAML-Definitionen in systemd-networkd oder NetworkManager übersetzt. Ein LACP-Bond wird dabei als eigener Interface-Typ definiert, der die beteiligten physischen Schnittstellen referenziert und die Bonding-Parameter, insbesondere Modus, LACP-Rate und Hash-Policy für die Lastverteilung, explizit festlegt.

Die transmit-hash-policy bestimmt, nach welchem Kriterium ausgehende Pakete auf die einzelnen physischen Links verteilt werden. layer2 verwendet lediglich MAC-Adressen und führt bei wenigen Kommunikationspartnern häufig zu unausgewogener Lastverteilung, während layer3+4 zusätzlich IP-Adressen und Ports einbezieht und damit für Server mit vielen parallelen TCP-Verbindungen, etwa Datenbank- oder Webserver, die deutlich gleichmäßigere Verteilung liefert.


# /etc/netplan/01-bond0.yaml
network:
  version: 2
  ethernets:
    enp1s0:
      dhcp4: no
    enp2s0:
      dhcp4: no
  bonds:
    bond0:
      interfaces: [enp1s0, enp2s0]
      addresses: [192.168.10.20/24]
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100
        transmit-hash-policy: layer3+4
      routes:
        - to: default
          via: 192.168.10.1

5. MII-Monitoring und schnelle Ausfallerkennung

Der Bonding-Treiber überwacht die Verfügbarkeit der einzelnen Slave-Interfaces standardmäßig über MII-Monitoring, das den physischen Link-Status der Netzwerkkarte in einem konfigurierbaren Intervall abfragt. Der Parameter mii-monitor-interval, im obigen Beispiel auf 100 Millisekunden gesetzt, bestimmt dabei, wie schnell ein Linkausfall erkannt wird, wobei zu aggressive Werte unter 50 Millisekunden in der Praxis gelegentlich zu Fehlalarmen bei kurzen, harmlosen Link-Flaps führen können.

Alternativ unterstützt der Bonding-Treiber ARP-Monitoring, bei dem gezielt ARP-Anfragen an definierte Zieladressen gesendet werden, um nicht nur den physischen Link-Status, sondern die tatsächliche Erreichbarkeit über den jeweiligen Slave zu prüfen. Dieser Ansatz erkennt zusätzlich Probleme, die MII-Monitoring nicht sieht, etwa einen fehlerhaft konfigurierten Switch-Port, der zwar elektrisch Link zeigt, aber keinen Verkehr weiterleitet, ist im Gegenzug aber komplexer in der Konfiguration und für die meisten Standardszenarien nicht notwendig.

6. Den Bond-Status im laufenden Betrieb überwachen

Die Datei /proc/net/bonding/bond0 liefert den vollständigen Status eines aktiven Bonds, inklusive des aktuell verwendeten Modus, der MII-Status jedes einzelnen Slaves und bei LACP zusätzlich Details zum Aggregations-Status wie Partner-MAC-Adresse und Aggregator-ID. Ein Slave, der als down markiert ist, obwohl die physische Verkabelung intakt scheint, deutet häufig auf eine fehlerhafte Switch-seitige Konfiguration hin und sollte zuerst dort geprüft werden, bevor die lokale Konfiguration in Frage gestellt wird.

Für dauerhaftes Monitoring in Produktionsumgebungen empfiehlt sich die Einbindung des Bond-Status in ein zentrales Monitoring-System, etwa über einen Node Exporter für Prometheus, der die Anzahl aktiver Slaves und deren Zustand regelmäßig auswertet. Ein Alert sollte bereits ausgelöst werden, sobald ein einzelner Slave ausfällt, auch wenn der Bond insgesamt weiterhin funktionsfähig bleibt, da ein unbemerkter Single-Link-Betrieb die eigentlich vorgesehene Redundanz stillschweigend aufhebt.


# Vollstaendigen Status inklusive LACP Partner Informationen anzeigen
cat /proc/net/bonding/bond0

# Anzahl aktiver Slaves für ein einfaches Monitoring Skript extrahieren
grep -c "MII Status: up" /proc/net/bonding/bond0

7. MLAG: Wenn auch der Switch selbst kein Single Point of Failure sein darf

Klassisches LACP bündelt zwar mehrere physische Links, setzt aber voraus, dass alle beteiligten Ports an einem einzigen Switch enden, wodurch der Switch selbst zum verbleibenden Single Point of Failure wird. Multi-Chassis Link Aggregation, kurz MLAG, löst dieses Problem, indem zwei physisch getrennte Switches sich untereinander so koordinieren, dass sie sich gegenüber dem Server als ein einziger logischer LACP-Partner verhalten, obwohl die beiden Kabel des Bonds an unterschiedlichen Geräten enden.

Aus Sicht des Linux-Servers ändert sich an der bonding-Konfiguration selbst nichts, Mode 4 mit denselben Parametern bleibt bestehen, da die gesamte Koordination zwischen den beiden Switches über einen proprietären, herstellerspezifischen Synchronisationskanal erfolgt, der dem Server verborgen bleibt. Für produktive Server-Cluster mit strengen Verfügbarkeitsanforderungen lohnt sich MLAG deutlich, weil es den Ausfallschutz von der Netzwerkkarte über den Link bis hinauf zum Switch selbst durchgängig macht, statt an der letzten Stelle vor dem eigentlichen Netzwerk-Backbone abzureißen.

8. Typische Fehlkonfigurationen und wie sie den Ausfallschutz unbemerkt aushebeln

Der häufigste Fehler ist eine Diskrepanz zwischen der Switch-seitigen Port-Channel-Konfiguration und dem lokalen Bonding-Modus: Wird auf Server-Seite LACP konfiguriert, während der Switch die Ports als statisches EtherChannel ohne LACP-Verhandlung behandelt, kann der Bond zwar funktionieren, verhält sich aber unvorhersehbar bei Linkausfällen, weil beide Seiten unterschiedliche Annahmen über den Zustand der Aggregation treffen.

Ein zweiter Klassiker ist das Bündeln von Netzwerkkarten unterschiedlicher Geschwindigkeit oder unterschiedlichen Duplex-Modus in einem Bond, was bei den meisten Modi entweder zu einer impliziten Begrenzung auf die langsamere Schnittstelle führt oder in Kombination mit LACP von manchen Switches komplett abgelehnt wird. Ebenso unterschätzt wird eine falsch gewählte Hash-Policy: Wird layer2 verwendet, obwohl der gesamte Verkehr über einen einzigen vorgelagerten Router mit fester MAC-Adresse läuft, landet der komplette Datenverkehr trotz mehrerer physischer Links faktisch auf nur einem von ihnen, was die vermeintlich gebündelte Bandbreite in der Praxis nicht liefert.

9. Wann welcher Modus sinnvoll ist: Entscheidungshilfe für die Praxis

Für Umgebungen ohne Kontrolle über die Switch-Konfiguration oder mit strikten Anforderungen an maximale Einfachheit bleibt active-backup die pragmatischste Wahl, da es ohne jede switch-seitige Anpassung funktioniert und dennoch vollständige Ausfallsicherheit gegen den Ausfall eines einzelnen Links oder Switch-Ports bietet. Wo zusätzlich zur Redundanz auch höhere Bandbreite benötigt wird, etwa bei Storage-Netzwerken mit hohem Durchsatzbedarf, führt an LACP kein Weg vorbei, vorausgesetzt die Switch-Infrastruktur unterstützt es und die Konfiguration wird sorgfältig zwischen Netzwerk- und Server-Team abgestimmt.

Broadcast- und balance-rr-Modi haben in modernen Produktionsumgebungen kaum noch praktische Relevanz, da sie entweder unnötige Redundanz-Overhead erzeugen oder, im Fall von balance-rr, Probleme mit der Paketreihenfolge verursachen können, die insbesondere TCP-basierte Anwendungen wie Datenbankverbindungen empfindlich stören. Für die überwiegende Mehrheit produktiver Magento-Hosting-Umgebungen liefert die Kombination aus 802.3ad mit layer3+4 Hash-Policy das beste Verhältnis aus Ausfallsicherheit, Bandbreite und Vorhersagbarkeit.

Modus Bezeichnung Switch-Konfiguration nötig Nutzen
Mode 0 balance-rr Nein Round-Robin über alle Links, anfällig für Paketreihenfolge-Probleme
Mode 1 active-backup Nein Reine Ausfallsicherheit, ein aktiver Link, ein Backup
Mode 2 balance-xor Statisches EtherChannel empfohlen Statische Lastverteilung nach Hash-Policy ohne LACP-Verhandlung
Mode 4 802.3ad / LACP Ja, LACP-fähiger Port-Channel Dynamische Aggregation mit Ausfallsicherheit und Bandbreite
Mode 6 balance-alb Nein Adaptive Lastverteilung ohne Switch-Unterstützung, seltener eingesetzt

Mironsoft

Server-Administration, Docker-Hosts und Performance-Tuning

Linux-Server, die niemand im Team richtig versteht?

Wir übernehmen Setup, Absicherung und Performance-Tuning von Linux-Servern und Docker-Hosts für Magento-Deployments, dokumentiert und nachvollziehbar statt gewachsen und unklar.

Server-Audit

Bestehende Server-Konfiguration auf Sicherheitslücken und Performance-Bremsen prüfen.

Docker-Host-Setup

Produktionsreife Docker-Umgebungen für Magento sauber aufsetzen und absichern.

Monitoring & Tuning

Ressourcenverbrauch messen und Systemd, Kernel und Dienste gezielt optimieren.

10. Zusammenfassung

Netzwerk-Bonding

Einfachste Redundanz

active-backup, funktioniert ohne jede Switch-Konfiguration

Bandbreite plus Redundanz

802.3ad LACP mit Port-Channel auf dem Switch

Kritischer Parameter

transmit-hash-policy layer3+4 für gleichmäßige Lastverteilung

Größter Fallstrick

Abweichende LACP-Konfiguration zwischen Server und Switch

11. FAQ: Netzwerk-Bonding

1Brauche ich für active-backup eine besondere Switch-Konfiguration?
Nein, active-backup funktioniert ohne jede switch-seitige Anpassung, da immer nur eine Schnittstelle aktiv kommuniziert und der Switch nur eine gewöhnliche einzelne Verbindung sieht.
2Erhöht LACP tatsächlich die verfügbare Bandbreite einer einzelnen Verbindung?
Nein, eine einzelne TCP-Verbindung nutzt normalerweise nur einen der gebündelten Links, da die Hash-Policy pro Verbindung einen festen Pfad wählt. Bandbreite steigt vor allem bei vielen parallelen Verbindungen.
3Was passiert, wenn der Switch LACP nicht unterstützt, der Server aber Mode 4 konfiguriert hat?
Der Bond bleibt funktionsunfähig oder instabil, da LACP ein Verhandlungsprotokoll ist. Ohne Gegenstelle werden Slave-Interfaces als nicht aggregierbar markiert und der Bond liefert keine zuverlässige Verbindung.
4Wie schnell erkennt Linux Bonding einen ausgefallenen Link?
Das hängt vom konfigurierten mii-monitor-interval ab, typischerweise zwischen 100 und 200 Millisekunden. Kürzere Intervalle erkennen Ausfälle schneller, erhöhen aber das Risiko von Fehlalarmen bei kurzen Link-Flaps.
5Welche Hash-Policy eignet sich für Datenbankserver mit vielen Verbindungen?
layer3+4 berücksichtigt IP-Adressen und Ports und verteilt Verbindungen dadurch deutlich gleichmäßiger über alle Links als layer2, das nur auf MAC-Adressen basiert.
6Kann ich Netzwerkkarten unterschiedlicher Geschwindigkeit bündeln?
Technisch möglich, aber nicht empfehlenswert, da die meisten Modi die effektive Geschwindigkeit auf die langsamere Schnittstelle begrenzen und manche Switches gemischte Geschwindigkeiten bei LACP komplett ablehnen.
7Wie prüfe ich, ob ein Bond tatsächlich alle Links aktiv nutzt?
Die Datei /proc/net/bonding/bond0 zeigt den MII-Status jedes Slaves sowie bei LACP zusätzlich Aggregator-ID und Partner-Informationen, anhand derer sich eine korrekte Aggregation überprüfen lässt.
8Was ist der Unterschied zwischen MII-Monitoring und ARP-Monitoring?
MII-Monitoring prüft nur den physischen Link-Status der Netzwerkkarte, während ARP-Monitoring die tatsächliche Erreichbarkeit über gezielte ARP-Anfragen testet und damit auch Fehlkonfigurationen erkennt, die MII-Monitoring übersieht.
9Muss LACP-Rate zwischen Server und Switch identisch sein?
Eine Übereinstimmung wird dringend empfohlen, da eine Abweichung zwar meist keinen kompletten Ausfall verursacht, aber die Erkennung eines ausgefallenen Links deutlich verzögert.
10Lohnt sich Bonding auch bei virtuellen Maschinen?
Ja, sofern der Hypervisor mehrere physische Uplinks bereitstellt und die virtuelle Netzwerkkarte entsprechend angebunden ist. Bei reinen Cloud-Instanzen ohne Zugriff auf die zugrunde liegende Netzwerkinfrastruktur ist Bonding auf Gast-Ebene meist wirkungslos.