Ethernet Bonding ou comment rendre votre serveur plus disponible

Voila comment mettre en place un bonding d'interfaces sous linux avce un switch supportant les Port trunk

Voici donc une procédure pour mettant en place un système de bonding sur plusieurs cartes Ethernet. Le but de la manœuvre est ici de répartir la charge d'un réseau sur plusieurs interfaces et ainsi agrandir la bande passante disponible.

La méthode est relativement triviale à mettre en place mais nécessite d'avoir en ça possession un switch supportant le IEEE 8O2.3ad ainsi que le port trunk

Bref rappel : 2 cartes Ethernet (eth0, eth1). Un switch supportant le trunk et 802.3ad.

nous allons configurer les interfaces réseau.

Pour cela éditons le fichier /etc/modprob.d/aliases

# Append to the bottom of this file:
alias bond0 bonding
alias eth0 e100
alias eth1 e100
alias eth2 e100
options bonding mode=4 miimon=100

puis le fichier /etc/modprob.d/arch/i386 ainsi:

# Append to the bottom of this file:
alias bond0 bonding
options bonding mode=4 miimon=100 downdelay=200 updelay=200

et enfin /etc/network/interfaces en prenant bien soin de supprimer toute configuration concernant les interfaces réseaux qui seront mises en œuvre lors du bonding :

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto eth0
#iface eth0 inet static
#   address 192.168.0.120
#   netmask 255.255.255.0
#   network 192.168.0.0
#   broadcast 192.168.0.255
#   gateway 192.168.0.1
auto bond0
iface bond0 inet static
   address 192.168.0.120
   netmask 255.255.255.0
   network 192.168.0.0
   broadcast 192.168.0.255
   gateway 192.168.0.1
   hwaddress ether 00:03:B3:48:50:2C
   post-up ifenslave bond0 eth0 eth1

Ne reste plus qu'à redémarrer votre système pour que les nouveaux paramètres soient pris en compte sur le poste.

Concernant la configuration du switch. J'ai utilisé des switch HP procurve 2512 qui gèrent le port trunk ici mis en place. La configuration de ce dernier est elle aussi relativement simple.

Nous utiliserons les ports 2 et 3 pour la mise en place du bonding.

connecter vous en telnet ou via l'interface web à votre switch et définissez la configuration suivante pour les ports 2 et 3.

  Switch HP Ilot1                                             5-Jan-1990  18:25:59
  ===========================- TELNET - MANAGER MODE -============================
                     Switch Configuration - Port/Trunk Settings
  
    Port    Type      Enabled      Mode      Flow Ctrl  Group  Type
    ----  --------- + -------  ------------  ---------  -----  -----
  1     10/100TX  | Yes      Auto          Disable
  2     10/100TX  | Yes      Auto          Enable     Trk1   Trunk
  3     10/100TX  | Yes      Auto          Enable     Trk1   Trunk
  4     10/100TX  | Yes      Auto          Disable
  5     10/100TX  | Yes      Auto          Disable
  6     10/100TX  | Yes      Auto          Disable
  7     10/100TX  | Yes      Auto          Disable
  8     10/100TX  | Yes      Auto          Disable
  9     10/100TX  | Yes      Auto          Disable
  10    10/100TX  | Yes      Auto          Disable
  11    10/100TX  | Yes      Auto          Disable
  12    10/100TX  | Yes      Auto          Disable
  
  Actions->   Cancel     Edit     Save     Help

Les ports 2 et 3 font ici partie du même groupe Trunk (Trk1)

Remarques : Lors des essais j'ai utilisé des cartes réseaux avec des débits différents; ainsi une carte en FastEthernet (10/100Mbts) et une carte Gigabits. Il semblerait également possible de réaliser ce genre de manipulation avec tout type d'interfaces réseau (wifi, TUN/TAP, ...)

Il apparaît également que selon le mode sélectionner il est également possible de ne pas faire appel à un switch prenant en charge le port Trunk. En effet le mode 6 est décrit comme ceci :
mode=6

Adaptive load balancing: includes balance-transmit load balancing plus receive load balancing for IPV4 traffic, and does not require any special switch support. The receive load balancing is achieved by ARP negotiation. The bonding driver intercepts the ARP Replies sent by the local system on their way out and overwrites the source hardware address with the unique hardware address of one of the slaves in the bond such that different peers use different hardware addresses for the server.

Liens connexes

Commentaires

1. Le lundi, 8 mars 2010, 04:31 par arien44

une tres belle facons de voir les choses oui meme si je suis ps convaincu que ca peut parcher :)

2. Le jeudi, 11 mars 2010, 11:55 par flo|va-nu-pied

Fort heureusement l'aggregation de lien fonctionne et bien en plus :). C'est, dans les grandes lignes, le même principe qui est utilisé par les opérateur pour construire le backbone par exemple. C'est également largement utilisé dans les réseaux locaux soit pour accroitre la bande passante, soit pour assurer un système de tolérance de panne.
Le mieux pour s'en convaincre est de tester:). Deux postes Linux avec deux cartes réseaux chacun et en avant les tests.
Tu peux également mettre ça en œuvre avec Vitualbox ou n'importe quel outil de virtualisation.
Cordialement

3. Le jeudi, 18 juillet 2019, 12:49 par alin vieru adp

If so, there's no need to lose your cool"!

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : http://blog.tools-fm.com/index.php?trackback/30

Fil des commentaires de ce billet