Il bonding è quel sistema che permette di “unire” due o più schede di rete per realizzare un canale trasmissivo più ampio e ridondato.
In linux, il bonding è gestito attraverso il pacchetto ifenslave. Vediamo come installarlo e configurarlo su linux Ubuntu.
Innanzi tutto installiamo il pacchetto:
apt-get install ifenslave ethtool
Ora configuriamo il modulo bonding:
/etc/modprobe.d/aliases alias bond0 bonding options mode=0 miimon=100 downdelay=200 updelay=200
Infine configuriamo il file “interfaces” con le funzionalità delle schede di rete:
/etc/network/interfaces auto bond0 iface bond0 inet static bond_miimon 100 bond_mode balance-rr address 172.17.0.251 netmask 255.255.255.0 up /sbin/ifenslave bond0 eth0 eth1 down /sbin/ifenslave -d bond0 eth0 eth1
Nell’esempio abbiamo utilizzato la modalità 0 che corrisponde al semplice round-robin. In relatà esistono ben 6 diverse modalità di bonding:
mode=0 (balance-rr) Round-robin policy: Trasmette i pacchetti in ordine sequenziale partendo dalla prima interfaccia di rete “slave”. Questo modo assicura il load balancing e il fault tolerance.
mode=1 (active-backup) Active-backup policy: Solo una scheda di rete è attiva. Una scheda seconda di rete si attiva solo nel caso in cui la scheda di rete principale non risulti più attiva. Il MAC address della interfaccia bond è visibile esternamente solo da una porta in modo da non confondere lo switch. Questo modo assicura solo il fault tolerance.
mode=2 (balance-xor) XOR policy: Transmissione basate sul [(MAC address sorgente XOR con MAC address destinazione) modulo conteggio slave]. In pratica per trasmettere il pacchetto viene scelta l’interfaccia di rete più opportuna in base al MAC address sorgente. Questo modo assicura il load balancing e il fault tolerance.
mode=3 (broadcast) Broadcast policy: transmette tutto su tutte le interfacce di rete. Questo modo assicura solo il fault tolerance.
mode=4 (802.3ad) IEEE 802.3ad Dynamic link aggregation. Crea gruppi di aggregazione della stessa velocità e settaggio duplex. Utilizza tutte le interfaccie slave secondo le specifiche 802.3ad.
* Prerequisiti:
* Supporto Ethtool nel driver della scheda di rete per conoscere la velocità e il modo duplex di ciascuna scheda.
* Uno switch che supporti il IEEE 802.3ad Dynamic link aggregation. La maggior parte degli switch richiedono una particolare configurazione per abilitare la modalità 802.3ad.
mode=5 (balance-tlb) Adaptive transmit load balancing: channel bonding che non richede particolare supporto lato switch. Il traffico in uscita viene distribuito in base al carico momentaneo di ciascuna scheda di rete (considerando la velocità di ogni interfaccia). Il traffico in ingresso viene ricevuto in base al MAC address di destinazione. Se la scheda di rete corrispondente non dovesse essere attiva, un’altra scheda si farà carico del MAC address della scheda non più attiva.
* Prerequisiti: supporto di Ethtool sui driver della scheda di rete per conoscere la velocità di ciascuna porta.
mode=6 (balance-alb) Adaptive load balancing: come il balance-tlb con in aggiunta il load balancing per il traffico IPv4 in ingresso senza richiedere supporti particolari per lo switch.
[...] Configurare il bonding di due schede ethernet [...]