Source : http://idum.fr/spip.php?article230 GLBP : Gateway Load Balancing Protocol
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
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
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
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 :
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
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 "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
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
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.
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 :
Commentaires
Enregistrer un commentaire