Die von FreeBSD unterstützte lagg(4)-Schnittstelle erlaubt die Gruppierung von mehreren Netzwerkadaptern als eine virtuelle Schnittstelle, mit dem Ziel, Ausfallsicherheit (Failover) und Link Aggregation bereitzustellen. Bei Failover kann der Verkehr auch dann weiter fließen, wenn nur eine Schnittstelle verfügbar ist. Link Aggregation funktioniert am besten mit Switches, die LCAP unterstützen, da dieses Protokoll den Datenverkehr bidirektional verteilt, während es auch auf den Ausfall einzelner Verbindungen reagiert.
Die von der lagg-Schnittstelle unterstützten Protokolle bestimmen, welche Ports für den ausgehenden Datenverkehr benutzt werden, und ob ein bestimmter Port eingehenden Datenverkehr akzeptiert. Die folgenden Protokolle werden von lagg(4) unterstützt:
Dieser Modus sendet und empfängt Datenverkehr nur auf dem Masterport. Sollte der Masterport nicht zur Verfügung stehen, wird der nächste aktive Port verwendet. Der zuerst hinzugefügte Adapter der virtuellen Schnittstelle wird zum Masterport, jeder weitere Adapter dient als Gerät zur Ausfallsicherheit. Wenn ein Failover auf einem Nicht-Master Port stattfindet, wird der ursprüngliche Port wieder zum Master-Port, sobald er wieder verfügbar ist.
Cisco® Fast EtherChannel® (FEC) findet sich auf älteren Cisco® Switches. Es bietet eine statische Konfiguration und handelt weder Aggregation mit der Gegenstelle aus, noch werden Frames zur Überwachung der Verbindung ausgetauscht. Wenn der Switch LACP unterstützt, sollte diese Option auch verwendet werden.
Das IEEE® 802.3ad Link-Aggregation Control Protokoll (LACP). Mit LACP wird eine Menge von aggregierbaren Verbindungen mit der Gegenstelle in einer oder mehreren Link Aggregated Groups (LAG) ausgehandelt. Jede LAG besteht aus Ports der gleichen Geschwindigkeit, eingestellt auf Voll-Duplex-Betrieb. Der Verkehr wird über die Ports in der LAG mit der größten Gesamtgeschwindigkeit balanciert. Typischerweise gibt es nur eine LAG, die alle Ports enthält. Im Falle von Änderungen in der physischen Anbindung wird LACP schnell zu einer neuen Konfiguration konvergieren.
LACP balanciert ausgehenden Verkehr über die aktiven Ports basierend auf der gehashten Protokollheaderinformation und akzeptiert eingehenden Verkehr auf jedem aktiven Port. Der Hash beinhaltet die Ethernet-Quell- und Zieladresse, und, soweit verfügbar, den VLAN-Tag, sowie die IPv4 oder IPv6 Quell- und Zieladresse.
Dieser Modus verteilt ausgehenden Verkehr mittels einer Round-Robin-Zuteilung über alle aktiven Ports und akzeptiert eingehenden Verkehr auf jedem aktiven Port. Da dieser Modus die Reihenfolge von Ethernet-Rahmen verletzt, sollte er mit Vorsicht eingesetzt werden.
Dieser Abschnitt zeigt, wie man einen Cisco® Switch und ein FreeBSD-System für LACP Load Balancing konfiguriert. Weiterhin wird gezeigt, wie man zwei Ethernet-Schnittstellen, sowie eine Ethernet- und eine Drahtlos-Schnittstelle für den Failover-Modus konfigurieren kann.
Dieses Beispiel verbindet zwei fxp(4) Ethernet-Schnittstellen einer FreeBSD-Maschine zu den ersten zwei Ethernet-Ports auf einem Cisco® Switch als eine einzelne, lastverteilte und ausfallsichere Verbindung. Weitere Adapter können hinzugefügt werden, um den Durchsatz zu erhöhen und die Ausfallsicherheit zu steigern. Ersetzen Sie die Namen der Cisco®-Ports, Ethernet-Geräte, channel-group Nummern und IP-Adressen im Beispiel durch Namen, die mit Ihrer lokalen Konfiguration übereinstimmen.
Da die Reihenfolge der Frames bei Ethernet zwingend eingehalten werden muss, fließt auch jeglicher Verkehr zwischen zwei Stationen über den gleichen physischen Kanal, was die maximale Geschwindigkeit der Verbindung auf die eines einzelnen Adapters beschränkt. Der Übertragungsalgorithmus versucht, so viele Informationen wie möglich zu verwenden, um die verschiedenen Verkehrsflüsse zu unterscheiden und balanciert diese über die verfügbaren Adapter.
Fügen Sie auf dem Cisco®-Switch die Adapter
FastEthernet0/1
und
FastEthernet0/2
zu der
channel-group 1
hinzu:
interface
!FastEthernet0/1
channel-group1
mode active channel-protocol lacpinterface
FastEthernet0/2
channel-group1
mode active channel-protocol lacp
Erstellen Sie auf der FreeBSD Maschine die
lagg(4)-Schnittstelle unter Verwendung von
fxp0
und
fxp1
und starten Sie die
Schnittstelle mit der IP-Adresse
10.0.0.3/24
:
#
ifconfig
fxp0
up#
ifconfig
fxp1
up#
ifconfig
lagg
create0
#
ifconfig
lagg
up laggproto lacp laggport0
fxp0
laggportfxp1
10.0.0.3/24
Überprüfen Sie den Status der virtuellen Schnittstelle:
#
ifconfig
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:05:5d:71:8d:b8 media: Ethernet autoselect status: active laggproto lacp laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>lagg
0
Ports, die als ACTIVE markiert
sind, sind Teil der aktiven Aggregations-Gruppe, die mit dem
Switch ausgehandelt wurde. Der Verkehr wird über diese
Gruppe übertragen und empfangen. Benutzen Sie
ifconfig(8) mit -v
, um sich die
LAG-Bezeichner anzeigen zu lassen.
Um den Status der Ports auf dem Switch
anzuzeigen, benutzen Sie
show lacp neighbor
:
switch# show lacp neighbor Flags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs A - Device is in Active mode P - Device is in Passive mode Channel group 1 neighbors Partner's information: LACP port Oper Port Port Port Flags Priority Dev ID Age Key Number State Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D
Benutzen Sie show lacp neighbor
detail
, um weitere Informationen zu
erhalten.
Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie auf dem FreeBSD-System folgende
Einträge in /etc/rc.conf
hinzu:
ifconfig_fxp0
="up" ifconfig_fxp1
="up" cloned_interfaces="lagg
ifconfig_0
lagg
="laggproto lacp laggport0
fxp0
laggportfxp1
10.0.0.3/24
"
Der ausfallsichere Modus kann verwendet werden, um zu
einer zweiten Schnittstelle zu wechseln, sollte die
Verbindung mit der Master-Schnittstelle ausfallen. Um den
ausfallsicheren Modus zu konfigurieren, aktivieren Sie
zunächst die zugrunde liegenden physikalischen
Schnittstellen. Erstellen Sie dann die
lagg(4)-Schnittstelle mit
fxp0
als Master-Schnittstelle und
fxp1
als sekundäre Schnittstelle.
Der virtuellen Schnittstelle wird die
IP-Adresse
10.0.0.15/24
zugewiesen:
#
ifconfig
fxp0
up#
ifconfig
fxp1
up#
ifconfig
lagg
create0
#
ifconfig
lagg
up laggproto failover laggport0
fxp0
laggportfxp1
10.0.0.15/24
Die virtuelle Schnittstelle sollte in etwa so aussehen:
#
ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:05:5d:71:8d:b8 inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255 media: Ethernet autoselect status: active laggproto failover laggport: fxp1 flags=0<> laggport: fxp0 flags=5<MASTER,ACTIVE>
Der Verkehr wird auf fxp0
übertragen und empfangen. Wenn die Verbindung auf
fxp0
abbricht, wird
fxp1
die Verbindung übernehmen.
Sobald die Verbindung auf der Master-Schnittstelle
wiederhergestellt ist, wird diese wieder als aktive
Schnittstelle genutzt.
Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie folgende Einträge in
/etc/rc.conf
hinzu:
ifconfig_fxp0
="up" ifconfig_fxp1
="up" cloned_interfaces="lagg
ifconfig_0
lagg
="laggproto failover laggport0
fxp0
laggportfxp1
10.0.0.15/24
"
Für Laptop-Benutzer ist es normalerweise wünschenswert, „wireless“ als sekundäre Schnittstelle einzurichten, die verwendet wird, wenn die Ethernet-Verbindung nicht verfügbar ist. Mit lagg(4) ist es möglich, ein Failover mit einer IP-Adresse zu konfigurieren, welches die Ethernet-Verbindung aus Performance- und Sicherheitsgründen bevorzugt, während es gleichzeitig möglich bleibt, Daten über die drahtlose Verbindung zu übertragen.
Dies wird durch das Überschreiben der physikalischen MAC-Adresse der drahtlosen Schnittstelle, durch die der Ethernet-Schnittstelle erreicht.
In diesem Beispiel ist die Ethernet-Schnittstelle
bge0
die Master-Schnittstelle
und die drahtlose Schnittstelle
wlan0
die Failover-Schnittstelle.
wlan0
wurde von der
iwn0
mit der
MAC-Adresse der Ethernet-Schnittstelle
eingerichtet. Im ersten Schritt wird die
MAC-Adresse der
Ethernet-Schnittstelle ermittelt:
#
ifconfig
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> ether 00:21:70:da:ae:37 inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: activebge0
Ersetzen Sie bge0
durch den
Namen der Ethernet-Schnittstelle des Systems. Die
ether
-Zeile wird die
MAC-Adresse der angegebenen Schnittstelle
enthalten. Ändern Sie nun die
MAC-Adresse der zugrunde liegenden
drahtlosen Schnittstelle:
#
ifconfig
iwn0
ether00:21:70:da:ae:37
Starten Sie die drahtlose Schnittstelle, aber ohne eine IP-Adresse zu setzen:
#
ifconfig
wlan0
create wlandeviwn0
ssidmy_router
up
Stellen Sie sicher, dass die
bge0
-Schnittstelle aktiv ist.
Erstellen Sie die lagg(4)-Schnittstelle mit
bge0
als Master und
wlan0
als Failover:
#
ifconfig
bge0
up#
ifconfig
lagg
create0
#
ifconfig
lagg
up laggproto failover laggport0
bge0
laggportwlan0
Die virtuelle Schnittstelle sollte in etwa so aussehen:
#
ifconfig
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:21:70:da:ae:37 media: Ethernet autoselect status: active laggproto failover laggport: wlan0 flags=0<> laggport: bge0 flags=5<MASTER,ACTIVE>lagg
0
Starten Sie dann den DHCP-Client, um eine IP-Adresse zu erhalten:
#
dhclient
lagg
0
Damit diese Konfiguration auch nach einem Neustart
erhalten bleibt, fügen Sie folgende Einträge in
/etc/rc.conf
hinzu:
ifconfig_bge0="up" ifconfig_iwn0
="ether 00:21:70:da:ae:37
" wlans_iwn0
="wlan0" ifconfig_wlan0="WPA" cloned_interfaces="lagg
" ifconfig_0
lagg
="laggproto failover laggport0
bge0
laggport wlan0 DHCP"
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.