Redondance de routeur avec GLBP
>>> GLBP : Gateway Load Balancing Protocol
Version PDF

Ce cours explique comment fonctionne le protocole GLBP, comment le mettre en place, explique le fonctionnement des différentes options possible et comment mettre en place une authentification. Gateway Load Balancing Protocol est un protocole propriétaire Cisco qui permet de faire de la redondance ainsi que de la répartition de charge sur plusieurs routeurs utilisant une seule adresse IP virtuelle, mais plusieurs adresses MAC virtuelles.


Sommaire :

I) Introduction
1) Principe de fonctionnement
2) Schéma réseau
II) Configuration de Base
III) Mise en place de GLBP
1) GBLP coté LAN : groupe 1
2) GLBP coté WAN : groupe 2
3) Test de fonctionnement
IV) Configurations du load balancing
1) Round Robin
2) Weighted
3) host-dependent
V) Configuration d’un track
1) Configurations
2) Observations
VI) Authentification GLBP
1) Authentification avec mot de passe
2) Authentification avec une Key-string
3) Authentification avec Key-chain


I) Introduction

Haut de page

Gateway Load Balancing Protocol est un protocole propriétaire Cisco qui permet de faire de la redondance ainsi que de la répartition de charge sur plusieurs routeurs utilisant une seule adresse IP virtuelle, mais plusieurs adresses MAC virtuelles.

Le protocole GLBP élit un Active Virtual Gateway (AVG) qui va répondre aux requêtes ARP pour l’adresse IP virtuelle. GLBP permet de donner un poids variable à chacun des routeurs participants pour la répartition de la charge entre ces routeurs. La charge est donc répartie par hôte dans le sous-réseau.

1) Principe de fonctionnement

GLBP est un protocole propriétaire Cisco qui reprend les concepts de base de HSRP et VRRP.

Contrairement à ces 2 protocoles, tous les routeurs du groupe GLBP participent activement au routage alors que dans VRRP ou HSRP, il n’y en a qu’un qui est en mode actif, tandis que les autres patientent. Plus concrètement, à l’intérieur du groupe GLBP, le routeur ayant la plus haute priorité ou la plus haute adresse IP du groupe prendra le statut de « AVG » (active virtual gateway). Ce routeur va intercepter toutes les requêtes ARP effectuées par les clients pour avoir l’adresse MAC de la passerelle par défaut, et grâce à l’algorithme d’équilibrage de charge préalablement configuré, il va renvoyer l’adresse MAC virtuelle d’un des routeurs du groupe GLBP. C’est d’ailleurs le Routeur AVG qui va assigner les adresses MAC virtuelles aux routeurs du groupe, Ainsi ils ont le statut « AVF » ( Active Virtual Forwarder). Un maximum de 4 adresses MAC virtuelle est défini par groupe, les autres routeurs ayant des rôles de backup en cas de défaillance des AVF.

Les timers de GLBP sont :

 Hello : 3s

 Dead : 10s est le temps à partir duquel un AVF sera Dead, son adresse mac sera associée à un autre AVF

 Redirect (Temps à partir duquel on arrêtera de rediriger l’adresse mac d’une AVF Dead vers une autre AVF) : 600s

 Timeout (Temps à partir duquel un routeur est considéré comme inactif, son adresse MAC ne sera plus utilisée) : 14,400s (4 heures), doit être supérieur au temps de conservation des entrées ARP des clients.

2) Schéma réseau

Voici le schéma de notre réseau, que nous allons mettre en place :

Vous pouvez observer que nous allons mettre en place deux groupes GLBP, un de chaque coté de nos routeurs. J’essayerai d’expliquer la configuration le plus simplement possible.

Dans mon schéma je partirai du principe que le routeur R1 est AVG côté LAN, et que R3 est AVG coté WAN.

II) Configuration de Base

Haut de page

1) Routeur R1

Nous allons configurer le routeur 1, on commence par faire une petite configuration générale du routeur :

Router#configure terminale
Router#no ip domain-lookup
Router#hostname R1

