domenica 3 giugno 2007

Unire piu' interfacce di rete (bonding/teaming)

Bonding (o Teaming) = avere due interfacce di rete legate in modo da apparire come una unica interfaccia fisica. Quindi entrambe presenteranno lo stesso indirizzo hardware (MAC). Per ottenere questo con linux possiamo utilizzare il programma ifenslave.

Moduli utilizzati: bonding, mii, modulo_scheda_rete (e100 in questo esempio)
Utility utilizzate: ifenslave, mii-tool

* Autore: BJ Dierkes
* Ultimo aggiornamento: 2 Dicembre 2005
* Traduzione italiana e adattamento a Ubuntu a cura di Francesco Conti

Prima di iniziare, e' altamente raccomandata una verifica sull'integrita' e la funzionalita' delle singole schede di rete. Questo documento assume che voi l'abbiate gia' fatto. Lanciando il comando 'mii-tool' dovreste vedere qualcosa di simile:

mii-tool
eth0: negotiated 100baseTx-FD, link ok
eth1: negotiated 100baseTx-FD, link ok

Per far si' che questo funzioni, il kernel deve avere il supporto per il bonding delle periferiche. Due modi per controllare:

modprobe --list | grep -i bonding
/lib/modules/2.6.20-16-generic/kernel/drivers/net/bonding/bonding.ko



find /lib/modules/`uname -r` -iname bonding*
/lib/modules/2.6.20-16-generic/kernel/drivers/net/bonding/bonding.ko


Utilizziamo anche mii-tool e il modulo mii.o quindi controlliamo anche la sua esistenza sul nostro sistema:


find /lib/modules/`uname -r` -iname mii*
/lib/modules/2.6.20-16-generic/kernel/drivers/net/mii.ko


modprobe --list | grep -i mii
/lib/modules/2.6.20-16-generic/kernel/drivers/net/mii.ko


Installiamo il comando ifenslave:

sudo apt-get update && apt-get install ifenslave
sudo vi /etc/modprobe.d/aliases


Aggiungere o modificare le seguenti righe:


alias bond0 bonding
alias eth0 e100
alias eth1 e100


sudo vi /etc/modprobe.d/options


Aggiungere o modificare le seguenti righe:


options bonding mode=0 miimon=100

sudo vi /etc/modules


Aggiungere o modificare le seguenti righe:


bond0
eth0
eth1
bonding


Dopo aver aggiornato i file di configurazione dei moduli eseguite il seguente comando:

update-modules

vi /etc/network/interfaces

Aggiungere o modificare le seguenti righe:

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 avete bisogno di inserire la definizione di eth0 e eth1. D'ora in poi sara' bond0 l'interfaccia di rete utilizzata dal vostro sistema.
Eseguendo il comando 'ifconfig' verranno visualzzate le tre interfacce (bond0, eth0, eth1), tutte con lo stesso indirizzo MAC e lo stesso indirizzo IP.

E' tutto. Ora occorre caricare il modulo per il bonding e far ripartire il supporto di rete:

modprobe bonding
/etc/init.d/networking restart

Se avete problemi provate a fermare il networking e a configurare manualmente l'interfaccia bond0 con ifconfig:

ifconfig bond0 10.1.100.63 netmask 255.255.255.0 up


Supponendo di non avere errori provate a testare la configurazione. Pingate il vostro indirizzo IP da un altro computer. Entrambe le schede di rete risponderanno. Se scollegate eth0 riceverete un errore sulla console: "eth0 has failed, eth1 becoming primary" o qualcosa del genere. E vice versa se scollegate eth1. Comunque non dovreste perdere nessun pacchetto ping (o quantomeno non molti) in quanto si tratta di una connessione di rete ridondante.

Nessun commento: