RHEL7: Network Teaming

By | novembre 7, 2018

Presentazione

Esistono diversi modi per configurare il teaming di rete in RHEL 7:

utilizzando il comando nmtui un’ interfaccia utente a testo,
utilizzando il comando nmcli un ‘interfaccia a riga di comando,
usando l’interfaccia grafica,
attraverso modifiche dirette nei file di configurazione di rete.

Per il resto di questo tutorial, è l’opzione nmcli è stata scelta perché è il metodo più veloce e probabilmente meno incline agli errori.

Prerequisiti

Per mettere in pratica questo tutorial, hai bisogno di due VM e accedi alla loro rispettiva console.
Ogni VM è stata installata con una distribuzione di base (la distribuzione minima dovrebbe funzionare ma non è stata testata). Ogni VM ha due interfacce di rete denominate eth0 e eth1.

Installa il pacchetto Teamd:

# yum install -y teamd

Se è stata configurata una precedente configurazione di rete, rimuoverla su entrambe le macchine virtuali:

# nmcli con show
NAME                UUID                                  TYPE            DEVICE
Wired connection 1  f32cfcb7-3567-4313-9cf3-bdd87010c7a2  802-3-ethernet  eth1  
System eth0         257e9416-b420-4218-b1eb-f14302f20941  802-3-ethernet  eth0  
# nmcli con del f32cfcb7-3567-4313-9cf3-bdd87010c7a2
# nmcli con del 257e9416-b420-4218-b1eb-f14302f20941

Configurazione teaming

Eseguire i seguenti passaggi sulla console di entrambe le macchine virtuali.

Creare l’interfaccia di teaming:

# nmcli con add type team con-name myteam0 ifname team0 config '{ "runner": {"name": "loadbalance"}}'
 team0 config '{ "runner": {"name": "loadbalance"}}'
[10655.288431] IPv6: ADDRCONF(NETDEV_UP): team0: link is not ready
[10655.306955] team0: Mode changed to "loadbalance"
Connection 'myteam0' (ab0a5f7b-2547-4d4f-8fc8-834030839fc1) successfully added.

Nota 1: Se non si specifica con-name myteam0, l’interfaccia di teaming verrà denominata team-team0.
Nota 2: esempi di configurazione sono disponibili in /usr/share/doc/teamd – */example_configs. Puoi anche ottenere alcuni esempi attraverso man teamd.conf.

Ora il file /etc/sysconfig/network-scripts/ifcfg-myteam0 contiene le seguenti linee principali:

DEVICE=team0
TEAM_CONFIG="{ \"runner\": {\"name\": \"loadbalance\"}}"
DEVICETYPE=Team
NAME=myteam0
ONBOOT=yes

Aggiungi una configurazione IPv4:
In RHEL 7.0:

# nmcli con mod myteam0 ipv4.addresses "192.168.1.10/24 192.168.1.1"
# nmcli con mod myteam0 ipv4.method manual

Da RHEL 7.1 a:

# nmcli con mod myteam0 ipv4.addresses 192.168.1.10/24
# nmcli con mod myteam0 ipv4.gateway 192.168.1.1
# nmcli con mod myteam0 ipv4.method manual

Nota: se non si specifica alcuna configurazione IP, entrambe le VM otterranno il loro indirizzo IP e gateway tramite DHCP per impostazione predefinita.

Aggiungi l’interfaccia eth0 all’interfaccia di teaming:

# nmcli con add type team-slave con-name team0-slave0 ifname eth0 master team0
[10707.777803] team0: Port device eth0 added
[10707.779146] IPv6: ADDRCONF(NETDEV_CHANGE): team0: link becomes ready
Connection 'team0-slave0' (a9a5b612-aad6-48b0-a097-88db35c898d3) successfully added.

Nota 1: Se non si specifica con-name team0-slave0, l’interfaccia slave di teaming verrà denominata team-slave-eth0.
Nota2: il file /etc/sysconfig/network-scripts/ifcfg-team0-slave0 è stato creato con le seguenti linee principali:

NAME=team0-slave0
DEVICE=eth0
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort

Aggiungi l’interfaccia eth1 all’interfaccia di teaming:

# nmcli con add type team-slave con-name team0-slave1 ifname eth1 master team0
[10750.419419] team0: Port device eth1 added
Connection 'team0-slave1' (e468dce3-a032-4088-8173-e7bee1bd4ad5) successfully added.

Nota 1: se non si specifica con-name team0-slave1, l’interfaccia slave di teming verrà denominata team-slave-eth1.
Nota2: il file /etc/sysconfig/network-scripts/ifcfg-team0-slave1 è stato creato con le seguenti linee principali:

NAME=team0-slave1
DEVICE=eth1
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort

Attivazione interfaccia:

# nmcli con up myteam0
[10818.800169] team0: Port device eth1 removed
[10818.803399] team0: Port device eth0 removed
[10818.939884] team0: Port device eth1 added
[10818.941069] IPv6: ADDRCONF(NETDEV_CHANGE): team0: link becomes ready
[10818.971887] team0: Port device eth0 added
[10819.932168] IPv6: team0: IPv6 duplicate address fe80::5054:ff:fe3f:860a detected!
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/32)

Controllare la configurazione:

# nmcli con show
NAME          UUID                                  TYPE            DEVICE
team0-slave0  a9a5b612-aad6-48b0-a097-88db35c898d3  802-3-ethernet  eth0
myteam0       ab0a5f7b-2547-4d4f-8fc8-834030839fc1  team            team0
team0-slave1  e468dce3-a032-4088-8173-e7bee1bd4ad5  802-3-ethernet  eth1

È inoltre possibile utilizzare il comando teamdctl per verificare lo stato di configurazione:

# teamdctl team0 state
setup:
  runner: loadbalance
ports:
  eth0
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
  eth1
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up

O per scaricare la configurazione:

# teamdctl team0 config dump
{
"device": "team0",
"ports": {
"eth0": {
"link_watch": {
"name": "ethtool"
}
},
"eth1": {
"link_watch": {
"name": "ethtool"
}
}
},
"runner": {
"name": "loadbalance",
"tx_hash": [
"eth",
"ipv4",
"ipv6"
]
}
}

Puoi anche ottenere lo stato delle porte con il comando teamnl:

# teamnl team0 ports
 2: eth0: up 0Mbit HD
 3: eth1: up 0Mbit HD

Inoltre, è possibile modificare direttamente il contenuto dei file nella directory /etc/sysconfig/network-scripts, ma in seguito è necessario applicare il seguente comando:

# nmcli con reload

Fonte: RHEL 7 Guida alla rete e pagina man di nmcli-examples.

Suggerimento per l’esame

Se non ricordi tutti i dettagli il giorno dell’esame, ottieni le informazioni nelle pagine man di nmcli-examples e teamd.conf o in /usr/share/doc/teamd – */example_ifcfgs e /usr/share/directory doc/teamd – */example_ifcfgs.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.