Link Aggregation Control Protocol
Abkürzung: LACP
Was ist das Link Aggregation Control Protocol?
Das Link Aggregation Control Protocol, abgekürzt LACP, ist ein standardisiertes Netzwerkprotokoll zur dynamischen Bündelung mehrerer physischer Ethernet-Verbindungen zu einer einzigen logischen Verbindung. Diese logische Verbindung wird als Link Aggregation Group (LAG) oder EtherChannel bezeichnet. LACP ist im IEEE-Standard 802.1AX definiert, der aus dem früheren 802.3ad hervorging. Das Protokoll automatisiert die Bildung, Aushandlung und Überwachung von Link-Bündeln und ersetzt die fehleranfällige manuelle Konfiguration statischer EtherChannels.
Warum Link Aggregation? Bandbreite und Redundanz
Ein einzelner physischer Link zwischen zwei Switches oder zwischen Switch und Server hat eine feste maximale Bandbreite. Steigt der Datenverkehr über diese Grenze, kommt es zu Überlastung und Paketverlusten. Eine einfache Erhöhung auf den nächstschnelleren Port ist oft nicht wirtschaftlich oder physisch unmöglich. Mehrere parallele Links ohne Aggregation würden vom Spanning Tree Protocol blockiert, um Schleifen zu verhindern, und blieben ungenutzt.
LACP fasst mehrere physische Ports zu einer logischen Schnittstelle zusammen, deren Gesamtbandbreite der Summe der Einzelbandbreiten entspricht. Vier Gigabit-Ports bilden eine logische 4-GBit-Verbindung. Zusätzlich zur Kapazitätssteigerung erhöht die Aggregation die Ausfallsicherheit. Fällt ein Mitgliedsport aus, verteilt LACP den Datenverkehr automatisch auf die verbleibenden Links, ohne dass die logische Verbindung unterbrochen wird.
Funktionsweise von LACP
LACP baut auf dem Austausch spezieller Steuerpakete auf, den LACPDUs (LACP Data Units). Zwei Geräte, die als Actor und Partner bezeichnet werden, tauschen diese LACPDUs periodisch aus. Sie informieren sich gegenseitig über ihre System-Priorität, ihre Port-Prioritäten und ihre Bereitschaft zur Aggregation. Anhand dieser Informationen entscheiden beide Seiten, welche Ports zu einem Bündel zusammengefasst werden können und welche Ports als Hot-Standby bereitstehen.
Das Protokoll definiert zwei Betriebsmodi für die Ports. Im aktiven Modus sendet der Port selbstständig LACPDUs, um einen Partner zur Bildung eines Bündels aufzufordern. Im passiven Modus wartet der Port auf eingehende LACPDUs und antwortet darauf, initiiert aber nicht selbst. Eine funktionierende LACP-Aushandlung erfordert mindestens eine Seite im aktiven Modus. Beidseitig passiv konfigurierte Ports werden nie ein Bündel bilden.
Aushandlungsparameter und Trunk-Bildung
Jedes Gerät besitzt eine System-Priorität, einen 16-Bit-Wert, der mit einem Standardwert von 32768 vorkonfiguriert ist. Das Gerät mit der niedrigeren System-Priorität übernimmt die Kontrolle über die Auswahl der aktiven Ports im Bündel. Jeder Port hat zudem eine Port-Priorität und eine Port-Nummer. Bei der Entscheidung, welche Ports aktiv gebündelt werden und welche als Standby verbleiben, wählt der übergeordnete Actor die Ports mit den niedrigsten Port-Prioritäten aus.
Die maximale Anzahl aktiver Ports in einem Bündel wird durch die Konfiguration des Aggregators bestimmt. Nicht alle physikalischen Ports einer LAG müssen aktiv sein. Überschüssige Ports verbleiben im Standby-Zustand und werden erst bei Ausfall eines aktiven Ports zugeschaltet. LACP prüft kontinuierlich die Verfügbarkeit der Partner-Ports und passt das Bündel bei Änderungen dynamisch an.
Abgrenzung zu statischem EtherChannel und PAgP
LACP ist nicht die einzige Methode, um EtherChannels zu bilden, aber die standardisierte und herstellerunabhängige.
- Statisches EtherChannel: Der Administrator definiert manuell, welche Ports ein Bündel bilden, ohne dass ein Protokoll die Partner überprüft. Fehlkonfigurationen wie unterschiedliche VLANs oder Geschwindigkeiten bleiben unentdeckt und können zu Schleifen und Paketverlusten führen. LACP validiert die Kompatibilität der Ports und verhindert solche Fehler.
- PAgP (Port Aggregation Protocol): Ein proprietäres Cisco-Protokoll, das funktional ähnlich arbeitet, aber nur zwischen Cisco-Geräten einsetzbar ist. PAgP kennt die Modi "auto" (passiv) und "desirable" (aktiv). LACP als offener Standard ist in heterogenen Umgebungen die bevorzugte Wahl und wird von praktisch allen Switch- und Server-Betriebssystemen unterstützt.
Load Balancing und Verteilung des Datenverkehrs
LACP selbst definiert nicht den Verteilungsalgorithmus für den Datenverkehr auf die Mitgliedsports. Die Verteilung übernimmt ein lokaler Hashing-Algorithmus des Switches, der anhand von Kriterien wie MAC-Adressen, IP-Adressen oder TCP/UDP-Ports entscheidet, über welchen physischen Link ein bestimmtes Paket gesendet wird. Gängige Verfahren verrechnen Quell- und Ziel-IP-Adressen, um eine gleichmäßige Lastverteilung zu erreichen. Der Algorithmus muss auf beiden Seiten des Bündels identisch sein, um eine korrekte Flusszuordnung sicherzustellen.
Konfiguration und Verwaltung
Die Konfiguration von LACP erfolgt in der Regel auf der logischen Schnittstelle des EtherChannels und den physikalischen Mitgliedsports. Der Administrator definiert einen Port-Channel, weist diesem eine eindeutige Nummer zu und konfiguriert die gewünschten Betriebsparameter wie Trunk-Modus oder native VLANs. Anschließend werden die physikalischen Interfaces diesem Kanal zugewiesen und der LACP-Modus aktiv oder passiv gesetzt.
Auf Cisco-Geräten kommt der Befehl channel-group [nummer] mode active oder mode passive zum Einsatz, auf Linux-Servern steuert der Bonding-Treiber mit dem Modus 802.3ad die LACP-Funktionalität. Server-seitig muss der Switch auf der anderen Seite des Bündels ebenfalls LACP aktiv haben, damit die Aushandlung gelingt. Bei Fehlern zeigen Befehle wie show lacp neighbor oder show etherchannel summary den Status der Aushandlung und die Mitgliedsports an.
Fehlerszenarien und typische Probleme
Eine häufige Fehlerquelle ist eine inkonsistente Konfiguration der Ports im Bündel. Alle Mitglieder eines EtherChannels müssen dieselbe Geschwindigkeit, denselben Duplex-Modus, denselben VLAN-Modus und dasselbe native VLAN haben. Unterschiedliche Einstellungen führen dazu, dass LACP den Port nicht in das Bündel aufnimmt und im Suspend- oder Standalone-Modus belässt. Auch die System-Prioritäten sollten in größeren Umgebungen bewusst gesetzt werden, um eine vorhersagbare Master-Auswahl zu erreichen.
Ein weiteres Problem ist die asymmetrische Lastverteilung bei ungleicher Anzahl von Ports in einem Stack oder bei virtuellen Switches. LACP kann mit Multi-Chassis-Lösungen wie vPC (Virtual Port Channel) oder MC-LAG kombiniert werden, um Port-Bündel über mehrere physische Chassis hinweg aufzubauen und gleichzeitig die volle Redundanz und Kapazität zu nutzen.
Einsatzszenarien und Best Practices
LACP kommt überall dort zum Einsatz, wo hohe Bandbreite und Ausfallsicherheit zwischen zwei Geräten benötigt werden. Typische Szenarien sind Uplinks von Access- zu Distribution-Switches, Verbindungen zwischen Core-Switches und die Anbindung von Servern und Storage-Systemen an das Netzwerk. In Rechenzentren und virtualisierten Umgebungen werden die physischen Links eines Servers mit LACP gebündelt und die logische Verbindung in mehrere virtuelle Links für verschiedene virtuelle Maschinen aufgeteilt.
Als Best Practice gilt die Verwendung von LACP im aktiven Modus auf beiden Seiten, um die schnellstmögliche Aushandlung und eine dynamische Rekonfiguration bei Änderungen zu ermöglichen. Die Anzahl der Ports pro Bündel sollte in Zweierpotenzen gewählt werden (2, 4, 8), um eine optimale Lastverteilung mit den gängigen Hashing-Algorithmen zu erzielen. Die physischen Mitglieder sollten über verschiedene Switch-Chips oder Linecards verteilt werden, um die Ausfallsicherheit gegen Hardwaredefekte auf einer einzelnen Komponente zu erhöhen.