{{tag>HA cisco}}
======HSRP======
**HSRP** (Hot Standby Router Protocol) est **FHRP** (First Hop Redundancy Protocol) propriétaire Cisco semblable au VRRP, qui permet de mettre en place une redondance au niveau 3 (High Availability) au niveau des passerelles utilisateurs (gateway).
Cela consiste à créer une adresse IP virtuelle utilisée par les utilisateur comme passerelle, cette IP étant partagée entre plusieurs routeurs. Pour cela on met en place un groupe de plusieurs routeurs, qui dialoguent et élisent entre eux le "master" du groupe (celui de plus haute priorité). Ce dernier passera à l'état "Active" (et les autres en "Standby") : il répondra aux requêtes envoyées à l'IP virtuelle du groupe HSRP. S'il vient à tomber, le routeur stanby qui a la plus haute priorité passera actif pour prendre sa place et répondre à l'IP virtuelle. Du point de vue des utilisateurs il n'y a donc qu'un seul et même routeur qui ne change jamais d'adresse.
Le HSRP utilise l'adresse multicast 224.0.0.2 (qui correspond à tous les routeurs du lien local) via UDP sur le port 1985.
Le routeur master envoie des paquets Hello à tous les routeurs standby toutes les 3 secondes. Quand ces derniers ne reçoivent plus ces paquets pendant le "hold time" (par défaut 10 secondes d'affilé), ils procèdent à une réélection. Le nouveau routeur principal qui est élu est celui de plus forte priorité (de 1 à 255, par défaut 100), et à priorité égale, de plus haute adresse IP sur son interface.
Le HSRP ne permet que la redondance de la passerelle, mais pas le partage de charge dynamique à la différence de GLBP. On peut en revanche bidouiller afin de partager les utilisateurs sur 2 routeurs (mais de façon statique) :
* on créer groupe HSRP avec 2 IPs virtuelles, partagées toutes 2 par les routeurs :
* le premier routeur est master sur la première IP et standby sur la seconde
* le second routeur est master sur la seconde IP et standby sur la première
* sur la moitié des postes utilisateurs on définit la passerelle sur le première IP ; sur l'autre moitié on défini la seconde IP.
=====Les différents états=====
Les 4 premiers état sont transitoires, les 2 derniers sont stables.
* Initial
* Learn
* Listen
* Speak
* Standby
* Active
=====Mise en place=====
On a 2 routeurs : R1 sera le principal (master), R2 (standby) prendra le relais si R1 tombe en panne.
* ''preempt'' permet à un routeur de plus haute priorité de destituer un routeur de plus faible priorité qui serait master (par exemple quand un routeur actif tombe puis repasse up) ; par défaut "preempt" est immédiat mais on peut lui fixer un délais
* le HSRP ne peut se configurer que sur les interfaces de niveau 3 : SVI (interface vlan) et ports routés (no switchport).
R1 :
R1(config)#interface Vlan435
R1(config-if)#ip address 10.0.0.1 255.255.255.0
R1(config-if)#standby 8 ip 10.0.0.254
R1(config-if)#standby 8 priority 110
R1(config-if)#standby 8 preempt
R2 :
R2(config)#interface Vlan435
R2(config-if)#ip address 10.0.0.2 255.255.255.0
R2(config-if)#standby 8 ip 10.0.0.254
R2(config-if)#standby 8 priority 90
R2(config-if)#standby 8 preempt
Le "8" de ''standby 8'' indique le numéro de groupe de HSRP. Il doit être unique par interface physique.
=====Configuration avancée=====
====Modification des timers====
Le premier est le Hello time (par défaut de 3s) et le second est le Hold time (par défaut de 10s).
RX(config-if)#standby 8 timers 5 15
====Authentification====
A mettre sur tous les routeurs d'un groupe :
RX(config-if)#standby 8 authentication blabla435
Attention : cette authentification n'est pas une sécurité car le "mot de passe" transite en clair sur le réseau. Tous les utilisateurs présents sur le vlan 435 peuvent lire toutes les informations HSRP qui transiteront entre les routeurs, puisque l'IP destination est une IP multicast (224.0.0.2 = "tous les routeurs").
====Tracking d'interface====
Le tracking permet de changer la priorité HSRP d'un routeur en fonction de différents paramètres qui peuvent être :
* l'état d'une interface
* l'état de sa table de routage (vérification de la présence d'une route, ou de la métrique de celle-ci)
===État d'une interface===
Le tracking d'interface permet à un routeur de vérifier l'état d'une de ses interfaces (typiquement son interface WAN) et, si elle est down, de décrémenter sa priorité HRSP (par défaut 10) afin de céder la place à un routeur backup.
* on peut "traquer" plusieurs interfaces
* lorsque l'interface redevient up, le routeur retrouve sa priorité HSRP initiale
Dans le cas suivant, le routeur R1 baissera sa priorité HSRP de 50 (110-50 = 60) quand l'interface gi0/1 tombera :
R1(config-if)#standby 8 track gi0/1 50
===État de la table de routage===
Permet de baisser une priorité HSRP en cas de perte d'une route :
! L’objet tracking est = 1
! Tracking de la route 10.4.101.8 255.255.255.248
! Delay down = temps en secondes avant de déclarer la perte de la route.
! delay up = temps en secondes avant de prendre en compte le retour de la route.
! Sur le routeur maitre (2)
track 1 ip route 10.4.101.8 255.255.255.248 reachability
delay down 5 up 30
! Sur le routeur backup (1) ; les timers doivent être différents du master pour basculer proprement
track 1 ip route 10.4.101.8 255.255.255.248 reachability
delay down 3 up 40
interface VlanX
! Récupération de l’objet tracking 1
! Si l’objet est valide (route inaccessible) alors décrémenter le poids HSRP de 30
standby Y track 1 decrement 30
===État de la métrique d'une route===
Action sur modification de métrique d'une route : la métrique jugée normale est 163 ; elle est considérée comme "down" à partir de 164.
track 2 ip route 10.0.0.0 255.255.255.0 metric threshold
threshold metric up 163 down 164
delay down 10 up 30
(comme dans l'exemple précédent, il faut utiliser des timers différents sur les routeurs master/backup HSRP et ajouter la directive "standby" sur l'interface idoine)
====HSRP sur ip secondaire====
On peut mettre en place de l'HSRP sur une IP secondaire avec la commande :
R1(config-if)#standby 8 ip 10.0.1.254 secondary
====Sécurité du protocole====
Comme vu plus haut, l'authentification passe en clair sur le réseau. Pour (+/-) sécuriser les échanges entre routeurs, on peut :
* hasher l'authentification en MD5 (c'est la méthode la plus accessible à mon sens) :
standby 8 authentication md5 key-string blabla435
* utiliser une ACL sur chaque routeur afin de droper tout paquet udp/1985 ne provenant pas d'un routeur reconnu par son IP
* on peut mettre en place de l'IPSec entre les routeurs afin de chiffrer les échanges HSRP
=====Vérification=====
La négociation dure quelques secondes, puis :
R1#show standby brief
P indicates configured to preempt.
|
Interface Grp Prio P State Active addr Standby addr Group addr
Vl5 48 110 P **Standby** 10.0.10.4 local 10.0.10.6
[..]
Le routeur **backup** est marqué **Standby**, le master est **Active**.
R2#show standby vlan 5
Vlan5 - Group 48
Local state is Active, priority 90, may preempt
Hellotime 5 sec, holdtime 15 sec
Next hello sent in 1.305
Virtual IP address is 10.0.10.6 configured
Active router is local
Standby router is 10.0.10.5 expires in 11.716
Virtual mac address is 0000.0c07.ac30
Authentication text "blabla5"
1 state changes, last state change 9w0d
IP redundancy name is "hsrp-Vl5-48" (default)