Bonding sur Fedora 20 ou Centos 7

Bonding sur Fedora 20 ou Centos 7

 

Le bonding consiste en la fusion d’interfaces ethernet.

Plus précisement, Le bonding consiste à aggréger plusieurs interfaces en une seule afin d’augmenter sa bande passante et avoir une «haute disponibilité».

Si une interface Bond est montée avec deux 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.

 

Les Prérequis pour cela.

Soit utilisées 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

Soit au niveau de la machine quit doit avoir :

  • des cartes réseaux compatibles : ethtools et/ou miitools
  • le module bonding installé.

 

il existe différent modes d’agrégat, en fonction de ce mode le bonding fonctionnera de façon différente.

  • Mode « balance-rr » (0) : c’est un é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 « active-backup » (1) : 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  « balance-xor » (2) : 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 « broadcast » (3)  : Tout le trafic est envoyé par toutes les interfaces
  • Mode  « 802.3ad » (4) : 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  « balance-tlb » (5) : 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 « balance-alb » (6) : 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 ).

 

Il y a aussi d’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 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 valeur. layer2 : utilise XOR de l’adresse MAC dont la formule est : (source MAC XOR destination MAC ) modulo le nombre d’interfaces ou 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 ). layer2 est la valeur par défaut

 

 

Voici un exemple de de bonding de eth0 et eth1 en mode 4 (802.3ad)

 

Il est possible via les commandes nmcli de faire cela :

# nmcli con add type bond con-name bond0 ifname bond0 mode 802.3ad

# nmcli con add type bond-slave ifname eth0 master bond0

# nmcli con add type bond-slave ifname eth1 master bond0

# nmcli con delete eth0

# nmcli con delete eth1

 

ou

 

en modifiant les fichiers situer dans « /etc/sysconfig/network-script »

 

/etc/sysconfig/networkscript/ifcfg-bond0

DEVICE=bond0 BONDING_OPTS= »miimon=100 mode=802.3ad » TYPE=Bond BONDING_MASTER=yes BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=bond0

UUID= « uid de votre carte »

ONBOOT=yes

 

/etc/sysconfig/networkscript/ifcfg-bond-slave-eth0

TYPE=Ethernet NAME=bond-slave-eth0 UUID= « uid de la carte eth0 » DEVICE=eth0ONBOOT=yes MASTER=bond0

 

/etc/sysconfig/networkscript/ifcfg-bond-slave-eth1

TYPE=Ethernet NAME=bond-slave-eth1 UUID= « uid de la carte eth1 » DEVICE=eth1ONBOOT=yes MASTER=bond0

 

Et supprimer les fichiers

/etc/sysconfig/networkscript/ifcfg-eth0 et /etc/sysconfig/networkscript/ifcfg-eth1

 

 Source

  • http://thegeekdiary.com/red-hat-centos-how-to-create-interface-bonding/
  • http://doc.ubuntu-fr.org/bonding
  • http://www.egothor.org/cms/bonding-fedora-20-networkmanager-and-8023ad
  • man page nmcli
  • https://www.mankier.com/1/nmcli

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.