Ceci est une ancienne révision du document !


Bonding : Agrégation de plusieurs Interfaces réseaux en une Interface logique

Bonding est un driver qui permet d'agréger plusieurs carte réseaux de sorte à augmenter la bande passante et avoir une «haute disponibilité».

Si une interface Bond est montée avec 2 cartes réseaux à 100 Mbits/s, selon le mode utilisé le débit obtenu pourra être de 200 Mbits/s . La machine restera accessible si l'une des interfaces ne répond plus.

wikipedia : Bonding

http://www.cyberciti.biz/howto/question/static/linux-ethernet-bonding-driver-howto.php

Prérequis

3 Normes peuvent être utilisé au niveau du switch pour mettre en place une interface bond

  • configuration en mode "port trunking"
  • norme 802.1Q permet Vlan trunking
  • norme 802.ad permet l'agrégation de lien

Le serveur doit avoir :

  • Des cartes réseaux compatible : ethtools et/ou miitools
  • Le module bonding installer.

Les modes

Comme cela à été précisé en fonction du mode sélectionner l'agrégat fonctionnera de façon différent.

Mode 0 : Round Robin , équilibrage de charge

La transmition des paquets est de façon séquentielle sur chacune des cartes actives dans l'agrégat . Ce mode augmente la bande passante et support la tolérance de panne.

Mode 1 : Active - passive

Ce mode ne gère que la tolérance de panne. Si l'interface active est détectée down, 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écificiter du protocole ARP . La répartition entre les différentes interfaces, ce fait de façon séquentiel ( round robin )

autres paramètres

arp_interval

Définit le délais en millisecondes entre chaque requête monitor ARP compatible avec le mode 0 ou 2 . Si la valeur est à 0 alors ARP monitoring est désactivé.

0 est la valeur par défaut

arp_ip_target

Définit les adresses IP si l'option arp_interval > 0 . Il peut être affecté un maximum de 16 adresses à l'agrégat dont le caractère de séparation est la virgule no adresse ip est la valeur par défaut

downdelay

Définit le temps en millisecond pour qu'une interface soit détécter down

0 est la valeur par défaut

lacp_rate

Définit le type d'intervalle entre chaque packet LACPDU pour le mode 802.3ad soit : slow ou 0 une requête toutes les 30 seconds

fast ou 1 une requête toutes les seconds

slow est la valeur par défaut

max_bonds

Définit le nombre maximum d'agrégat pour cette instance

1 est la valeur par défaut

miimon

Définit la fréquence des MII link monitoring en milliseconds . Il est conseiller de positionner cette valeur à 100

0 est la valeur par défaut

primary

Option utillisable pour les modes actif-passif .Favorise une interface dans un agrégat . Si celle-ci venait à redevenir active, elle prend la main sur les autres.

updelay

Définit le en millisecond pour qu'une interface soit détecter active

0 est la valeur par défaut

use_carrier

Définit si on utilise le monitoring de MII ou ETHTOOL ou non

1 est la valeur par défaut

xmi_hash_policy

Définit la règle à utiliser pour déterminer l'interface pour les modes balance-xor et 802.3ad. Cette option peut prendre 2 valeur :

layer2 : utilise XOR de l'adresse MAC dont la formule est : (source MAC XOR destination MAC ) modulo le nombre d'interfaces

layer3+4 : cette valeur n'est pas compatible avec toutes les implémentation 802.3ad. De plus elle fonctionne avec des protocole de haut niveau ( TCP ou UDP )

layer2 est la valeur par défaut

Installation

Installation du package ifenslave pour le kernel 2.6 qui permet de gérer le bonding installez le paquet ifenslave-2.6

sudo apt-get install ifenslave-2.6 

Ajout d'un alias pour que le module bond soit activé avec les bonnes options

sudo vim /etc/modprobe.d/arch/i386

ajouter

alias bond0 bonding

options bonding mode=1 miimon=100 downdelay=200 updelay=200

Création de l'interface bond0

sudo vim /etc/network/interfaces

Insérer

auto bond0
iface bond0 inet static
      address 192.168.0.1
      netmask 255.255.255.0
      network 192.168.0.0
      broadcast 192.168.0.255
      up /sbin/ifenslave bond0 eth0 eth1
      down /sbin/ifenslave -d bond0 eth0 eth1

Activation de l'interface bond0

sudo ifup bond0
  • utilisateurs/tokiess.1192551250.txt.gz
  • Dernière modification: Le 18/04/2011, 14:43
  • (modification externe)