Ensuite nous configurons notre interface FastEthernet 0/0 :

R1(config)#interface fastethernet 0/0
R1(config-if)#description "Int LAN"
R1(config-if)#ip address 192.168.0.251 255.255.255.0
R1(config-if)#no shutdown

Ensuite nous configurons notre interface FastEthernet 0/1 :

R1(config)#interface fastethernet 0/1
R1(config-if)#description "Int WAN"
R1(config-if)#ip address 192.168.1.251 255.255.255.0
R1(config-if)#no shutdown

2) Routeur R2

Même chose pour R2, on lui configure une configuration générale :

Router#configure terminale
Router#no ip domain-lookup
Router#hostname R2

Ensuite nous configurons notre interface FastEthernet 0/0 :

R2(config)#interface fastethernet 0/0
R2(config-if)#description "Int LAN"
R2(config-if)#ip address 192.168.0.252 255.255.255.0
R2(config-if)#no shutdown

Ensuite nous configurons notre interface FastEthernet 0/1 :

R2(config)#interface fastethernet 0/1
R2(config-if)#description "Int WAN"
R2(config-if)#ip address 192.168.1.252 255.255.255.0
R2(config-if)#no shutdown

3) Routeur R3

Et on recommence une dernière fois sur notre routeur R3 :

Router#configure terminale
Router#no ip domain-lookup
Router#hostname R3

Ensuite nous configurons notre interface FastEthernet 0/0 :

R3(config)#interface fastethernet 0/0
R3(config-if)#description "Int LAN"
R3(config-if)#ip address 192.168.0.253 255.255.255.0
R3(config-if)#no shutdown

Ensuite nous configurons notre interface FastEthernet 0/1 :

R3(config)#interface fastethernet 0/1
R3(config-if)#description "Int WAN"
R3(config-if)#ip address 192.168.1.253 255.255.255.0
R3(config-if)#no shutdown

III) Mise en place de GLBP

Haut de page

1) GBLP coté LAN : groupe 1

Nous commençons par configurer GBLP du coté LAN :

a) Routeur R1

Comme indiqué au début de l’article, je désigne R1 comme routeur AVG pour le groupe GLBP 1 qui correspond au côté LAN de notre réseau.

Voici les commandes qui vont permettre de configurer le GBLP :

R1(config-if)#glbp 1 ip 192.168.0.254
R1(config-if)#glbp 1 priority 255
R1(config-if)#glbp 1 preempt
R1(config-if)#glbp 1 name glbp-lan

Quelques explications :
 glbp 1 : Correspond au groupe 1.

 glbp 1 ip : Permet d’attribuer une adresse IP à l’interface GLBP.

 glbp 1 priority : Permet d’attribuer une priorité au routeur, qui va servir à élire un routeur AVG. Nous voulons que R1 soit AVG donc nous mettons la plus haute valeur (255).

 glbp 1 preempt : Si un routeur entre dans le groupe GLBP avec une valeur de priorité plus forte que les autres, il doit quand même attendre la prochaine élection (qui aura lieu lorsque le routeur AVG actuel sera hors service). La commande "preempt" permet d’éviter ce problème. Pour affiner le réglage nous pouvons régler le délai avant que le routeur ne reprenne le contrôle du groupe (délai par défaut = 30s) via la commande "glbp 1 preemp delay XXX" où XXX est un nombre de seconde.

 glbp 1 name glbp-lan : Permet simplement de donner un nom au groupe.

b) Routeur R2

Pour la configuration de R2, on recommence :

R2(config-if)#glbp 1 ip 192.168.0.254
R2(config-if)#glbp 1 priority 120
R2(config-if)#glbp 1 preempt
R2(config-if)#glbp 1 name glbp-lan

 On n’oublie pas de changer la valeur de la priorité par une plus faible.

c) Routeur R3

Même chose :

R3(config-if)#glbp 1 ip 192.168.0.254
R3(config-if)#glbp 1 priority 110
R3(config-if)#glbp 1 preempt
R3(config-if)#glbp 1 name glbp-lan

