Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.10. Configurez un Network Team en ligne de commandes

5.10.1. Configurez un Network Team par le nmcli

Pour voir les périphériques disponibles sur le système, exécutez la commande suivante :
~]$ nmcli connection show
NAME  UUID                                  TYPE            DEVICE
eth1  0e8185a1-f0fd-4802-99fb-bedbb31c689b  802-3-ethernet  --
eth0  dfe1f57b-419d-4d1c-aaf5-245deab82487  802-3-ethernet  --
Pour créer une nouvelle interface de regroupement, du nom team-ServerA, exécutez la commande comme suit :
~]$ nmcli connection add type team ifname team-ServerA
Connection 'team-ServerA' (b954c62f-5fdd-4339-97b0-40efac734c50) successfully added.
Le NetworkManager fixera ses paramètres internes connection.autoconnect à oui et comme aucune adresse IP n'a été donnée, ipv4.method sera défini sur auto. Le NetworkManager écrira aussi un fichier de configuration /etc/sysconfig/network-scripts/ifcfg-team-ServerA où le ONBOOT correspondant sera définie sur oui et BOOTPROTO sera défini sur dhcp.
Notez que les changements manuels apportés au fichier ifcfg ne seront pas remarqués par le NetworkManager tant que l'interface n'est pas appelée à nouveau. Voir Section 1.9, « Configuration de réseau par les fichiers sysconfig » pour obtenir plus d'informations sur la façon d'utiliser les fichiers de configuration.
Pour afficher les autres valeurs assignées, veuillez exécuter une commande comme suit :
~]$ nmcli con show team-ServerA
connection.id:                          team-ServerA
connection.uuid:                        b954c62f-5fdd-4339-97b0-40efac734c50
connection.interface-name:              ServerA
connection.type:                        team
connection.autoconnect:                 yes
ipv4.method:                            auto[output truncated]
Comme aucune configuration JSO n'a a été spécifiée, les valeurs par défaut s'appliquent. Voir la page man teamd.conf(5) pour plus d'informations sur les paramètres JSON Team et leurs valeurs par défaut. Notez que le nom est dérivé du nom de l'interface en ajoutant le type. Vous pouvez également spécifier un nom avec l'option de con-name, comme suit :
~]$ nmcli connection add type team con-name Team0 ifname ServerB
Connection 'Team0' (5f7160a1-09f6-4204-8ff0-6d96a91218a7) successfully added.
Pour afficher les interfaces qui viennent d'être configurées, veuillez exécuter une commande comme suit :
~]$ nmcli con show
NAME                UUID                                  TYPE            DEVICE
team-ServerA        b954c62f-5fdd-4339-97b0-40efac734c50  team            ServerA
eth1                0e8185a1-f0fd-4802-99fb-bedbb31c689b  802-3-ethernet  --   
eth0                dfe1f57b-419d-4d1c-aaf5-245deab82487  802-3-ethernet  --
Team0               5f7160a1-09f6-4204-8ff0-6d96a91218a7  team            ServerB
Pour modifier le nom assigné à un groupement (team), exécutez une commande sur le format suivant :
nmcli con mod old-team-name connection.id new-team-name
Pour charger un fichier de configuration d'un groupement déjà existant, exécutez une commande du format suivant :
nmcli connexion modifyteam-nameteam.configJSON-config
. Vous pouvez spécifier la configuration team comme une chaîne JSON ou fournir un nom de fichier contenant la configuration. Le nom de fichier peut inclure le chemin d'accès. Dans les deux cas, ce qui est stocké dans la propriété team.config est la chaîne JSON. Dans le cas d'une chaîne JSON, entourez la chaîne de guillemets et collez la chaîne entière à la ligne de commande.
Pour modifier la propriété team.config, saisir une commande du format suivant :
nmcli con show team-name | grep team.config
Pour ajouter une interface eth0 à Team0, du nom Team0-port1, exécutez la commande suivante :
~]$ nmcli con add type team-slave con-name Team0-port1 ifname eth0 master Team0
Connection 'Team0-port1' (ccd87704-c866-459e-8fe7-01b06cf1cffc) successfully added.
De même, pour ajouter une autre interface, eth1, avec le nom Team0-port2, exécutez la commande suivante :
~]$ nmcli con add type team-slave con-name Team0-port2 ifname eth1 master Team0
Connection 'Team0-port2' (a89ccff8-8202-411e-8ca6-2953b7db52dd) successfully added.
Au moment de la rédaction, nmcli ne prend en charge que les ports Ethernet.
Pour qu'un regroupement (team) apparaisse, les ports doivent tout d'abord apparaître comme suit :
~]$ nmcli connection up Team0-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
~]$ nmcli connection up Team0-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
Vous pouvez vérifier que l'interface du regroupement apparaisse suite à l'activation des ports, comme suit :
~]$ ip link
3:  Team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 52:54:00:76:6f:f0 brd ff:ff:ff:ff:ff:f
Sinon, exécutez une commande pour faire apparaître le regroupement, comme suit :
~]$ nmcli connection up Team0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

5.10.2. Créer un Network Team avec teamd

