4.4. Utilisation de l'interface en ligne de commandes (CLI)

Une liaison qui utilise le module de noyau de liaison (bonding) et une interface de réseau spéciale appelée interface de canal de liaison sont créées.

4.4.1. Vérifier si le module de noyau de liaison est installé

Dans Red Hat Enterprise Linux 7, le module de liaison est téléchargé par défaut. Si nécessaire, vous pouvez télécharger le module en exécutant la commande suivante en tant qu'utilisateur root :
~]# modprobe --first-time bonding
Cette activation ne pourra pas persister à travers les redémarrages de système. Voir MAJOROSVER; System Administrator's Guide (Guide d'administrateur de systèmes) pour une explication sur le chargement de modules persistants. Notez que s'il y a un fichier de configuration correct qui utilise la directive BONDING_OPTS, le module Bonding sera téléchargé selon les besoins et n'aura donc pas besoin d'être téléchargé séparemment.
Pour afficher des informations sur le module, excuter la commande suivante :
 ~]$ modinfo bonding
Consulter la page man modprobe(8) pour plus d'options de commandes.

4.4.2. Créer une interface de canal de liaison

Pour créer une interface de canal de liaison, créer un fichier dans le répertoire /etc/sysconfig/network-scripts/ nommé ifcfg-bondN, et remplacer N par le numéro de l'interface, par exemple 0.
Le contenu du fichier peut être basé sur un fichier de confiuguration ou n'importe quel type d'interface en cours de processus, comme l'interface Ethernet. Les différences principales étant que la directive DEVICEest bondN, que l'on remplace N par le numéro d'interface, et TYPE=Bond. De plus, définir BONDING_MASTER=yes.

Exemple 4.1. Exemple de fichier de configuration d'interface ifcfg-bond0

Exemple d'interface de canal de liaison
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"
La directive NAME est utile pour nommer le profil de connexion dans le NetworkManager. ONBOOT indique si le profil doit être démarré à l'amorçage (ou plus généralement, quand le périphérique est auto-connecté).

Important

Les paramètres du module de noyau de liaison doit être spécifié dans une liste séparée par des virgules dans la directive BONDING_OPTS="bonding parameters" du fichier de l'interface ifcfg-bondN. Ne pas spécifier d'options pour le périphérique de liaison dans /etc/modprobe.d/bonding.conf, ou dans le fichier obsolète /etc/modprobe.conf.
Le paramètre max_bonds n'est pas spécifique à l'interface et ne doit pas être défini quand on utilise les fichiers ifcfg-bondN avec la directive BONDING_OPTS car cette directive amènera les scripts de réseau à créer des interfaces de liaison selon les besoins.
Pour obtenir plus d'informations et des conseils sur la façon de configurer le module de liaison, et pour voir la liste des paramètres de liaison, consulter Section 4.5, « Utiliser une liaison de canal ».

4.4.3. Création d'interfaces SLAVE

L'interface de canal de liaison est le « master » et les interfaces de liaison sont appelées les « esclaves ». Une fois que l'interface de liaison de canaux est créée, les interfaces réseau devant être reliées ensemble doivent être configurées en ajoutant les directives MASTER et SLAVE aux fichiers de configuration des esclaves. Les fichiers de configuration pour chaque interface esclave peuvent être presque identiques.

Exemple 4.2. Exemple de fichier de configuration d'interface esclave

Ainsi, si deux interfaces Ethernet sont reliées par canaux, eth0 and eth1, elles peuvent toutes les deux ressembler à ce qui suit :
DEVICE=ethN
NAME=bond0-slave
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
Dans cet exemple, remplacez N par la valeur numérique de l'interface. Notez que s'il y a plus d'un seul profil ou fichier de configuration ayant ONBOOT=yes pour interface, ils risquent de rentrer en compétition et un profil TYPE=Ethernet risque d'être activé à la place d'une liaison esclave.

4.4.4. Activer une liaison de canaux

Pour activer une liaison, faîtes apparaître les esclaves. Puis, en tant qu'utilisateur root, exécutez la commande suivante :
~]# ifup ifcfg-eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
~]# ifup ifcfg-eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
Notez que si vous modifiez des fichiers d'interface pour des interfaces qui sont actuellement en ligne (« up »), commencez par les définir ainsi :
ifdown ethN
. Puis, une fois terminé, faites apparaître les esclaves, ce qui fera apparaître la liaison (sauf si « down »).
Pour rendre le NetworkManager au fait de ces changements, exécutez une commande pour chaque interface modifée, en tant qu'utilisateur root:
~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-device
Sinon, pour télécharger à nouveau toutes les interfaces, exécutez :
~]# nmcli con reload
Le comportement par défaut est pour NetworkManager de ne pas être au courant des changements et de continuer à utiliser les anciennes données de configuration. C'est défini par l'option monitor-connection-files dans le fichier NetworkManager.conf. Voir la page de manuel NetworkManager.conf(5) pour plus d'informations.
Pour voir le statut de l'interface de liaison, 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: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:e9:ce:d2 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:38:a6:4c brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 52:54:00:38:a6:4c brd ff:ff:ff:ff:ff:ff

4.4.5. Création de plusieurs liaisons

Dans Red Hat Enterprise Linux 7, pour chaque liaison, une interface de canal de liaison est créée, comprenant la directive BONDING_OPTS. Cette méthode de configuration est utilisée pour que plusieurs périphériques de liaison puissent avoir des configurations différentes. Pour créer plusieurs interfaces de canaux de liaison, procédez ainsi :
  • Créez plusieurs fichiers ifcfg-bondN avec la directive BONDING_OPTS car cette directive amènera les scripts de réseau à créer des interfaces de liaison selon les besoins.
  • Créez ou modifiez des fichiers de configuration d'interface existants à relier, et inclure la directive SLAVE.
  • Assignez les interfaces à relier et les interfaces esclaves aux canaux de liaison par la directive MASTER.

Exemple 4.3. Exemples de fichiers de configuration d'interface ifcfg-bondN

Ce qui suit est un exemple de fichier de configuration d'interface de canal de liaison :
DEVICE=bondN
NAME=bondN
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"
Dans cet exemple, remplacer N par le numéro de l'interface de liaison. Par exemple, pour créer deux liaisons, créez deux fichers de configuration, ifcfg-bond0 et ifcfg-bond1, avec les adresses IP qui conviennent.
Créer les interfaces à relier en suivant les explications suivantes Exemple 4.2, « Exemple de fichier de configuration d'interface esclave » et les assigner aux interfaces de liaison, selon les besoins, en utilisant la directive MASTER=bondN. Ainsi, en continuant avec l'exemple ci-dessus, si on a besoin de deux interfaces par liaison, alors deux liaisons créeront quatre fichiers de configuration d'interface. Assigner les deux premières à MASTER=bond0, et les deux suivanes à MASTER=bond1.