Pourquoi agréger les interfaces réseau (liaison d'interfaces) ?
Les deux raisons importantes pour créer une liaison d'interface sont :
1. Pour fournir une bande passante accrue
2. Pour assurer la redondance face à une panne matérielle
L'une des conditions préalables pour configurer une liaison est d'avoir le commutateur réseau qui prend en charge Etherchannel (ce qui est vrai dans le cas de presque tous les commutateurs).
Modes de liaison
Selon vos besoins, vous pouvez définir le mode de liaison sur l'un des 7 modes ci-dessous. Le mode de liaison peut être défini dans le fichier réseau de l'interface de liaison /etc/sysconfig/network-scripts/ifcfg-bond0 comme ci-dessous :
BONDING_OPTS="mode=active-backup miimon=250"
ou
BONDING_OPTS="mode=1 miimon=250"
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 |
Configuration d'une liaison d'interface
Pour cela, nous devons créer un fichier /etc/sysconfig/network-scripts/ifcfg-bond0 avec le contenu ci-dessous :
# vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPADDR=10.10.1.10 NETMASK=255.255.255.0 BONDING_OPTS="miimon=100"Sur RHEL6, configurez les paramètres de liaison dans ifcfg-bondX à la place dans le fichier /etc/modprobe.d/bonding.conf. L'avantage est que ces paramètres peuvent être modifiés par interface de liaison pendant le processus d'initialisation de l'interface, plutôt que pendant le processus d'initialisation du pilote de liaison. C'est-à-dire que le changement de paramètre ne nécessite plus le rechargement du pilote de liaison. Cela permet de réduire la panne du réseau à l'échelle du système tout en apportant quelques modifications mineures aux interfaces de liaison.
BONDING_OPTS - Specify bonding module parameters, e.g. miimon - link polling interval for fault detection (in ms)
Comme nous avons configuré l'interface de liaison avec l'adresse IP et le masque de réseau, nous n'avons pas besoin de les spécifier dans les fichiers d'interface individuels qui composent la liaison.
Nous utiliserions em0 et em1 comme interfaces esclaves pour créer l'interface de liaison bond0. Les lignes MASTER et SLAVE définissent les interfaces de liaison maître bond0 et em0/em1 comme interfaces esclaves.
# vi /etc/sysconfig/network-scripts/ifcfg-em0 DEVICE=em0 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
# vi /etc/sysconfig/network-scripts/ifcfg-em1 DEVICE=em1 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
Le fichier de configuration /etc/modprobe.conf est obsolète sur RHEL 6 et les fichiers de configuration se trouvent désormais dans le répertoire /etc/modprobe.d. L'ancien fichier de configuration est toujours pris en charge mais n'est pas recommandé. Créez un nouveau fichier bonding.conf dans le répertoire /etc/modprobe.d pour indiquer au noyau qu'il doit utiliser le pilote de liaison pour le nouveau périphérique bond0.
# vi /etc/modprobe.d/bond.conf alias bond0 bonding
Redémarrez les services réseau pour activer l'interface de liaison.
# service network restart
Si vous ne souhaitez pas redémarrer le service réseau, vous pouvez connecter l'interface de liaison individuellement :
# ifup bond0
Vérifiez la nouvelle interface dans la sortie de la commande ifconfig :
# ifconfig bond0 bond0 Link encap:Ethernet HWaddr 00:0C:29:9B:FD:2B inet addr:10.10.1.10 Bcast:10.10.1.1 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe9b:fd2b/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:39 errors:0 dropped:0 overruns:0 frame:0 TX packets:34 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:13875 (13.5 KiB) TX bytes:3446 (3.3 KiB)
Pour vérifier si le module de liaison est correctement chargé :
# lsmod |grep bond bonding 122351 0
Pour vérifier quelle interface est actuellement active (en cas de mode de sauvegarde active) :
# 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: em0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 5000 Down Delay (ms): 5000 Slave Interface: em0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:21:28:b2:65:26 Slave queue ID: 0 Slave Interface: em1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:21:28:b2:65:27 Slave queue ID: 0
Au cas où vous voudriez tester si la liaison est configurée correctement, faites tomber une interface active (em0 ici) de la liaison. Vous constaterez toujours que l'interface de liaison est toujours accessible.
# ifdown em0RedHat / CentOS :Comment changer l'interface esclave actuellement active de la liaison en ligne