Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
bonding [Le 19/03/2014, 10:35] – [Installation] 80.118.104.160 | bonding [Le 09/01/2021, 20:00] (Version actuelle) – Ajout agrégation depuis ubuntu 20.04 82.64.126.152 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ====== Bonding : Agrégation de plusieurs Interfaces réseaux en une Interface logique ====== | ||
+ | |||
+ | Bonding est un pilote qui permet d' | ||
+ | |||
+ | 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> | ||
+ | |||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ===== Descriptif ===== | ||
+ | |||
+ | |||
+ | |||
+ | ==== Prérequis ==== | ||
+ | |||
+ | 3 Normes peuvent être 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.3ad permet l' | ||
+ | |||
+ | Le serveur doit avoir : | ||
+ | * des cartes réseaux compatibles : ethtools et/ou miitools | ||
+ | * le module bonding installé. | ||
+ | |||
+ | Le module bonding.ko est installé par défaut : | ||
+ | |||
+ | ls / | ||
+ | |||
+ | |||
+ | |||
+ | ==== Les modes ==== | ||
+ | |||
+ | Comme cela à été précisé, en fonction du mode sélectionné l' | ||
+ | |||
+ | === 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' | ||
+ | |||
+ | === Mode 1 : Active - passive === | ||
+ | |||
+ | Ce mode ne gère que la tolérance de panne. Si une des interfaces est désactivée, | ||
+ | |||
+ | === Mode 2 : Balance xor === | ||
+ | |||
+ | Une interface est affectée à l' | ||
+ | (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d' | ||
+ | |||
+ | === Mode 3 : Broadcast === | ||
+ | |||
+ | Tout le trafic est envoyé par toutes les interfaces | ||
+ | |||
+ | |||
+ | === mode 4 : 802.3ad === | ||
+ | |||
+ | Ce mode s' | ||
+ | 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' | ||
+ | |||
+ | === 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' | ||
+ | La répartition entre les différentes interfaces, se fait de façon séquentielle ( 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' | ||
+ | Il peut être affecté un maximum de 16 adresses à l' | ||
+ | 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 | ||
+ | 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' | ||
+ | |||
+ | 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étectée 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' | ||
+ | Cette option peut prendre 2 valeur : | ||
+ | |||
+ | layer2 : utilise XOR de l' | ||
+ | |||
+ | 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 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Installation ==== | ||
+ | |||
+ | 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 / | ||
+ | |||
+ | ajouter | ||
+ | |||
+ | alias bond0 bonding | ||
+ | options bonding mode=1 miimon=100 downdelay=200 updelay=200 | ||
+ | |||
+ | Création de l' | ||
+ | |||
+ | sudo vim / | ||
+ | |||
+ | Insérer | ||
+ | |||
+ | auto bond0 | ||
+ | iface bond0 inet static | ||
+ | address 192.168.0.2 | ||
+ | netmask 255.255.255.0 | ||
+ | network 192.168.0.0 | ||
+ | gateway 192.168.0.1 | ||
+ | broadcast 192.168.0.255 | ||
+ | up / | ||
+ | down / | ||
+ | |||
+ | address : l' | ||
+ | | ||
+ | | ||
+ | |||
+ | Activation de l' | ||
+ | |||
+ | sudo ifup bond0 | ||
+ | |||
+ | ou | ||
+ | |||
+ | / | ||
+ | |||
+ | **Autre méthode, avec prise en charge du dhcp** | ||
+ | |||
+ | Si vous avez essayé la méthode précédente avec une adresse dynamique, vous pouvez obtenir ceci : | ||
+ | |||
+ | DHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 7 | ||
+ | DHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 16 | ||
+ | DHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 13 | ||
+ | DHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 8 | ||
+ | DHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 17 | ||
+ | No DHCPOFFERS received. | ||
+ | No working leases in persistent database - sleeping. | ||
+ | |||
+ | D’après ce [[https:// | ||
+ | |||
+ | D’après ce [[http:// | ||
+ | |||
+ | auto bond0 | ||
+ | iface bond0 inet dhcp | ||
+ | pre-up modprobe bonding | ||
+ | pre-up ifconfig bond0 up | ||
+ | pre-up / | ||
+ | down / | ||
+ | |||
+ | Exemple Ethernet + Wifi -> DHCP | ||
+ | |||
+ | auto eth0 | ||
+ | iface eth0 inet manual | ||
+ | bond-master bond0 | ||
+ | bond-primary eth0 wlan0 | ||
+ | | ||
+ | auto wlan0 | ||
+ | iface wlan0 inet manual | ||
+ | bond-master bond0 | ||
+ | bond-mode 1 | ||
+ | bond-miimon 100 | ||
+ | bond-give-a-chance 10 | ||
+ | wpa-bridge bond0 | ||
+ | wpa-key-mgmt WPA-PSK | ||
+ | wpa-proto WPA | ||
+ | wpa-group CCMP | ||
+ | wpa-ssid my-ssid | ||
+ | wpa-psk " | ||
+ | | ||
+ | auto bond0 | ||
+ | iface bond0 inet dhcp | ||
+ | bond-slaves none | ||
+ | bond-mode 1 | ||
+ | bond-miimon 100 | ||
+ | |||
+ | Exemple 2 X Ethernet -> DHCP | ||
+ | |||
+ | auto eth0 | ||
+ | iface eth0 inet manual | ||
+ | bond-master bond0 | ||
+ | bond-primary eth0 eth1 | ||
+ | | ||
+ | auto eth1 | ||
+ | iface eth1 inet manual | ||
+ | bond-master bond0 | ||
+ | bond-primary eth0 eth1 | ||
+ | | ||
+ | auto bond0 | ||
+ | iface bond0 inet dhcp | ||
+ | bond-slaves none | ||
+ | bond-mode 1 | ||
+ | bond-miimon 100 | ||
+ | | ||
+ | | ||
+ | |||
+ | ===== Installation depuis ubuntu 20.04 et + ===== | ||
+ | <note warning> | ||
+ | |||
+ | ==== Installation graphique ==== | ||
+ | |||
+ | Lancer dans un terminal | ||
+ | | ||
+ | puis ajouter un connexion «LIEN» sur les carte réseaux existences. | ||
+ | La désactivation des lien actuel est nécessaire. | ||
+ | |||
+ | |||
+ | ==== Installation terminal ==== | ||
+ | |||
+ | Lancer dans un terminal | ||
+ | nmtui | ||
+ | puis ajouter un connexion «LIEN» sur les carte réseaux existences. | ||
+ | La désactivation des lien actuel est nécessaire. | ||
+ | |||
+ | |||