Note

Les configurations créées avec teamd ne sont pas persistantes, et donc, il faudrait créer un regroupement à partir des étapes décrites dans Section 5.10.1, « Configurez un Network Team par le nmcli » ou Section 5.10.3, « Créer un Network Team à l'aide des fichiers ifcfg ».
Pour créer un Network Team, il faut un fichier de configuration au format JSON pour l'interface virtuelle, qui servira d'interface au regroupement de ports ou de liens. Un moyen rapide consiste à copier les exemple de fichiers de configuration, puis de les modifiez à l'aide d'un éditeur, avec les privilèges d'utilisateur root. Pour afficher la liste des exemples de configurations disponibles, saisir la commande suivante :
~]$ ls /usr/share/doc/teamd-*/example_configs/
activebackup_arp_ping_1.conf  activebackup_multi_lw_1.conf   loadbalance_2.conf
activebackup_arp_ping_2.conf  activebackup_nsna_ping_1.conf  loadbalance_3.conf
activebackup_ethtool_1.conf   broadcast.conf                 random.conf
activebackup_ethtool_2.conf   lacp_1.conf                    roundrobin_2.conf
activebackup_ethtool_3.conf   loadbalance_1.conf             roundrobin.conf
Pour voir un des fichiers inclus, tel que activebackup_ethtool_1.conf, saisir la commande suivante :
~]$ cat /usr/share/doc/teamd-*/example_configs/activebackup_ethtool_1.conf
{
	"device":	"team0",
	"runner":	{"name": "activebackup"},
	"link_watch":	{"name": "ethtool"},
	"ports":	{
		"eth1": {
			"prio": -10,
			"sticky": true
		},
		"eth2": {
			"prio": 100
		}
	}
}
Créer un répertoire de travail de configurations pour stocker les fichiers de configuration de teamd. Par exemple, en tant qu'utilisateur ordinaire, saisir une commande comme suit :
~]$ mkdir ~/teamd_working_configs
Copiez le fichier que vous avez choisi dans votre répertoire de travail, et éditez-le si nécessaire. Par exemple, vous pouvez utiliser une commande du format suivant :
~]$ cp /usr/share/doc/teamd-*/example_configs/activebackup_ethtool_1.conf \ ~/teamd_working_configs/activebackup_ethtool_1.conf
Pour modifier le fichier afin qu'il convienne à votre environnement, par exemple, pour changer les interfaces à utiliser en tant que ports pour le regroupement de réseaux, ouvrir le fichier à modifier comme suit :
~]$ vi ~/teamd_working_configs/activebackup_ethtool_1.conf
Éffectuer les changements utiles, et sauvegarder le fichier. Voir la page man vi(1) pour obtenir des renseignements sur la façon d'utiliser l'éditeur vi ou sur la façon d'utiliser votre éditeur préféré.
Noter qu'il est essentiel que les interfaces qui doivent être utilisées en tant que ports dans le regroupement ne soient pas actives, c'est à dire qu'elles doivent être « down », quand on les ajoute à un périphérique de regroupement. Pour vérifier leur statut, exécutez la commande suivante :
~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:d5:f7:d4 brd ff:ff:ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
  link/ether 52:54:00:d8:04:70 brd ff:ff:ff:ff:ff:ff
Dans cet exemple, on peut voir que les deux interfaces que nous souhaitons utiliser sont « UP ».
Pour désactiver une interface, exécutez une commande en tant qu'utilisateur root sous le format suivant  :
~]# ip link set down em1
Répéter pour chaque interface requise.
Pour créer une interface de regroupement (team) basée sur le fichier de configuration, en tant qu'utilisateur root, modifiez le répertoire de travail de configurations (teamd_working_configs dans cet exemple) :
~]# cd /home/userteamd_working_configs
Puis, exécutez une commande au format suivant :
~]# teamd -g -f activebackup_ethtool_1.conf -d
Using team device "team0".
Using PID file "/var/run/teamd/team0.pid"
Using config file "/home/user/teamd_working_configs/activebackup_ethtool_1.conf"
L'option -g est pour les messages de débogage, -f pour spécifier le fichier de configuration à télécharger, et -d pour exécuter le processus en tant que démon après le démarrage. Voir la page man teamd(8) pour les autres options.
Pour vérifier le statut du regroupement, exécutez la commande suivante en tant qu’utilisateur root :
~]# teamdctl team0 state
setup:
  runner: activebackup
ports:
  em1
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
  em2
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
runner:
  active port: em1
Pour donner une adresse à l'interface d'un regroupement de réseaux, team0, exécutez une commande en tant qu'utilisateur root sous le format suivant  :
~]# ip addr add 192.168.23.2/24 dev team0
Pour vérifier l'adresse IP d'une interface de regroupement, exécutez une commande comme suit :
~]$ ip addr show team0
4: team0:  <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 16:38:57:60:20:6f brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.2/24 scope global team0
       valid_lft forever preferred_lft forever
    inet6 2620:52:0:221d:1438:57ff:fe60:206f/64 scope global dynamic 
       valid_lft 2591880sec preferred_lft 604680sec
    inet6 fe80::1438:57ff:fe60:206f/64 scope link 
       valid_lft forever preferred_lft forever
