Outils pour utilisateurs

Outils du site


Agrégation de liens: debian et ubuntu

L'agrégation de liens est une notion de réseau informatique, le but étant de regrouper plusieurs ports réseau comme s'il s'agissait d'un seule.
Les avantages étant :

  • D'accroitre le débit au-delà des limites d'un seul lien
  • Éventuellement de faire en sorte que les autres ports prennent le relai si un lien tombe en panne (redondance).

J'ai pu le dire au-dessus, c'est une notion réseau, mais sur un serveur, cela peut être utile surtout pour assurer une redondance quand il y a un enjeu de haute disponibilité.

Dans Linux, il existe 6 modes d'agrégations de liens.

présentation des modes

En fonction du mode sélectionné l'agrégat fonctionnera de façon différente.
Mode 0 : Round Robin, équilibrage de charge.
La transmission des paquets se fait de façon séquentielle sur chacune des cartes actives dans l'agrégat. Ce mode augmente la bande passante et gère la tolérance de panne.
Mode 1 : Active - passive.
Ce mode ne gère que la tolérance de panne. Si une des interfaces est désactivée, une autre du bond prend le relais.
Mode 2 : Balance xor.\\Une interface est affectée à l'envoi vers une même adresse MAC.
Ainsi les transferts sont parallélisés et le choix de l'interface suit la règle : (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d'interfaces.
Mode 3 : Broadcast.
Tout le trafic est envoyé par toutes les interfaces
mode 4 : 802.3ad.
Ce mode s'appuie sur la norme IEEE 802.3ad Dynamic link aggregation.
Toutes les interfaces du groupe sont agrégées de façon dynamique, ce qui augmente la bande passante et gère la tolérance de panne.
Cela implique que le switch gère le 802.ad et les interfaces soient compatibles mii-tool et/ou ethtool.
mode 5 : balance-tlb.
Adaptive transmit load balancing : seule la bande passante en sortie est load balancée selon la charge calculée en fonction de la vitesse, ceci pour chaque interface.
Le flux entrant est affecté à l'interface courante.
Si celle-ci devient inactive, une autre prend alors l'adresse MAC et devient l'interface courante.
mode 6 : balance-alb
Adaptive load balancing : ce mode inclut en plus du tlb un load balancing sur le flux entrant et seulement pour un trafic IPV4.
L'équilibrage est réalisé au niveau ARP. Le module intercepte les réponses pour y réécrire l'adresse MAC de l'une des interfaces du bond tout en tenant compte des spécificités du protocole ARP.
La répartition entre les différentes interfaces, se fait de façon séquentielle ( round robin ).

Comment faire une agrégation de lien sous debian et ubuntu ?
Cette article fonctionne avec debian ou les machines type debian (Ubuntu), j'ai mis un exemple des modes Round Robin et 802.3ad

Pour commencer, il faut installer un package qui permet d'attacher ou détacher une interface.

 aptitude install ifenslave

Puis éditer le fichier de configuration interfaces dans /etc/network/
mode 0 :

 auto eth1
    iface eth1 inet manual
    bond-master bond0
 
 auto eth2
    iface eth2 inet manual
    bond-master bond0
 
 auto bond0
    iface bond0 inet static
    address 192.168.9.200
    network 255.255.255.0
    bond-mode 0
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    slaves eth0 eth1      

mode 4 :

auto eth0
    iface eth0 inet manual
    bond-master bond0

auto eth1
    iface eth1 inet manual
    bond-master bond0

auto eth2
    iface eth2 inet manual
    bond-master bond0

auto eth3
    iface eth3 inet manual
    bond-master bond0

auto bond0
    iface bond0 inet static
    address 192.168.1.200
    gateway 192.168.1.1
    netmask 255.255.255.0
    bond-mode 4
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    slaves eth0 eth1 eth2 eth3
    ad_select bandwidth
  • auto xxx : active ou non l'interface
  • iface xxxx inet : correspond au protocole qui sera appeler au démarrage dhcp, static ou manual
  • bond-master : indique à l'interface qui servira de pont pour la liaison
  • le reste des options “bond” définissent notre pont
    • bond_mode : définit le mode de bonding à utiliser.
    • bond_miimon : détermine la fréquence d'inspection des liens esclaves afin de vérifier leur état de santé. eth0 et eth1 seront surveillés toutes les 100 millisecondes.
    • bond_downdelay : détermine le délai maximum avant qu’un esclave ne soit déclaré en panne.
    • bond_updelay : détermine le temps à attendre avant de redémarrer un esclave détecté comme sain.

On ajoute bonding et mii pour activer le bonding et l'inspection des liens esclaves dans le noyau linux:

 echo "bonding" >> /etc/modules
 echo "mii" >> /etc/modules
 

Pour appliquer les modification, redémarrer le service networking

 /etc/init.d/networking restart
si le redémarrage du service networking ne marche pas, redémarrer la machine

Pour consulter les statistiques :

 cat /proc/net/bonding/bond0

Vous pourrez apercevoir cela sur votre écran:

 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
 
 Bonding Mode: IEEE 802.3ad Dynamic link aggregation
 Transmit Hash Policy: layer2 (0)
 MII Status: up
 MII Polling Interval (ms): 100
 Up Delay (ms): 200
 Down Delay (ms): 200
 
 802.3ad info
 LACP rate: fast
 Min links: 0
 Aggregator selection policy (ad_select): stable
 Active Aggregator Info:
      Aggregator ID: 1
      Number of ports: 1
      Actor Key: 17
      Partner Key: 1
      Partner Mac Address: 00:00:00:00:00:00
 
 Slave Interface: eth1
 MII Status: up
 Speed: 1000 Mbps
 Duplex: full
 Link Failure Count: 0
 Permanent HW addr: 08:00:27:2d:16:01
 Aggregator ID: 1
 Slave queue ID: 0
  
 Slave Interface: eth2
 MII Status: up
 Speed: 1000 Mbps
 Duplex: full
 Link Failure Count: 0
 Permanent HW addr: 08:00:27:f6:c4:95
 Aggregator ID: 2
 Slave queue ID: 0

0 Comments

Comments :