Benutzer-Werkzeuge

Webseiten-Werkzeuge


freebsd:link_aggregation

Link Aggregation (lagg)

Betrifft OS:
FreeBSD

Seit FreeBSD 6.3 bzw. 7.0 wird Link-Aggregation vollständig unterstützt. Zuvor wurde lediglich die Cisco-Variante (Etherchannel) mit dem Netgraph ng_fec(4) unterstützt. ng_fec(4) wurde durch das Kernel-Modul lagg(4) nun ersetzt und stark erweitert. Hiermit ist neben Ciscos EtherChannel(fec) auch das verbreitetere IEEE 802.3ad (lacp) möglich. Praktisch ist hierbei, dass auch total unterschiedliche Netzwerkkarten gemeinsam verwendet werden können, so ist z.B. auch ein Failover von Ethernet auf wlan möglich.

Vorbereitungen

Laden des Kernel Moduls

/boot/loader.conf

if_lagg_load="YES"

Vorbereiten der Interfaces

Die physikalischen Interfaces (hier ti0 und ti1 ) müssen hochgefahren werden.

/etc/rc.conf

ifconfig_ti0="UP"
ifcofnig_ti1="UP"

… sowie das virtuelle Interface für das Vorhaben erstellt:

cloned_interfaces="lagg0"

Konfiguration von LAGG

Mit dem Modul LAGG sind verschiedene Modi möglich. Diese sind im Folgenden erklärt.

Hier werden mehrere physikalische Kanäle zu einem logischen Kanal zusammengeschaltet. Wenn mehrere Kanäle aktiv sind, dann addiert sich der Durchsatz. Theoretisch können auch im Betrieb Kanäle ausfallen, wodurch lediglich der Durchsatz verringert würde aber die Verbindung bestehen bleibt.

Zu beachten ist hierbei, dass der Switch IEEE 802.3ad unterstützen muss.

Auf der Seite von FreeBSD wird der Trunk mit den beiden exemplarischen Netzwerkkarten ti0 und ti1 wie folgt konfiguriert. Der Modus für IEEE 802.3ad heißt hier lacp.

/etc/rc.conf

ifconfig_lagg0="laggproto lacp laggport ti0 laggport ti1 192.168.0.1 netmask 255.255.255.0"

Da LACP des IEEE 802.3ad eine automatische Aushandlung der Kanäle (Autonegation) definiert, trotzdem müssen bei vielen Switchen die betroffenen Ports zusätzlich manuell als Trunk konfiguriert werden.

Einschränkungen von IEEE 802.3ad

Link-Aggregation ist meistens so implementiert, dass die versendeten Ethernet-Frames ihre Reihenfolge beibehalten. Die Notwendigkeit für diese Einschränkung ist unbekannt, sie wird jedoch mindestens auf 3Com und Cisco-Switchen berücksichtigt.

Durch das starre Einhalten der Reihenfolge können Frames nicht mehr unter allen Bedingungen parallel auf allen Pfaden versendet werden. Der Switch (und auch lagg des FreeBSD) betrachtet Datenströme anhand von Schicht-2-Informationen - d.h. anhand dem Paar von Quell-Mac-Adresse zu Ziel-Mac-Adresse. Das bedeutet, dass zwei Rechner nur immer mit der Bandbreite eines Links kommunizieren können.

Beispiele:

Die Rechner sind wie folgt korrekt konfiguriert an einen Switch angebunden:

Rechnerangebunden mit
X2 * 100 MBit/s Trunk
A1000 MBit/s
B100 MBit/s

zu erwartende Datenraten

Kommunikationsbeteiligtewas wird gemachtDatenrate insgesamt (Vollduplex)
X mit Aeine TCP-Verbindung100 MBit/s
X mit Amehrere gleichzeitige TCP-Verbindungen100 MBit/s
X mit A und Bje eine TCP-Verbindung200 MBit/s

Eine Geschwindigkeitssteigerung durch Link-Aggregation findet also nur statt, wenn mehrere Hosts (im gleichen Subnetz/Broadcast-Domäne!) mit dem mehrfach angebundenen Host kommunizieren.

Failover

Im Gegensatz zum Trunking muss der Switch keine besonderen Fähigkeiten besitzen oder konfiguriert werden. Hier addiert sich allerdings auch nicht die Bandbreite. Man kann hier sogar ein Failover von W-LAN auf Ethernet erreichen. Bei ersten Versuchen dauerte das Umschalten rund 10 Sekunden.

/etc/rc.conf

ifconfig_lagg0="laggproto failover laggport ti0 laggport ti1 192.168.0.1 netmask 255.255.255.0"

Wenn die aktive Verbindung ausfällt, dann übernimmt (innerhalb von ca. 10 Sekunden) die andere Verbindung.

freebsd/link_aggregation.txt · Zuletzt geändert: 2008/08/27 09:18 von rmarkus