2) GLBP coté WAN : groupe 2

Comme indiqué au début de l’article, je désigne R3 comme routeur AVG pour le groupe GLBP 2 qui correspond au coté WAN de notre réseau.

a) Routeur R1

Voici les commandes qui vont permettre de configurer le GBLP coté WAN :

R1(config-if)#glbp 2 ip 192.168.1.254
R1(config-if)#glbp 2 priority 110
R1(config-if)#glbp 2 preempt
R1(config-if)#glbp 2 name glbp-wan

b) Routeur R2

Pour la configuration de R2, on recommence :

R2(config-if)#glbp 2 ip 192.168.1.254
R2(config-if)#glbp 2 priority 120
R2(config-if)#glbp 2 preempt
R2(config-if)#glbp 2 name glbp-lan

c) Routeur R3

Même chose :

R3(config-if)#glbp 2 ip 192.168.1.254
R3(config-if)#glbp 2 priority 255
R3(config-if)#glbp 2 preempt
R3(config-if)#glbp 2 name glbp-lan

3) Test de fonctionnement

Nous regardons le fonctionnement du groupe 1 de GLBP via la commande "show glbp" :

Nous pouvons voir que :

 Nos 3 routeurs sont biens dans le groupe 1

 Les 3 adresses MAC virtuelles

 R1 est bien routeur AVG du groupe 1

 Que l’équilibrage fonctionne par défaut en mode "Round Robin"

Nous allons tester maintenant la redondance, pour cela nous allons faire un Ping infini de PC1 vers PC2. Nous regarderons à quel routeur notre PC1 est lié pour l’éteindre et combien de Ping on perd.

On affiche la table ARP de PC1 :

En tapant la commande "show glbp", nous pouvons voir que l’adresse MAC de la passerelle correspond au routeur R1 :

On sait que le routeur utilisé par PC1 est R1, je débranche donc R1 et j’observe le Ping :

Grâce aux observations que nous venons de faire, nous pouvons établir le tableau suivant :

Tableau correspondance MAC
@MAC Virtuelle @IP Hostname
0007.b400.0101 192.168.0.253 R1
0007.b400.0102 192.168.0.251 R2
0007.b400.0103 192.168.0.252 R3

IV) Configurations du load balancing

Haut de page

GLBP propose trois modes d’équilibrage de charge :

 Round Robin (le mode par défaut) : Pour chaque requête ARP, on renvoi l’adresse Mac virtuelle immédiatement disponible. Prenons l’exemple ou nous avons une seule machine. Si cette station fait une requête ARP, elle obtiendra l’adresse MAC du premier routeur. Si elle vide son cache ARP, est qu’elle refait une requête, elle obtiendra l’adresse MAC du second routeur, Ainsi de suite.

 Weighted : Le poids de chaque interface du groupe GLBP définit la proportion de trafic à envoyer sur chaque routeur.

 Host-dependent : Chaque client générant une requête ARP recevra toujours la même adresse Mac virtuelle.

1) Round Robin

a) Configuration

Pour activer Round Robin, il nous faut seulement taper une commande :

glbp 1 load-balancing roung-robin

b) Observations

J’affiche les informations de GLBP via la commande "show glbp" :

Nous pouvons observer que le mode est bien "Round Robin".

Je lance un Ping infini de PC1 vers PC2. Je regarde la table ARP, je la vide, puis je regarde de nouveau pour observer si l’adresse MAC contenue dans la table ARP change après chaque nouvelle requête ARP.

 La commande arp -a permet d’afficher la table ARP du PC.
 La commande arp -d permet de vider la table ARP du PC.

On peut conclure que le mode round-robin est bien opérationnel.

2) Weighted

a) Configuration

Pour activer weighted, il nous faut seulement taper une commande :

glbp 1 load-balancing weighted

Puis ensuite sur chaque interface du groupe (Fa 0/0 de R1, R2 et R3 par exemple) vous devez définir un poids via la commande :

