|
|
(205 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| '''Link Aggregation''' - Bündelung mehrerer physischer LAN-Schnittstellen zu einem logischen Kanal | | '''Link Aggregation Control Protocol''' (LACP) - [[Ethernet-Schnittstelle]]n nach IEEE 802.1AX-2008 zu einem logischen Übertragungskanal zusammenfassen ([[Link Aggregation]]) |
|
| |
|
| == Beschreibung == | | == Beschreibung == |
| ; Link Aggregation (LA)
| | == Dynamic Link Aggregation == |
| Verfahren zur [[Bündelung (Datenübertragung)|Bündelung]] mehrerer physischer [[Local Area Network|LAN]]-[[Schnittstelle]]n zu einem logischen Kanal
| | [[Datei:Link-Aggregation-OSI-Layer.png|mini|400px|Einordnung ins [[OSI-Modell]] ]] |
|
| |
|
| ; Zweck | | ; IEEE 802.1AX-2008 |
| * Erhöhung des Datendurchsatzes | | * früher IEEE 802.3ad |
| * Erhöhung der Ausfallsicherheit
| |
|
| |
|
| ; Implementierung | | ;Link Aggregation Sublayer |
| 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.
| | * Data Link Layer (Sicherungsschicht) |
| | * zwischen dem MAC Client und MAC Sublayern |
|
| |
|
| ; Proprietäre Lösungen | | ; Link Aggregation Control Protocol Data Unit (LACPDU) |
| * Neben LACP bestehen noch proprietäre Lösungen zur dynamischen Bündelung, zum Beispiel das [[PAgP]] von [[Cisco]], MESH von [[HP Inc.|HP]]. | | * Austausch von Informationen bezüglich der Link-Aggregation |
| * Weiterhin existieren noch statische Link-Aggregation-Verfahren, die alle mehr oder weniger proprietär sind und somit nicht herstellerübergreifend eingesetzt werden können. | | * zwischen den Mitgliedern einer Link Aggregation Group (LAG) |
|
| |
|
| ; Link Aggregation''' nach '''IEEE 802.1AX-2008
| | === Link Aggregation Group (LAG) === |
| '''Link Aggregation''' nach '''IEEE 802.1AX-2008''' (früher '''IEEE 802.3ad''') ist ein Standard zur parallelen Bündelung von mehreren Netzwerkverbindungen.
| | ; Vorteile LACP gegenüber statischer Link Aggregation |
| * Vorteile einer Link Aggregation gegenüber einer herkömmlichen Verbindung über ein einzelnes Kabel sind eine '''höhere Verfügbarkeit''' sowie eine '''höhere mögliche Übertragungsgeschwindigkeit''' (abhängig von den jeweiligen [[Link Aggregation Lastverteilungs-Algorithmen|Lastverteilungs-Algorithmen]]).
| | Automatisches Recovery |
| * In diesem Artikel finden Sie Grundlagen Informationen zu Link Aggregation und LACP, ein konkretes Beispiel dazu im Artikel [[Link Aggregation beim Modular Server]]. | | * bei Ausfällen von einzelnen physischen Links |
| | * Solange zumindest ein physischer Link vorhanden ist, bleibt die LAG Verbindung aufrecht |
|
| |
|
| === Entwicklung ===
| | ; Datenverkehr wird frame-weise über die physischen Links verteilt |
| ; Frühe Implementierungen | | * Alle Frames, die zu einer bestimmten Datenkommunikation gehören, werden über dieselbe physische Verbindung übertragen |
| Die ersten Implementierungen dieser Technik stammen von Kalpana (heute [[Cisco_Systems|Cisco]])
| | * Das gewährleistet die Zustellung der einzelnen Frames einer Datenkommunikation in der richtigen Reihenfolge |
| * Dienten ausschließlich der Erhöhung des Datendurchsatzes | |
| * zwischen zwei [[Ethernet]]-[[Switch (Netzwerktechnik)|Switches]]
| |
|
| |
|
| ; Aktuelle Implementierungen | | ; Ausfall eines physischen Links wird selbst dann erkannt, wenn die Punkt-zu-Punkt Verbindung über einen Media Konverter läuft und damit der Link-Status am Switchport auf ''Up'' bleibt |
| Können auch Server und andere Systeme wie [[Network Attached Storage]] (NAS) per ''Link Aggregation'' mit höherem Durchsatz an eine Netzwerkstruktur anbinden.
| | * LACPDUs bleiben auf dieser Verbindung aus, damit wird dieser Link aus der LAG entfernt |
| | ** Somit gehen darüber keine Pakete verloren |
|
| |
|
| === Bezeichnung === | | ; Geräte können sich gegenseitig die LAG Konfiguration bestätigen |
| Je nach Hersteller oder Kontext werden für die Bündelung von Ethernet-Schnittstellen verschiedene Bezeichnungen als [[Synonymie|Synonym]]e für Link Aggregation benutzt:
| | * Bei statischer Link Aggregation werden Konfigurations- oder Verkabelungsfehler oft nicht so schnell erkannt |
| | |
| | === Voraussetzungen === |
| | [[Datei:Link-Aggregation-Grundlagen.png|mini|400px|Links einer Link-Aggregation-Group müssen parallele Punkt-zu-Punkt Verbindungen sein]] |
| | ; Identische Datenrate |
| | ; Parallele Punkt-zu-Punkt Verbindungen |
| | * Endpunkt immer genau ein Switch oder Server |
| | |
| | === Bündelungsverfahren === |
| {| class="wikitable sortable options" | | {| class="wikitable sortable options" |
| |- | | |- |
| ! Option !! Beschreibung | | ! Option !! Beschreibung |
| |- | | |- |
| | Link Aggregation (LA) </br> Link Aggregation Control Protocol (LACP) || Normierter Begriff bei IEEE | | | Roundrobin || Alle zur Verfügung stehenden Leitungen abwechselnd der Reihe nach nutzen |
| |- | | |- |
| | Bündelung || Deutscher Begriff für die [[Ethernet]]-Kanal-[[Bündelung (Datenübertragung)|Bündelung]] | | | DA-Trunking || Anhand des Modulo der Destination-MAC-Adresse die elementare Schnittstelle wählen |
| |- | | |- |
| | Bonding || [[Linux]] | | | SA-Trunking || Anhand des Modulo der Source-MAC-Adresse die elementare Schnittstelle wählen |
| |- | | |- |
| | [[Etherchannel]] || [[Cisco Systems|Cisco]] | | | SA-DA-Trunking || Anhand des Modulo der Source-MAC-Adresse und der Destination-MAC-Adresse die elementare Schnittstelle wählen |
| |- | | |- |
| | Port Aggregation || [[Hewlett-Packard]] | | | Adaptives Trunking || Erst bei 100 % Auslastung der ersten elementaren Schnittstelle eine weitere zuschalten |
| |- | | |- |
| | Trunking || Brocade, [[Sun Microsystems]] und einigen anderen Herstellern | | | Dynamisches Trunking || ''Link Aggregation Control Protocol'' (LACP) und bei proprietären Verfahren wie ''PAgP'' möglich |
| |-
| |
| | [[Teaming]] || Novell Netware und Microsoft Windows
| |
| |} | | |} |
|
| |
|
| == Allgemeines == | | === Aktives und passives LACP === |
| [[Datei:Link Aggregation1.svg|mini|300px|Ein PC ist mittels zweier Ethernet-Verbindungen und der Link Aggregation mit einem zentralen Switch verbunden]]
| | ; Port konfigurieren |
|
| |
|
| Mehrere physische Ethernet-Schnittstellen werden zu einer logischen Endpunktverbindung zwischen zwei Geräten zusammengeschaltet
| | {| class="wikitable sortable options" |
| * Fullduplex-Verbindungen erforderlich
| |
| * 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.
| |
| | |
| == Eigenschaften ==
| |
| [[Datei:Link-Aggregation-OSI-Layer.png|thumb|500px|Im Netzwerk-Stack ist der Link Aggregation Sublayer innerhalb des Data Link Layers (Sicherungsschicht) implementiert, konkret zwischen dem MAC Client und MAC Sublayern]]
| |
| | |
| Eine Link Aggregation Group (LAG) nach IEEE 802.1AX-2008 (früher IEEE 802.3ad) hat folgende Eigenschaften:
| |
| * [http://www.ieee802.org/3/hssg/public/apr07/frazier_01_0407.pdf IEEE 802.3ad Link Aggregation (LAG) what it is, and what it is not] (Präsentation von Howard Frazier und anderen, Ottawa 17. April 2007)
| |
| * LAG bietet ein automatisches Recovery bei Ausfällen von einzelnen physischen Links.
| |
| * Solange zumindest ein physischer Link vorhanden ist, bleibt die LAG Verbindung aufrecht.
| |
| * Der Datenverkehr wird frameweise über die physischen Links verteilt.
| |
| * Alle Frames, die zu einer bestimmten Datenkommunikation gehören, werden aber über dieselbe physische Verbindung (Kabel) übertragen.
| |
| * Das gewährleistet die Zustellung der einzelnen Frames einer Datenkommunikation in der richtigen Reihenfolge (verhindert misordering).
| |
| | |
| === Verteilung des Datenverkehrs ===
| |
| Link Aggregation erlaubt die Verteilung von Ethernet Frames auf alle verfügbaren physischen Links einer LAG.
| |
| * Damit übersteigt der mögliche Datendurchsatz die Datenrate eines einzelnen physischen Links.
| |
| | |
| Für die Verteilung (Frame Distributor) definiert der IEEE Standard allerdings keine konkreten Algorithmen.
| |
| | |
| ; Vorgaben
| |
| * Die Reihenfolge von Frames einer bestimmten Datenkommunikation darf nicht vertauscht werden.
| |
| * Frames dürfen nicht dupliziert werden.
| |
| | |
| Das Original-Zitat aus dem Kapitel ''5.2.4 Frame Distributor'' beschreibt das folgendermaßen:
| |
| :<cite>This standard does not mandate any particular distribution algorithm(s); however, any distribution algorithm shall ensure that, when frames are received by a Frame Collector as specified in 5.2.3, the algorithm shall not cause</cite>
| |
| ::<cite>a) Misordering of frames that are part of any given conversation, or</cite>
| |
| ::<cite>b) Duplication of frames.</cite>
| |
| :<cite>The above requirement to maintain frame ordering is met by ensuring that all frames that compose a given conversation are transmitted on a single link in the order that they are generated by the MAC Client; hence, this requirement does not involve the addition (or modification) of any information to the MAC frame, nor any buffering or processing on the part of the corresponding Frame Collector in order to reorder frames.</cite>
| |
| | |
| Die Qualität, wie gut die einzelnen Frames verteilt werden und wie hoch der praktische mögliche Datendurchsatz steigt, hängt somit von der konkreten Implementierung der Link Aggregation in einem Switch bzw. Treiber ab.
| |
| * FreeBSD verwendet dazu beispielsweise eine Hash des Protokoll Headers.
| |
| * Der Hash beinhaltet dabei Ethernet/MAC Quell- und Zieladressen, falls verfügbar ein [[VLAN Grundlagen#Tagged VLANs|VLAN-tag]], sowie IPv4/IPv6 Quell- und Zieladressen.
| |
| | |
| siehe auch [[Lastverteilungs-Algorithmen]]
| |
| | |
| == Bündelungsverfahren ==
| |
| {| class="wikitable sortable" | |
| |- | | |- |
| ! Option !! Beschreibung | | ! Konfiguration !! Beschreibung |
| |-
| |
| | 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. | | | Aktiv || '''Bevorzugt LACPDU''' |
| | * Spricht das Protokoll |
| | * Gleichgültig ob die Gegenstelle ''Passive LACP'' hat oder nicht |
| | * ''a preference to speak regardless'' |
| |- | | |- |
| | SA-DA-Trunking || Hier wird anhand des Modulo der Source-MAC-Adresse und der Destination-MAC-Adresse die elementare Schnittstelle gewählt. | | | Passiv || '''Bevorzugt keine LACPDU''' |
| |-
| | * Nur wenn die Gegenstelle ''Active LACP'' hat |
| | Adaptives Trunking || Hier wird erst bei 100 % Auslastung der ersten elementaren Schnittstelle eine weitere zugeschaltet.
| | * überträgt der Port LACPDUs |
| |-
| | * ''preference not to speak unless spoken to'' |
| | Dynamisches Trunking || ist im Standard ''Link Aggregation Control Protocol'' (LACP) und bei proprietären Verfahren wie ''PAgP'' möglich.
| |
| |} | | |} |
|
| |
|
| == Grundlegende Implementierung == | | <noinclude> |
| Die grundlegende Implementierung einer Kanalbündelung zwischen zwei Ethernet-Switches kommt mit erstaunlich geringen Änderungen (im Vergleich zu einem normalen Switch) aus.
| | == Anhang == |
| * Natürlich muss das Management Interface zur Definition des Trunks erweitert werden.
| | === Siehe auch === |
| * Dann ist die Art und Weise, wie ein Switch seine SAT (engl. {{lang|en|Source Address Table}} – Tabelle mit den MAC-Adressen der Absender) erlernt, betroffen, und schließlich werden [[Broadcast]]s und Pakete, die an unbekannte Ziel-MAC-Adressen gerichtet sind, vom Trunk gesondert behandelt.
| | {{Special:PrefixIndex/Link Aggregation}} |
| | * [[T2600G/L2/Switching/LAG]] |
| | * [[Bonding]] |
| | * [[Link Aggregation/Algorithmen]] |
|
| |
|
| * Management Interface: Es müssen Menüstrukturen zur Verwaltung der Trunks geschaffen werden.
| | ==== Sicherheit ==== |
| * 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.
| | ==== Dokumentation ==== |
| * So erhält also etwa der Port, der momentan die wenigsten Einträge in seiner SAT führt, die neue Adresse.
| | ===== RFC ===== |
| * Je nach Implementierung kommen auch andere Verteilungsstrategien zum Einsatz, siehe Abschnitt ''Bündelungsverfahren''.
| | ===== Man-Page ===== |
| * 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.
| | ===== Info-Pages ===== |
| * Je nach Implementierung werden zur Auswahl des Ports auch andere Strategien genutzt, siehe Abschnitt ''Bündelungsverfahren''.
| | ==== Links ==== |
| | | ===== Projekt ===== |
| Interessanterweise sind keine weiteren Maßnahmen nötig, um eine einfache Implementierung zu realisieren.
| | ===== Weblinks ===== |
| * Die Implementierung der Transportmechanismen ({{lang|en|cut through}}, {{lang|en|store and forward}} usw.) benötigt keine Änderung.
| | # [http://standards.ieee.org/getieee802/ IEEE 802.x Standards (LAN)] |
| * Dennoch ist diese grundlegende Implementierung bei weitem nicht optimal und eignet sich eigentlich nur für das Koppeln zweier Netze.
| | #: IEEE Standard beschreibt LACP in 5.4 Link Aggregation Control Protocol (LACP) |
| * 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.
| | # [http://www.thomas-krenn.com/de/wiki/Link_Aggregation_und_LACP_Grundlagen Link Aggregation und LACP Grundlagen] (Thomas Krenn Wiki) |
| * 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.
| | # [http://www.cisco.com/en/US/tech/tk389/tk213/technologies_tech_note09186a0080094714.shtml Etherchannel und Load Balancing bei Cisco] |
| * Auch gibt es Bündelungsverfahren, die leistungsstarke Server anbinden können.
| | # [ftp://ftp.hp.com/pub/networking/software/6400-5300-4200-3400-MgmtCfg-Oct2006-59906050-Chap13.pdf Port Trunking bei Hewlett-Packard] |
| * All diese Fakten haben dazu geführt, dass viele Hersteller verschiedene, aber auch weiterentwickelte Implementierungen anbieten.
| | # [http://www.ieee802.org/3/hssg/public/apr07/frazier_01_0407.pdf IEEE 802.3ad Link Aggregation (LAG) what it is, and what it is not] (Präsentation von Howard Frazier und anderen, Ottawa 17. April 2007) |
| * 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.
| |
| | |
| == Lastverteilungs-Algorithmen ==
| |
| [https://www.thomas-krenn.com/de/wiki/Link_Aggregation Link Aggregation] nach IEEE 802.1AX-2008 (früher IEEE 802.3ad) ermöglicht die [https://www.thomas-krenn.com/de/wiki/Link_Aggregation_und_LACP_Grundlagen#Verteilung_des_Datenverkehrs Verteilung von Netzwerk-Traffic über mehrere Links]. Der Standard gibt im Kapitel 5.2.4 Frame Distributor allerdings keine genauen Vorgaben wie die Ethernet Frames verteilt werden müssen. | |
| | |
| In diesem Artikel zeigen wir wie die diversen Hersteller die Frame Verteilung des ausgehenden Traffics implementieren. Diese Informationen erleichtern Ihnen die richtige Konfiguration Ihrer Komponenten für eine effektive Lastverteilung des Netzwerk-Traffics.
| |
| | |
| === 3Com ===
| |
| 3Com beschreibt im Kapitel Load Sharing Criteria for Link Aggregation Groups des Switch 4500G Family Configuration Guide die möglichen Kritierien zur Lastverteilung. Sie können z.B. beim 3com 4500G eine der folgenden Kriterien (oder eine beliebige Kombination davon) auswählen:[https://www.thomas-krenn.com/de/wiki/Link_Aggregation_Lastverteilungs-Algorithmen#cite_note-1 [1]] * MAC addresses carried in packets
| |
| * IP addresses carried in packets
| |
| * Port numbers carried in packets
| |
| | |
| Konkret gibt es die folgenden möglichen Kriterien:
| |
| * Use a source IP address alone.
| |
| * Use a destination IP address alone.
| |
| * Use a source MAC address alone.
| |
| * Use a destination MAC address alone.
| |
| * Combine a source IP address and a destination IP address.
| |
| * Combine a source IP address and a source port number.
| |
| * Combine a destination IP address and a destination port number.
| |
| * Combine any two or all three of the following elements: ingress port number, source MAC address, and destination MAC address.
| |
|
| |
|
| === Cisco ===
| |
| ; Cisco Switche unterstützen je nach Modell bis zu neun unterschiedliche Frame Distribution Types.
| |
| * Diese können Sie über das distribution-type Kommando konfigurieren.
| |
|
| |
| Zu den unterstützten Frame Distribution Type zählen:[https://www.thomas-krenn.com/de/wiki/Link_Aggregation_Lastverteilungs-Algorithmen#cite_note-2 [2]]
| |
| * src-mac — Source MAC addresses
| |
| * dst-mac — Destination MAC addresses
| |
| * src-dst-mac — Source and destination MAC addresses
| |
| * src-ip — Source IP addresses
| |
| * dst-ip — Destination IP addresses
| |
| * src-dst-ip — Source and destination IP addresses (Default)
| |
| * src-port — Source Layer 4 port
| |
| * dst-port — Destination Layer 4 port
| |
| * src-dst-port — Source and destination Layer 4 port
| |
|
| |
| Im Infiniband-Bereich gibt es einen weiteren Modus:[https://www.thomas-krenn.com/de/wiki/Link_Aggregation_Lastverteilungs-Algorithmen#cite_note-3 [3]]
| |
| * round robin
| |
|
| |
| === Intel Modular Server Ethernet Switch ===
| |
| Der Intel Modular Server Ethernet Switch verwendet eine MAC-basierte Lastverteilung:[https://www.thomas-krenn.com/de/wiki/Link_Aggregation_Lastverteilungs-Algorithmen#cite_note-4 [4]] * für bekannten Unicast: <br/><div style="margin-left:1cm;margin-right:0cm;">Selected_trunk_member = (6_LSB_Src_MAC Xor 6_LSB_Dst_MAC) % number_of_trunk_members_in_trunk_ID</div>
| |
| * für unbekannten Unicast/Multicast/Broadcast: <br/><div style="margin-left:1cm;margin-right:0cm;">Selected_trunk_member = (3_LSB_Src_MAC Xor 3_LSB_Dst_MAC) % number_of_trunk_members_in_trunk_ID</div>
| |
|
| |
| 6_LSB und 3_LSB stehen jeweils für die sechs bzw. drei 'Least Significant Bits' (also die letzten sechs bzw. drei Bits). Die Funktionsweise einer solchen MAC-basierten Lastverteilung sind [https://www.thomas-krenn.com/de/wiki/Link_Aggregation_Lastverteilungs-Algorithmen#Beispiel_MAC-based_load_balancing weiter unten] im Bereich Nortel erklärt.
| |
|
| |
| === Nortel ===
| |
| Nortel bietet Link Aggregation unter der Bezeichnung [http://en.wikipedia.org/wiki/Multi-link_trunking Multi-Link Trunking (MLT)]. Bei den Ethernet Routing Switches der 5000 Series können Sie zwischen folgenden Load-Balancing Alorithmen wählen:[https://www.thomas-krenn.com/de/wiki/Link_Aggregation_Lastverteilungs-Algorithmen#cite_note-5 [5]]
| |
| * MAC-based (basic) load balancing
| |
| * IP-based (advanced) load balancing
| |
|
| |
| Nortel verwendet dabei folgenden Algorithmus:
| |
|
| |
| <div style="margin-left:1cm;margin-right:0cm;">{(A XOR B) MOD x}</div>
| |
|
| |
| Die Variablen A und B haben dabei folgende Bedeutungen: * im MAC-based (basic) load balancing mode: <br/><div style="margin-left:1cm;margin-right:0cm;">A und B stehen für die letzten drei (least significant) Bits in der Quell- und Ziel-MAC-Adresse. </div><br/><div style="margin-left:1cm;margin-right:0cm;">x steht für die Anzahl der aktiven MLT Links.</div>
| |
| * im IP-based (advanced) load balancing mode <br/><div style="margin-left:1cm;margin-right:0cm;">A und B stehen für die letzten drei (least significant) Bits in der Quell- und Ziel-IP-Adresse. </div><br/><div style="margin-left:1cm;margin-right:0cm;">x steht für die Anzahl der aktiven MLT Links.</div>
| |
|
| |
| === Beispiel MAC-based load balancing ===
| |
| In diesem Beispiel mit vier aktiven Links werden Daten von der folgenden Quell- zur Ziel-MAC-Adresse übertragen:
| |
| * Quell-MAC-Adresse: 0x0000A4F8B321 - das letzte Byte ist 0x21 (= Binär 00100001) - die letzten drei Bits sind also 001
| |
| * Ziel-MAC-Adresse: 0x0000A2123456 - das letzte Byte ist 0x56 (= Binär 01010110) - die letzten drei Bits sind also 110
| |
|
| |
| Somit lautet hier die Formel zur Auswahl des Links:
| |
| <div style="margin-left:1cm;margin-right:0cm;">{(001 XOR 110) MOD 4} </div>
| |
| <div style="margin-left:1cm;margin-right:0cm;">001 XOR 110 = 111 (binär) = 7 (dezimal) </div>
| |
| <div style="margin-left:1cm;margin-right:0cm;">7 MOD 4 (dezimal) = 3 (dezimal)</div>
| |
|
| |
| Es wird also der Link Nummer 3 verwendet.
| |
|
| |
| === Linux ===
| |
| Linux unterstützt zwei mögliche Frame Distribution Algorithms (unter Linux als transmit hash policy to use for slave selection bezeichnet). Diese können Sie seit Bonding Version 2.6.3 über den <tt>xmit_hash_policy</tt> Parameter konfigurieren.
| |
|
| |
| ; Mögliche Werte für <tt>xmit_hash_policy</tt> sind:[https://www.thomas-krenn.com/de/wiki/Link_Aggregation_Lastverteilungs-Algorithmen#cite_note-6 [6]]
| |
| * layer2 (vor Bonding Version 2.6.3 der einzige Algorithmus, ab Bonding Version 2.6.3 Standardeinstellung)
| |
| * layer3+4 (optionaler Algorithmus, verfügbar ab Bonding Version 2.6.3)
| |
|
| |
| ; Hinweis
| |
| : Die hier bereitgestellten Informationen beziehen sich auf den Linux Bonding Treiber. Ab [https://www.thomas-krenn.com/de/wiki/Neuerungen_im_Linux_Kernel#Kernel_3.3 Linux Kernel 3.3] gibt es zusätzlich das Teaming Device im Userspace, auf dessen Eigenschaften hier noch nicht eingegangen wird.
| |
|
| |
| ==== layer2 ====
| |
| Verwendet ein XOR der Ethernet Quell- und Zieladresse (MAC Adresse des Senders und MAC Adresse des Empfängers):
| |
|
| |
| [[Image:Bild4.png|top|alt="xmit_hash_policy layer2"]]
| |
|
| |
| * Netzwerktraffic, der von diesem Linux-Rechner zu einem bestimmten anderen Rechner übertragen wird geht dabei immer über den gleichen Link (Slave).
| |
| * Netzwerktraffic zu unterschiedlichen Gegenstellen (unterschiedliche MAC Zieladressen) wird auf alle Links (Slaves) verteilt. Dieser Algorithmus ist vollständig 802.3ad compliant.
| |
|
| |
| ==== layer3+4 ====
| |
| ; Dieser Algorithmus verwendet Informationen von höheren Protokollschichten, sofern verfügbar.
| |
| * Das ermöglicht die Verteilung von Traffic zwischen zwei direkten Netzwerk-Peers über mehrere Links (Slaves).
| |
| * Sind beispielsweise zwei Router so miteinander verbunden, werden die Ethernet Frames verteilt, da Informationen von höheren Protokollschichten (z.B. IP Adressen) in den Algorithmus einbezogen werden.
| |
| * Würden nur die MAC-Adressen (wie bei layer2) verwendet, ginge der Traffic immer über den selben Link (Slave).
| |
| * Eine einzelne Verbindung (von IP Adresse A zu IP Adresse B) geht aber nach wie vor immer nur über einen einzelnen Link.
| |
|
| |
| Die Formel für unfragmentierte TCP und UDP Pakete lautet:
| |
|
| |
| [[Image:Bild5.png|top|alt="xmit_hash_policy layer3+4"]]
| |
|
| |
| * Für fragmentierte TCP oder UDP Pakete und anderen IP Protokoll Traffik werden die Quell- und Ziel-Port Informationen ausgelassen.
| |
| * Für non-IP Traffik wird die Formel wie bei layer2 transmit hash policy verwendet.
| |
|
| |
| Diese Policy zielt darauf ab, das Verhalten von bestimmen Switchen (Cisco Switche mit PFC2 sowie einige Foundry and IBM Produkte) nachzuahmen.
| |
|
| |
| ; Dieser Algorithmus ist nicht vollständig 802.3ad compliant
| |
| * Eine einzelne TCP oder UDP Konversation, die sowohl fragmentierte als auch unfragmentierte Pakete enthält, kann dazu führen, dass Pakete über zwei unterschiedliche Interfaces laufen.
| |
| * Das kann zu einer out-of-order Zustellung führen.
| |
| * Die meisten Traffic-Types haben allerdings nicht diese Eigenschaften.
| |
| * TCP wird selten fragmentiert. Und der meiste UDP Traffic ist nicht in derartigen erweiterten Konversationen enthalten.
| |
| * Andere Implementierungen von 802.3ad können diese Non-Compoliance tolerieren oder auch nicht.
| |
|
| |
| === FreeBSD ===
| |
| FreeBSD verwendet einen Hash des Protokoll Headers. Der Hash beinhaltet dabei:[https://www.thomas-krenn.com/de/wiki/Link_Aggregation_Lastverteilungs-Algorithmen#cite_note-7 [7]]
| |
| * Ethernet Quell- und Zieladresse (MAC Adresse des Senders und MAC Adresse des Empfängers)
| |
| * [https://www.thomas-krenn.com/de/wiki/VLAN_Grundlagen#Tagged_VLANs VLAN-tag] (falls verfügbar)
| |
| * IPv4/IPv6 Quell- und Zieladresse (falls verfügbar)
| |
|
| |
| === Einzelnachweise ===
| |
| # [http://support.3com.com/documents/switches/4500G/Switch_4500G_CG_V05.02.00_6W101.pdf 3Com Switch 4500G Family Configuration Guide] Kapitel Load Sharing Criteria for Link Aggregation Groups (Seite 1-8, Seite 58 im PDF sowie Seite 1-13, Seite 63 im PDF)
| |
| # [http://www.cisco.com/en/US/docs/switches/lan/catalyst4500/12.2/37sg/configuration/guides/channel.html#wp1020804 http://www.cisco.com/en/US/docs/switches/lan/catalyst4500/12.2/37sg/configuration/guides/channel.html#wp1020804]
| |
| # [http://www.cisco.com/en/US/docs/server_nw_virtual/2.10.0_release/configuration/guide/3link.html#wp986973 http://www.cisco.com/en/US/docs/server_nw_virtual/2.10.0_release/configuration/guide/3link.html#wp986973]
| |
| # [http://www.intel.com/support/motherboards/server/sb/CS-031829.htm Intel® Modular Server Systems: Only one port transmits traffic after configuring LAG/LACP] (intel.com)
| |
| # [http://support.nortel.com/go/main.jsp?cscat=DOCDETAIL&id=1077970&poid=14741 http://support.nortel.com/go/main.jsp?cscat=DOCDETAIL&id=1077970&poid=14741] (Seite 70 im PDF)
| |
| # [http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding#Bonding_Driver_Options http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding#Bonding_Driver_Options]
| |
| # [http://www.freebsd.org/doc/en/books/handbook/network-aggregation.html FreeBSD Handbook, Chapter 31 Advanced Networking]
| |
|
| |
| == Link Aggregation ==
| |
| === Static Link Aggregation ===
| |
| Bei der statischen Link Aggregation werden alle Konfigurationsparameter einmalig auf beiden beteiligten Komponenten einer LAG eingerichtet.
| |
|
| |
| ; Anmerkung
| |
| : VMware ESX/ESXi 4.0, 4.1 & ESXi 5.0 unterstützen ausschließlich Static Link Aggregation.
| |
|
| |
| Der IEEE Standard beschreibt die Steuerung der Link Aggregation in Kapitel ''5.3 Link Aggregation Control'' ab Seite 23.
| |
|
| |
| === Dynamic Link Aggregation - Link Aggregation Control Protocol (LACP) ===
| |
| Das Link Aggregation Control Protocol (LACP) erlaubt darüber hinaus den Austausch von Informationen bezüglich der Link Aggregation zwischen den zwei Mitgliedern einer Link Aggregation.
| |
| * Diese Informationen werden in LACPDUs (Link Aggregation Control Protocol Data Units) verpackt.
| |
|
| |
| Bei LACP kann jeder einzelne Port als ''Active LACP'' oder ''Passive LACP'' konfiguriert werden:
| |
| * Passive LACP: der Port bevorzugt von sich aus keine LACPDUs zu übertragen.
| |
| * Nur wenn die Gegenstelle ''Active LACP'' hat, überträgt der Port LACPDUs (''preference not to speak unless spoken to'').
| |
| * Active LACP: der Port bevorzugt LACPDUs zu übertragen und somit das Protokoll zu sprechen - unabhängig davon ob die Gegenstelle ''Passive LACP'' hat oder nicht (''a preference to speak regardless'').
| |
|
| |
| LACP bietet gegenüber einer statischen Link Aggregation folgende Vorteile:
| |
| * Ein Ausfall eines physischen Links wird selbst dann erkannt, wenn die Punkt-zu-Punkt Verbindung über einen Media Konverter läuft und damit der Link-Status am Switchport auf ''Up'' bleibt.
| |
| * Da LACPDUs auf dieser Verbindung damit ausbleiben, wird dieser Link aus der LAG entfernt.
| |
| * Somit gehen darüber keine Pakete verloren.
| |
| * Die beiden Geräte können sich gegenseitig die LAG Konfiguration bestätigen.
| |
| * Bei statischer Link Aggregation werden Konfigurations- oder Verkabelungsfehler oft nicht so schnell erkannt.
| |
|
| |
| Der IEEE Standard beschreibt LACP im Kapitel ''5.4 Link Aggregation Control Protocol (LACP)'' ab Seite 30.
| |
|
| |
| == Anwendungen ==
| |
| === Voraussetzungen ===
| |
| [[Datei:Link-Aggregation-Grundlagen.png|thumb|500px|Die einzelnen Links einer Link Aggregation Group müssen immer parallele Punkt-zu-Punkt Verbindungen sein.]]
| |
|
| |
| ; Anforderungen an verwendeten Links
| |
| * Full-duplex Modus
| |
| * Identische Datenrate
| |
| * Parallele Punkt-zu-Punkt Verbindungen
| |
| ** Endstelle immer genau ein Switch oder Server
| |
|
| |
| ; Link Aggregation mit mehreren Switches
| |
| * Link Aggregation mit mehreren Switches an einem Ende der Link Aggragation wie etwa bei [http://en.wikipedia.org/wiki/SMLT Split Multi-Link Trunking (SMLT)] von Nortel ist nicht möglich.
| |
| * Einzige Ausnahme sind virtuelle Switche, die zwar aus mehreren physischen Switchen bestehen, nach außen sich aber wie ein einzelner Switch verhalten (z.B. Cisco Virtual Switching System 1440 (VSS1440)).
| |
|
| |
| == Sicherheit ==
| |
| == Dokumentation ==
| |
| === RFC ===
| |
| === Man-Pages ===
| |
| === Info-Pages ===
| |
| == Siehe auch ==
| |
| ; Allgemein | | ; Allgemein |
| * [http://www.admin-magazin.de/Das-Heft/2012/04/Link-Aggregation-steigert-Sicherheit-und-erhoeht-Durchsatz/ Link Aggregation steigert Sicherheit und erhöht Durchsatz] (ADMIN Magazin 4/2012) | | * [http://www.admin-magazin.de/Das-Heft/2012/04/Link-Aggregation-steigert-Sicherheit-und-erhoeht-Durchsatz/ Link Aggregation steigert Sicherheit und erhöht Durchsatz] (ADMIN Magazin 4/2012) |
Zeile 320: |
Zeile 110: |
| * [http://linux-ip.net/html/ether-bonding.html Link Aggregation and High Availability with Bonding] (Guide to IP Layer Network Administration with Linux) | | * [http://linux-ip.net/html/ether-bonding.html Link Aggregation and High Availability with Bonding] (Guide to IP Layer Network Administration with Linux) |
| * [http://backdrift.org/howtonetworkbonding How to configure network bonding in Linux] (backdrift.org) | | * [http://backdrift.org/howtonetworkbonding How to configure network bonding in Linux] (backdrift.org) |
| * [[NIC Bonding unter Debian]]
| |
|
| |
| == Links ==
| |
| === Projekt-Homepage ===
| |
| === Weblinks ===
| |
| # [http://standards.ieee.org/getieee802/ IEEE 802.x Standards (LAN)]
| |
| # [http://www.thomas-krenn.com/de/wiki/Link_Aggregation_und_LACP_Grundlagen Link Aggregation und LACP Grundlagen] (Thomas Krenn Wiki)
| |
| # [http://www.cisco.com/en/US/tech/tk389/tk213/technologies_tech_note09186a0080094714.shtml Etherchannel und Load Balancing bei Cisco]
| |
| # [ftp://ftp.hp.com/pub/networking/software/6400-5300-4200-3400-MgmtCfg-Oct2006-59906050-Chap13.pdf Port Trunking bei Hewlett-Packard]
| |
|
| |
| === Einzelnachweise ===
| |
|
| |
| == Testfragen ==
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 1''
| |
| <div class="mw-collapsible-content">'''Antwort1'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 2''
| |
| <div class="mw-collapsible-content">'''Antwort2'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 3''
| |
| <div class="mw-collapsible-content">'''Antwort3'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 4''
| |
| <div class="mw-collapsible-content">'''Antwort4'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 5''
| |
| <div class="mw-collapsible-content">'''Antwort5'''</div>
| |
| </div>
| |
|
| |
|
| [[Kategorie:Entwurf]]
| |
| [[Kategorie:Ethernet]] | | [[Kategorie:Ethernet]] |
| [[Kategorie:Switch]] | | [[Kategorie:Link Aggregation]] |
| | </noinclude> |