Recherche de site Web

Liaison de canaux Ethernet, également appelée NIC Teaming sur les systèmes Linux


La Ethernet Channel Bonding permet d'associer deux ou plusieurs cartes d'interface réseau (NIC) à une seule carte NIC virtuelle, ce qui peut augmenter la bande passante et assure la redondance des cartes NIC. Il s'agit d'un excellent moyen d'obtenir des liens redondants, une tolérance aux pannes ou des réseaux d'équilibrage de charge dans le système de production. Si une carte réseau physique est en panne ou débranchée, elle déplacera automatiquement les ressources vers une autre carte NIC. La liaison Channel/NIC fonctionnera avec l'aide du pilote de liaison dans le Kernel. Nous utiliserons deux NIC pour démontrer la même chose.

Il existe près de six types de Channel Bond disponibles. Ici, nous n’examinerons que deux types de Channel Bond qui sont populaires et largement utilisés.

  1. 0 : Équilibrage de charge (Round-Robin) : le trafic est transmis dans un ordre séquentiel ou de manière circulaire à partir des deux cartes réseau. Ce mode fournit l'équilibrage de charge et la tolérance aux pannes.
  2. 1 : Active-Backup : une seule carte réseau esclave est active à un moment donné. L'autre carte d'interface ne sera active qu'en cas de panne de la carte réseau esclave active.

Création d'une liaison de canaux Ethernet

Nous avons deux Cartes réseau Ethernet, à savoir eth1 et eth2bond0 sera créé à des fins de liaison. Besoin d'un superutilisateur privilégié pour exécuter les commandes ci-dessous.

Équilibrage de charge (Round-Robin)

Configurer eth1

Mentionnez le paramètre MASTER bond0 et l'interface eth1 en tant que SLAVE dans le fichier de configuration comme indiqué ci-dessous.

vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
MASTER=bond0
SLAVE=yes
Configurer eth2

Ici aussi, spécifiez le paramètre MASTER bond0 et l'interface eth2 comme SLAVE.

vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
TYPE="Ethernet"
ONBOOT="yes"
USERCTL=no
#NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
Créer une configuration bond0

Créez bond0 et configurez l'interface de liaison de canal dans le répertoire « /etc/sysconfig/network-scripts/ » appelé ifcfg-bond0.

Ce qui suit est un exemple de fichier de configuration de liaison de canaux.

vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"

Remarque : Dans la configuration ci-dessus, nous avons choisi les options de liaison mode=0, c'est-à-dire Round-Robin et miimon=100 (Intervalles d'interrogation 100 ms).

Voyons les interfaces créées à l'aide de la commande ifconfig qui montre « bond0 » exécuté en tant que MASTER les deux interfaces « eth1 » et « eth2 » fonctionnant en tant que ESCLAVES.

ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          inet addr:192.168.246.130  Bcast:192.168.246.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe57:618e/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:17374 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1231555 (1.1 MiB)  TX bytes:1622391 (1.5 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:16989 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8072 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1196931 (1.1 MiB)  TX bytes:819042 (799.8 KiB)
          Interrupt:19 Base address:0x2000

eth2      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:385 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7989 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:34624 (33.8 KiB)  TX bytes:803583 (784.7 KiB)
          Interrupt:19 Base address:0x2080

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)

Redémarrez le service réseau et les interfaces devraient être OK.

service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Vérification de l'état de la caution.

watch -n .1 cat /proc/net/bonding/bond0
Exemple de sortie

Le résultat ci-dessous montre que le mode de liaison est l'équilibrage de charge (RR) et eth1 et eth2 . se présentent.

Every 0.1s: cat /proc/net/bonding/bond0                         Thu Sep 12 14:08:47 2013 

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Créer une sauvegarde active

Dans ce scénario, les interfaces esclaves restent les mêmes. un seul changement sera présent dans l'interface de liaison ifcfg-bond0 au lieu de '0', ce sera '1' qui est affiché comme ci-dessous .

vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"

Redémarrez le service réseau et vérifiez l’état de la liaison.

service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Vérification de l'état du lien avec la commande.

watch -n .1 cat /proc/net/bonding/bond0
Exemple de sortie

Le mode de liaison affiche une tolérance aux pannes (sauvegarde active) et l'interface esclave est active.

Every 0.1s: cat /proc/n...  Thu Sep 12 14:40:37 2013

Ethernet Channel Bonding Driver: v3.6.0 (September 2
6, 2009)

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: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Remarque : descendez et montez manuellement les interfaces esclaves pour vérifier le fonctionnement du Channel Bonding. Veuillez consulter la commande ci-dessous.

ifconfig eth1 down
ifconfig eth1 up

C'est ça!