HSRP est un protocole Cisco permettant d’assurer la haute disponibilité de la passerelle d’un
réseau. Ce protocole peut être mis en place sur un routeur ou un switch de niveau 3. Le but est
qu’une éventuelle panne du routeur ne perturbe pas le routage.
1) Principe de fonctionnement
Le principe d’HSRP est relativement simple. Nous avons un groupe de routeur (en général 2),
dont l’un d’eux est le routeur Actif. Le routeur de secours sera en Standby. Les autres en
mode Listen.
Le routeur actif assure le rôle de passerelle par défaut pour le sous réseau. S’il vient à tomber
en panne, le routeur standby prendra le relai. Puis un des routeurs Listen deviendra le nouveau
Standby.
S1 et S2 sont des switches de niveau 3. Si S1 est le switch actif, les PC utiliseront S1 comme
Gateway. Si S1 vient à tomber en panne, S2 prendra le relai, et les PC l’utiliseront comme
Gateway.
Le groupe de routeur est appelé Standby Group. Le routeur actif est celui qui a la priorité la
plus haute. Le routeur standby est celui ayant la deuxième meilleure priorité. Les autres
routeurs sont en mode Listen.
La priorité va de 0 à 255. En cas d’égalité sur la priorité, c’est le routeur avec la plus haute IP
qui devient actif. Tous ces routeurs vont former un groupe. Au sein de ce groupe, le routeur
actif envoie des paquets Hello toutes les 3 secondes. Après 10 secondes sans Hello du routeur
actif, il est considéré comme Dead.
C’est alors le routeur standby qui prend le relai, et deviendra Actif. Le Hold Timer est de 10
secondes, soit 3 * le Hello Timer + 1 seconde. La seconde bonus permet de s’assurer que 3
Hello Timers complets seront attendus avant de mener une action.
Une IP virtuelle sera associée au groupe, et c’est le routeur actif qui va répondre sur cette IP.
Cette IP virtuelle est celle qui sera utilisée par les hôtes comme IP de Default Gateway. Pour
que les paquets soient envoyés au bon routeur, une adresse Mac virtuelle sera aussi créée. Le
routeur actif va répondre aux requêtes ARP sur l’IP virtuelle, par cette adresse Mac virtuelle.
En version 1, l’adresse de multicast 224.0.0.2 est utilisée par les routeurs pour discuter. En
version 2, l’IP 224.0.0.102 est utilisée.
L’adresse Mac utilisée sera de ce type : 00:00:0c:07:ac:XX avec XX qui correspond à l’ID
du groupe de routeur, en hexadécimal.
Etant donné que l’adresse IP et l’adresse Mac sont virtuelles, et qu’elle ne changement pas
lorsqu’un routeur Standby prend le relai, le client n’a pas besoin de changer sa configuration.
Hormis une petite interruption de service, les clients ne remarqueront pas la panne du routeur
Actif. Quand un routeur Standby prend le relai sur le routeur Actif, il envoie une requête
Gratuitous afin de faire savoir aux switches que c’est lui possède l’adresse Mac virtuelle.
Comme il ne peut y avoir qu’un routeur actif et qu’un standby, si il y a plus de 2 routeurs, les
excédents seront en mode Listen (jusqu’à la perte de l’actif ou du standby).
Le champ Hellotime indique l’intervalle de temps entre les Hello. Le champ n’est
utile que dans les messages Hello.
Le champ Holdtime indique le temps max après lequel le routeur est considéré
comme Dead. Il est d’au moins trois fois le Hellotime.
Le champ Priority indique la priorité du routeur. En cas d’égalité, c’est le routeur
avec la plus haute IP qui gagne.
Le champ Group indique le numéro du Standby Group.
Le champ Authentication Data sert à l’authentification.
Le champ Virtual IP Address indique l’IP virtuelle du groupe
2) Configuration
Après cet aperçu concis mais complet, voyons ensemble la configuration d’HSRP.
Switch 1 et Switch 2 vont être nos deux switchs L3 qui feront partie du Standby Group. Étant
donné que nous avons des liens redondants, Spanning Tree va en bloquer certains. Pour que le
lien vers la Gateway soit optimal, nous devons accorder le processus Spanning Tree avec
HSRP.
S1 sera le switch Actif en HSRP, et il sera donc aussi le Root Bridge en Spanning Tree.
Premièrement, nous devons créer des interfaces virtuelles, et y assigner une IP. Il s’agit là
d’une configuration classique pour du routage. Nous commencerons par le VLAN 10 :
Switch-1(config)#interface vlan 10
Switch-1(config-if)#ip address 10.0.10.2 255.255.255.0
Switch-2(config)#interface vlan 10
Switch-2(config-if)#ip address 10.0.10.3 255.255.255.0
Pour la configuration d’HSRP, nous devons choisir une IP virtuelle, et une priorité :
Switch-1(config-if)#standby 1 ip 10.0.10.1
Switch-1(config-if)#standby 1 priority 150
Cette option permet au switch actif de reprendre son rôle après une panne. Le routeur Standby
qui remplaçait le routeur actif lors d’une panne de ce dernier, retournera en mode standby si le
routeur actif revient en ligne.
Switch-1(config-if)#standby 1 preempt
Switch-2(config-if)#standby 1 ip 10.0.10.1
Switch-2(config-if)#standby 1 preempt
Faisons maintenant quelques tests ! Nous allons commencer par faire des Ping sur l’IP de la
Gateway, et procéder à une coupure.
Nous allons maintenant lancer une série de ping, puis nous allons couper les interfaces de S1 :
Switch-1(config)#interface range fastEthernet 0/1 - 2
Switch-1(config-if-range)#shutdown
En effet, une connexion SSH sur l’IP virtuelle, nous amène sur S2.
Avant de réactiver les interfaces, j’ai lancé un Ping continu vers la Gateway.
Au moment où S1 est revenu en ligne, une autre (courte) interruption de service a eu lieu :
Grâce à l’option Preempt, S1 est redevenu actif, et S2 standby. Sauf que cela cause une courte
interruption de service. Dans notre topologie, nous avons deux VLAN. L’idée est donc
d’effectuer le routage entre ces deux VLAN. De plus, pour répartir la charge, S1 sera la
Gateway pour le VLAN 10, et S2 la Gateway pour le vlan 20. Commençons par adapter la
configuration STP, pour que S1 et S2 soient Root Bridge de leur propre VLAN :
Switch-1(config)#ip routing
Switch-2(config)#ip routing
Voyons le résultat :
De même pour le PC 2 :
(La commande est entrée au moment de la coupure sur la capture d’écran suivante)
1) Principe de fonctionnement
VRRP étant très semblable à HSRP, la partie théorique de cet article sera relativement courte. Pour bien
comprendre ce protocole,
Tout d’abord, rappelons le principe des protocoles VRRP et HSRP. Ces deux protocoles ont pour but de
redonder la Gateway d’un sous réseau. Deux routeurs (ou plus) fonctionneront ensemble.L’un sera le
routeur principal, qui sera utilisé pour router le trafic. Le deuxième (routeur Standby) sera là pour prendre
le relai en cas de panne du premier.
Concernant la priorité, elle est de 100 par défaut. Quand un routeur devient Master, il annonce une priorité
de 255. La priorité 0 est réservée au Master pour annoncer qu’il ne participe plus au groupe VRRP. Cela
permet aux routeurs Backup de prendre le relai plus rapidement. En cas d’égalité sur la priorité, c’est le
routeur avec la plus haute IP qui devient Master.
Il est possible de configurer les routeurs Backup pour qu’ils apprennent le Timer du Master. Par contre,
cela ne fonctionne que si le Timer est supérieur ou égal 1s.
Autre changement, en VRRP l’IP virtuelle peut être configurée directement sur l’interface du routeur
Master. En HSRP il faut 3 IP : une pour R1, une pour R2, et une pour l’IP virtuelle. EN VRRP il n’en faut
que 2 : une pour le master (qui sera l’IP virtuelle) et une pour R2. Néanmoins, nous pouvons aussi utiliser 3
IP, à la manière d’HSRP.
2) Configuration
Le protocole VRRP n’étant pas disponible sur mes switchs de niveau 3, la démonstration sera faite sur
GNS3. Le but sera surtout de montrer les commandes, qui ne changent que très peu par rapport à HSRP.
Pour une démonstration plus complète et sur une topologie plus adaptée à une utilisation réelle, je vous
invite à lire l’article sur HSRP.
De même, pour plus d’explication sur les configurations, je vous renvoie à ce même article. Vous
remarquerez que la configuration est sensiblement la même.
Voici le résultat :
Vous pouvez constater que le Down Timer est de 3.414 Pour rappel, le Down Timer correspond à 3 fois le
Hello, plus le Skeew Timer. Soit dans le cas présent : 3 + Skeew Timer Le Skeew Timer se calcul comme
ceci : Avec une priorité de 150, R1 a un Skeew Timer de 0.414 Le Down Timer est donc bien de 3.414
Appliquons à présent la configuration adéquate pour le VLAN 20 :
Voici le résultat :
Faisons à présent un test de bascule. Nous allons lancer un ping de PC 1 vers PC 2, puis nous couperons
l’interface de R1. Voici ce que cela donne :
Un routeur Backup peut être configuré pour apprendre le Timer du Master, mais cela ne fonctionne qu’avec
un Timer supérieur ou égal à 1 :
3) Conclusion
Nous voici arrivés au terme de cette présentation du protocole VRRP. Comme vous avez pu le constater,
son fonctionnement est très semblable à celui d’HSRP. Il y a quelques rares différences, mais le
fonctionnement reste le même.
GLBP
Le but est toujours le même, créer de la redondance sur la Gateway, le tout avec au moins deux routeurs.
Sauf que GLBP amène une nouvelle fonctionnalité : le Load Ballancing. Il sera possible de répartir la
charge entre nos différents routeurs. Voyons ensemble comment fonctionne le protocole GLBP.
1) Principe de fonctionnement
Avant toute chose, il est bon de noter que ce protocole est propriétaire Cisco.
Comme nous l’avons dit, l’avantage de GLBP est qu’il est capable de faire du Load Ballancing.
La charge sera donc répartie entre R1 et R2. Mais comment la charge est-elle répartie ?
Il ne s’agit pas de vrai Load Ballancing, avec un paquet qui va à R1, et le suivant à R2, etc…
Ce qui se passe, c’est que PC 1 va utiliser R1 comme Gateway, et PC 2 va utiliser R2. En cas de panne, ils
utiliseront le routeur restant.
En GLBP nous avons une IP virtuelle, et plusieurs adresses MAC virtuelles (une par routeur).
Au final, PC1 et PC2 vont utiliser la même IP de Gateway, mais ils n’auront pas la même adresse MAC
associée. Ce qui fait qu’ils n’enverront pas les paquets vers le même routeur. Les clients enverront donc
toujours le trafic au même routeur. Il ne s’agit pas de vrai Load Ballancing, mais au moins, nos deux
routeurs sont utilisés.
Comme nous l’avons dit, en GLBP il y a une IP virtuelle pour le groupe, et une adresse MAC par routeur.
L’AVG est le routeur maitre. C’est lui qui se charge de répondre aux requêtes ARP.
L’AVG est le routeur avec la plus haute priorité, ou en cas d’égalité, celui avec la plus haute IP.
La priorité de base est 100.
L’AVG doit donc répondre aux requêtes ARP, de manière à répartir la charge entre les AVF.
Le Standby AVG est le deuxième routeur avec la plus haute priorité. Il prendra la place de l’AVG
en cas de panne de celui-ci.
Les AVF sont les routeurs qui routent le trafic. Un AVG est aussi AVF.
La charge est donc répartie entre les AVF.
Il peut y avoir maximum 4 AVF par group.
En cas de panne d’un AVF, les AVF restants vont entrer en compétition pour le remplacer. L’AVF qui
gagne aura pour rôle de répondre aux messages de l’adresse MAC virtuelle de l’AVF en panne, en plus des
messages sur sa propre adresse MAC. L’AVF gagnant est celui avec le plus haute poids.
Round Robin
Weighted
Host-Dependent
En Round Robin, l’AVG répond aux requêtes ARP en utilisant à tour de rôle les adresses MAC des AVF.
Exemple pour trois AVF :
Requête ARP 1 : réponse avec l’adresse MAC de l’AVF 1
Requête ARP 2 : réponse avec l’adresse MAC de l’AVF 2
Requête ARP 3 : réponse avec l’adresse MAC de l’AVF 3
Requête ARP 4 : réponse avec l’adresse MAC de l’AVF 1
Requête ARP 5 : réponse avec l’adresse MAC de l’AVF 2
Etc…
En Weighted, un poids est attribué à chaque AVF. Le poids sera pris en compte dans la réparation de
charge : Exemple pour 2 AVF, l’AVF 1 avec un poids de 200, et l’AVF 2 avec un poids de 100 :
Enfin, en Host-Dependent, la même adresse MAC est toujours attribuée au même client.
Si un client envoie une requête ARP, puis qu’il vide son cache ARP et renvoie une requête, il recevra
ànouveau la même adresse MAC de Gateway.
Hello
Holdtime
Redirect time
Secondary holdtime
Le Hello, indique tous les combien de temps un Hello est envoyé. Par défaut il est de 3 secondes.
Le Holdtime indique le temps max entre deux Hello, avant que le routeur soit considéré comme Dead.
Le Redirect Time indique combien de temps l’AVG continue de répondre aux requêtes ARP avec
l’adresse MAC d’un AVF Dead. Par défaut il est de 600s.
Le Secondary Holdtime indique combien de temps un AVF va supporter l’adresse MAC d’un AVF Dead.
Par défaut il est de 14400s.
Disabled : L’IP virtuelle n’est pas encore configurée, mais une configuration GLBP existe
déjà
Initial : L’IP virtuelle est configurée, mais la configuration n’est pas complète
Listen : Le routeur reçoit des paquets Hello, et il est prêt à passer en mode Speak si l’AVG ou
le Standby AVG tombe
Speak : Le routeur tente de devenir AVG ou Standby AVG
Standby : Le routeur est un Standby AVG. Il deviendra AVG en cas de panne de ce dernier
Active : Le routeur est l’AVG du groupe
En GLBP, il existe différents états avant de devenir AVF :
2) Configuration
Voyons à présent la configuration du protocole GLBP.
Voici le résultat :
R2 est l’AVF 2, ce qui explique pourquoi R1 est en mode Listen pour le Forwarder 2. Il prendra le relai en
cas de panne de R2.
Avant de réaliser un tester de coupure, il nous faut configurer les routeurs pour le VLAN 20 :
Nous allons donc lancer un Ping de PC1 vers PC3, puis nous couperons l’interface Fa0/0 de R2, comme
ceci :
3) Conclusion
Nous voici arrivés au terme de ces trois articles sur HSRP, VRRP et GLBP. Nous avons pu voir que HSRP
et VRRP sont très proches. GLBP quant à lui apporte une réparation de charge. Même si la charge n’est
pas parfaitement répartie, le concept n’en est pas moins intéressent.