Netzwerk · 3 min read · Oct 30, 2025
NIC Bonding/Teaming - Debian Sarge
Zusammenfassung:
Sie können eine leichter lesbare Version hier finden: 5dollarwhitebox.org
Das Konzept des NIC Bonding (oder manchmal NIC Teaming genannt) besteht darin, dass Sie zwei NICs zusammenbinden, sodass sie wie dasselbe physische Gerät erscheinen. D.h. Sie präsentieren beide dieselbe Hardware (MAC)-Adresse. Dies wird durch das ifenslave-Dienstprogramm erreicht, das es dem Kernel ermöglicht, nur ein Gerät zu sehen/zu verwenden, während es Pakete über die beiden Slave-Geräte mithilfe eines Round-Robin-Schedulers sendet.
System: Debian Sarge 3.1 (vanilla kernel 2.6.12.4)
Beteiligte Module: bonding, mii, nic_module (e100 in diesem Beispiel)
Dienstprogramme: ifenslave, mii-tool
Vorbereitung:
Bevor Sie versuchen, zwei NICs zu verbinden, wird dringend empfohlen, die Integrität und Funktionalität jeder NIC für sich zu überprüfen. Dieses Dokument geht davon aus, dass Sie das bereits getan haben. Mit ‘mii-tool’ sollten Sie Folgendes sehen:
testbox:/# mii-tool
eth0: ausgehandelt 100baseTx-FD, Link ok
eth1: ausgehandelt 100baseTx-FD, Link ok
Damit dies funktioniert, muss der Kernel Unterstützung für Bonding-Geräte haben. Einige Möglichkeiten, dies zu überprüfen, wären:
testbox:/# modprobe –list | grep* bonding /lib/modules/2.6.12.4-vs2.0/kernel/drivers/net/bonding/bonding.ko
- testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i bonding
CONFIG_BONDING=m
Wir verwenden das mii-tool (mii.o-Modul), um die Schnittstellen auf Failover zu überwachen… obwohl die meisten Ethernet-Adapter eine MII (Media Independent Interface) verwenden, um Linkgeschwindigkeiten automatisch auszuhandeln, ist es ziemlich standardmäßig, dass Sie dies haben.
testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i mii ** *# CONFIG_MPENTIUMII ist nicht gesetzt
CONFIG_MII=y ** *
testbox:/# modprobe –list | grep -i mii
/lib/modules/2.4.26-2-686/kernel/drivers/net/mii.ko
Zweitens müssen Sie das ifenslave-Dienstprogramm installieren.
testbox:/# apt-get update && apt-get install ifenslave
………. Standardausgabe entfernt (nichts Interessantes)
Es gibt hier keine Konfiguration, also das war’s. Jetzt sind wir bereit für die Konfigurationsdateien.
Konfigurationsdateien:
Es gibt viele verschiedene Variationen davon, aber für jetzt… so habe ich es gemacht, um es zum Laufen zu bringen.
vi /etc/modutils/aliases und fügen Sie Folgendes hinzu/bearbeiten Sie es:
alias bond0 bonding
alias eth0 e100
alias eth1 e100
options bonding mode=0 miimon=100
vi /etc/modutils/actions und fügen Sie Folgendes hinzu/bearbeiten Sie es:
probeall bond0 eth0 eth1 bonding
Nach dem Bearbeiten der modprobe-Konfigurationsdateien müssen Sie den Befehl ausführen:
testbox# update-modules
vi /etc/network/interfaces und fügen Sie Folgendes hinzu/bearbeiten Sie es:
auto bond0
iface bond0 inet static
address 10.1.100.63
netmask 255.255.255.0
hwaddress ether 00:02:B3:48:50:2C
gateway 10.1.100.1
up ifenslave bond0 eth0 eth1
down ifenslave -d bond0 eth0 eth1
Sie richten KEINE Einträge für ‘eth0’ oder ‘eth1’ außerhalb dessen ein, was oben unter dem ‘bond0’-Eintrag aufgeführt ist. Bond0 wird jetzt die Schnittstelle sein, mit der der Kernel arbeitet. Ein ‘ifconfig’ zeigt alle drei Schnittstellen (bond0, eth0, eth1), alle mit derselben MAC- und IP-Adresse.
Und das ist im Grunde alles. Jetzt müssen Sie nur noch das ‘bonding’-Modul laden und das Netzwerk stoppen/starten… und die entsprechenden Module sollten automatisch geladen werden:
testbox:/# modprobe bonding
testbox:/# /etc/init.d/networking stop testbox:/# /etc/init.d/networking start
Sie müssen möglicherweise eine Weile mit diesem Teil herumspielen. Für mich musste ich das bond0-Gerät manuell ifconfig up bringen:
testbox:/# ifconfig bond0 10.1.15.63 netmask 255.255.255.0 up
Vorausgesetzt, es gab keine Fehler, sollten Sie dies testen können. Versuchen Sie, Ihre IP-Adresse von einem anderen Rechner anzupingen. Sie werden feststellen, dass beide NICs auf die Ping-Anfragen hin und her antworten (Round Robin). Wenn Sie eth0 abziehen, erhalten Sie eine Fehlermeldung in der Konsole “eth0 ist ausgefallen, eth1 wird primär” oder so ähnlich (und umgekehrt, wenn Sie eth1 abziehen). Aber Sie sollten keine der Ping-Anfragen verlieren (oder nicht mehr als ein paar), da es jetzt eine redundante Netzwerkverbindung hat.
In einer höherwertigen Umgebung könnten Sie jede NIC an einen separaten Switch anschließen (im selben VLAN bleiben) und Ihre Hochverfügbarkeitskonfiguration weiter verbessern… und so weiter und so fort.
BJ Dierkes, RHCE4-LPIC1
wdierkes [at] 5dollarwhitebox [dot] org
Texas, USA
Ressourcen:
Debian GNU/Linux: https://www.debian.org
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.