Ricerca nel sito web

Come configurare il bonding/teaming di rete (NIC) su Debian Linux


Il teaming NIC presenta un'interessante soluzione alla ridondanza e all'elevata disponibilità nei regni di elaborazione server/workstation. Grazie alla possibilità di disporre di più schede di interfaccia di rete, un amministratore può diventare creativo nel modo in cui accedere a un particolare server o creare un canale più grande affinché il traffico possa fluire verso quel particolare server.

Leggi anche: Come configurare il collegamento o il teaming di rete in Ubuntu

Questa guida illustrerà l'abbinamento di due schede di interfaccia di rete su un sistema Debian. Il software noto come ifenslave verrà utilizzato per collegare e scollegare le NIC da un dispositivo collegato. Il dispositivo bond diventa quindi il dispositivo di rete che si interfaccia con il kernel ma utilizza fisicamente il dispositivo di interfaccia di rete effettivo (eth0, eth1, ecc.).

Legame in Debian Linux

La prima cosa da fare prima di qualsiasi configurazione, è determinare il tipo di collegamento di cui effettivamente il sistema necessita di essere implementato. Ci sono sei modalità di bonding supportate dal kernel Linux al momento della stesura di questo articolo. Alcune di queste "modalità" di collegamento sono semplici da configurare mentre altre richiedono configurazioni speciali sugli interruttori a cui si collegano i collegamenti.

Comprensione delle modalità di legame

Modalità Bond 0 – Bilanciamento-rr

Questo metodo di gruppo NIC è chiamato "Round-Robin", da qui la parola "RR" nel nome. Con questo metodo di collegamento, i pacchetti di rete vengono ruotati attraverso ciascuna delle schede di interfaccia di rete che compongono l'interfaccia collegata.

Ad esempio, un sistema con eth0, eth1 e eth2 tutti asserviti a un'interfaccia bond0. Questa interfaccia, se abilitata con la modalità bond 0, invierebbe il primo pacchetto eth0, il secondo pacchetto eth1, il terzo pacchetto il nostro eth2, quindi ricomincia da eth0 con il quarto pacchetto. È da qui che la modalità prende il nome di "round-robin".

Modalità Bond 1 – Backup attivo

Con questo metodo di collegamento, solo un'interfaccia di rete è attiva mentre le altre interfacce nel collegamento attendono semplicemente un errore nel collegamento alla scheda di interfaccia di rete primaria.

Modalità Bond 2 – Bilancia XOR

In una modalità bond XOR bilanciata, il bond valuterà gli indirizzi mac di origine e di destinazione per determinare quale interfaccia inviare i pacchetti di rete. Questo metodo sceglierà la stessa interfaccia per un determinato indirizzo Mac e di conseguenza è in grado di bilanciare il carico e tollerare gli errori.

Modalità Bond 3 – Trasmissione

In questo metodo il dispositivo di collegamento trasmetterà i dati a tutte le interfacce slave, da qui il nome "broadcast" di questo particolare metodo di collegamento. Esistono pochissimi usi per questo metodo, ma fornisce un livello di tolleranza agli errori.

Modalità Bond 4 – 802.3ad

Questo è un metodo di collegamento speciale per l'aggregazione dei collegamenti e richiede una configurazione speciale sullo switch a cui si collega questa particolare interfaccia collegata. Questo metodo segue gli standard IEEE per l'aggregazione dei collegamenti e fornisce sia tolleranza agli errori che maggiore larghezza di banda.

Modalità Bond 5: trasmissione del bilanciamento del carico

In TLB il bond riceverà normalmente il traffico sulle interfacce slave, ma quando il sistema deve inviare traffico, determinerà quale interfaccia è la migliore su cui trasmettere i dati in base al carico/coda per ciascuna di esse le interfacce.

Modalità Bond 6 – Bilanciamento del carico adattivo

In ALB l'obbligazione caricherà il saldo in modo simile alla Modalità Bond 5 ma con la possibilità aggiuntiva di caricare anche il saldo di ricezione.

