# Link Aggregation

Link Aggregation (kurz: LA) bezeichnet im Rahmen der Netzwerktechnik verschiedene Verfahren zur Bündelung mehrerer physischer LAN-Schnittstellen zu einem logischen Kanal zum Zwecke der Erhöhung des Datendurchsatzes und der Ausfallsicherheit gegenüber einer einfachen Netzwerkschnittstelle. Eine verbreitete und herstellerübergreifende Implementierung stellt das Link Aggregation Control Protocol (LACP) dar, welches im Rahmen der IEEE als IEEE 802.3ad, seit dem Jahr 2008 als IEEE 802.1AX bezeichnet, normiert ist.

## Geschichte und Bezeichnungen

Die ersten Implementierungen dieser Technik stammen von Kalpana (heute Cisco) und dienten ursprünglich ausschließlich der Erhöhung des Datendurchsatzes zwischen zwei Ethernet-Switches, welche ebenfalls von Kalpana erfunden wurden. Heutige Implementierungen können auch Server und andere Systeme wie Network Attached Storage (NAS) per Link Aggregation mit höherem Durchsatz an eine Netzwerkstruktur anbinden.
Je nach Hersteller oder Kontext werden für die Bündelung von Ethernet-Schnittstellen verschiedene Ausdrücke als Synonyme für Link Aggregation benutzt:
* Link Aggregation (LA) und Link Aggregation Control Protocol (LACP) als normierter Begriff bei IEEE
* Bündelung als deutscher Begriff für die Ethernet-Kanal-Bündelung
* Bonding im Linux-Umfeld
* Etherchannel bei Cisco
* Port Aggregation bei Hewlett-Packard
* Trunking bei Brocade, Sun Microsystems und einigen anderen Herstellern
* Teaming bei Novell Netware und Microsoft Windows
Neben LACP bestehen noch proprietäre Lösungen zur dynamischen Bündelung, zum Beispiel das PAgP von Cisco, MESH von HP. Weiterhin existieren noch statische Link-Aggregation-Verfahren, die alle mehr oder weniger proprietär sind und somit nicht herstellerübergreifend eingesetzt werden können.

## Allgemeines

Allgemein werden mehrere physische Ethernet-Schnittstellen, welche alle als Fullduplex-Verbindungen ausgeführt sein müssen, zu einer logischen Endpunktverbindung zwischen zwei Geräten zusammengeschaltet, beispielsweise einem PC mit zwei Ethernet-Schnittstellen, welche parallel mit zwei Ports an einem Netzwerk-Switch verbunden werden. Üblicherweise wird LA bei Datenraten von 1 GBit/s und darüber bei Gigabit-Ethernet eingesetzt.
Durch die parallelen Verbindungen kann, der Anzahl der zusammengefassten Verbindungen entsprechend, der Gesamtdurchsatz höher sein. Ein weiterer Vorteil ist eine erhöhte Verfügbarkeit dieser Art von Verbindung. So können bei einigen Verfahren eine oder mehrere physische Schnittstellen ausfallen, ohne dass der logische Kanal unterbrochen wird, solange zumindest noch eine physische Verbindung besteht. Lediglich der Datendurchsatz vermindert sich entsprechend den fehlenden Verbindungen.

## Bündelungsverfahren

* Roundrobin: Hier werden alle zur Verfügung stehenden Leitungen abwechselnd der Reihe nach benutzt.
* DA-Trunking: Hier wird anhand des Modulo der Destination-MAC-Adresse die elementare Schnittstelle gewählt.
* SA-Trunking: Hier wird anhand des Modulo der Source-MAC-Adresse die elementare Schnittstelle gewählt.
* SA-DA-Trunking: Hier wird anhand des Modulo der Source-MAC-Adresse und der Destination-MAC-Adresse die elementare Schnittstelle gewählt.
* Adaptives Trunking: Hier wird erst bei 100 % Auslastung der ersten elementaren Schnittstelle eine weitere zugeschaltet.
* Dynamisches Trunking ist im Standard Link Aggregation Control Protocol (LACP) und bei proprietären Verfahren wie PAgP möglich.

## Grundlegende Implementierung

Die grundlegende Implementierung einer Kanalbündelung zwischen zwei Ethernet-Switches kommt mit erstaunlich geringen Änderungen (im Vergleich zu einem normalen Switch) aus. Natürlich muss das Management Interface zur Definition des Trunks erweitert werden. Dann ist die Art und Weise, wie ein Switch seine SAT (engl. Source Address Table – Tabelle mit den MAC-Adressen der Absender) erlernt, betroffen, und schließlich werden Broadcasts und Pakete, die an unbekannte Ziel-MAC-Adressen gerichtet sind, vom Trunk gesondert behandelt.
* Management Interface: Es müssen Menüstrukturen zur Verwaltung der Trunks geschaffen werden.
* Adress-Lernphase: Empfängt ein Switch auf einem Trunk-Port eine unbekannte Absenderadresse, so wird diese nicht automatisch dem Adressstapel (SAT) dieses Ports zugeordnet, vielmehr versucht der Switch allen Mitgliedern des Trunks eine gleiche Netzlast zuzuordnen und wird daher neue Absenderadressen gleichmäßig auf alle zum Trunk gehörenden Ports verteilen. So erhält also beispielsweise der Port, der momentan die wenigsten Einträge in seiner SAT führt, die neue Adresse. Je nach Implementierung kommen auch andere Verteilungsstrategien zum Einsatz, siehe Abschnitt Bündelungsverfahren.
* Broadcasts und unbekannte Adressen: Diese werden bei einem Trunk nicht über alle Ports geschickt, sondern pro Trunk nur über eine Leitung, im Allgemeinen wird der Port mit der niedrigsten Port-Nummer gewählt. Je nach Implementierung werden zur Auswahl des Ports auch andere Strategien genutzt, siehe Abschnitt Bündelungsverfahren.
Interessanterweise sind keine weiteren Maßnahmen nötig, um eine einfache Implementierung zu realisieren. Die Implementierung der Transportmechanismen (cut through, store and forward usw.) benötigt keine Änderung. Dennoch ist diese grundlegende Implementierung bei weitem nicht optimal und eignet sich eigentlich nur für das Koppeln zweier Netze. Ein Nachteil besteht darin, dass je MAC-Adresse nur ein Port des Trunks benutzt wird – für eine einzelne Station bedeutet es, dass sie keine Vorteile hat – nur das Netz insgesamt profitiert. Weiterhin kann es vorkommen, dass die aktivsten Stationen zufällig alle dem gleichen Port zugeordnet sind, so dass folglich die Last nicht gleichmäßig innerhalb des Trunks verteilt wird. Auch gibt es Bündelungsverfahren, die leistungsstarke Server anbinden können. All diese Fakten haben dazu geführt, dass viele Hersteller verschiedene, aber auch weiterentwickelte Implementierungen anbieten. Diese sind in der Regel nicht miteinander kompatibel. Diese Inkompatibilitäten haben dazu geführt, dass sich das IEEE mit dem Problem befasst und das Link Aggregation Control Protocol (LACP, IEEE 802.3ad) spezifiziert hat.