Bonding

Need :

1
2
3
# modprobe bonding
# echo "bonding" >> /etc/modules
# apt-get install ifenslave-2.6

Conf :

1
2
3
4
5
6
7
8
9
10
11
12
auto bond0
iface bond0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
slaves eth0 eth2
bond_mode 4
bond-xmit-hash-policy layer3+4
bond_miimon 100
bond_downdelay 200
bond_updelay 200
bond-lacp-rate slow
1
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1

Modes :

  • 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 ).

Options :

  • 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 millisecondes pour qu’une interface soit détecter 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 millisecondes. Il est conseillé de positionner cette valeur à 100.
    0 est la valeur par défaut

  • primary
    Option utilisable 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 temps en millisecondes pour qu’une interface soit détecter comme 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 valeurs :
    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 protocoles de haut niveau ( TCP ou UDP )