In Linux, usando il bonding etherchannel puoi combinare due o più interfacce di rete fisiche (NIC) insieme per creare un'interfaccia virtuale.
L'indirizzo IP verrà configurato su questa interfaccia virtuale. Se uno degli adattatori fisici sottostanti si interrompe, l'altro adattatore fisico viene utilizzato per gestire il traffico di comunicazione.
Di seguito sono riportati diversi tipi di modalità di legame etherchannel:
- Modalità 0 – Criterio Round-robin (RR):le trasmissioni di pacchetti vengono eseguite in ordine sequenziale. Ad esempio, il primo pacchetto viene trasmesso utilizzando l'interfaccia e il secondo pacchetto viene eseguito tramite l'interfaccia successiva e così via. Questa modalità fornisce bilanciamento del carico e tolleranza agli errori.
- Modalità 1 – criterio di backup attivo:la trasmissione dei pacchetti avviene solo attraverso l'interfaccia attiva e il traffico viene instradato attraverso l'interfaccia di backup solo quando l'interfaccia attiva si è interrotta.
- Modalità 2 – Politica XOR:questa modalità bilancia il traffico in uscita attraverso le porte attive. In questa modalità viene utilizzato lo stesso slave per la trasmissione per ogni indirizzo MAC di destinazione. Ciò fornisce bilanciamento del carico e tolleranza agli errori.
- Modalità 3 – politica di trasmissione:trasmette tutto su tutte le interfacce slave. Questa modalità fornisce la tolleranza agli errori.
- Modalità 4( 802.3ad ):questa modalità viene utilizzata per creare gruppi di aggregazione di collegamenti che condividono le stesse impostazioni di velocità e duplex.
- Modalità 5( balance-tlb ):bilanciamento del carico di trasmissione adattivo. Il traffico in uscita viene distribuito in base al carico attuale su ogni slave. Il traffico in entrata viene ricevuto dallo slave corrente. Se lo slave corrente si guasta, un altro slave assume il traffico in entrata in base all'indirizzo MAC.
- Modalità 6( balance-alb ):bilanciamento del carico adattivo. In questo, il traffico in entrata viene gestito per utilizzare il bilanciamento del carico su tutti gli slave. Il bilanciamento del carico in ricezione avviene tramite la negoziazione ARP.
Configura Bonding in Redhat o CentOS
1. Crea file ifcfg-bond0
Tutti gli script di configurazione di rete si trovano in /etc/sysconfig/network-scripts in RHEL. Verifica lo stato dei link delle interfacce utilizzando il comando “ethtool ”
Crea un file ifcfg-bond0 con i valori seguenti e sostituiscilo con IP corretto, NETMASK e la modalità di collegamento appropriata ( modalità 0, 1 ,2 ...) come di seguito.
# cd /etc/sysconfig/network-scripts # vi ifcfg-bond0 DEVICE=bond0 IPADDR=19.86.101.120 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no BONDING_OPTS="mode=1 miimon=100"
2. Modifica i file ifcfg-eth0 e ifcfg-eth1
Modifica i file dell'interfaccia di rete per eth0 ed eth1 in modo che riflettano voci simili alle seguenti. Assicurati di avere i parametri MASTER e SLAVE definiti come mostrato di seguito.
# cat ifcfg-eth0 DEVICE=eth0 HWADDR=00:50:56:8E:0C:10 MASTER=bond0 SLAVE=yes ONBOOT=yes USERCTL=no BOOTPROTO=none # cat ifcfg-eth1 DEVICE=eth1 HWADDR=00:50:56:8E:0C:2A MASTER=bond0 SLAVE=yes ONBOOT=yes USERCTL=no BOOTPROTO=none
3. Crea il file bonding.conf
Crea il file bonding.conf con il seguente contenuto.
# vi /etc/modprobe.d/bonding.conf alias netdev-bond0 bonding
4. Riavvia il servizio di rete e verifica il collegamento
Riavvia i servizi di rete:
service network restart
Verificare lo stato dell'incollaggio come mostrato di seguito.
Quanto segue indica che la modalità di collegamento corrente è a tolleranza di errore.
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:50:56:8e:0c:10 Slave queue ID: 0 Slave Interface: eth1 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:50:56:8e:0c:2a Slave queue ID: 0
Puoi eseguire il test abbassando un'interfaccia, vedendo che l'altra sarà attiva e viceversa.
Configurazione di Bonding su SuSE Linux
Per configurare il bonding sull'ultima versione di SuSE, puoi utilizzare YaST o in alternativa puoi modificare i file di sistema come mostrato di seguito:
Verifica le interfacce attive utilizzando il seguente comando:
ethtool eth0 | egrep "Speed|Duplex|Link"
Se lo stato di velocità, duplex e collegamento è sconosciuto, l'interfaccia potrebbe essere in stato di inattività. Prova a far apparire l'interfaccia usando "ifconfig up". Se ancora non vedi il link, l'interfaccia non è collegata allo switch.
1. Crea file ifcfg-bond0
Accedi alla macchina utilizzando la console. Crea ifcfg-bond0 in /etc/sysconfig/network e definisci l'indirizzo IP e le interfacce slave che possono essere utilizzate.
Nell'esempio seguente, ho utilizzato la modalità di backup attivo per il collegamento, il che significa che solo le interfacce attive gestiscono il traffico di comunicazione e l'errore in cui l'interfaccia di backup inizia a funzionare.
# cd /etc/sysconfig/network # cat ifcfg-bond0 BONDING_MASTER=yes BONDING_MODULE_OPTS='mode=active-backup miimon=100' BONDING_SLAVE0='eth0' BONDING_SLAVE1='eth1' BOOTPROTO='static' IPADDR='192.168.1.85/24' BROADCAST='' STARTMODE='auto'
2. Modifica i file ifcfg-eth0 e ifcfg-eth1
Modificare le interfacce slave in modo che non disponga dell'indirizzo IP, Netmask. L'output dovrebbe essere simile al seguente:
# cat ifcfg-eth0 DEVICE='eth0' BOOTPROTO='none' STARTMODE='onboot' NAME='82545EM Gigabit Ethernet Controller (Copper)' # cat ifcfg-eth1 DEVICE='eth1' BOOTPROTO='none' STARTMODE='onboot' NAME='82545EM Gigabit Ethernet Controller (Copper)'
3. Modifica il file modprobe.conf
Modifica il file /etc/modprobe.conf e aggiungi le 2 righe seguenti per includere il driver di collegamento con le opzioni.
alias bond0 bonding options bond0 miimon=100 mode=1
Nota:puoi scegliere di ignorare le opzioni se le hai già incluse nel file /etc/sysconfig/network/ifcfg-bond0.
4. Riavvia il servizio di rete e verifica il collegamento
Dopo aver impostato il bonding, riavvia il servizio di rete:
rcnetwork restart
Verificare che l'interfaccia di collegamento sia attiva e che l'ip sia configurato correttamente. Assicurati inoltre di essere in grado di connettere il server utilizzando l'indirizzo IP.
# ifconfig bond0 bond0 Link encap:Ethernet HWaddr 00:50:56:8E:00:26 inet addr:192.168.1.85 Bcast:192.168.1.1 Mask:255.255.255.0 UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:28420409 errors:0 dropped:0 overruns:0 frame:0 TX packets:151985 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2362560309 (2253.1 Mb) TX bytes:17330542 (16.5 Mb)
Per verificare che l'interfaccia di collegamento funzioni correttamente, accedi alla console e abbassa l'interfaccia attiva usando "ifconfig eth0 down". Verifica che sarai ancora in grado di accedere alla macchina utilizzando lo stesso IP o nome host. Puoi verificare lo stato dell'interfaccia attiva nel file sottostante,
Come mostrato di seguito, l'eth0 è inattivo, ma la connettività di rete alla macchina non è ancora persa, poiché abbiamo impostato il collegamento e l'interfaccia eth1 è ancora attiva.
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: down Link Failure Count: 1 Permanent HW addr: 00:50:56:8e:00:26 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:50:56:8e:7e:20