Ricerca nel sito web

Come impostare e configurare il collegamento o il raggruppamento di rete in RHEL/CentOS 7 - Parte 11


Quando un amministratore di sistema desidera aumentare la larghezza di banda disponibile e fornire ridondanza e bilanciamento del carico per i trasferimenti di dati, una funzionalità del kernel nota come bonding di rete consente di svolgere il lavoro in modo economicamente vantaggioso.

Ulteriori informazioni su come aumentare o limitare la larghezza di banda in Linux

In parole semplici, il bonding significa aggregare due o più interfacce di rete fisiche (chiamate slave) in un'unica interfaccia logica (chiamata master). Se si verifica un problema con una scheda NIC (scheda di interfaccia di rete) specifica, le comunicazioni non vengono influenzate in modo significativo finché le altre rimangono attive.

Maggiori informazioni sul collegamento di rete nei sistemi Linux qui:

  1. Network Teaming o NiC Bondin in RHEL/CentOS 6/5
  2. Collegamento o teaming di NIC di rete su sistemi basati su Debian
  3. Come configurare il collegamento o il gruppo di rete in Ubuntu

Abilitazione e configurazione del collegamento o del raggruppamento di rete

Per impostazione predefinita, il modulo del kernel di bonding non è abilitato. Pertanto, dovremo caricarlo e assicurarci che sia persistente durante gli avviamenti. Se utilizzato con l'opzione --first-time, modprobe ci avviserà se il caricamento del modulo non riesce:

modprobe --first-time bonding

Il comando precedente caricherà il modulo di bonding per la sessione corrente. Per garantire la persistenza, crea un file .conf all'interno di /etc/modules-load.d con un nome descrittivo, come /etc/modules-load .d/bonding.conf:

echo "# Load the bonding kernel module at boot" > /etc/modules-load.d/bonding.conf
echo "bonding" >> /etc/modules-load.d/bonding.conf

Ora riavvia il server e, una volta riavviato, assicurati che il modulo di bonding venga caricato automaticamente, come mostrato in Fig. 1:

In questo articolo utilizzeremo 3 interfacce (enp0s3, enp0s8 e enp0s9) per creare un bond, chiamato convenientemente bond0.

Per creare bond0, possiamo utilizzare nmtui, l'interfaccia testuale per il controllo di NetworkManager. Quando invocato senza argomenti dalla riga di comando, nmtui visualizza un'interfaccia di testo che consente di modificare una connessione esistente, attivare una connessione o impostare il nome host del sistema.

Scegli Modifica connessione –> Aggiungi –> Lega come illustrato in Fig. 2:

Nella schermata Modifica connessione, aggiungi le interfacce slave (enp0s3, enp0s8 e enp0s9 nel nostro caso) e assegnare loro un nome descrittivo (profilo) (ad esempio, NIC #1, NIC #2 e NIC #3, rispettivamente).

Inoltre, dovrai impostare un nome e un dispositivo per il bond (TecmintBond e bond0 in Fig. 3, rispettivamente) e un indirizzo IP per bond0, inserisci un indirizzo gateway e gli IP dei server DNS.

Nota che non è necessario inserire l'indirizzo MAC di ciascuna interfaccia poiché nmtui lo farà per te. Puoi lasciare tutte le altre impostazioni come predefinite. Vedere la Fig. 3 per maggiori dettagli.

Quando hai finito, vai in fondo allo schermo e scegli OK (vedi Fig. 4):

E hai finito. Ora puoi uscire dall'interfaccia di testo e tornare alla riga di comando, dove abiliterai l'interfaccia appena creata utilizzando il comando ip:

ip link set dev bond0 up

Successivamente, puoi vedere che bond0 è UP e gli è assegnato 192.168.0.200, come mostrato in Fig. 5:

ip addr show bond0

Test di collegamento o gruppo di rete in Linux

Per verificare che bond0 funzioni effettivamente, puoi eseguire il ping del suo indirizzo IP da un'altra macchina o, cosa ancora migliore, guardare la tabella dell'interfaccia del kernel in tempo reale (beh, il tempo di aggiornamento in secondi è dato dal -n opzione) per vedere come viene distribuito il traffico di rete tra le tre interfacce di rete, come mostrato in Fig. 6.

L'opzione -d viene utilizzata per evidenziare i cambiamenti quando si verificano:

watch -d -n1 netstat -i

È importante notare che esistono diverse modalità di legame, ciascuna con le sue caratteristiche distintive. Sono documentati nella sezione 4.5 della guida Red Hat Enterprise Linux 7 Network Administration. A seconda delle tue esigenze, sceglierai l'uno o l'altro.

Nella nostra configurazione attuale, abbiamo scelto la modalità Round-robin (vedi Fig. 3), che garantisce che i pacchetti vengano trasmessi iniziando dal primo slave in ordine sequenziale, terminando con l'ultimo slave e iniziando con quello prima ancora.

L'alternativa Round-robin è anche chiamata mode 0 e fornisce bilanciamento del carico e tolleranza agli errori. Per cambiare la modalità di bonding, puoi usare nmtui come spiegato prima (vedi anche Fig. 7):

Se lo cambiamo in Backup attivo, ci verrà richiesto di scegliere uno slave che sarà l'unica interfaccia attiva in un dato momento. Se tale carta fallisce, uno degli schiavi rimanenti prenderà il suo posto e diventerà attivo.

Scegliamo enp0s3 come slave primario, abbattiamo e attiviamo bond0, riavviamo la rete e visualizziamo la tabella dell'interfaccia del kernel (vedere Fig. 8).

Nota come i trasferimenti di dati (TX-OK e RX-OK) vengono ora effettuati solo tramite enp0s3:

ip link set dev bond0 down
ip link set dev bond0 up
systemctl restart network

In alternativa, puoi visualizzare il legame come lo vede il kernel (vedi Fig. 9):

cat /proc/net/bonding/bond0

Riepilogo

In questo capitolo abbiamo discusso come impostare e configurare il bonding in Red Hat Enterprise Linux 7 (funziona anche su CentOS 7 e Fedora 22+ ) al fine di aumentare la larghezza di banda insieme al bilanciamento del carico e alla ridondanza per i trasferimenti di dati.

Prendendoti il tempo per esplorare altre modalità di collegamento, imparerai a padroneggiare i concetti e la pratica relativi a questo argomento della certificazione.

Se hai domande su questo articolo o suggerimenti da condividere con il resto della community, non esitare a farcelo sapere utilizzando il modulo di commento qui sotto.