Sui server di rete, è un requisito importante garantire che l'interfaccia di rete sia sempre disponibile. Su Red Hat Enterprise Linux 7, puoi creare interfacce di rete aggregate. Usa il network teaming o il network bonding per raggiungere questo obiettivo.
Nelle versioni precedenti di RHEL, il collegamento di rete era il metodo predefinito per la creazione di interfacce di rete aggregate. In RHEL 7, il teaming di rete è stato aggiunto come soluzione. La principale differenza tra questi due è che il legame di rete è avvenuto completamente nello spazio utente, mentre, nel teaming di rete, viene aggiunto il demone teamd per consentire l'interazione anche nello spazio utente. Anche se entrambi i metodi sono ancora validi, il network teaming è il metodo preferito.
Nelle versioni precedenti di Red Hat Enterprise Linux, il collegamento di rete veniva utilizzato per raggiungere gli stessi obiettivi. Il teaming in rete è una novità in Red Hat Enterprise Linux 7. La soluzione consiste in un piccolo driver del kernel e un demone disponibile nello spazio utente:teamd.
# rpm -qa | grep teamd teamd-1.27-4.el7.x86_64
Il kernel si occupa della gestione dei pacchetti di rete, mentre il driver in team gestisce la logica e l'elaborazione dell'interfaccia. Per determinare esattamente come ciò sta accadendo, vengono utilizzati diversi corridori. I corridori in squadra sono equivalenti alle modalità di legame. Sono utilizzati per definire la logica di gestione del traffico tra le interfacce coinvolte nella configurazione. La tabella seguente fornisce un riepilogo dei corridori disponibili.
Corridore | Osservazione |
---|---|
giro all'italiana | Questa è l'impostazione predefinita che stiamo utilizzando, invia semplicemente i pacchetti a tutte le interfacce del team in modo round robin, ovvero uno alla volta seguito dall'interfaccia successiva. |
trasmissione | Tutto il traffico viene inviato su tutte le porte. |
backup attivo | Un'interfaccia è in uso mentre l'altra è messa da parte come backup, il collegamento viene monitorato per le modifiche e utilizzerà il collegamento di failover se necessario. |
bilanciamento del carico | Il traffico è bilanciato su tutte le interfacce in base al traffico Tx, lo stesso carico dovrebbe essere condiviso sulle interfacce disponibili. |
lap | Implementa il protocollo LACP 802.3ad. |
1. Configura il team di rete utilizzando le definizioni del formato JSON [non persistente]
1. Crea un file di definizione in formato JSON per il team e le sue porte componenti, in questo esempio, /root/team_config/team0.conf .
# cat /root/team_config/team0.conf #team0.conf { "device": "team0", "runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}, "ports": { "enp0s8": { "prio": -10, "sticky": true }, "enp0s9": { "prio": 100 } } }
2. Usa il comando ip per abbassare le porte dei componenti:
# ip link set enp0s8 down # ip link set enp0s9 downNota :le interfacce attive non possono essere aggiunte a un team.
3. Avvia un'istanza del demone teamd e fai in modo che crei l'interfaccia teamed leggendo il file di configurazione (in questo esempio, /root/team_config/team0.conf):
# teamd -g -f /root/team_config/team0.conf -d Using team device "team0". Using PID file "/var/run/teamd/team0.pid" Using config file "/root/team_config/team0.conf"Nota :Il -g l'opzione visualizza i messaggi di debug e può essere omessa.
4. Utilizzare il comando ip per impostare la lunghezza del prefisso IPaddr e della maschera di rete dell'interfaccia in team:
# ip addr add 192.168.22.10/24 dev team0
5. Verifica la configurazione con i comandi “ip addr” e “teamdctl”.
# ip addr team0:mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 08:00:27:5a:d8:50 brd ff:ff:ff:ff:ff:ff inet 192.168.22.10/24 scope global team0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe5a:d850/64 scope link valid_lft forever preferred_lft forever
# teamdctl team0 state setup: runner: activebackup ports: enp0s8 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp0s9 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp0s9
2. Configura il team di rete utilizzando i file ifcfg [Persistente]
1. Vai a /etc/sysconfig/network-scripts directory e creare il file "ifcfg-team0" come mostrato di seguito:
# cat /etc/sysconfig/network-scripts/ifcfg-team0 DEVICE=team0 DEVICETYPE=Team ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no #IPADDR=192.168.11.1 PREFIX=24 TEAM_CONFIG='{"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}'Nota :l'interfaccia di teaming team0 può anche avere un ip statico con BOOTPROTO=none
2. Modifica i file per la rispettiva interfaccia (qui ho aggiunto due interfacce enp0s8 e enp0s9):
# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8 DEVICE=enp0s8 #HWADDR=D4:85:64:01:46:9E DEVICETYPE=TeamPort ONBOOT=yes NM_CONTROLLED=no TEAM_MASTER=team0 TEAM_PORT_CONFIG='{"prio": 100}'
# cat /etc/sysconfig/network-scripts/ifcfg-enp0s9 DEVICE=enp0s9 #HWADDR=D4:85:64:01:46:9E DEVICETYPE=TeamPort ONBOOT=yes TEAM_MASTER=team0 NM_CONTROLLED=no TEAM_PORT_CONFIG='{"prio": 100}'
3. Assicurati che entrambe le interfacce siano inattive:
# ip link set enp0s8 down # ip link set enp0s9 downNota :le interfacce attive non possono essere aggiunte a un team.
4. Ora puoi visualizzare la tua interfaccia
# ifup team0
5. Verifica la configurazione del teaming con i comandi “ip addr”, “nmcli device status” e “teamdctl”.
# ip addr team0:mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 08:00:27:2e:4c:65 brd ff:ff:ff:ff:ff:ff inet 192.168.57.101/24 brd 192.168.57.255 scope global dynamic team0 valid_lft 1178sec preferred_lft 1178sec inet6 fe80::a00:27ff:fe2e:4c65/64 scope link tentative dadfailed valid_lft forever preferred_lft forever
# nmcli device status DEVICE TYPE STATE CONNECTION enp0s8 ethernet unmanaged -- enp0s9 ethernet unmanaged -- team0 team unmanaged --
# teamdctl team0 state setup: runner: activebackup ports: enp0s8 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 enp0s9 link watches: link summary: up instance[link_watch_0]: name: ethtool link: up down count: 0 runner: active port: enp0s8
Rimozione di una squadra
Per terminare o uccidere un'istanza del demone del team usa il comando seguente:
# teamd -t team0 -k