Network bonding sur linux

De wikiGite

Redonder plusieurs cartes réseau sous Linux

Modes bonding

Les modes peuvent être indiqués numériquement ou par des mots clés

  1. mode=0 ou mode=balance-rr  : equilibrage de charge
  2. mode=1 ou mode=active-backup  : sauvegarde active
  3. mode=2 ou mode=balance-xor  : balance xor
  4. mode=3 ou mode=broadcast  : broadcast
  5. mode=4 ou mode=802.3ad  : Norme 802.3ad
  6. mode=5 ou mode=balance-tlb  : balance TLB
  7. mode=6 ou mode=balance-alb  : balance ALB

Le paramètre "miimon" (fréquence de monitoring des 2 interfaces, en millisecondes) est le seul paramètre obligatoire.

Sur Debian

Sur Debian vérifier que le paquet ifenslave-2.6 (pour kernel 2.6) est installé.

Configurer le réseau

Editer /etc/network/interfaces :

# network interface settings
auto lo
iface lo inet loopback

auto bond0
iface bond0 inet static
address 192.168.37.110
netmask 255.255.255.0
network 192.168.37.0
broadcast 192.168.37.255
gateway 192.168.37.254
slaves eth0 eth1

Charger le module de « bonding » dans le kernel

Ajouter un fichier de configuration pour le module bonding :

vi /etc/modprobe.d/aliases-bond

Y ajouter :

alias bond0 bonding
options bonding mode=1 miimon=100

Pour tester, charger le module de « bonding » puis redémarrer le service réseau :

# modprobe bonding
# /etc/init.d/networking restart

Sur CentOS

Configurer le réseau

Créer le fichier de configuration de la carte bond0 dans le fichier /etc/sysconfig/network-scripts/ifcfg-bond0 :

DEVICE=bond0
IPADDR=192.168.1.100 //votre adresse ip
NETWORK=192.168.1.0 //l’adresse ip de votre reseau
NETMASK=255.255.255.0 //votre masque de sous-réseau
USERCTL=no
BOOTPROTO=none
ONBOOT=yes

Editer les fichiers de configuration des différentes cartes réseau (/etc/sysconfig/network-scripts/ifcfg-XXXX).
Remplacer ou rajouter les lignes suivantes aux fichiers :

DEVICE=XXXX //à modifier avec nom de votre carte « eth? »
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

Charger le module de « bonding » dans le kernel

Editer le fichier de configuration des modules de kernel /etc/modprobe.conf, y ajouter :

alias bond0 bonding
options bond0 mode=balance-alb miimon=100

Pour tester, charger le module de « bonding » puis redémarrer le service réseau :

# modprobe bonding
# service network restart

Vérifications

Vérifier que la carte virtuelle est bien démarrée et que les cartes physique lui sont bien liées :

# less /proc/net/bonding/bond0

Qui retournera une sortie plus ou moins identique à ça :

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

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:56:c0:00:08

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:56:c0:00:01

Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:56:c0:00:03

Débrancher les cartes une à une afin de vérifier que le serveur ne perd pas la connexion (en mode 1, active backup. En load balancing le poste client est connecté sur une seule carte à un instant T et il perd quand même la connexion si c'est cette carte-là qui est débranchée : il faudra relancer la connexion).