opensuse:bonding
no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | opensuse:bonding [2018/11/17 12:54] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Bonding ====== | ||
+ | ===== Introduction ===== | ||
+ | Le Channel bonding, aussi appelé Port trucking, permet d' | ||
+ | |||
+ | Nous allons étudier à travers cet article les possibilités offertes et leurs mises en application. | ||
+ | |||
+ | ===== Installation ===== | ||
+ | ==== Prérequis ==== | ||
+ | Deux prérequis apparaissent au niveau du switch réseau, où sont connectés les interfaces : \\ | ||
+ | - support et configuration du mode "port truking" | ||
+ | - support de la norme IEEE 802.3ad | ||
+ | |||
+ | Pour votre système Linux, il vous faut: \\ | ||
+ | - Des cartes réseaux (compatibles ethtools et miitools de préférences). \\ | ||
+ | - Module bonding pour le kernel. (présent par défaut dans la SuSE actuel ) | ||
+ | |||
+ | Kernel 2.4.x\\ | ||
+ | [*] Network device support\\ | ||
+ | <M> Bonding driver support | ||
+ | |||
+ | Kernel 2.6.x\\ | ||
+ | [*] Networking support\\ | ||
+ | <M> Bonding driver support\\ | ||
+ | |||
+ | ===== Les différents modes ===== | ||
+ | Nous allons voir dans ce chapitre les différents modes proposés par le module bonding : | ||
+ | |||
+ | **Mode 0**, l' | ||
+ | Grâce l' | ||
+ | |||
+ | **Mode 1**, la sauvegarde active\\ | ||
+ | Ce mode est une simple redondance avec basculement. Une seule interface est active. Dès que sa panne est détectée, une autre interface est activée et prend le relais. Votre bande passante ne change pas. | ||
+ | |||
+ | **Mode 2**, la balance Xor\\ | ||
+ | Une interface est affectée à l' | ||
+ | (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d' | ||
+ | |||
+ | **Mode 3**, le broadcast\\ | ||
+ | Aucune particularité dans ce cas, toutes les données sont transmises sur toutes les interfaces actives. Aucune autre règle. | ||
+ | |||
+ | **Mode 4**, la norme 802.3ad\\ | ||
+ | La norme 802.3ad permet l' | ||
+ | |||
+ | **Mode 5**, la balance TLB\\ | ||
+ | " | ||
+ | Le trafic sortant est distribué selon la charge courante (calculée relativement à la vitesse) de chaque interface.\\ | ||
+ | Le trafic entrant est reçu par l' | ||
+ | Si l' | ||
+ | |||
+ | **Mode 6**, la balance ALB\\ | ||
+ | " | ||
+ | C'est un mode étendu de la balance tlb, qui inclut du load balancing en réception. L' | ||
+ | |||
+ | ===== Mise en oeuvre ===== | ||
+ | Deux options ont été utilisées ici : mode et miimon | ||
+ | |||
+ | Il est possible de mettre dans le fichier « Debian sarge : / | ||
+ | |||
+ | alias bond0 bonding | ||
+ | options bond0 mode=0 miimon=100 | ||
+ | |||
+ | Ce premier exemple montre le cas d'un seul bonding. Il est en effet possible de mettre plusieurs bonding avec des modes différents. | ||
+ | |||
+ | Pour cela modifions le fichier « Debian sarge : / | ||
+ | |||
+ | alias bond0 bonding | ||
+ | options bond0 -o bond0 mode=2 miimon=100 | ||
+ | alias bond1 bonding | ||
+ | options bond1 -o bond1 mode=1 miimon=100 primary=eth1 | ||
+ | |||
+ | ==== Ajout des interfaces dans bond0 ==== | ||
+ | La commande ifenslave nous permet d' | ||
+ | |||
+ | Pour enlever une interface, il suffit de lancer la commande : | ||
+ | |||
+ | ifenslave -d bondx ethx | ||
+ | |||
+ | Le module bonding redonne alors à ethX sa vraie adresse MAC. Si on enlève la première adresse MAC (celle utilisée par bond0), alors bond0 récupère celle de eth1. | ||
+ | |||
+ | Fichiers de configuration automatique | ||
+ | |||
+ | Voici les fichiers à modifier pour charger au démarage votre configuration, | ||
+ | |||
+ | alias bond0 bonding | ||
+ | options bond0 mode=0 miimon=100 | ||
+ | |||
+ | ==== Sous openSUSE ==== | ||
+ | Dans / | ||
+ | |||
+ | ''/ | ||
+ | |||
+ | ONBOOT=' | ||
+ | DEVICE=' | ||
+ | BOOTPROTO=' | ||
+ | IPADDR=' | ||
+ | NETMASK=' | ||
+ | BROADCAST=' | ||
+ | STARTMODE=' | ||
+ | POST_UP_SCRIPT=' | ||
+ | |||
+ | Préparez chaque interface réseau ethX | ||
+ | |||
+ | ''/ | ||
+ | |||
+ | ONBOOT=yes | ||
+ | DEVICE=eth0 | ||
+ | MASTER=bond0 | ||
+ | SLAVE=yes | ||
+ | |||
+ | ''/ | ||
+ | |||
+ | ONBOOT=yes | ||
+ | DEVICE=eth1 | ||
+ | MASTER=bond0 | ||
+ | SLAVE=yes | ||
+ | |||
+ | Il ne manque que les scripts dans / | ||
+ | |||
+ | ''/ | ||
+ | |||
+ | # /bin/sh | ||
+ | ifenslave bond0 eth0 | ||
+ | ifenslave bond0 eth1 | ||
+ | |||
+ | ==== Sous Debian ==== | ||
+ | ''/ | ||
+ | |||
+ | Ajoutez en-dessous des interfaces réseau comme suit : | ||
+ | |||
+ | auto bond0 | ||
+ | iface bond0 inet static | ||
+ | address 192.168.X,X | ||
+ | netmask 255.255.255.0 | ||
+ | network 192.168.X.0 | ||
+ | broadcast 192.168.X.255 | ||
+ | | ||
+ | pre-up ifconfig eth0 up && ifconfig eth1 up && ifconfig eth2 up | ||
+ | up ifenslave bond0 eth0 eth1 eth2 | ||
+ | down ifenslave -d bond0 eth0 eth1 eth2 | ||
+ | post-down ifconfig eth0 down && ifconfig eth1 down && ifconfig eth2 down | ||
+ | |||
+ | ==== Options du module bonding ==== | ||
+ | Voici donc une série d' | ||
+ | |||
+ | Option | ||
+ | Description | ||
+ | |||
+ | Primary | ||
+ | Uniquement pour active-backup. Favorise une interface esclave. Celle-ci redeviendra active dès qu' | ||
+ | |||
+ | updelay | ||
+ | (0 par défaut) Temps de latence entre la découverte de la reconnexion d'une interface et de sa réutilisation. | ||
+ | |||
+ | downdelay | ||
+ | (0 par défaut) Temps de latence entre la découverte de la déconnexion d'une interface et de sa désactivation de bond0. | ||
+ | |||
+ | miimon | ||
+ | (0 par défaut) Fréquence de surveillance des interfaces par Mii ou ethtool. La valeur conseillée est 100. | ||
+ | |||
+ | use_carrier | ||
+ | (1 par défaut) Utilisation de la surveillance des interfaces par " | ||
+ | |||
+ | arp_interval | ||
+ | (en ms) Système de surveillance par ARP, évitant l' | ||
+ | |||
+ | arp_ip_target | ||
+ | Liste des adresses IP, séparées par une virgule, utilisée par la surveillance ARP. Si aucune n'est renseignée, | ||
+ | |||
+ | ===== Quelques exemples ===== | ||
+ | ==== Une simple redondance avec priorité sur eth1 ==== | ||
+ | |||
+ | #!/bin/bash | ||
+ | modprobe bonding -o bond0 mode=1 miimon=100 priority=eth1 | ||
+ | ifconfig eth0 down | ||
+ | ifconfig eth1 down | ||
+ | ifconfig bond0 hw ether 11: | ||
+ | ifconfig bond0 192.168.0.4 netmask 255.255.255.0 gateway 192.168.0.254 up | ||
+ | ifenslave bond0 eth0 | ||
+ | ifenslave bond0 eth1 | ||
+ | |||
+ | ==== Un équilibrage de charge avec vérification par requêtes ARP ==== | ||
+ | |||
+ | #!/bin/bash | ||
+ | modprobe bonding -o bond1 mode=0 arp_interval=1000 arp_ip_target=216.239.57.104 | ||
+ | ifconfig eth0 down | ||
+ | ifconfig eth1 down | ||
+ | ifconfig eth2 down | ||
+ | ifconfig bond1 hw ether 11: | ||
+ | ifconfig bond1 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.254 up | ||
+ | ifenslave bond1 eth0 | ||
+ | ifenslave bond1 eth1 | ||
+ | ifenslave bond1 eth2 | ||
+ | |||
+ | ===== Récapitulatif des modes ===== | ||
+ | ^ Mode ^ Description ^ Load-Balancing | | ||
+ | | 0 | l' | ||
+ | | 1 | la sauvegarde active | aucune | | ||
+ | | 2 | la balance Xor | entrante | | ||
+ | | 3 | le broadcast | aucune | | ||
+ | | 4 | la norme 802.3ad | aucune | | ||
+ | | 5 | la balance TLB | entrante | | ||
+ | | 6 | la balance ALB | entrante et sortante | | ||
+ | |||
+ | ===== Conclusion ===== | ||
+ | Il est possible aussi de faire des adresses IP virtuelles avec le même principe qu'une interface réseau. | ||
+ | |||
+ | __Exemple :__ | ||
+ | |||
+ | auto bond0:0 | ||
+ | iface bond0:0 inet static | ||
+ | address 192.168.2.1 | ||
+ | netmask 255.255.255.0 | ||
+ | network 192.168.1.0 | ||
+ | broadcast 192.168.1.255 | ||
+ | |||
+ | La redondance des cartes réseaux est souvent perçue comme inutile et couteuse malgré une installation simple. | ||
+ | |||
+ | Avec ces 7 modes de fonctionnement, |
opensuse/bonding.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1