glbp 1 weighting XXX

Si par exemple vous avez deux routeurs A et B. Le routeur A possède des interfaces à 100Mb/s et que le routeur B possède des interfaces à 1GB/s, vous devez mettre un poids plus important sur les interfaces du routeur B pour qu’il soit privilégié.

b) Observations

J’affiche les informations de GLBP via la commande "show glbp" :

Nous pouvons observer que le mode est bien "weighted".

Avec les équipements que je possède je ne peux pas tester le bon fonctionnement du mode weighted.

3) host-dependent

a) Configuration

Pour activer host-dependent, il nous faut seulement taper une commande :

glbp 1 load-balancing host-dependent

b) Observations

J’affiche les informations de GLBP via la commande "show glbp" :

Nous pouvons observer que le mode est bien "Host-dependent".

Nous allons valider le fonctionnement. Avec le mode host-dependent, une station doit toujours envoyer ses données au même routeur. Pour cela je propose qu’on fasse un Ping, qu’on regarde dans la table ARP l’adresse MAC du routeur auquel nous somme rattaché. Ensuite nous vidons la table ARP, nous refaisons un Ping et nous regardons de nouveau la table ARP.

Si nous regardons dans le tableau que nous avons établi précédemment :

Tableau correspondance MAC
@MAC Virtuelle @MAC Physique @IP Hostname
0007.b400.0101 001d.a233.4b5c 192.168.0.253 R3
0007.b400.0102 0013.7faa.ef10 192.168.0.251 R1
0007.b400.0103 000c.ce65.64a0 192.168.0.252 R2

On peut voir que notre station PC1 envoie ses données au routeur R3 et ne change pas.

V) Configuration d’un track

Haut de page

Comment expliquer le fonctionnement du Track ?

Reprenons notre schéma :

Imaginons que le lien entre R1 et Switch 2 tombe en panne. Le groupe GLBP 2, va retirer le routeur R1 car il devient indisponible. Mais Le groupe GLBP1, il regarde seulement les interfaces de son groupe. fa0/1 du routeur R1 ne faisant pas partie de son groupe, il ne prendra pas en compte si l’interface tombe en panne. Pour éviter ces problèmes nous allons configurer un "track", nous allons demander au routeur d’observer l’interface fa 0/1 au niveau routage et au niveau physique. Pour finir nous allons configurer le groupe GLBP 1 pour qu’il décrémente le poids des interfaces dans le cas où le track lui indique qu’il y a un problème.

 Pour information le poids par défaut de l’interface est de "100" .

1) Configurations

On commence par créer le track :

#configure terminal
(config)#track 1 interface fastethernet 0/1 line-protocole
(config-track)#exit
(config)#track 2 interface fastethernet 0/1 ip routing
(config-track)#exit

Quelques explications :

 track 1 : Le chiffre "1" correspond à l’identifiant du track.

 interface fastethernet 0/1 : indique que l’on veut surveiller cette interface.

 line-protocole : Surveille le coté physique de l’interface.

 ip routing : Surveille le coté routage de l’interface.

Ensuite nous allons configurer le groupe GLBP :

(config)#interface fastethernet 0/0
(config-if)#glbp 1 weighting 100 lower 50
(config-if)#glbp 1 weighting track 1 decrement 60
(config-if)#glbp 1 weighting track 2 decrement 60

Quelques explications :

 weighting 100 lower 50 : On indique que le poids de l’interface et de 100, et que le poids ne doit pas être en dessous de 50.

 weighting track 1 decrement 60 : On fait en sorte que si le track 1 tombe alors on décrémente le poids de l’interface de 60.

 weighting track 2 decrement 60 : Même chose pour le track 2

On remarque que si un track tombe, le poids sera donc inférieur à 50, donc le groupe GLBP 1 va retirer le routeur en question. Les données ne seront donc plus envoyées au routeur ayant un problème.

Pensez à faire cette configuration pour chaque groupe GLBP sur chaque routeur du ou des groupe(s).

2) Observations

