Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:tokiess [Le 16/10/2007, 17:16] tokiess |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== 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** : [[wpfr>Bonding]] | ||
- | |||
- | |||
- | [[http://www.cyberciti.biz/howto/question/static/linux-ethernet-bonding-driver-howto.php]] | ||
- | |||
- | |||
- | ===== Instalation ===== | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ==== 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 | ||
- | |||
- | |||
- | ==== Mise en place ==== | ||
- | |||
- | Installation du package ifenslave pour le kernel 2.6 qui permet de gérer le bonding | ||
- | |||
- | |||
- | 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 | ||
- | |||
- | alias bond0 bonding | ||
- | |||
- | options bonding mode=1 miimon=100 downdelay=200 updelay=200 | ||
- | |||
- | Création de l'interface bond0 | ||
- | |||
- | sudo vim /etc/network/interfaces | ||
- | |||
- | 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 | ||
- | |||