A seconda del ruolo che svolgerà il sistema, la scelta del metodo di vincolo adeguato è fondamentale. Questo tutorial verrà eseguito su Debian Jessie con due interfacce di rete (eth0 e eth1) e sarà configurato per la modalità bond 1< o active-backup.

Tuttavia, è molto semplice passare da una modalità all'altra poiché si tratta semplicemente di una modifica nel file delle interfacce di rete (supponendo che non venga scelta la modalità bond 4 in quanto richiede la configurazione dello switch).

Configurazione gruppo NIC

Il primo passo di questo processo è ottenere il software appropriato dai repository. Il software per Debian è noto come ifenslave e può essere installato con "apt".

apt-get install ifenslave-2.6

Una volta installato il software, sarà necessario dire al kernel di caricare il modulo di bonding sia per l'installazione corrente che per i futuri riavvii. Per caricare il modulo questa volta, è possibile utilizzare l'utilità "modprobe" per caricare i moduli del kernel.

modprobe bonding

Ancora una volta, per garantire che questo collegamento sia attivo al riavvio del sistema, il file "/etc/modules" deve essere modificato per informare il kernel di caricare i moduli di collegamento all'avvio.

echo 'bonding' >> /etc/modules 

Ora che il kernel è a conoscenza dei moduli necessari per il collegamento della NIC, è il momento di creare l'interfaccia collegata vera e propria. Questo viene fatto tramite il file delle interfacce che si trova in "/etc/network/interfaces" ed è modificabile con qualsiasi editor di testo.

nano /etc/network/interfaces

Questo file contiene le impostazioni dell'interfaccia di rete per tutti i dispositivi di rete collegati al sistema. Questo esempio ha due schede di rete (eth0 e eth1). In questo file dovrebbe essere creata l'interfaccia di collegamento appropriata per asservire le due schede di rete fisiche in un'unica interfaccia logica. Questo è un file di interfacce molto semplicistico ma fa tutto il necessario per creare un'interfaccia di collegamento funzionante.

La prima stanza (riquadro rosso sopra) è la configurazione dell'interfaccia di loopback standard. 'auto lo' informa il kernel di attivare automaticamente l'adattatore all'avvio. "iface lo inet loopback" indica al sistema che questa interfaccia è l'interfaccia di loopback del sistema o più comunemente denominata 127.0.0.1.

La seconda stanza (riquadro giallo sopra) è l'interfaccia di legame effettiva che verrà utilizzata. Il "auto bond0" indica al sistema di inizializzare automaticamente il bond all'avvio del sistema. 'iface bond0 inet dhcp' può essere ovvio, ma per ogni evenienza, questa stanza afferma che l'interfaccia denominata bond0 dovrebbe ottenere le informazioni di rete tramite DHCP (Protocollo di controllo host dinamico).

Il "bond-mode 1" è ciò che viene utilizzato per determinare quale modalità bond viene utilizzata da questa particolare interfaccia collegata. In questo caso la modalità bond 1 indica che questo bond è una configurazione di backup attivo con l'opzione "bond-primary" che indica l'interfaccia primaria da utilizzare per il bond. 'slaves eth0 eth1' indica quali interfacce fisiche fanno parte di questa particolare interfaccia collegata.

Le due righe successive sono importanti per determinare quando il collegamento deve passare dall'interfaccia primaria a una delle interfacce slave in caso di guasto del collegamento. Miimon è una delle opzioni disponibili per monitorare lo stato dei collegamenti obbligazionari, mentre l'altra opzione è l'utilizzo delle richieste arp.

Questa guida utilizzerà miimon. 'bond-miimon 100' dice al kernel di ispezionare il collegamento ogni 100 ms. "bond-downdelay 400" significa che il sistema attenderà 400 ms prima di concludere che l'interfaccia attualmente attiva è effettivamente inattiva.

Il "bond-updelay 800" viene utilizzato per indicare al sistema di attendere l'utilizzo della nuova interfaccia attiva fino a 800 ms dopo che il collegamento è stato attivato. Una nota su updelay e downdelay, entrambi questi valori devono essere multipli del valore miimon altrimenti il sistema arrotonderà per difetto.