# Hot Standby Router Protocol

Host Standby Router Protocol (HSRP) est un protocole propriétaire de Cisco implémenté sur les routeurs et les commutateurs de niveau 3 permettant une continuité de service. HSRP est principalement utilisé pour assurer la disponibilité de la passerelle par défaut dans un sous-réseau en dépit d'une panne d'un routeur.
HSRP est décrit dans la RFC 2281.

## Fonctionnement

Dans chaque sous-réseau où HSRP est actif, on définit un groupe de routeurs, c'est-à-dire un identifiant numérique. Le numéro du groupe varie de 0 à 255 en version 1, et de 0 à 4095 en version 2. Il peut donc y exister jusqu'à 4096 groupes HSRP dans un même sous-réseau. Chaque groupe est associé à une adresse IP virtuelle distincte.
Dans un groupe, un routeur actif sera élu : celui qui aura la priorité la plus élevée. Les autres routeurs sont en standby et écoutent les messages émis par le routeur actif. Périodiquement, les routeurs du groupe échangent des messages Hello pour s'assurer que les routeurs du groupe sont encore joignables. Par défaut, les messages Hello sont envoyés toutes les 3 secondes, et un délai de plus de 10 secondes sans message Hello de la part du routeur actif entraîne la promotion du routeur Standby en actif.
Le routeur actif assure seul la réponse aux requêtes ARP pour l'adresse IP virtuelle. Sur Ethernet, l'adresse MAC virtuelle associée à cette adresse IP virtuelle sera de la forme 00:00:0c:07:ac:XX, où XX correspond au numéro de groupe en hexadécimal.
Si le routeur actif nominal devient inaccessible un autre routeur sera élu : celui qui a la deuxième priorité la plus élevée. Tous les messages entre les routeurs sont échangés en utilisant l'adresse multicast 224.0.0.2 via UDP sur le port 1985, le TTL des paquets est fixé à 1 pour éviter leur propagation au-delà du sous-réseau.
Si un routeur A découvre qu'un autre routeur B est actif pour le même groupe dans un sous-réseau et que ce dernier a une priorité inférieure à la sienne, alors le routeur A annonce qu'il reprend le rôle de routeur actif, pour autant qu'il soit configuré pour la préemption, avec un message Coup. Un routeur actif peut renoncer immédiatement à son rôle en émettant un message Resign, ce qui provoque la promotion du routeur Standby en actif sans délai.
Le routeur actif ne doit pas révéler son adresse IP réelle aux hôtes qui l'utilisent avec son adresse IP virtuelle. En particulier, les messages ICMP redirect ne seront pas envoyés.
Le changement de routeur actif est transparent pour les hôtes du segment qui utilisent l'adresse virtuelle. Au moment du basculement, le routeur actif envoie des messages gratuituous ARP qui modifient la table d'adresse MAC du commutateur (aussi appelé switch).

## Limitations de HSRP

Il n'y a pas de partage de la charge entre les routeurs participants au groupe. On peut cependant définir plusieurs groupes ayant chacun un routeur actif différent et partager les hôtes entre ces groupes.
L'utilisation de l'adresse multicast 224.0.0.2 (All routers) a pour effet que tous les routeurs du sous-réseau reçoivent les messages, y compris ceux qui ne participent pas à HSRP.

### Exemple

Soient deux routeurs (A et B) utilisant le protocole HSRP pour fournir une tolérance aux pannes. Le routeur A utilisera l'adresse IP 192.168.0.2 avec un masque de sous-réseau de 255.255.255.0 ; le routeur B utilisera l'adresse IP 192.168.0.3 avec le même masque de sous-réseau.
L'adresse IP virtuelle est 192.168.0.1. Elle sera configurée comme passerelle par défaut sur les équipements du sous-réseau.