Vous êtes sur la page 1sur 16

HSRP

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.

Nous retrouverons un réseau de ce type :


S1 et S2 sont des switchs 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 attendu s 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 switchs que c’est lui possède l’adresse Mac virtuelle.
Un paquet HSRP se compose de la sorte :

Le champ version indique la version d’HSRP.

Le champ Op Code indique le type de message :

 0 – Hello : envoyé par les routeurs Actif et Standby

 1 – Coup : envoyé par un routeur qui veut devenir actif

 2 – Resign : envoyé par un routeur qui ne veut plus être le routeur actif

Le champ State indique l’état du routeur :

 0 – Initial : HSRP ne fonctionne pas

 1 – Learn : IP virtuelle non déterminée et aucun Hello reçu du Active router

 2 – Listen : IP virtuelle déterminée. Le routeur n’est ni actif ni standby. Il écoute les Hello.

 4 – Speak : Envoie périodique de Hello. Participe à l’élection du routeur actif

 8 – Standby : Le routeur est prêt à devenir actif. Il ne peut y avoir qu’un routeur standby par
groupe. Des Hello sont envoyés

 16 – Active : Le routeur assure le rôle de Gateway. Un seul routeur actif par groupe. Des Hello
sont envoyés

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 l a 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.

Nous nous baserons sur la topologie suivante :


La configuration de base à mettre en place est la suivante :

 Création des VLAN

 Port Access pour les PC

 Trunk entre les switchs

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 S panning Tree avec
HSRP.
S1 sera le switch Actif en HSRP, et il sera donc aussi le Root Bridge en Spanning Tree.

S2 sera le Switch secondaire en HSRP, il sera donc le Backup Root.

Appliquons déjà la configuration Spanning Tree :

Switch-1(config)#spanning-tree vlan 10 root primary

Switch-1(config)#spanning-tree vlan 20 root primary

Switch-2(config)#spanning-tree vlan 10 root secondary

Switch-2(config)#spanning-tree vlan 20 root secondary

A noter qu’il sera préférable d’utiliser Rapid Spanning Tree, pour des raisons évidentes de vitesse de
convergence.

Vérifions le résultat :

Passons à présent à la configuration d’HSRP.

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

Le numéro 1 correspond au numéro du groupe HSRP (Standby Group).

La priorité de base est de 100. Avec une priorité de 150, S1 deviendra le routeur actif.

Nous devons aussi activer l’option preempt.

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

De même pour Switch 2 :

Switch-2(config-if)#standby 1 ip 10.0.10.1

Switch-2(config-if)#standby 1 preempt

La priorité de S2 restera à 100.

Voici le résultat :
Faisons maintenant quelques tests !

Nous allons commencer par faire des Ping sur l’IP de la Gateway, et procéder à une coupure.

Déjà, la passerelle est joignable.

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

Vérifions que c’est bien S2 qui est la passerelle :


En effet, une connexion SSH sur l’IP virtuelle, nous amène sur S2.

Switch-1(config)#interface range fastEthernet 0/1 - 2

Switch-1(config-if-range)#no shutdown

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)#spanning-tree vlan 10 root primary

Switch-1(config)#spanning-tree vlan 20 root secondary

Switch-2(config)#spanning-tree vlan 10 root secondary

Switch-2(config)#spanning-tree vlan 20 root primary


Configurons maintenant HSRP.

Nous allons créer un deuxième Standby Group, dans lequel S2 sera le routeur actif.

Switch-1(config)#interface vlan 20

Switch-1(config-if)#ip address 10.0.20.2 255.255.255.0

Switch-1(config-if)#standby 2 ip 10.0.20.1

Switch-1(config-if)#standby 2 preempt

Switch-2(config)#interface vlan 20

Switch-2(config-if)#ip address 10.0.20.3 255.255.255.0

Switch-2(config-if)#standby 2 ip 10.0.20.1

Switch-2(config-if)#standby 2 priority 150

Switch-2(config-if)#standby 2 preempt

La priorité de 150 fera de S2 le routeur actif.

Vérifions le résultat :
Tout semble en ordre.

N’oublions pas d’activer le routage :

Switch-1(config)#ip routing

Switch-2(config)#ip routing

Voyons le résultat :
De même pour le PC 2 :

Faisons le test en coupant S1 :

(la commande est entrée au moment de la coupure sur la capture d’écran suivante)

Switch-1(config)#interface range fastEthernet 0/1 - 2

Switch-1(config-if-range)#shutdown
Parfait, la bascule se fait comme il faut !

Afin de rendre la bascule plus rapide, nous pouvons modifier les timers HSRP :

Switch-1(config-if)#standby 1 timers msec 150 msec 600

150 est le Hello timer, et 600 le Hold Timer

La manipulation est à faire sur S1 et S2 (pour les VLAN 10 et 20 en faisant attention au numéro de
Standby Group).

Voici le résultat avec un Timeout de 100ms pour les ping :

La bascule est bien plus rapide.

Il est aussi possible de mettre en place de l’authentification :

Switch-1(config-if)#standby 1 authentication md5 key-string NetworkLab


La manipulation est à faire sur S1 et S2 (pour les VLAN 10 et 20 en faisant attention au numéro de
Standby Group).

3) Conclusion

Nous avons fait un tour relativement complet de ce protocole.

Je vous invite à présente à jeter un œil sur l’article traitant de VRRP.

VRRP est un protocole standard, mais très proche d’HSRP.

Vous aimerez peut-être aussi