Inhaltsverzeichnis

Netzwerkkarten bündeln - Bonding

von Hand

neues Bond bauen:

> ifenslave bond0 eth0 eth1

die NICs anzeigen, über die das Bond verfühgt:

> ls /sys/class/net/bond0/ | awk -F'_' '/slave_/ {print $2}'

ob die NIC's in den vorhandenen Bond's alle oben sind, kann man so testen:

> fgrep ' Status: ' /proc/net/bonding/bond*
/proc/net/bonding/bond0:MII Status: up
/proc/net/bonding/bond0:MII Status: up
/proc/net/bonding/bond0:MII Status: up
/proc/net/bonding/bond1:MII Status: up
/proc/net/bonding/bond1:MII Status: up
/proc/net/bonding/bond1:MII Status: up
/proc/net/bonding/bond3:MII Status: up
/proc/net/bonding/bond3:MII Status: up
/proc/net/bonding/bond3:MII Status: up

alles anzeigen:

> ifenslave -a
> ifenslave bond0

aktive NIC im Bond wechseln:

> ifenslave -c bond0 eth1

Bond auflösen:

> ifenslave -d bond0 eth0 eth1

nur eine NIC aus dem Bond entfernen:

> ifenslave -d bond0 eth0

Bonding - neue Variante >Ubuntu 8.04

Installation benötigter Pakete

# aptitude update && aptitude install ifenslave net-tools ethtool bmon

Prüfen ob benötigte Module geladen wurden.

# modprobe --list | grep -i bonding

Die Ausgabe sollte bonding.ko enthalten. Sollte das Modul nicht geladen sein, ist wahrscheinlich die alte Variante zur Bonding-Konfiguration notwendig. (siehe Unten)

Alle Interfaces welche zu einem bond-Interface zusammengefasst werden sollen, müssen zunächst deaktiviert werden. Vorher sollte man aber sicherstellen, dass man die im folgenden beschriebene Konfiguration nicht über diese Netzwerkverbindung durchführt!

# ifdown eth0
# ifdown eth1
# ifdown eth...

Anschließend kann das neue Interface in der /etc/network/interfaces angelegt werden.

auto bond0
iface bond0 inet static
   address 10.0.0.10
   netmask 255.255.255.0
   network 10.0.0.0
   broadcast 10.0.0.255
   gateway 10.0.0.1
   dns-nameservers 10.0.0.1
   slaves eth0 eth1
   bond_mode 1
   bond_miimon 100
   bond_updelay 200
   bond_downdelay 200

Um die Netzwerkkarten (jetzt mit Bonding) wieder hoch zu fahren, einfach das Netzwerk neu starten:

# /etc/init.d/networking restart

Bonding Modi

Modus Bezeichnung Zweck Beschreibung
0 balance-rr Lastverteilung & Ausfallsicherheit Die genutzte Netzwerkschnittstelle wird im Round-Robin-Verfahren festgelegt, das heißt die verfügbaren Schnittstellen werden in Senderichtung wechselweise genutzt. In Empfangsrichtung kann max. die Geschwindigkeit einer einzelnen Schnittstelle erreicht werden - je mehr Teilnehmer, umso mehr Upload-Gesamtbandbreite, denn diese werden auf die übrigen freien Schnittstellen aufgeteilt.
1 active-backup Ausfallsicherheit Nur eine Schnittstelle ist aktiv, im Fehlerfalle wird ein der anderen im Verbund genutzt. die Netzwerkkarten können über verschiedene Switches angebunden werden.
2 balance-xor Lastverteilung & Ausfallsicherheit Es wird für jede Gegenstelle im Netzwerk eine zu nutzende Netzwerkschnittstelle zugewiesen, die Zuordnung geschieht über den Modulo der Division zwischen der Formel (Quell-MAC-Adresse XOR Ziel-MAC-Adresse) und der Anzahl der Slave-Schnittstellen.
3 broadcast Ausfallsicherheit Daten werden auf allen Netzwerkschnittstellen gesendet. Die Nutzung mehrerer Switches ist möglich.
4 802.3ad Lastverteilung & Ausfallsicherheit 802.3ad ist ein Standard der IEEE, der die Bündelung mehrerer Schnittstellen mit gleichen Übertragungseinstellungen (Geschwindigkeit und Duplex-Einstellungen) erlaubt, um eine höhere Bandbreite zu erhalten. Es kann nur ein Switch verwendet werden, dieser muss 802.3ad unterstützen. ethtool oder mii-tool wird benötigt.
5 balance-tlb Lastverteilung Es wird für jede Gegenstelle im Netzwerk eine zu nutzende Netzwerkschnittstelle zugewiesen. Das Verfahren hierzu ist jedoch komplexer und effizienter als bei balance-xor. Das Programm ethtool wird benötigt.
6 balance-alb Lastverteilung Erweitertes balance-tlb, zusätzlich zur MAC-basierten Zuordnung der Schnittstellen für ausgehende Verbindungen werden eingehende Verbindungen auf die Schnittstellen verteilt. Das Programm ethtool wird benötigt.