Différences entre les versions de « Bonding & trunking »

De BlaxWiki
Aller à la navigationAller à la recherche
 
(8 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Cela permet d aggréger les 2 interfaces.
__FORCETOC__


Le bonding ou teaming permet de faire du failover ou de l'agrégation d'interfaces.


=== Bonding sous Debian ===
=== Généralités ===
Il faut installer le package ifenslave-2.6.
==== Différents mode de bonding ====
<pre>
Mode 0, l'équilibrage de charge (lb entrant)
Grâce l'équilibrage de charge, les paquets transitent sur une carte réseau active, puis sur une autre, séquentiellement. Le débit de la bande passante est augmenté. Si une des cartes
réseaux vient à tomber en rade, l'équilibre de charge saute cette carte et continue à tourner de manière cyclique.
 
Mode 1, la sauvegarde active (lb aucun)
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 (lb entrant)
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, le broadcast (lb aucun)
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 (lb aucun)
La norme 802.3ad permet l'aggrégation des liens, élargissant dynamiquement la bande passante. Les groupes sont créés dynamiquement sur la base d'un paramètrage commun.
 
Mode 5, la balance TLB (lb entrant)
"TLB" pour Traffic Load Balancing
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'interface courante.Si l'interface
de réception devient inactive, une autre interface prend l'adresse MAC de l'interface inactive.


* /etc/network/interfaces file
Mode 6, la balance ALB (lb entrant et sortant)
<pre>
"ALB" pour Adaptive load balancing.
auto bond0
C'est un mode étendu de la balance tlb, qui inclut du load balancing en réception. L'équilibrage de charge de réception est réalisé au niveau des réponses ARP. Le module intercepte
iface bond0 inet static
les réponses ARP et change l'adresse MAC par celle d'une des interfaces.
  address 10.31.1.5
  netmask 255.255.255.0
  network 10.31.1.0
  gateway 10.31.1.254
  slaves eth0 eth1
  bond-mode active-backup
  bond-miimon 100
  bond-downdelay 200
  bond-updelay 200
</pre>
</pre>


* /etc/modprobe.d/aliases-bond.conf
==== Options ====
<pre>
<pre>
alias bond0 bonding
Primary           Uniquement pour active-backup. Favorise une interface esclave. Celle-ci redeviendra active dès qu'elle le peut, même si une autre interface est active.
options bonding mode=1 arp_interval=2000 arp_ip_target=192.168.3.1
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 "carrier".
arp_interval (en ms)      Système de surveillance par ARP, évitant l'utilisation de miitool et ethtool. Si aucune trame est arrivée pendant l'arp_interval, on envoie par cette
interface jusqu'à 16 requêtes ARP à 16 adresses IP. Si aucune réponse n'est obtenue, l'interface est désactivée.
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, la surveillance ARP est inactive
</pre>
</pre>


<pre>
=== Configuration ===
Il est nécessaire de définir dans les options à la fois miimon ou arp_interval et arp_ip_target, sinon cela va générer un warning au boot et ne permet pas d'avoir un bonding totalement
efficace.
Il ne faut pas avoir les options à la fois dans /etc/modprobe.d/alias-bond.conf et dans /etc/sysconfig/network-scripts/ifcfg-bond0|bond1 (ou autre fichier de configuration des interfaces réseaux).
De préférence mettre les options dans la configuration de l'interface
 
Le primary= permet d avoir le mode failback (quand la primary interface revient up, le serveur rebascule dessus)


/etc/network/interfaces:
=== Bonding sous Centos ===
------------------------
On doit configurer les interfaces ethX


# The primary network interface
<pre>
#auto eth0
[root@veso3folx01 network-scripts]# cat ifcfg-bond0
#iface eth0 inet static
DEVICE=bond0
#      address 212.43.195.133
BOOTPROTO=static
#      netmask 255.255.255.0
ONBOOT=yes
#      network 212.43.195.0
IPADDR=10.80.30.1
#      broadcast 212.43.195.255
NETMASK=255.255.255.128
#      gateway 212.43.195.1
NETWORK=10.80.30.0
#      # dns-* options are implemented by the resolvconf package, if installed
BROADCAST=10.80.30.127
#      dns-nameservers 212.43.194.2 212.43.194.3
BONDING_OPTS="primary=eth0 mode=1 miimon=100"
#      dns-search co.fr.clara.net


auto bond0
[root@veso3folx01 network-scripts]# cat ifcfg-eth0
iface bond0 inet static
DEVICE=eth0
      address 212.43.220.45
BOOTPROTO=none
      netmask 255.255.255.0
ONBOOT=yes
      gateway 212.43.220.1
MASTER=bond0
      pre-up ifconfig eth0 up
SLAVE=yes
      pre-up ifconfig eth1 up
MTU=1500
      up ifenslave bond0 eth0 eth1
      down ifenslave -d bond0 eth0 eth1
      post-down ifconfig eth0 down
      post-down ifconfig eth1 down
      dns-nameservers 212.43.194.2 212.43.194.3
      dns-search co.fr.clara.net


/etc/modules:
[root@veso3folx01 network-scripts]# cat ifcfg-eth1
-------------
DEVICE=eth1
bonding mode=4 miimon=100
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
MTU=1500
</pre>


ifconfig -a:
Dans /etc/modprobe.d/alias-bond.conf
------------
<pre>
alias netdev-bond0 bonding
alias netdev-bond1 bonding
</pre>


bond0    Lien encap:Ethernet  HWaddr 00:14:85:29:BE:22          inet adr:212.43.220.45  Bcast:212.43.220.255  Masque:255.255.255.0
=== Bonding sous Debian ===
        UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
Il faut installer le package ifenslave-2.6. On ne configure pas du tout les interfaces ethX liées au bonding
        RX packets:540669 errors:0 dropped:0 overruns:0 frame:0
        TX packets:278688 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 lg file transmission:0          RX bytes:794712182 (757.8 MiB)  TX bytes:20612336 (19.6 MiB)


eth0      Lien encap:Ethernet  HWaddr 00:14:85:29:BE:22          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
* /etc/network/interfaces
        RX packets:258810 errors:0 dropped:0 overruns:0 frame:0
<pre>
        TX packets:278630 errors:0 dropped:0 overruns:0 carrier:0
auto bond0
        collisions:0 lg file transmission:1000          RX bytes:376450410 (359.0 MiB)  TX bytes:20604912 (19.6 MiB)
iface bond0 inet static
        Interruption:16
        address 172.26.15.49
eth1     Lien encap:Ethernet  HWaddr 00:14:85:29:BE:22          UP BROADCAST RUNNING NOARP SLAVE MULTICAST  MTU:1500  Metric:1
        netmask 255.255.255.240
        RX packets:281859 errors:0 dropped:0 overruns:0 frame:0
        gateway 172.26.15.62
        TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
        bond-slaves eth0 eth1
        collisions:0 lg file transmission:1000          RX bytes:418261772 (398.8 MiB)  TX bytes:7424 (7.2 KiB)
        bond-mode active-backup
        Interruption:17
        bond-primary eth0
        bond-arp_ip_target 172.26.15.62
        bond-arp_interval 1000
        bond-downdelay 200
        bond-updelay 200
</pre>


* /etc/modprobe.d/aliases-bond.conf
<pre>
alias bond0 bonding
alias bond1 bonding
# A ne mettre que si ce n est pas renseigné dans /etc/network/interfaces, à mettre de préférence dans /etc/network/interfaces
#options bond0 primary=eth0 mode=1 arp_interval=1000 arp_ip_target=172.26.15.62
#options bond1 primary=eth2 mode=1 arp_interval=1000 arp_ip_target=172.26.15.30
</pre>
</pre>


[[Catégorie:Linux]]
[[Catégorie:Linux]]

Version actuelle datée du 19 août 2013 à 09:02


Le bonding ou teaming permet de faire du failover ou de l'agrégation d'interfaces.

Généralités[modifier]

Différents mode de bonding[modifier]

Mode 0, l'équilibrage de charge (lb entrant)
Grâce l'équilibrage de charge, les paquets transitent sur une carte réseau active, puis sur une autre, séquentiellement. Le débit de la bande passante est augmenté. Si une des cartes 
réseaux vient à tomber en rade, l'équilibre de charge saute cette carte et continue à tourner de manière cyclique.

Mode 1, la sauvegarde active (lb aucun)
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 (lb entrant)
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, le broadcast (lb aucun)
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 (lb aucun)
La norme 802.3ad permet l'aggrégation des liens, élargissant dynamiquement la bande passante. Les groupes sont créés dynamiquement sur la base d'un paramètrage commun.

Mode 5, la balance TLB (lb entrant)
"TLB" pour Traffic Load Balancing
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'interface courante.Si l'interface 
de réception devient inactive, une autre interface prend l'adresse MAC de l'interface inactive.

Mode 6, la balance ALB (lb entrant et sortant)
"ALB" pour Adaptive load balancing.
C'est un mode étendu de la balance tlb, qui inclut du load balancing en réception. L'équilibrage de charge de réception est réalisé au niveau des réponses ARP. Le module intercepte 
les réponses ARP et change l'adresse MAC par celle d'une des interfaces.

Options[modifier]

Primary 	           Uniquement pour active-backup. Favorise une interface esclave. Celle-ci redeviendra active dès qu'elle le peut, même si une autre interface est active.
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 "carrier".
arp_interval (en ms)       Système de surveillance par ARP, évitant l'utilisation de miitool et ethtool. Si aucune trame est arrivée pendant l'arp_interval, on envoie par cette 
interface jusqu'à 16 requêtes ARP à 16 adresses IP. Si aucune réponse n'est obtenue, l'interface est désactivée.
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, la surveillance ARP est inactive

Configuration[modifier]

Il est nécessaire de définir dans les options à la fois miimon ou arp_interval et arp_ip_target, sinon cela va générer un warning au boot et ne permet pas d'avoir un bonding totalement efficace. Il ne faut pas avoir les options à la fois dans /etc/modprobe.d/alias-bond.conf et dans /etc/sysconfig/network-scripts/ifcfg-bond0|bond1 (ou autre fichier de configuration des interfaces réseaux). De préférence mettre les options dans la configuration de l'interface

Le primary= permet d avoir le mode failback (quand la primary interface revient up, le serveur rebascule dessus)

Bonding sous Centos[modifier]

On doit configurer les interfaces ethX

[root@veso3folx01 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.80.30.1
NETMASK=255.255.255.128
NETWORK=10.80.30.0
BROADCAST=10.80.30.127
BONDING_OPTS="primary=eth0 mode=1 miimon=100"

[root@veso3folx01 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
MTU=1500

[root@veso3folx01 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
MTU=1500

Dans /etc/modprobe.d/alias-bond.conf

alias netdev-bond0 bonding
alias netdev-bond1 bonding

Bonding sous Debian[modifier]

Il faut installer le package ifenslave-2.6. On ne configure pas du tout les interfaces ethX liées au bonding

  • /etc/network/interfaces
auto bond0
iface bond0 inet static
        address 172.26.15.49
        netmask 255.255.255.240
        gateway 172.26.15.62
        bond-slaves eth0 eth1
        bond-mode active-backup
        bond-primary eth0
        bond-arp_ip_target 172.26.15.62
        bond-arp_interval 1000
        bond-downdelay 200
        bond-updelay 200
  • /etc/modprobe.d/aliases-bond.conf
alias bond0 bonding
alias bond1 bonding
# A ne mettre que si ce n est pas renseigné dans /etc/network/interfaces, à mettre de préférence dans /etc/network/interfaces
#options bond0 primary=eth0 mode=1 arp_interval=1000 arp_ip_target=172.26.15.62
#options bond1 primary=eth2 mode=1 arp_interval=1000 arp_ip_target=172.26.15.30