4

Agrégation de liens Ethernet sous Ubuntu serveur 14.04 (Bonding LACP)

A fin d’optimiser les flux, la répartition de charges et la tolérance de panne sur mon serveur NFS, je vais configurer une agrégation de liens sur les ports Ethernet.

Une agrégation de liens se fait sur les deux extrémités : serveur et commutateur (switch). Un premier pré-requis est de vérifier les modes disponibles sur le switch, qui dans mon cas est le mode LACP.

Sur mon serveur, j’ai à ma disposition 4 ports Ethernet dont je vais en agréger que 3. Je me réserve toujours un port pour l’administration du serveur.

Voici le shéma de principe :
agregationlien

Préparation côté commutateur

Voici la configuration de principe sur mon switch :
switch-portbonding

Les ports 1,2 et 3 sont agrégés dans le mode LACP et je garde le port 4 pour la connexion sur le port eth0 du serveur.

Préparation du serveur pour l’agrégation de liens

Toutes les commandes sont exécutées en tant que root :

sudo -s
apt-get install ifenslave
  • Configuration du module pour l’agrégation :
nano /etc/modprobe.d/bonding.conf

Ajouter :

alias bond0 bonding
options bonding mode=4 miimon=100 lacp_rate=1
  • Explication de la configuration :
    mode=4 : LACP (il existe 7 modes),
    miimon=100 : Définit la fréquence des MII link monitoring en millisecondes. Il est conseillé de positionner cette valeur à 100.
    lacp_rate=1 : c’est l’intervalle entre chaque paquet LACPDU en seconde pour le mode 802.3ad, par défaut c’est 0 ce qui coorespond à 30 secondes et 1 pour une requête toutes les seconds.

Configuration de l’agrégation dans le mode LACP

  • Faire une copie du fichier origine au cas de problème :
  • cp /etc/network/interfaces /etc/network/interfaces.old
    
  • Édition du fichier interfaces :
  • nano /etc/network/interfaces
    

    Voici le mien (à adapter pour les adresses) :

    auto eth0
    iface eth0 inet static
            address 10.110.8.215
            netmask 255.255.248.0
            network 10.110.8.0
            broadcast 10.110.15.255
            gateway 10.110.8.1
            dns-nameservers 10.110.8.20
            dns-search domaine.tld
    
    auto eth1
    iface eth1 inet manual
    bond-master bond0
    
    auto eth2
    iface eth2 inet manual
    bond-master bond0
    
    auto eth3
    iface eth3 inet manual
    bond-master bond0
    
    auto bond0
    iface bond0 inet static
    address 10.110.8.212
    gateway 10.110.8.1
    netmask 255.255.248.0
    up /sbin/ifenslave bond0 eth1 eth2 eth3
    down /sbin/ifenslave -d bond0 eth1 eth2 eth3
    
  • Redémarrer le serveur :
  • reboot
    

    Vérification de l’agrégation de liens

    Il faut vérifier le bon fonctionnement sur le commutateur et sur le serveur.

  • Sur le Switch :
  • statusLINK

    Les port 1,2 et 3 sont bien actifs. Le port n°4 n’est pas présent car il n’est pas agrégé.

  • Sur le serveur :
  • Il est possible de visualiser l’état de l’agrégation en affichant :

    cat /proc/net/bonding/bond0
    

    Exemple de résultat :

    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    
    Bonding Mode: IEEE 802.3ad Dynamic link aggregation
    Transmit Hash Policy: layer2 (0)
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    
    802.3ad info
    LACP rate: fast
    Min links: 0
    Aggregator selection policy (ad_select): stable
    Active Aggregator Info:
    	Aggregator ID: 1
    	Number of ports: 3
    	Actor Key: 17
    	Partner Key: 1
    	Partner Mac Address: b8:af:67:d5:34:29
    
    Slave Interface: eth1
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: d8:9d:67:25:77:f5
    Aggregator ID: 1
    Slave queue ID: 0
    
    Slave Interface: eth2
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: d8:9d:67:25:77:f6
    Aggregator ID: 1
    Slave queue ID: 0
    
    Slave Interface: eth3
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: d8:9d:67:25:77:f7
    Aggregator ID: 1
    Slave queue ID: 0
    

    Il est aussi possible de faire du monitoring avec l’outil bwm-ng :
    bwn-ng

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

4 commentaires

  1. Pourquoi installez-vous ifenslave sans vous en servir ? Le gros avantage de ifenslave est précisément de pouvoir faire toutes les opérations (ajout comme retrait) à chaud.

  2. Bonjour Julian,
    je ne comprend pas très bien car j’utilise justement ifenslave pour la gestion du bonding, indiqué dans mon fichier de configuration réseau :
    [code lang= »shell »]
    ….
    up /sbin/ifenslave bond0 eth1 eth2 eth3
    down /sbin/ifenslave -d bond0 eth1 eth2 eth3
    [/code]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.