Pour activer une interface de regroupement, ou l'activer (« up »), exécutez une commande en tant qu'utilisateur root sous le format suivant  :
~]# ip link set dev team0 up
Pour désactiver une interface de regroupement, de façon temporaire, ou l'activer (« down »), exécutez une commande en tant qu'utilisateur root sous le format suivant  :
~]# ip link set dev team0 down
Pour terminer ou annihiler (kill) une instance du démon du regroupement, exécutez une commande en tant qu'utilisateur root sous le format suivant  :
~]# teamd -t team0 -k
L'option -k est là pour spécifier que l'instance du démon associé au périphérique team0 doit être annihilé (commande - kill). Voir la page teamd(8)pour plus d'options.
Pour obtenir de l'aide sur les options en ligne de commandes de teamd, exécutez la commande suivante :
~]$ teamd -h
De plus, voir la page man teamd(8).

5.10.3. Créer un Network Team à l'aide des fichiers ifcfg

Pour créer un Network Team à l'aide des fichiers ifcfg, créer un fichier dans le répertoire /etc/sysconfig/network-scripts/, comme suit :
DEVICE=team0
DEVICETYPE=Team
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.11.1
PREFIX=24
TEAM_CONFIG='{"runner": {"name": "activebackup"}, "link_watch": {"name": "ethtool"}}'
Cela aura pour effet de créer l'interface du regroupement (team), c'est à dire, le master.
Pour créer un port qui puisse être un membre de team0, créer un ou plusieurs fichiers dans le répertoire/etc/sysconfig/network-scripts/, comme suit :
DEVICE=eth1
HWADDR=D4:85:64:01:46:9E
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
TEAM_PORT_CONFIG='{"prio": 100}'
Ajouter des interfaces de ports supplémentaires sur le modèle des interfcaces ci-dessus, en changeant les champs DEVICE et HWADDR pour qu'ils correspondent aux ports (les périphériques réseaux) ajoutés. Si la priorité de port n'est pas spécifiée par prio, sa valeur par défaut sera 0; elle accepte des valeurs positives ou négatives allant de -32,767 à +32,767.
Spécifier le matériel ou l'adresse MAC en utilisant la directive HWADDR peut influencer le procédure d'affectation de noms. Cela est expliqué dans Chapitre 8, Nommage de périphériques réseaux consistante.
Pour activer le regroupement, exécutez la commande suivant en tant qu'utililisateur root :
~]# ifup team0
Pour voir le regroupement de réseaux, exécutez la commande suivante :
~]$ ip link show

5.10.4. Comment ajouter un port à un Network Team à l'aide d'iputils

Pour ajouter un port em1 à un Network Team team0, utilisez ip, en exécutant la commande suivante en tant qu'utilisateur root :
~]# ip link set dev em1 down
~]# ip link set dev em1 master team0
Ajouter des ports supplémentaires selon les besoins. Le pilote Team activera les ports automatiquement.

5.10.5. Lister les ports d'un regroupement à l'aide de teamnl

Pour afficher ou lister les ports d'un regroupement de ports, avec l'utilitaire teamnl, exécutez la commande suivante, en tant qu'utilisateur root :
~]# teamnl team0 ports
em2: up 100 fullduplex
em1: up 100 fullduplex

5.10.6. Options de configuration d'un regroupement avec teamnl

Pour afficher ou lister les options actuellement disponibles, avec l'utilitaire teamnl, exécutez la commande suivante, en tant qu'utilisateur root :
~]# teamnl team0 options
Pour configurer un regroupement en mode backup, veuillez exécuter la commande suivante en tant qu'utilisateur root :
~]# teamnl team0 setoption mode activebackup

5.10.7. Comment ajouter une adresse à un Network Team à l'aide d'iputils

Pour ajouter une adresse à un regroupement team0, utilisez ip, en exécutant la commande suivante en tant qu'utilisateur root :
~]# ip addr add 192.168.252.2/24 dev team0

5.10.8. Comment activer une interface dans un Network Team à l'aide d'iputils

Pour activer (« faire apparaître ») une interface dans un regroupement team0, utilisez ip, en exécutant la commande suivante en tant qu'utilisateur root :
~]# ip link set team0 up

5.10.9. Afficher les Options de port actif d'un regroupement avec teamnl

Pour afficher ou lister l'option activeport dans un regroupement de réseaux, avec l'utilitaire teamnl, exécutez la commande suivante, en tant qu'utilisateur root :
~]# teamnl team0 getoption activeport
0

5.10.10. Définir les options de port actives d'un regroupement avec teamnl

Pour définir l'option activeport dans un regroupement de réseaux, avec l'utilitaire teamnl, exécutez la commande suivante, en tant qu'utilisateur root :
~]# teamnl team0 setoption activeport 5
Pour vérifier le changement dans les options de port du regroupement, exécutez la commande suivant en tant qu’utilisateur root :
~]# teamnl team0 getoption activeport
5