Nous allons faire un test pour vérifier le fonctionnement.

Nous allons lancer un Ping infini de PC1 vers PC2, puis comme dans l’exemple ci-dessus, nous allons débrancher le câble entre le routeur auquel nous somme rattaché et le switch2 pour observer.

a) Test sans track

Je commence par regarder à quel routeur PC1 est rattaché :

Nous sommes donc rattachés au routeur R3. Je lance un Ping infini de PC1 vers PC2 et je débranche le lien entre R3 et switch2.

Nous pouvons observer que lorsque le lien est coupé le routeur ne répond plus, et le GLBP ne redirige pas les paquets vers un autre routeur sans problème.

b) Test avec track

Je recommence le même test mais cette fois, je configure les tracks.

On regarde à quel routeur je suis rattaché :

Nous somme rattaché au routeur R1. Je lance donc un Ping infini de PC1 vers PC2 et je débranche le lien entre R1 et switch2.

Nous observons que nous perdons seulement deux Pings avant de changer de routeur.

VI) Authentification GLBP

Haut de page

Il existe trois modes d’authentification avec GLBP :

 Authentification avec un mot de passe.

 Authentification en utilisant une Key-string

 Authentification en utilisant une Key-chain

1) Authentification avec mot de passe

La plus simple des authentifications, le mot de passe :

(config)#interface fastethernet 0/0
(config-if)#glbp 1 authentication text Mot_De_Passe

A faire sur chaque routeur du groupe GLBP.

2) Authentification avec une Key-string

Sur chaque routeur on active le chiffrement des mots de passe :

#configure terminal
(config)#service password-encryption

Ensuite, on configure l’authentification :

(config)#interface fastethernet 0/0
(config-if)#glbp 1 authentication md5 key-string 0 Mot_De_Passe

A faire sur chaque routeur du groupe GLBP.

3) Authentification avec Key-chain

Cette dernière méthode d’authentification est plus complexe.

Sur chaque routeur on active le chiffrement des mots de passe :

#configure terminal
(config)#service password-encryption

Ensuite on configure la chaine de sécurité :

(config)#key chain Nom_de_la_chaine
(config-keychain)#key 0
(config-keychain-key)#key-string 0 Mot_De_Passe

Quelques explications :

 key chain Nom_de_la_chaine : on donne un nom à la chaine, pour faciliter l’utilisation.

 key 0 : Le chiffre "0" correspond à l’identifiant de la clef, dans le cas où nous aurions plusieurs clefs.

 key-string 0 Mot_De_Passe : On définit la clef.

Pour finir on applique la chaine au groupe GLBP :

(config)#interface fastethernet 0/0
(config-if)#glbp 1 authentication md5 key-chain Nom_de_la_chaine

