{"id":6649,"date":"2021-04-28T10:32:12","date_gmt":"2021-04-28T10:32:12","guid":{"rendered":"https:\/\/hengowebsite.luong.fr\/?page_id=6649"},"modified":"2021-04-28T10:32:12","modified_gmt":"2021-04-28T10:32:12","slug":"bonding-agregation-de-plusieurs-interfaces-reseaux-en-une-interface-logique","status":"publish","type":"page","link":"https:\/\/hengowebsite.luong.fr\/?page_id=6649","title":{"rendered":"Bonding : Agr\u00e9gation de plusieurs Interfaces r\u00e9seaux en une Interface logique"},"content":{"rendered":"<h1 id=\"bondingagregation_de_plusieurs_interfaces_reseaux_en_une_interface_logique\" class=\"sectionedit1 page-header\">Bonding : Agr\u00e9gation de plusieurs Interfaces r\u00e9seaux en une Interface logique<\/h1>\n<div class=\"level1\">\n<p>Bonding est un pilote qui permet d&rsquo;agr\u00e9ger plusieurs cartes r\u00e9seaux de sorte \u00e0 augmenter la bande passante et avoir une \u00abhaute disponibilit\u00e9\u00bb.<\/p>\n<p>Si une interface Bond est mont\u00e9e avec 2 cartes r\u00e9seaux \u00e0 100 Mbits\/s, selon le mode utilis\u00e9 le d\u00e9bit obtenu pourra \u00eatre de 200 Mbits\/s . La machine restera accessible si l&rsquo;une des interfaces ne r\u00e9pond plus.<\/p>\n<p><strong>wikipedia<\/strong> : <a class=\"interwiki iw_wpfr\" title=\"https:\/\/fr.wikipedia.org\/wiki\/Agr\u00e9gation de liens\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Agr\u00e9gation de liens\">Agr\u00e9gation de liens<\/a><\/p>\n<p><a class=\"urlextern\" title=\"http:\/\/www.cyberciti.biz\/howto\/question\/static\/linux-ethernet-bonding-driver-howto.php\" href=\"http:\/\/www.cyberciti.biz\/howto\/question\/static\/linux-ethernet-bonding-driver-howto.php\" rel=\"nofollow\">http:\/\/www.cyberciti.biz\/howto\/question\/static\/linux-ethernet-bonding-driver-howto.php<\/a><\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_1\">\n<form class=\"button btn_secedit form-inline\" action=\"\/bonding\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h2 id=\"descriptif\" class=\"sectionedit2 page-header\">Descriptif<\/h2>\n<div class=\"level2\">&nbsp;<\/div>\n<div class=\"secedit editbutton_section editbutton_2\">\n<form class=\"button btn_secedit form-inline\" action=\"\/bonding\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"prerequis\" class=\"sectionedit3\">Pr\u00e9requis<\/h3>\n<div class=\"level3\">\n<p>3 Normes peuvent \u00eatre utilis\u00e9es au niveau du switch pour mettre en place une interface bond :<\/p>\n<ul class=\" fix-media-list-overlap\">\n<li class=\"level1\">\n<div class=\"li\">configuration en mode \u00ab\u00a0port trunking\u00a0\u00bb<\/div>\n<\/li>\n<li class=\"level1\">\n<div class=\"li\">norme 802.1Q permet Vlan trunking<\/div>\n<\/li>\n<li class=\"level1\">\n<div class=\"li\">norme 802.3ad permet l&rsquo;agr\u00e9gation de lien<\/div>\n<\/li>\n<\/ul>\n<p>Le serveur doit avoir :<\/p>\n<ul class=\" fix-media-list-overlap\">\n<li class=\"level1\">\n<div class=\"li\">des cartes r\u00e9seaux compatibles : ethtools et\/ou miitools<\/div>\n<\/li>\n<li class=\"level1\">\n<div class=\"li\">le module bonding install\u00e9.<\/div>\n<\/li>\n<\/ul>\n<p>Le module bonding.ko est install\u00e9 par d\u00e9faut :<\/p>\n<pre class=\"code\">ls \/lib\/modules\/`uname -r`\/kernel\/drivers\/net\/bonding\/bonding.ko<\/pre>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_3\">\n<form class=\"button btn_secedit form-inline\" action=\"\/bonding\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"les_modes\" class=\"sectionedit4\">Les modes<\/h3>\n<div class=\"level3\">\n<p>Comme cela \u00e0 \u00e9t\u00e9 pr\u00e9cis\u00e9, en fonction du mode s\u00e9lectionn\u00e9 l&rsquo;agr\u00e9gat fonctionnera de fa\u00e7on diff\u00e9rente.<\/p>\n<\/div>\n<h4 id=\"mode_0round_robin_equilibrage_de_charge\">Mode 0 : Round Robin , \u00e9quilibrage de charge<\/h4>\n<div class=\"level4\">\n<p>La transmission des paquets se fait de fa\u00e7on s\u00e9quentielle sur chacune des cartes actives dans l&rsquo;agr\u00e9gat. Ce mode augmente la bande passante et g\u00e8re la tol\u00e9rance de panne.<\/p>\n<\/div>\n<h4 id=\"mode_1active_-_passive\">Mode 1 : Active &#8211; passive<\/h4>\n<div class=\"level4\">\n<p>Ce mode ne g\u00e8re que la tol\u00e9rance de panne. Si une des interfaces est d\u00e9sactiv\u00e9e, une autre du bond prend le relais.<\/p>\n<\/div>\n<h4 id=\"mode_2balance_xor\">Mode 2 : Balance xor<\/h4>\n<div class=\"level4\">\n<p>Une interface est affect\u00e9e \u00e0 l&rsquo;envoi vers une m\u00eame adresse <abbr title=\"\" data-original-title=\"Medium Access Control\">MAC<\/abbr>. Ainsi les transferts sont parall\u00e9lis\u00e9s et le choix de l&rsquo;interface suit la r\u00e8gle : (Adresse <abbr title=\"\" data-original-title=\"Medium Access Control\">MAC<\/abbr> de la source XOR Adresse <abbr title=\"\" data-original-title=\"Medium Access Control\">MAC<\/abbr> de la destination) modulo nombre d&rsquo;interfaces.<\/p>\n<\/div>\n<h4 id=\"mode_3broadcast\">Mode 3 : Broadcast<\/h4>\n<div class=\"level4\">\n<p>Tout le trafic est envoy\u00e9 par toutes les interfaces<\/p>\n<\/div>\n<h4 id=\"mode_48023ad\">mode 4 : 802.3ad<\/h4>\n<div class=\"level4\">\n<p>Ce mode s&rsquo;appuie sur la norme IEEE 802.3ad Dynamic link aggregation. Toutes les interfaces du groupe sont agr\u00e9g\u00e9es de fa\u00e7on dynamique, ce qui augmente la bande passante et g\u00e8re la tol\u00e9rance de panne.<\/p>\n<p>Cela implique que le switch g\u00e8re le 802.ad et les interfaces soient compatibles mii-tool et\/ou ethtool.<\/p>\n<\/div>\n<h4 id=\"mode_5balance-tlb\">mode 5 : balance-tlb<\/h4>\n<div class=\"level4\">\n<p>Adaptive transmit load balancing : seule la bande passante en sortie est load balanc\u00e9e selon la charge calcul\u00e9e en fonction de la vitesse, ceci pour chaque interface. Le flux entrant est affect\u00e9 \u00e0 l&rsquo;interface courante. Si celle-ci devient inactive, une autre prend alors l&rsquo;adresse <abbr title=\"\" data-original-title=\"Medium Access Control\">MAC<\/abbr> et devient l&rsquo;interface courante.<\/p>\n<\/div>\n<h4 id=\"mode_6balance-alb\">mode 6 : balance-alb<\/h4>\n<div class=\"level4\">\n<p>Adaptive load balancing : ce mode inclut en plus du tlb un load balancing sur le flux entrant et seulement pour un trafic <abbr title=\"\" data-original-title=\"Internet Protocol Version 4\">IPV4<\/abbr>. L&rsquo;\u00e9quilibrage est r\u00e9alis\u00e9 au niveau <abbr title=\"\" data-original-title=\"Adress Resolution Protocol\">ARP<\/abbr>. Le module intercepte les r\u00e9ponses pour y r\u00e9\u00e9crire l&rsquo;adresse <abbr title=\"\" data-original-title=\"Medium Access Control\">MAC<\/abbr> de l&rsquo;une des interfaces du bond tout en tenant compte des sp\u00e9cificit\u00e9s du protocole <abbr title=\"\" data-original-title=\"Adress Resolution Protocol\">ARP<\/abbr>. La r\u00e9partition entre les diff\u00e9rentes interfaces, se fait de fa\u00e7on s\u00e9quentielle ( round robin ).<\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_4\">\n<form class=\"button btn_secedit form-inline\" action=\"\/bonding\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"autres_parametres\" class=\"sectionedit5\">autres param\u00e8tres<\/h3>\n<div class=\"level3\">&nbsp;<\/div>\n<h4 id=\"arp_interval\">arp_interval<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit le d\u00e9lais en millisecondes entre chaque requ\u00eate monitor <abbr title=\"\" data-original-title=\"Adress Resolution Protocol\">ARP<\/abbr> compatible avec le mode 0 ou 2 . Si la valeur est \u00e0 0 alors <abbr title=\"\" data-original-title=\"Adress Resolution Protocol\">ARP<\/abbr> monitoring est d\u00e9sactiv\u00e9.<\/p>\n<p>0 est la valeur par d\u00e9faut<\/p>\n<\/div>\n<h4 id=\"arp_ip_target\">arp_ip_target<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit les adresses IP si l&rsquo;option arp_interval &gt; 0 . Il peut \u00eatre affect\u00e9 un maximum de 16 adresses \u00e0 l&rsquo;agr\u00e9gat dont le caract\u00e8re de s\u00e9paration est la virgule no adresse ip est la valeur par d\u00e9faut<\/p>\n<\/div>\n<h4 id=\"downdelay\">downdelay<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit le temps en millisecondes pour qu&rsquo;une interface soit d\u00e9tecter down<\/p>\n<p>0 est la valeur par d\u00e9faut<\/p>\n<\/div>\n<h4 id=\"lacp_rate\">lacp_rate<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit le type d&rsquo;intervalle entre chaque packet LACPDU pour le mode 802.3ad soit : slow ou 0 une requ\u00eate toutes les 30 seconds<\/p>\n<p>fast ou 1 une requ\u00eate toutes les seconds<\/p>\n<p>slow est la valeur par d\u00e9faut<\/p>\n<\/div>\n<h4 id=\"max_bonds\">max_bonds<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit le nombre maximum d&rsquo;agr\u00e9gat pour cette instance<\/p>\n<p>1 est la valeur par d\u00e9faut<\/p>\n<\/div>\n<h4 id=\"miimon\">miimon<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit la fr\u00e9quence des MII link monitoring en millisecondes. Il est conseill\u00e9 de positionner cette valeur \u00e0 100.<\/p>\n<p>0 est la valeur par d\u00e9faut<\/p>\n<\/div>\n<h4 id=\"primary\">primary<\/h4>\n<div class=\"level4\">\n<p>Option utilisable pour les modes actif-passif. Favorise une interface dans un agr\u00e9gat. Si celle-ci venait \u00e0 redevenir active, elle prend la main sur les autres.<\/p>\n<\/div>\n<h4 id=\"updelay\">updelay<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit le temps en millisecondes pour qu&rsquo;une interface soit d\u00e9tect\u00e9e comme active.<\/p>\n<p>0 est la valeur par d\u00e9faut<\/p>\n<\/div>\n<h4 id=\"use_carrier\">use_carrier<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit si on utilise le monitoring de MII ou ETHTOOL ou non<\/p>\n<p>1 est la valeur par d\u00e9faut<\/p>\n<\/div>\n<h4 id=\"xmi_hash_policy\">xmi_hash_policy<\/h4>\n<div class=\"level4\">\n<p>D\u00e9finit la r\u00e8gle \u00e0 utiliser pour d\u00e9terminer l&rsquo;interface pour les modes balance-xor et 802.3ad. Cette option peut prendre 2 valeur :<\/p>\n<p>layer2 : utilise XOR de l&rsquo;adresse <abbr title=\"\" data-original-title=\"Medium Access Control\">MAC<\/abbr> dont la formule est : (source <abbr title=\"\" data-original-title=\"Medium Access Control\">MAC<\/abbr> XOR destination <abbr title=\"\" data-original-title=\"Medium Access Control\">MAC<\/abbr> ) modulo le nombre d&rsquo;interfaces<\/p>\n<p>layer3+4 : cette valeur n&rsquo;est pas compatible avec toutes les impl\u00e9mentation 802.3ad. De plus elle fonctionne avec des protocoles de haut niveau ( <abbr title=\"\" data-original-title=\"Transmission Control Protocol\">TCP<\/abbr> ou UDP )<\/p>\n<p>layer2 est la valeur par d\u00e9faut<\/p>\n<\/div>\n<div class=\"secedit editbutton_section editbutton_5\">\n<form class=\"button btn_secedit form-inline\" action=\"\/bonding\" method=\"post\">\n<div class=\"no\">&nbsp;<\/div>\n<\/form>\n<\/div>\n<h3 id=\"installation\" class=\"sectionedit6\">Installation<\/h3>\n<div class=\"level3\">\n<p>Installation du package ifenslave pour le kernel 2.6 qui permet de g\u00e9rer le bonding <a class=\"wikilink1\" title=\"tutoriel:comment_installer_un_paquet\" href=\"https:\/\/doc.ubuntu-fr.org\/tutoriel\/comment_installer_un_paquet\">installez le paquet ifenslave-2.6<\/a><\/p>\n<pre class=\"code\">sudo apt-get install ifenslave-2.6<\/pre>\n<p>Ajout d&rsquo;un alias pour que le module bond soit activ\u00e9 avec les bonnes options<\/p>\n<pre class=\"code\">sudo vim \/etc\/modprobe.d\/aliase-bond.conf<\/pre>\n<p>ajouter<\/p>\n<pre class=\"code\">alias bond0 bonding\r\noptions bonding mode=1 miimon=100 downdelay=200 updelay=200<\/pre>\n<p>Cr\u00e9ation de l&rsquo;interface bond0<\/p>\n<pre class=\"code\">sudo vim \/etc\/network\/interfaces<\/pre>\n<p>Ins\u00e9rer<\/p>\n<pre class=\"code\">auto bond0\r\niface bond0 inet static\r\n      address 192.168.0.2\r\n      netmask 255.255.255.0\r\n      network 192.168.0.0\r\n      gateway 192.168.0.1\r\n      broadcast 192.168.0.255\r\n      up \/sbin\/ifenslave bond0 eth0 eth1\r\n      down \/sbin\/ifenslave -d bond0 eth0 eth1<\/pre>\n<p>address : l&rsquo;adresse IP de votre machine<br \/>\nnetmask : le masque de votre r\u00e9seau<br \/>\ngateway : l&rsquo;adresse IP de votre routeur\/box internet<\/p>\n<p>Activation de l&rsquo;interface bond0<\/p>\n<pre class=\"code\">sudo ifup bond0<\/pre>\n<p>ou<\/p>\n<pre class=\"code\">\/etc\/init.d\/networking restart<\/pre>\n<p><strong>Autre m\u00e9thode, avec prise en charge du dhcp<\/strong><\/p>\n<p>Si vous avez essay\u00e9 la m\u00e9thode pr\u00e9c\u00e9dente avec une adresse dynamique, vous pouvez obtenir ceci :<\/p>\n<pre class=\"code\">DHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 7\r\nDHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 16\r\nDHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 13\r\nDHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 8\r\nDHCPDISCOVER on bond0 to 255.255.255.255 port 67 interval 17\r\nNo DHCPOFFERS received.\r\nNo working leases in persistent database - sleeping.<\/pre>\n<p>D\u2019apr\u00e8s ce <a class=\"urlextern\" title=\"https:\/\/bugs.launchpad.net\/ubuntu\/+source\/ifupdown\/+bug\/63988\" href=\"https:\/\/bugs.launchpad.net\/ubuntu\/+source\/ifupdown\/+bug\/63988\" rel=\"nofollow\">rapport de bug<\/a>, une m\u00e9thode &lsquo;temporaire&rsquo; \u00e0 \u00e9t\u00e9 trouv\u00e9.<\/p>\n<p>D\u2019apr\u00e8s ce <a class=\"urlextern\" title=\"http:\/\/wiki.bolay.net\/doku.php?id=operating_systems:linux:debian:bonding_on_debian\" href=\"http:\/\/wiki.bolay.net\/doku.php?id=operating_systems:linux:debian:bonding_on_debian\" rel=\"nofollow\">wiki<\/a> :<\/p>\n<pre class=\"code\">auto bond0\r\niface bond0 inet dhcp\r\n      pre-up modprobe bonding\r\n      pre-up ifconfig bond0 up\r\n      pre-up \/sbin\/ifenslave bond0 eth0 eth1\r\n      down \/sbin\/ifenslave -d bond0 eth0 eth1<\/pre>\n<p>Exemple Ethernet + Wifi \u2192 <abbr title=\"\" data-original-title=\"Dynamic Host Configuration Protocol\">DHCP<\/abbr><\/p>\n<pre class=\"code\">auto eth0\r\niface eth0 inet manual\r\n      bond-master bond0\r\n      bond-primary eth0 wlan0\r\n\r\nauto wlan0\r\niface wlan0 inet manual\r\n      bond-master bond0\r\n      bond-mode 1\r\n      bond-miimon 100\r\n      bond-give-a-chance 10\r\n      wpa-bridge bond0\r\n      wpa-key-mgmt WPA-PSK\r\n      wpa-proto WPA\r\n      wpa-group CCMP\r\n      wpa-ssid my-ssid\r\n      wpa-psk \"my-secret-password\"\r\n\r\nauto bond0\r\niface bond0 inet dhcp\r\n      bond-slaves none\r\n      bond-mode 1\r\n      bond-miimon 100<\/pre>\n<p>Exemple 2 X Ethernet \u2192 <abbr title=\"\" data-original-title=\"Dynamic Host Configuration Protocol\">DHCP<\/abbr><\/p>\n<pre class=\"code\">auto eth0\r\niface eth0 inet manual\r\n      bond-master bond0\r\n      bond-primary eth0 eth1\r\n\r\nauto eth1\r\niface eth1 inet manual\r\n      bond-master bond0\r\n      bond-primary eth0 eth1\r\n\r\nauto bond0\r\niface bond0 inet dhcp\r\n      bond-slaves none\r\n      bond-mode 1\r\n      bond-miimon 100\r\n      \r\n<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bonding : Agr\u00e9gation de plusieurs Interfaces r\u00e9seaux en une Interface logique Bonding est un pilote qui permet d&rsquo;agr\u00e9ger plusieurs cartes r\u00e9seaux de sorte \u00e0 augmenter la bande passante et avoir une \u00abhaute disponibilit\u00e9\u00bb. Si une interface Bond est mont\u00e9e avec 2 cartes r\u00e9seaux \u00e0 100 Mbits\/s, selon le mode utilis\u00e9 le d\u00e9bit obtenu pourra \u00eatre [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0},"_links":{"self":[{"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/pages\/6649"}],"collection":[{"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6649"}],"version-history":[{"count":1,"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/pages\/6649\/revisions"}],"predecessor-version":[{"id":6650,"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=\/wp\/v2\/pages\/6649\/revisions\/6650"}],"wp:attachment":[{"href":"https:\/\/hengowebsite.luong.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}