3.5.1 – Le protocole HSRP

INTRODUCTION​

Le protocole HSRP (Hot Standby Router Protocol) est un protocole :

  • Propriétaire CISCO
  • Basé sur un modèle Actif / Passif.

Il existe en plusieurs versions : 

HSRP version 1

  • IPv4
  • Adresse MAC utilisée : 0000.0C07.ACxx
  • Utilise l’adresse multicast 224.0.0.2
  • Groupe 0 au groupe 255

HSRP version 2

  • IPv4 / IPv6
  • Adresse MAC utilisée : 0000.0C9F.Fxxx
  • Utilise l’adresse multicast 224.0.0.102
  • Groupe 0 au groupe 4095

C’est quoi HSRP ?

HSRP (Hot Standby Router Protocol) est un protocole propriétaire de Cisco conçu pour permettre la redondance de passerelle pour les hôtes d’un réseau. Il existe plusieurs versions du protocole HSRP, et il y a des différences notables entre la version 1 (HSRPv1) et la version 2 (HSRPv2). Voici les principales différences :

  1. Plage des groupes virtuels :
    • HSRPv1 : La plage des numéros de groupe va de 0 à 255.
    • HSRPv2 : La plage des numéros de groupe est étendue et va de 0 à 4095.
  2. Multicast MAC Address :
    • HSRPv1 : Utilise l’adresse MAC 0000.0c07.acXX, où XX est l’ID du groupe HSRP en hexadécimal.
    • HSRPv2 : Utilise l’adresse MAC 0000.0c9f.fXXX, où XXX est l’ID du groupe HSRP en hexadécimal.
  3. Adresse multicast pour l’envoi des Hello :
    • HSRPv1 : Utilise l’adresse IP multicast 224.0.0.2 pour envoyer des paquets Hello.
    • HSRPv2 : Utilise l’adresse IP multicast 224.0.0.102 pour envoyer des paquets Hello.
  4. Taille des paquets Hello :
    • HSRPv1 : Les paquets Hello ont une taille fixe.
    • HSRPv2 : La taille des paquets Hello peut varier car HSRPv2 peut inclure des champs optionnels.
  5. Support des VLANs :
    • HSRPv1 : N’identifie pas explicitement le VLAN pour lequel un message est envoyé, ce qui peut poser des problèmes en cas de mauvaise configuration ou dans certaines architectures réseau complexes.
    • HSRPv2 : Introduit un champ pour le numéro de VLAN dans le paquet, ce qui permet d’éviter les ambiguïtés dans les configurations où plusieurs sous-interfaces d’un même routeur physique peuvent être des routeurs virtuels actifs pour différents groupes HSRP.
  6. Authentification :
    • Les deux versions supportent l’authentification, mais HSRPv2 introduit la possibilité d’utiliser l’authentification basée sur MD5, offrant un niveau de sécurité supérieur à l’authentification texte simple d’HSRPv1.

En conclusion, HSRPv2 apporte des améliorations par rapport à HSRPv1, notamment en termes de flexibilité, de capacité à gérer davantage de groupes et de clarifications pour les environnements VLAN. Si vous n’avez pas de contrainte particulière vous forçant à utiliser HSRPv1, il serait judicieux d’envisager d’utiliser HSRPv2 pour bénéficier de ces améliorations.

PRINCIPE DE FONCTIONNEMENT DU HSRP​

Introduction

Le protocole HSRP est basé sur le modèle Actif / Passif. Cela veut dire qu’il n’y aura qu’un seul routeur en mode “Actif” et les autres routeurs en mode “Passif” :

  • Mode Active (Actif) : Ce routeur portera l’adresse IP et l’adresse MAC virtuelle
  • Mode Passive (Passif) :Les autres routeurs attendent que le routeur en mode active soit indisponible pour prendre sa place.
HSRP - Schéma de principe
Schéma de principe

Afin de savoir lequel des routeurs va passer en mode Active, il vont organiser une élection.

Élection du routeur actif

  • Chaque routeur possède une priorité.
  • Cette priorité est modifiable par l’administrateur.
  • La priorité par défaut est à 100. Elle est comprise entre 0 et 255.

Le routeur ayant la priorité la plus haute sera en mode Active. En cas d’égalité, le routeur possédant l’adresse IP la plus haute deviendra le routeur actif.

Le routeur en mode Active portera donc notre adresse IP et notre adresse MAC virtuelle. Le ou les routeurs en mode Passive se tiendront informés de l’état de santé du routeur Active via des paquets “Hello” envoyés en mulitcast.

