Networking · 3 min read · Oct 30, 2025
NIC Bonding/Teaming - Debian Sarge
Riepilogo:
Puoi trovare una versione più leggibile qui: 5dollarwhitebox.org
Il concetto di NIC Bonding (o a volte chiamato NIC Teaming) è che hai due NIC unite insieme per apparire come se fossero lo stesso dispositivo fisico. Cioè, presenteranno entrambi lo stesso indirizzo Hardware (MAC). Questo viene realizzato tramite l’utilità ifenslave, che consente al kernel di vedere/utilizzare solo un dispositivo, mentre invia pacchetti tramite i due dispositivi schiavi utilizzando uno scheduler round-robbin.
Sistema: Debian Sarge 3.1 (kernel vanilla 2.6.12.4)
Moduli coinvolti: bonding, mii, nic_module (e100 in questo esempio)
Utilità: ifenslave, mii-tool
Preparazione:
Prima di tentare di unire due NIC, è altamente raccomandato verificare l’integrità e la funzionalità di ciascuna NIC da sola. Questo documento presume che tu abbia già fatto ciò. Usando ‘mii-tool’ dovresti vedere qualcosa di simile al seguente:
testbox:/# mii-tool
eth0: negotiated 100baseTx-FD, link ok
eth1: negotiated 100baseTx-FD, link ok
Perché questo funzioni, il kernel deve avere supporto per i dispositivi di bonding. Alcuni modi per controllare sarebbero:
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
Usiamo il mii-tool (modulo mii.o) per monitorare le interfacce per il failover… anche se, poiché la maggior parte degli adattatori ethernet utilizza un MII (Media Independendent Interface) per autonegoziare le velocità di collegamento, è abbastanza standard che tu abbia questo.
testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i mii ** *# CONFIG_MPENTIUMII non è impostato
CONFIG_MII=y ** *
testbox:/# modprobe –list | grep -i mii
/lib/modules/2.4.26-2-686/kernel/drivers/net/mii.ko
In secondo luogo, dovrai installare l’utilità ifenslave.
testbox:/# apt-get update && apt-get install ifenslave
………. output standard rimosso (niente di interessante)
Non c’è configurazione qui, quindi questo è tutto. Ora siamo pronti per i file di configurazione.
File di Configurazione:
Ci sono molte variazioni diverse di questo, ma per ora… questo è come l’ho fatto per farlo funzionare.
vi /etc/modutils/aliases e aggiungi/modifica il seguente:
alias bond0 bonding
alias eth0 e100
alias eth1 e100
options bonding mode=0 miimon=100
vi /etc/modutils/actions e aggiungi/modifica il seguente:
probeall bond0 eth0 eth1 bonding
Dopo aver modificato i file di configurazione di modprobe, devi eseguire il comando:
testbox# update-modules
vi /etc/network/interfaces e aggiungi/modifica il seguente:
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
Non devi impostare voci per ‘eth0’ o ‘eth1’ al di fuori di quanto elencato sopra sotto l’entry ‘bond0’. Bond0 sarà ora l’interfaccia con cui il kernel lavora. Eseguendo un ‘ifconfig’ verranno mostrate tutte e tre le interfacce (bond0, eth0, eth1), tutte con lo stesso indirizzo MAC e IP.
E questo è fondamentalmente tutto. Ora, tutto ciò che devi fare è caricare il modulo ‘bonding’ e fermare/avviare la rete… e i moduli appropriati dovrebbero caricarsi automaticamente:
testbox:/# modprobe bonding
testbox:/# /etc/init.d/networking stop testbox:/# /etc/init.d/networking start
Potresti dover giocare un po’ con questa parte. Per me ho dovuto configurare manualmente il dispositivo bond0:
testbox:/# ifconfig bond0 10.1.15.63 netmask 255.255.255.0 up
Assumendo che non ci siano errori, dovresti essere in grado di testare questo. Prova a pingare il tuo indirizzo IP da un’altra macchina. Noterai che entrambe le NIC rispondono alle richieste di ping avanti e indietro (round robin). Se scollegati eth0, riceverai un errore nella console “eth0 ha fallito, eth1 diventa primaria” o qualcosa del genere (e viceversa se scollegati eth1). Ma non dovresti perdere alcuna delle richieste di ping (o non più di alcune), poiché ora ha una connessione di rete ridondante.
In un ambiente di fascia alta, potresti collegare ciascuna NIC a uno switch separato (rimanendo sulla stessa VLAN) e migliorare ulteriormente la tua configurazione di alta disponibilità… e così via.
BJ Dierkes, RHCE4-LPIC1
wdierkes [at] 5dollarwhitebox [dot] org
Texas, USA
Risorse:
Debian GNU/Linux: https://www.debian.org
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.