Come configurare il collegamento Ethernet in Linux
Il bonding Ethernet è un metodo per combinare (unire) due o più interfacce di rete in un’unica NIC virtuale che può aumentare la larghezza di banda e fornire ridondanza alle NIC.
Linux ci consente di collegare più interfacce di rete utilizzando uno speciale modulo del kernel chiamato bonding. La funzione è abilitata su Linux, quindi possiamo creare una nuova interfaccia virtuale chiamata bond. Abbiamo due schede NIC ens33 e ens34. Il post mostra la procedura su RHEL 7 e CentOS 7.
1) Abilita il modulo di collegamento
Come primo passo è necessario verificare se il modulo di collegamento è abilitato. Puoi controllare con il comando seguente
# modinfo bonding
modinfo: ERROR: Module alias bonding not found.
Se non è presente, puoi utilizzare il comando seguente:
# modprobe --first-time bonding
Puoi controllare di nuovo. Avrai il risultato qui sotto
# modinfo bonding
Puoi vedere che il comando ci dà un risultato e puoi cercare la riga di descrizione.
2) Creare un’interfaccia del canale di collegamento
Per prima cosa creeremo un nuovo nome file colla.conf nel /etc/modprobe.d/
direttore. Il nome può essere qualsiasi cosa tu voglia purché termini con a .conf estensione. È un file di configurazione per il driver chiamato bonding
# vim /etc/modprobe.d/bonding.conf
alias bond0 bonding
Inserisci il contenuto sopra, salva ed esci. Per ogni interfaccia di connessione del canale configurata, deve esserci una voce corrispondente nel tuo /etc/modprobe.d/bonding.conf
file
Ora possiamo creare un’interfaccia per connettere i canali. Per fare questo abbiamo bisogno di creare un file all’interno del file /etc/sysconfig/network-scripts/
direttore nominato ifcfg-bond0
come alias da creare in precedenza. Dovresti notare che stiamo operando sulla cartella che contiene i file dell’interfaccia di rete.
# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.43.100
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=1 miimon=100"
Nota la direttiva OPZIONI_INCOLLAGGIO linea, la saldatura utilizza una varietà di opzioni e modalità. Le modalità possono essere:
- modalità 0 o equilibrio-rr: imposta un criterio round-robin per la tolleranza agli errori e il bilanciamento del carico.
- modalità 1 o backup attivo: imposta una politica di backup attiva per la tolleranza agli errori.
- modalità 2 o equilibrio-coro: imposta una modalità XOR (or esclusivo) per la tolleranza ai guasti e il bilanciamento del carico.
- modalità 3 o Rilasciato: imposta una politica di trasmissione per la tolleranza agli errori. Tutte le trasmissioni vengono inviate su tutte le interfacce slave.
- modalità 4 o 802.3 annuncio: imposta un criterio di aggregazione di collegamenti dinamici IEEE 802.3ad. Crea gruppi di aggregazione che condividono le stesse impostazioni di velocità e duplex.
- modalità 5 o equilibrio-tlb: imposta un criterio di bilanciamento del carico di trasmissione (TLB) per la tolleranza agli errori e il bilanciamento del carico. Il traffico in uscita viene distribuito in base al carico corrente su ciascuna interfaccia slave. Il traffico in entrata viene ricevuto dallo slave corrente. Se lo slave ricevente si guasta, un altro slave assume l’indirizzo MAC dello slave guasto. Questa modalità è adatta solo per gli indirizzi locali noti al modulo di binding del kernel e pertanto non può essere utilizzata dietro un bridge di macchina virtuale.
- modalità 6 o bilanciamento del bianco: imposta un criterio ALB (Adaptive Load Balancing) per la tolleranza agli errori e il bilanciamento del carico. Include il bilanciamento del carico di trasmissione e ricezione per
IPv4
traffico.
Le opzioni possono essere:
- mimon=tempo_in_millisecondi: mostra (in millisecondi) la frequenza con cui lo stato della connessione viene controllato per errori di collegamento. Ciò è utile se è richiesta un’elevata disponibilità perché MII viene utilizzato per verificare se la scheda NIC è attiva
- arp_interval=tempo_in_millisecondi: specifica (in millisecondi) la frequenza con cui si verifica il monitoraggio ARP. Se utilizzi questa impostazione in modalità 0 o 2 (le due modalità di bilanciamento del carico), lo switch di rete deve essere configurato per distribuire i pacchetti in modo uniforme tra le NIC.
3) Configurare le interfacce fisiche
Il passaggio successivo consiste nel modificare le interfacce fisiche destinate al collegamento aggiungendo MASTER=bond0
e SLAVE=yes
direttive ai loro file di configurazione. Ciò implica che l’interfaccia di connessione del canale sia maestro e le interfacce da associare sono denominate schiavitù. I file di configurazione per ciascuna delle interfacce associate al canale possono essere quasi identici e devi commentare o rimuovere l’indirizzo IP, la maschera di rete, il gateway e l’indirizzo hardware da ciascuno di questi file, poiché le impostazioni dovrebbero provenire solo da ifcfg -bond0 . il file sopra. Assicurati di aggiungere la configurazione MASTER e SLAVE a questi file.
Per l’interfaccia ens33, avremo la configurazione seguente
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
NAME=bond0-slave
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
Per l’interfaccia ens34, il file dovrebbe apparire come sotto
# vim /etc/sysconfig/network-scripts/ifcfg-ens34
DEVICE=ens34
NAME=bond0-slave
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
4) Abilita canale di collegamento
Per attivare un collegamento, rivela tutti gli schiavi. Se l’interfaccia era già abilitata durante le modifiche, devi prima disabilitarla.
Quindi prima disabiliteremo l’interfaccia
# ifdown ifcfg-ens33
Device 'ens33' successfully disconnected.
# ifdown ifcfg-ens34
Device 'ens34' successfully disconnected.
Ora riattiveremo le interfacce
# ifup ifcfg-ens33
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/5)
# ifup ifcfg-ens34
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/6)
o ricaricare l’intera interfaccia con
# nmcli con reload
Puoi controllare la configurazione con il comando seguente:
# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 192.168.43.100 netmask 255.255.255.0 broadcast 192.168.43.255
inet6 fe80::20c:29ff:feb4:f30a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet)
RX packets 26 bytes 4705 (4.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22 bytes 3711 (3.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet)
RX packets 13 bytes 2196 (2.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12 bytes 2072 (2.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens34: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:b4:f3:0a txqueuelen 1000 (Ethernet)
RX packets 13 bytes 2509 (2.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10 bytes 1639 (1.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 1172 bytes 86468 (84.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1172 bytes 86468 (84.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Puoi vedere che solo l’interfaccia bond ha un indirizzo IP. Controlla anche la configurazione con il comando seguente
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b4:f3:0a
Slave queue ID: 0
Slave Interface: ens34
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b4:f3:14
Slave queue ID: 0
Vedere la home page di Linux per maggiori dettagli su connessione ethernet.
Conclusione
Il monitoraggio del collegamento può essere abilitato tramite i parametri miimon o arp_interval, in cui miimon monitora lo stato della portante rilevato dal dispositivo di rete sottostante e arp monitor (arp_interval) monitora la connettività a un altro host sulla rete locale. Se non è configurato alcun monitoraggio del collegamento, il driver del collegamento non sarà in grado di rilevare gli errori di collegamento e presumerà che tutti i collegamenti siano sempre disponibili. Quando il monitoraggio della connessione è abilitato, il dispositivo difettoso verrà disabilitato. La modalità di backup attivo passerà a un collegamento di backup e le altre modalità ignoreranno il collegamento non riuscito.
Related Read: Interface (NICs) Bonding in Linux using nmcli