Les paquets “Hello”

Le routeur en mode Active envoi des paquets “Hello” aux routeurs en mode Passive. Cet intervalle de temps s’appelle :
  • “Hello Timer” (par défaut: toutes les 3 secondes)
Si nos routeurs en mode Passive ne reçoivent plus de paquets “Hello”, ils considèrent que le routeur en mode Active est hors service, il va donc y avoir une nouvelle élection ! Cet intervalle de temps s’appelle :
  • “Hold-time Timer” (par défaut: 10 secondes soit 3x le Hello Timer)
Les valeurs “Hello Timer” et “Hold-time Timer” peuvent être changées administrativement. Exemple :
Switch(config-if)# standby 1 timers 3 10     
Hello = 3s / Hold-time = 10s
(Mettre ces valeurs ne sert à rien car c’est les valeurs par défaut)

ou

switch(config-if)# standby 1 timers msec 100 msec 300
Nous avons passé le “Hello timer” à 100 millisecondes et le “Hold-time” à 300 (3×100) millisecondes. Ce qui nous donne une vitesse de basculement en cas de panne de 300 millisecondes. Ces temps doivent être communs à tous nos routeurs.

Basculement en cas de panne

Si notre routeur en mode Active n’est plus en état de fonctionner, une nouvelle élection à lieu.
Un routeur en mode Passive va donc passer en mode Active.

Si notre routeur hors ligne est de nouveau en ligne, il n’y aura pas de nouvelle élection !

(il ne récupèrera donc pas son rôle avant la prochaine panne du nouveau routeur en mode Active.)

 

HSRP - Basculement en cas de panne
Basculement en cas de panne

La Préemption

Définition de Préemption :

La préemption est la capacité d’un système d’exploitation multitâche d’interrompre une tâche en cours en faveur d’une tâche de priorité supérieure. (source: Wikipédia)

