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
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
| 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. |