Il legame dell'interfaccia di rete è chiamato con molti nomi:Port Trunking, Channel Bonding, Link Aggregation, NIC teaming e altri. Combina o aggrega più connessioni di rete in un'interfaccia di collegamento a canale singolo. Ciò consente a due o più interfacce di rete di agire come una sola, aumentare il throughput e fornire ridondanza o failover.
Il kernel Linux viene fornito con il driver di collegamento per l'aggregazione di più interfacce di rete fisiche in un'unica interfaccia logica (ad esempio, l'aggregazione di eth0 ed eth1 in bond0). Per ciascuna interfaccia collegata è possibile definire la modalità e le opzioni di monitoraggio del collegamento. Sono disponibili sette diverse opzioni di modalità, ciascuna delle quali fornisce specifiche caratteristiche di bilanciamento del carico e tolleranza ai guasti, come mostrato nella tabella seguente.
Modalità di incollaggio
A seconda delle tue esigenze, puoi impostare la modalità di incollaggio su una delle 7 modalità seguenti.
Modalità | Politica | Come funziona | Tolleranza ai guasti | Bilanciamento del carico |
---|---|---|---|---|
0 | Round Robin | I pacchetti vengono trasmessi/ricevuti in sequenza attraverso ciascuna interfaccia uno per uno. | No | Sì |
1 | Backup attivo | una NIC attiva mentre un'altra NIC è inattiva. Se la NIC attiva si interrompe, diventa attiva un'altra NIC. supportato solo in ambienti x86. | Sì | No |
2 | XOR [OR esclusivo] | In questa modalità, l'indirizzo MAC della NIC slave viene confrontato con il MAC della richiesta in entrata e una volta stabilita questa connessione, la stessa NIC viene utilizzata per trasmettere/ricevere per il MAC di destinazione. | Sì | Sì |
3 | Trasmissione | Tutte le trasmissioni vengono inviate a tutti gli slave | Sì | No |
4 | Aggregazione dinamica dei collegamenti | Le NIC aggregate agiscono come una NIC che si traduce in una maggiore velocità effettiva, ma fornisce anche il failover nel caso in cui una NIC si guasta. Dynamic Link Aggregation richiede uno switch che supporti IEEE 802.3ad. | Sì | Sì |
5 | Trasmissione del bilanciamento del carico (TLB) | 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. | Sì | Sì |
6 | Bilanciamento del carico adattivo (ALB) | A differenza di Dynamic Link Aggregation, Adaptive Load Balancing non richiede alcuna configurazione di switch particolare. Il bilanciamento del carico adattivo è supportato solo negli ambienti x86. I pacchetti di ricezione sono bilanciati dal carico tramite la negoziazione ARP. | Sì | Sì |
Monitoraggio collegamento collegamento di rete
Il driver di collegamento supporta due metodi per monitorare lo stato del collegamento di uno slave:
- Questa è l'opzione di monitoraggio dei collegamenti predefinita e consigliata.
- Controlla lo stato del vettore dell'interfaccia di rete locale.
- Puoi specificare la frequenza di monitoraggio e il ritardo.
- I tempi di ritardo ti consentono di tenere conto dell'inizializzazione dello switch.
- Questo invia query ARP ai sistemi peer sulla rete e utilizza la risposta come indicazione che il collegamento è attivo.
- Puoi specificare la frequenza di monitoraggio e gli indirizzi di destinazione.
Collegamento di rete:configurazione
Creazione di un file di interfaccia di incollaggio
Puoi creare manualmente un file di interfaccia di collegamento in /etc/sysconfig/network-scripts directory. Per prima cosa crei l'interfaccia di collegamento e quindi aggiungi le interfacce di rete fisica al collegamento. Queste interfacce di rete fisiche sono chiamate "slave “.
Per l'esempio in questo post, gli slave per l'interfaccia bond0 sono ens33 e ens37. Prima dell'avvio, assicurarsi che il modulo di incollaggio sia caricato correttamente. Per verificarlo, usa il comando mostrato di seguito:
# lsmod |grep bonding bonding 122351 0
Se il modulo non è caricato, caricalo usando il comando modprobe.
# modprobe bonding
1. Quello che segue è un esempio di un file di interfaccia di incollaggio:
# cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BONDING_OPTS="miimon=1 updelay=0 downdelay=0 mode=active-backup" TYPE=Bond BONDING_MASTER=yes BOOTPROTO=none IPADDR=192.168.2.12 PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=bond0 UUID=bbe539aa-5042-4d28-a0e6-2a4d4f5dd744 ONBOOT=yes
2. L'esempio seguente definisce ens33 interfaccia di rete fisica come slave per bond0:
# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet NAME=ens33 UUID=817e285b-60f0-42d8-b259-4b62e21d823d DEVICE=ens33 ONBOOT=yes MASTER=bond0 SLAVE=yes
3. L'esempio seguente definisce ens37 interfaccia di rete fisica come slave per bond0:
# cat /etc/sysconfig/network-scripts/ifcfg-ens37 TYPE=Ethernet NAME=ens37 UUID=f0c23472-1aec-4e84-8f1b-be8a2ecbeade DEVICE=ens37 ONBOOT=yes MASTER=bond0 SLAVE=yes
4. Riavvia i servizi di rete
Riavvia i servizi di rete per abilitare l'interfaccia di collegamento.
# systemctl restart network
Nel caso in cui non desideri riavviare il servizio di rete, puoi collegare l'interfaccia di collegamento individualmente:
# ifup bond0
Verifica la configurazione del collegamento di rete
1. Controlla la nuova interfaccia nell'output del comando 'ip addr show':
# ip addr show 1: lo: [LOOPBACK,UP,LOWER_UP] mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff 4: ens37: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff 5: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff inet 192.168.2.12/24 brd 192.168.2.255 scope global bond0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe54:f720/64 scope link valid_lft forever preferred_lft forever
2. Verificare anche lo stato corrente delle interfacce di collegamento e quale interfaccia è attualmente attiva, utilizzando 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): 1 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:54:f7:20 Slave queue ID: 0 Slave Interface: ens37 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:54:f7:34 Slave queue ID: 0
Dall'output del comando sopra, possiamo vedere che ens33 è lo slave attualmente attivo nell'obbligazione.
Test della tolleranza ai guasti della configurazione di incollaggio
1. Poiché si tratta di una configurazione di collegamento di backup attivo, quando un'interfaccia si interrompe, l'altra interfaccia nel collegamento diventa lo slave attivo. Per verificare questa funzionalità, abbasseremo l'attuale interfaccia ens33.
# ifdown ens33
2. Se controlli nuovamente lo stato dell'interfaccia di collegamento, scoprirai che il nuovo slave attivo è l'interfaccia ens37.
# 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: ens37 MII Status: up MII Polling Interval (ms): 1 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens37 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:54:f7:34 Slave queue ID: 0
Anche l'interfaccia di legame sarà attiva e funzionante:
# ip add show bond0 5: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff inet 192.168.2.12/24 brd 192.168.2.255 scope global bond0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe54:f720/64 scope link valid_lft forever preferred_lft foreverCentOS / RHEL 7:come creare un legame di interfaccia usando nmcli