La commande “preempt” va permettre à un routeur possédant une priorité supérieure aux autres de remplacer le routeur actuellement en mode Active (sans attendre la prochaine élection, #CoupD’état)

La commande est la suivante :

Switch(config-if)# standby 1 preempt

Configuration du protocole HSRP

Étape 1 : Définir la version HSRP à utiliser

Router(config)# interface vlan 10 
Router(config-if)# standby version 2

Étape 2 : Définir la priorité HSRP

Le protocole HSRP travaille dans des groupes , il faut donc lui spécifier dans quel groupe de travail il va travailler. Imaginons que nous sommes sur le routeur de droite , nous voulons que ce routeur soit en mode Passive, nous allons donc lui mettre une priorité supérieur au routeur de gauche (Ce routeur aura une valeur de priorité par défaut : 100)

Router(config-if)# standby 1 priority 110

Étape 3 : Définir l’adresse IP virtuelle

(L’adresse MAC virtuelle sera générée en fonction du numéro de groupe HSRP)
Router(config-if)# standby 1 IP 192.168.10.254
HSRP - Configuration du protocole HSRP
Configuration du protocole HSRP

Authentification HSRP

Afin d’authentifier les routeurs présents dans notre groupe de travail HSRP, il est possible de mettre en place de l’authentification.
Pour ce faire, deux méthodes :

Authentification – Plain-text

Si les deux routeurs possèdent la même “Plain-test key string(traduction : Chaine de caractère en texte brut), il pourront donc travailler ensemble.
Cette chaine doit avoir entre 1 et 8 caractères.
Cette méthode d’authentification est déjà utilisée par défaut, “cisco” est la valeur de la chaine.
La chaine de caractère passe en clair sur le réseau ….

Rappel : Les paquets Hello sont envoyés en multicast. Si quelqu’un fait une simple écoute réseau, il obtiendra le numéro de groupe HSRP ainsi que cette chaine de caractère.

Pour changer cette chaine de caractère :

Switch(config-if)# standby 1 authentication Finger

Authentification – MD5

Pour expliquer ce type d’authentification , mettons-nous en situation :
  • Les routeurs R1 et R2 sont dans le même groupe HSRP.
  • R1 à un message à envoyer à R2.
  • Ce dernier créer un hash avec sa clé MD5.
  • R1 envoie son message ainsi que le hash de son message.
  • R2 créer un hash avec sa clé MD5 du message reçu.
  • Si le hash de R1 est égal à la valeur du hash de R2 , le message est accepté.
la clé MD5 :
  • Ne circule pas sur le réseau.
  • Peut avoir au maximum 64 caractères.
Deux façons de mettre en place une clé MD5 :
  • Méthode 1 :
Switch(config-if)# standby 1 authentication md5 key-string [ 0 | 7 ] Finger
    • 0 = Clé en clair
    • 7 = Clé cryptée
  • Méthode 2 :
Switch(config)# key chain Finger-chain
Switch(config-keychain)# key 1
Switch(config-keychain-key)# key-string [ 0 | 7 ] Finger

Switch(config)# interface vlan 10
Switch(config-if)# standby 1 authentication md5 key-chain Finger-chain

Load Balancing HSRP (MHSRP)

Comme nous l’avons vu plus haut , tous nos flux voulant aller sur internet vont donc passer par un seul routeur. Pendant que le deuxième n’est la uniquement si la première liaison tombe. Le mieux serait d’utiliser les deux liaisons ! Pour ce faire , nous allons faire de l’équilibrage de charge manuel ! (Le protocole GLBP fait de l’équilibrage de charge dynamique)

Reprenons notre architecture avec deux vlan cette fois-ci !

  • Vlan 10 = 192.168.10.0 /24
  • Vlan 20 = 192.168.20.0 /24

Nous allons faire deux groupes HSRP différents (un pour chaque vlans) et nous allons décider que le routeur de gauche sera en mode Active pour le vlan 10.
Le routeur de droite sera en mode Active pour le vlan 20.
Nous utiliserons donc nos deux liaisons.

Configuration de R1

R1(config)# interface vlan 10
R1(config-if)# ip address 192.168.10.252 255.255.255.0
R1(config-if)# standby version 2
R1(config-if)# standby 1 ip 192.168.10.254
R1(config-if)# standby 1 priority 110
R1(config-if)# standby 1 name HSRP-Vlan10

R1(config)# interface vlan 20
R1(config-if)# ip address 192.168.20.252 255.255.255.0
R1(config-if)# standby version 2
R1(config-if)# standby 2 ip 192.168.20.254
R1(config-if)# standby 2 name HSRP-Vlan20

Configuration de R2

R2(config)# interface vlan 10
R2(config-if)# ip address 192.168.10.253 255.255.255.0
R2(config-if)# standby version 2
R2(config-if)# standby 1 ip 192.168.10.254
R2(config-if)# standby 1 name HSRP-Vlan10
R2(config)# interface vlan 20
R2(config-if)# ip address 192.168.20.253 255.255.255.0
R2(config-if)# standby version 2
R2(config-if)# standby 2 ip 192.168.20.254
R2(config-if)# standby 2 priority 110
R2(config-if)# standby 2 name HSRP-Vlan20

HSRP et SLA

Le service IP SLA permet de faire différent type de test ( voir l’article SLA ).
Ce service va nous permettre de vérifier la  disponibilité de nos services derrière notre gateway.
Nous deux routeurs fournissent INTERNET via deux Box distincts. Si l’une des deux Box n’est plus en état de fonctionner, le HSRP ne va jamais basculer.
Avec le service SLA , nous allons lui dire que si sa liaison WAN est hors d’usage , il faut qu’il passe la main au routeur Stand-by.

Étape 1 : Configuration de notre test SLA :
Routeur(config)# ip sla 10
Routeur(config-ip-sla)# icmp-echo 8.8.8.8
Routeur(config-ip-sla)# frequency 5
Routeur(config)# ip sla schedule 10 start-time now life forever
L’adresse IP 8.8.8.8 est le serveur DNS de google. il sera toujours en vie. nous allons faire notre test de connextion INTERNET avec cette adresse IP. Étape 2 : Prise en compte du SLA par notre architecture HSRP
Routeur(config)# track 1 IP sla 10 reachability
Routeur(config)# interface vlan 10
Routeur(config-if)# standby 1 track 10 decrement 20
Le décrément est le nombre qu’il faudra soustraire à la priorité du routeur si le test retourne un résultat négatif. Vu que la priorité du routeur A est à 110 et que la priorité du routeur B est à 100. Le routeur A est en mode “Active. Le test SLA est donc à mettre sur le routeur A. Si le résultat du test est négatif. La priorité du routeur A passé à 90. Routeur B passe donc en mode “Active
HSRP et SLA
HSRP et SLA

Vérification

Router# show standby 
Router# show standby brief