Sous Linux, en utilisant la liaison Etherchannel, vous pouvez combiner deux ou plusieurs interfaces réseau physiques (NIC) pour créer une interface virtuelle.
L'adresse IP sera configurée sur cette interface virtuelle. Si l'un des adaptateurs physiques sous-jacents tombe en panne, l'autre adaptateur physique est utilisé pour gérer le trafic de communication.
Voici les différents types de modes de liaison Etherchannel :
- Mode 0 – Politique Round-robin (RR) :les transmissions de paquets sont effectuées dans un ordre séquentiel. Par exemple, le premier paquet est transmis à l'aide de l'interface et le deuxième paquet est transmis via l'interface suivante, etc. Ce mode offre un équilibrage de charge et une tolérance aux pannes.
- Mode 1 - politique de sauvegarde active :la transmission des paquets se fait uniquement via l'interface active et le trafic est acheminé via l'interface de sauvegarde uniquement lorsque l'interface active est tombée en panne.
- Mode 2 – Politique XOR :ce mode équilibre le trafic sortant sur les ports actifs. Dans ce mode, le même esclave est utilisé pour la transmission pour chaque adresse MAC de destination. Cela fournit un équilibrage de charge et une tolérance aux pannes.
- Mode 3 - politique de diffusion :cela transmet tout sur toutes les interfaces esclaves. Ce mode offre une tolérance aux pannes.
- Mode 4 (802.3ad) :ce mode est utilisé pour créer les groupes d'agrégation de liens qui partagent les mêmes paramètres de vitesse et de duplex.
- Mode 5( balance-tlb ) :Équilibrage de charge de transmission adaptatif. Le trafic sortant est distribué en fonction de la charge actuelle de chaque esclave. Le trafic entrant est reçu par l'esclave actuel. Si l'esclave actuel tombe en panne, un autre esclave prend en charge le trafic entrant en fonction de l'adresse MAC.
- Mode 6( balance-alb ) :Équilibrage de charge adaptatif. Dans ce cas, le trafic entrant est géré pour utiliser l'équilibrage de charge sur tous les esclaves. L'équilibrage de charge en réception est effectué via la négociation ARP.
Configurer la liaison dans Redhat ou CentOS
1. Créer un fichier ifcfg-bond0
Tous les scripts de configuration réseau se trouvent sous /etc/sysconfig/network-scripts dans RHEL. Vérifiez l'état du lien des interfaces à l'aide de la commande « ethtool »
Créez un fichier ifcfg-bond0 avec les valeurs ci-dessous et remplacez-le par l'adresse IP correcte, NETMASK et le mode de liaison approprié (mode 0, 1 ,2 …) comme ci-dessous.
# cd /etc/sysconfig/network-scripts # vi ifcfg-bond0 DEVICE=bond0 IPADDR=19.86.101.120 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no BONDING_OPTS="mode=1 miimon=100"
2. Modifier les fichiers ifcfg-eth0 et ifcfg-eth1
Modifiez les fichiers d'interface réseau pour eth0 et eth1 afin de refléter les entrées similaires à ce qui suit. Assurez-vous que les paramètres MASTER et SLAVE sont définis comme indiqué ci-dessous.
# cat ifcfg-eth0 DEVICE=eth0 HWADDR=00:50:56:8E:0C:10 MASTER=bond0 SLAVE=yes ONBOOT=yes USERCTL=no BOOTPROTO=none # cat ifcfg-eth1 DEVICE=eth1 HWADDR=00:50:56:8E:0C:2A MASTER=bond0 SLAVE=yes ONBOOT=yes USERCTL=no BOOTPROTO=none
3. Créer un fichier bonding.conf
Créez le fichier bonding.conf avec le contenu suivant.
# vi /etc/modprobe.d/bonding.conf alias netdev-bond0 bonding
4. Redémarrez le service réseau et vérifiez la liaison
Redémarrez les services réseau :
service network restart
Vérifiez l'état de la liaison comme indiqué ci-dessous.
Ce qui suit indique que le mode de liaison actuel est la tolérance aux pannes.
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:50:56:8e:0c:10 Slave queue ID: 0 Slave Interface: eth1 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:50:56:8e:0c:2a Slave queue ID: 0
Vous pouvez effectuer le test en désactivant une interface, en voyant que l'autre interface sera active et vice-versa.
Configuration de la liaison sur SuSE Linux
Pour configurer la liaison sur la dernière version de SuSE, vous pouvez soit utiliser YaST, soit modifier les fichiers système comme indiqué ci-dessous :
Vérifiez les interfaces actives à l'aide de la commande suivante :
ethtool eth0 | egrep "Speed|Duplex|Link"
Si l'état de la vitesse, du duplex et de la liaison est inconnu, l'interface peut être en panne. Essayez d'afficher l'interface en utilisant "ifconfig up". Si vous ne voyez toujours pas le lien, l'interface n'est pas connectée au commutateur.
1. Créer un fichier ifcfg-bond0
Connectez-vous à la machine à l'aide de la console. Créez ifcfg-bond0 sous /etc/sysconfig/network et définissez l'adresse IP et les interfaces esclaves pouvant être utilisées.
Dans l'exemple suivant, j'ai utilisé le mode de sauvegarde active pour la liaison, ce qui signifie que seules les interfaces actives gèrent le trafic de communication et l'échec dans lequel l'interface de sauvegarde commence à fonctionner.
# cd /etc/sysconfig/network # cat ifcfg-bond0 BONDING_MASTER=yes BONDING_MODULE_OPTS='mode=active-backup miimon=100' BONDING_SLAVE0='eth0' BONDING_SLAVE1='eth1' BOOTPROTO='static' IPADDR='192.168.1.85/24' BROADCAST='' STARTMODE='auto'
2. Modifier les fichiers ifcfg-eth0 et ifcfg-eth1
Modifiez les interfaces esclaves afin qu'elles n'aient pas l'adresse IP, Netmask. Le résultat doit ressembler à ce qui suit :
# cat ifcfg-eth0 DEVICE='eth0' BOOTPROTO='none' STARTMODE='onboot' NAME='82545EM Gigabit Ethernet Controller (Copper)' # cat ifcfg-eth1 DEVICE='eth1' BOOTPROTO='none' STARTMODE='onboot' NAME='82545EM Gigabit Ethernet Controller (Copper)'
3. Modifier le fichier modprobe.conf
Modifiez le fichier /etc/modprobe.conf et ajoutez les 2 lignes ci-dessous pour inclure le pilote de liaison avec les options.
alias bond0 bonding options bond0 miimon=100 mode=1
Remarque :Vous pouvez choisir d'ignorer les options si vous les avez déjà incluses dans le fichier /etc/sysconfig/network/ifcfg-bond0.
4. Redémarrez le service réseau et vérifiez la liaison
Après avoir configuré la liaison, redémarrez le service réseau :
rcnetwork restart
Vérifiez que l'interface de liaison est active et que l'IP est configurée correctement. Assurez-vous également que vous pouvez vous connecter au serveur à l'aide de l'adresse IP.
# ifconfig bond0 bond0 Link encap:Ethernet HWaddr 00:50:56:8E:00:26 inet addr:192.168.1.85 Bcast:192.168.1.1 Mask:255.255.255.0 UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:28420409 errors:0 dropped:0 overruns:0 frame:0 TX packets:151985 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2362560309 (2253.1 Mb) TX bytes:17330542 (16.5 Mb)
Pour tester le bon fonctionnement de l'interface de liaison, connectez-vous à la console et désactivez l'interface active à l'aide de "ifconfig eth0 down". Vérifiez que vous pourrez toujours vous connecter à la machine en utilisant la même adresse IP ou le même nom d'hôte. Vous pouvez vérifier l'état de l'interface active dans le fichier ci-dessous,
Comme indiqué ci-dessous, eth0 est en panne, mais la connectivité réseau à la machine n'est toujours pas perdue, car nous avons configuré la liaison et l'interface eth1 est toujours active.
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: down Link Failure Count: 1 Permanent HW addr: 00:50:56:8e:00:26 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:50:56:8e:7e:20