# Hot Standby Router Protocol

L'Hot Standby Router Protocol (HSRP) è un protocollo proprietario di Cisco che serve a garantire la fault-tolerance tra più router. Tipicamente viene utilizzato per consentire una ridondanza nel default gateway. Il protocollo è descritto nella sua prima versione nella RFC 2281.

## Introduzione

Nelle reti LAN moderne è spesso fondamentale il poter fornire una ridondanza a livello di edge router per l'interfacciamento a più ISP esterni che forniscono l'accesso alla rete Internet ad una LAN. Per garantire un alto livello di uptime in una network LAN una soluzione efficace consiste nel ridondare gli apparati hardware in modo da aumentare significativamente il valore MTBF e aumentare quindi l'affidabilità e l'uptime.
A livello logico si pone il problema di far coesistere apparati che a livello gateway dovrebbero avere lo stesso indirizzo IP layer 3 a meno di poco praticabili riconfigurazioni degli host per la gestione di gateway multipli. L'idea consiste in un protocollo che consenta di utilizzare un unico indirizzo layer 3 in grado di 'spostarsi' su un apparato di backup in caso di guasto di un apparato primario. Il protocollo HSRP consente di svincolare gli indirizzi IP dalle singole interfacce fisiche e di associarli invece a gruppi di interfacce consentendone la raggiungibilità anche in caso di guasto. A tal fine si definisce un indirizzo IP virtuale che sarà attivo solo su un apparato definito primario, in uno stato chiamato Active, lasciando di altri di backup in uno stato chiamato Standby.
Ovviamente HSRP può essere usato anche in altri contesti, ma la sua applicazione come failover del default gateway di una LAN è quella più tipica.
HSRP è un protocollo proprietario della Cisco. VRRP ne è una versione standardizzata.

## Funzionamento

Si definisce un numero di gruppo configurato su tutti gli apparati che devono condividere uno stesso indirizzo IP su una delle loro interfacce. Ad ogni apparato viene assegnata una prioriità di default pari a 100. Sarà l'operatore a variare la priorità in modo da definire un apparato primario con priorità massima. Fatto questo la rete converge molto rapidamente e l'indirizzo IP virtuale sarà attivo solo sul router primario, nello stato di Active, riconosciuto come tale da tutti gli altri che si pongono nello stato di Standby. Quindi l'apparato che farà forwarding di traffico sarà quello Active e se l'indirizzo IP virtuale è l'indirizzo di gateway configurato in tutti gli apparati PC di una LAN ( nel caso si stia utilizzando HSRP per ridondare un LAN gateway) questi avranno a disposizione con continuità i servizi di rete.
Questo protocollo, che opera al "livello applicazione" della pila protocollare OSI consente quindi di organizzare più router Cisco in gruppi, ciascuno dei quali identificato da un numero (id); per ogni gruppo viene scelto, in base ad un apposito meccanismo di elezione, un router primario ed uno secondario, che diventa primario in caso di failover (malfunzionamento) di quest'ultimo.

## Operatività

Operativamente l'HSRP utilizza messaggi di hello inviati in multicast all'indirizzo 224.0.0.2 (ovvero a tutti i router di un segmento di rete) usando la porta UDP 1985, il che permette il contatto tra tutti i router abilitati all'HSRP permettendo di definire le priorità tra i router: il router primario con la priorità configurata più alta agirà da router virtuale (utilizzando il proprio indirizzo IP e MAC address), che gli hosts sul segmento di rete utilizzeranno come gateway; in caso di malfunzionamento di tale apparato di rete il router con la seconda più alta priorità configurata sarà eletto dall'HSRP come active, risolvendo così i problemi di connettività.
La caratteristica peculiare del protocollo HSRP è quella di assegnare ad ogni gruppo un indirizzo IP virtuale, riferito sempre al router primario, che comunque conserva il suo indirizzo IP fisico. In questo modo, l'IP virtuale resta sempre costante, anche in caso di malfunzionamento del router primario: il router secondario che subentra è identificato sempre dal medesimo indirizzo IP virtuale, pur avendo indirizzo IP fisico diverso.
Di default HSRP invia un pacchetto di Hello ogni 3 secondi. Nel caso in cui per 10 secondi un apparato Standby non riceve pacchetti prova a eleggersi Active se ne hai requisiti di priorita'.