La liaison d'interface réseau est appelée par de nombreux noms :Port Trunking, Channel Bonding, Link Aggregation, NIC teaming, etc. Il combine ou agrège plusieurs connexions réseau dans une seule interface de liaison de canaux. Cela permet à deux ou plusieurs interfaces réseau d'agir comme une seule, d'augmenter le débit et de fournir une redondance ou un basculement.
Le noyau Linux est livré avec le pilote de liaison pour agréger plusieurs interfaces réseau physiques en une seule interface logique (par exemple, agréger eth0 et eth1 dans bond0). Pour chaque interface liée, vous pouvez définir le mode et les options de surveillance des liens. Il existe sept options de mode différentes, chacune offrant des caractéristiques spécifiques d'équilibrage de charge et de tolérance aux pannes, comme indiqué dans le tableau ci-dessous.
Modes de liaison
Selon vos besoins, vous pouvez définir le mode de liaison sur l'un des 7 modes ci-dessous.
Mode | Politique | Comment ça marche | Tolérance aux pannes | Équilibrage de charge |
---|---|---|---|---|
0 | Tournoi à la ronde | les paquets sont séquentiellement transmis/reçus via chaque interface une par une. | Non | Oui |
1 | Sauvegarde active | une carte réseau active pendant qu'une autre carte réseau est endormie. Si la carte réseau active tombe en panne, une autre carte réseau devient active. pris en charge uniquement dans les environnements x86. | Oui | Non |
2 | XOR [OU exclusif] | Dans ce mode, l'adresse MAC du NIC esclave est comparée au MAC de la demande entrante et une fois cette connexion établie, le même NIC est utilisé pour transmettre/recevoir pour le MAC de destination. | Oui | Oui |
3 | Diffusion | Toutes les transmissions sont envoyées sur tous les esclaves | Oui | Non |
4 | Agrégation de liens dynamiques | les cartes réseau agrégées agissent comme une seule carte réseau, ce qui se traduit par un débit plus élevé, mais fournit également un basculement en cas de défaillance d'une carte réseau. L'agrégation de liens dynamiques nécessite un commutateur prenant en charge IEEE 802.3ad. | Oui | Oui |
5 | Équilibrage de charge de transmission (TLB) | Le trafic sortant est distribué en fonction de la charge actuelle sur chaque interface esclave. Le trafic entrant est reçu par l'esclave actuel. Si l'esclave récepteur tombe en panne, un autre esclave reprend l'adresse MAC de l'esclave défaillant. | Oui | Oui |
6 | Équilibrage de charge adaptatif (ALB) | Contrairement à l'agrégation de liens dynamiques, l'équilibrage de charge adaptatif ne nécessite aucune configuration de commutateur particulière. L'équilibrage de charge adaptatif n'est pris en charge que dans les environnements x86. Les paquets de réception sont équilibrés en charge via la négociation ARP. | Oui | Oui |
Surveillance des liens de liaison réseau
Le pilote de liaison prend en charge deux méthodes pour surveiller l'état de la liaison d'un esclave :
- Il s'agit de l'option de surveillance des liens par défaut et recommandée.
- Il surveille l'état de l'opérateur de l'interface réseau local.
- Vous pouvez spécifier la fréquence de surveillance et le délai.
- Les délais vous permettent de tenir compte de l'initialisation du commutateur.
- Cela envoie des requêtes ARP aux systèmes homologues sur le réseau et utilise la réponse comme une indication que la liaison est active.
- Vous pouvez spécifier la fréquence de surveillance et les adresses cibles.
Liaison réseau :configuration
Création d'un fichier d'interface de liaison
Vous pouvez créer manuellement un fichier d'interface de liaison dans /etc/sysconfig/network-scripts annuaire. Vous créez d'abord l'interface de liaison, puis vous ajoutez les interfaces réseau physiques à la liaison. Ces interfaces réseau physiques sont appelées "esclaves ".
Pour l'exemple de cet article, les esclaves de l'interface bond0 sont ens33 et ens37. Avant de démarrer, assurez-vous que le module de liaison est correctement chargé. Pour vérifier cela, utilisez la commande ci-dessous :
# lsmod |grep bonding bonding 122351 0
Si le module n'est pas chargé, chargez-le à l'aide de la commande modprobe.
# modprobe bonding
1. Voici un exemple de fichier d'interface de liaison :
# 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'exemple suivant définit le ens33 interface réseau physique en tant qu'esclave pour 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'exemple suivant définit le ens37 interface réseau physique en tant qu'esclave pour 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. Redémarrez les services réseau
Redémarrez les services réseau pour activer l'interface de liaison.
# systemctl restart network
Si vous ne souhaitez pas redémarrer le service réseau, vous pouvez connecter l'interface de liaison individuellement :
# ifup bond0
Vérifiez la configuration de la liaison réseau
1. Vérifiez la nouvelle interface dans la sortie de la commande ‘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. Vérifiez également l'état actuel des interfaces de liaison et quelle interface est actuellement active, à l'aide de la commande ci-dessous :
# 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
À partir de la sortie de la commande ci-dessus, nous pouvons voir que ens33 est l'esclave actuellement actif dans le lien.
Tester la tolérance aux pannes de la configuration de liaison
1. Comme il s'agit d'une configuration de liaison de sauvegarde active, lorsqu'une interface tombe en panne, l'autre interface de la liaison devient l'esclave actif. Pour vérifier cette fonctionnalité, nous allons faire tomber l'interface actuelle ens33.
# ifdown ens33
2. Si vous vérifiez à nouveau l'état de l'interface de liaison, vous constaterez que le nouvel esclave actif est l'interface 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
L'interface de liaison sera également opérationnelle :
# 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 :Comment créer une liaison d'interface à l'aide de nmcli