A faire sur chaque routeur du groupe GLBP.

 
 
 
 
 
Commentaires :

  •  Redondance de routeur avec GLBP    > 25 juillet 2018 15:57, par Tamo

    bonsoir,
    merci pour ce tutoriel il est très intéressent. néanmoins j’ai une préoccupation, en considérant que cette architecture soit un réseau à un nœud backbone( les trois routeurs du milieu en Area 0) peut on configurer le GLBG sur une architecture réseau un peu plus complexe avec par exemple deux nœuds backbone ? si oui, proposez moi une architecture correspondante et la façon de la configurer s’il vous plait. dans l’attente, merci une fois de plus pour ce tutoriel


  •  Redondance de routeur avec GLBP    > 5 juin 2017 18:03, par Cybermate

    Bonjour, je me pose une question : quel devient l’intérêt des priorités dès lors que l’équilibrage de charge se fait via round-robin ? On les garde simplement parce qu’on applique des règles de tracking par la suite et qu’il faut pouvoir décrémenter ?


  •  Redondance de routeur avec GLBP    > 9 octobre 2015 20:55, par lucci

    Bonsoir,

    Merci bcp pour votre tuto c’est bien expliqué, cependant j’ai une question :
    dans la partie 3) Test de fonctionnement vous dites "On sait que le routeur utilisé par PC1 est R3" je ne comprends pas pourquoi vu que dans le goupe 1 c’est le R1 qui a la plus grande priorité donc PC1 devra utilisé R1 et non R3.

    Merci d’avance.


    •  Redondance de routeur avec GLBP    > 10 octobre 2015 23:17, par N.Salmon

      Bonjour,

      Je viens de relire le paragraphe et effectivement le PC utilisé est bien R1 et non R3.

      J’ai modifié l’article.

      Merci :)


  •  Redondance de routeur avec GLBP    > 7 janvier 2014 23:32, par moise

    Merci pour ces explications !!!
    Bon courage

    Moise


  •  Redondance de routeur avec GLBP    > 22 octobre 2013 17:23, par JBMaudry

    Bonjour,
    merci pour ce tuto vraiment très bien expliqué, mais je voulais savoir quelle était la configuration du switch.
    Cordialement


    •  Redondance de routeur avec GLBP    > 28 octobre 2013 18:37, par N.Salmon

      Bonsoir,

      De mémoire la config du switch reste basique tout les ports dans le même Vlan pour que les 3 routeurs puissent communiquer entre eux.


  •  Redondance de routeur avec GLBP    > 4 septembre 2013 10:37, par Kevin

    Bonjour, article très bien fait. Je vous félicite.
    Seul soucis, les 3 screen de la commande "show glbp" ont apparemment disparus ...


    •  Redondance de routeur avec GLBP    > 4 septembre 2013 22:40, par N.Salmon

      Bonsoir,
      Je tiens à vous remercier de m’avoir informé du problème.
      Les 4 images sont de retour.

      Encore merci et à Bientôt sur Idum :)


  •  Redondance de routeur avec GLBP    > 14 juin 2012 11:50, par yassine

    bonjour , j’est une question a propos du track line-protocole et ip routing que vous avez untiliser ,est ce qu’il decouvre si il’ya une coupure de l’internet , car dans mon cas , chaque routeur et connecter a un fournisseur d’internet , et je vouderai savoir si elle sera détecte ??


    •  Redondance de routeur avec GLBP    > 14 juin 2012 21:41, par N.Salmon

      Bonjour,
      Ayant testé le tracking seulement sur la maquette, c’est assez difficile de répondre.
      Je pense que si le tracking est configuré sur l’interface DSL (dans le cas d’un modem intégré au routeur) la bascule entre les routeurs peut fonctionner. Mais tout dépendra du type de coupure :
       si la coupure est due à une coupure de câble, ou panne de modem qui va engendrer un état "down" de l’interface tracké ça va fonctionner.
       Par contre si la coupure est due au FAI, ou problème de conf et que l’interface tracké ne change pas d’état alors ça ne va pas marcher.
      La meilleur solution je pense, est d’utiliser un "track ip sla"
      permettant de faire un ping vers un site sur internet, et si le ping ne répond pas alors on bascule de routeur.
      #conf t
      (config)#ip sla 1
       >le paramètre à vérifier sera l’échange de paquets ICMP ECHO/REPLY ( des requêtes ping )
      (config)#icmp-echo 8.8.8.8
       >on teste par exemple le DNS de google
      (config)#frequency 10
       >un ping envoyé toute les 10 secondes
      (config)#timeout 5000
       >on attend la réponse 5 s maximum
      (config)#ip sla schedule 1 life forever start-time now
       >l’envoi de ping est démarré immédiatement sans limite dans le temps
      Voilà j’espère vous avoir aidé.
      @Bientot :)


  •  Redondance de routeur avec GLBP    > 5 juin 2012 13:15, par steven

    bonjour, ton tuto ma bien aidé il y a juste une petite erreur au niveau du schéma réseau l’adresse de R3 est 192.168.1.253
    au lieu de 192.168.0.253 , voila bonne journée.


    •  Redondance de routeur avec GLBP    > 5 juin 2012 22:22, par N.Salmon

      Merci, je viens de modifier le schéma.