HSRP

Ultima revisione: 30 Maggio 2010

Introduzione

    Quando e' necessaria ridondanza e quindi alta affidabilita' la soluzione migliore e' quella di utilizzare coppie di apparati o di alcuni loro moduli. Poiche' tuttavia apparati diversi hanno indirizzi layer 3 differenti sarebbe assai utile un meccanismo che consentisse di utilizzare un unico indirizzo layer 3 in grado di 'spostarsi' sempre sull'apparato funzionante. HSRP consente di svincolare gli indirizzi IP dalle singole interfacce fisiche e di associarli invece a gruppi di interfacce consentedone la raggiungibilita' anche in caso di guasto. HSRP e' supportato dai router Cisco.


Principio di funzionamento dell'HSRP

    Un caso tipico di utilizzo di Hot Standby Router Protocol (HSRP) e' quando un router R1, gateway di una rete, necessita di un router gemello, R2, da utilizzare in caso di guasto. La presenza di due gateway nella rete, per esempio due Cisco 2800, in circostanze normali ci forza ad assegnare due indirizzi IP distinti alle loro interfacce ethernet. Questo implica che, per avere ridondanza, i server di rete dovrebbero poter gestire gateway multipli correttamente. Purtroppo la maggior parte dei sistemi server non supporta correttamente la configurazione di piu' gateway. 

    Lasciamo inalterata la configurazione delle ethernet dei nostri  R1 e R2 ma aggiungiamo invece un elemento nuovo e cioe' HSRP. La configurazione HSRP ci consentira' di introdurre un nuovo indirizzo IP che utilizzeremo come gateway di riferimento per i client e i server della rete. Tale IP sara' pero' virtuale, ovvero assegnato al router attivo, e passato dal primo router al secondo in caso di guasto, e viceversa. Ogni router avra' poi un suo indirizzo IP fisico e permanente, ma non ridondato.

Cosa e' il GLBP

    Un accenno al Gateway Load Balancing Protocol (GLBP). E' l'evoluzione di HSRP in quanto permette il load-balancing tra apparati. Quindi in un gruppo piu' di un apparato puo' essere attivo. Un singolo apparato (chiamato AVG) risponde alla richieste ARP inviate dai client di una rete che sono alla ricerca del MAC del gateway. AVG risponde in modo differente ad ogni richiesta in modo che i client si distribuiscano tra diversi gateway. Ci sono varie modalita' per rispondere alle richieste ARP: round-robin (default), in base al mac dell'host (ad ogni host si risponde sempre con lo stesso MAC), oppure pesato. Quest'ultima modalita' e' molto utile perche' daremo piu' peso ai router che hanno piu' banda utile.

Configurazione

    La configurazione di HSRP utilizza il comando "standby" con le seguenti varianti:

standby [group-number] ip ip-address [secondary]
standby [group-number] mac-address mac-address
standby [group-number] priority priority [preempt [delay delay]]
standby
[group-number] track type number [priority]

   Configuriamo il primo 2800, diciamo 2800-A, nel modo seguente:


interface FastEthernet0/0
  description - router 2800A -
  ip address 192.168.30.10 255.255.255.0
  duplex auto
  speed auto
  standby 1 priority 105 preempt     (la priorita' e' 100 di default, chi ha priorita' piu' alta vince)   (oppure standby 1 preempt)
  standby 1 ip 192.168.30.1
  standby 1 track Fa0/1

   L'indirizzo fisico e' 192.168.30.10. Supponiamo che il 2800-B abbia indirizzo fisico 192.168.30.11.  Le tre righe con standby abilitano HSRP. Un valore di priorita' definisce il router che ha precedenza sugli altri per acquisire l'indirizzo virtuale, in questo caso il 192.168.30.1. Il comando priority definisce una priorita', maggiore con valore piu' alto. Ma chi ha priorita' maggiore non necessariamente detiene l'ip virtuale. In condizioni normali il router che ha l'ip virtuale lo conserva, anche se si aggiungono al gruppo dei router a priorita' maggiore.Con il comando preempt si puo' forzare l'attivazione di un router quando questo ritorna on-line. Ovvero il router prende il controllo anche quando c'e' un differente router con priorita' maggiore on line. L'indirizzo 192.168.30.1 e' quello che va impostato come gateway sui client e server della rete. I pacchetti HSRP usano l'indirizzo multicast 224.0.0.1, sono UDP con porta 1985.
 
   L'ulima riga di configurazione contiene il subcomando track. Questo consente di variare la priorita' di un router a seconda dello stato delle sue interfacce. Ad esempio se la seconda ethernet del 2800-A (supponendo che ne abbia una) va in down allora il valore di priorita' del router scende di 10 punti (default) portandolo a 95. A questo punto vogliamo che il router 2800-B diventi Active. Ma questo non e' automatico. Infatti il router B vedra' il router A sempre attivo, ma con priorita' minore. Non ci sara' nessun passaggio, a meno che non ci sia il comando preempt nel router B, che gli faccia prendere il controllo.

   Insomma con HSRP possiamo determinare condizioni di fault non solo in base all'interfaccia su cui HSRP e' attivo ma anche in base al comportamento di altre interfacce presenti sul router, ad esempio una seriale. E' quindi facile pensare che se il 2800-A ha un collegamento seriale verso internet che passa nello stato di  protocol down il gateway cambia pur avendo una interfaccia ethernet perfettamente funzionante. Infine 1 e' il numero di gruppo. E' possibile creare piu' gruppi HSRP ognuno dei quali gestisce in autonomia delle interfacce e degli ip virtuali.

   Nel caso due router abbiano la stessa priorita' l'interfaccia con IP piu' alto diventa Active.

   Ma secondo quale criterio un router con HSRP classifica come off-line gli altri router del suo gruppo? Le porte di uno stesso gruppo si scambiano pacchetti di hello ogni tre secondi. Se per tre volte questo valore (holdtime) non arrivano i pacchetti di hello il router mittente viene considerato in fault. Questi parametri sono settabili. Si deduce che di default sono necessari almeno 10 secondi per passare da un router all'altro in caso di fault ma questo tempo puo' variare a seconda della configurazione di HSRP e della topologia di rete.

   Nota: disabilitare l'algoritmo spanning tree dalle porte che utilizzano HSRP. Questo prende 30sec circa per attivare la porta, un tempo superiore ai 10sec di timeout dell'HSRP, e puo' creare seri problemi allo stato delle interfacce, su alcune piattaforme. Potete usare, se disponibile, il comando "set spantree portfast enable".

    Per finire ecco dei comandi per il monitoring e il debugging:

Router#show standby
Ethernet0 - Group 1
Local state is Active, priority 100, may preempt
Hellotime 3 holdtime 10
Next hello sent in 00:00:02.272
Hot standby IP address is 192.168.30.5 configured
Active router is local
Standby router is unknown expired
Standby virtual mac address is 0000.0c07.ac01
2 state changes, last state change 00:01:23
Router#debug standby
HSRP debugging is on
Router#
00:40:33: SB1: Et0 Hello out 192.168.30.1 Active pri 100 ip 192.168.30.5
00:40:36: SB1: Et0 Hello out 192.168.30.1 Active pri 100 ip 192.168.30.5
00:40:39: SB1: Et0 Hello out 192.168.30.1 Active pri 100 ip 192.168.30.5

Router#sh run int eth0
Building configuration...

Current configuration : 112 bytes
!
interface Ethernet0
ip address 192.168.30.1 255.255.255.0
standby 1 preempt
standby 1 ip 192.168.30.5
end

 

Non si possono usare classi differenti in un gruppo HSRP altrimenti si ha questo errore:

7200_A#show standby
GigabitEthernet0/1.1 - Group 1
State is Init (virtual IP has invalid subnet)
Virtual IP address is 2.0.63.170 (wrong subnet for this interface)
Active virtual MAC address is unknown
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Preemption enabled
Active router is unknown
Standby router is unknown
Priority 105 (configured 105)
Group name is "hsrp-Gi0/1.1-1" (default)

come si vede HSRP non funziona.

Esempio 2

  1. Mettere il portfast;
  2. Preempt su tutti e obbligatorio
  3. Cambiare le priorita'

 ROUTER B

interface gigabitethernet 5/0/0
     ip address 194.242.21.11 255.255.255.0
     standby 1 priority 106   <-Se cade la 4/0/0   106-10=96, router C con preempt diventa Active
     standby 1 preempt        <- Se cade la 5/0/0  non si ricevono gli HELO e router C/5 diventa Active 
     standby 1 ip 194.242.21.1                                                        la 4/0/0 scende a 96 e Router C/4 diventa Active
     standby 1 track gigabitethernet4/0/0

interface gigabitethernet 4/0/0
    ip address 155.155.155.3 255.255.255.0
    standby 2 priority 106     <--- quello piu' alto vince
    standby 2 preempt              <--- obbligatorio su tutti xche' c'e' track
    standby 2 ip 155.155.155.1
    standby 2 track gigabitethernet 5/0/0

 

 ROUTER C

interface gigabitethernet 5/0/0
     ip address 194.242.21.12 255.255.255.0
     standby 1 priority 105
     standby 1 preempt
     standby 1 ip 194.242.21.1
     standby 1 track gigabitethernet4/0/0

interface gigabitethernet 4/0/0
    ip address 155.155.155.2 255.255.255.0
    standby 2 priority 105
    standby 2 preempt
    standby 2 ip 155.155.155.1
    standby 2 track gigabitethernet 5/0/0

 

HSRP e BVI

Supponiamo di avere una configurazione


interface GigabitEthernet0/0
no ip address
duplex auto
speed auto
bridge-group 1
!
interface GigabitEthernet0/1
no ip address
duplex auto
speed auto
bridge-group 1
!
interface BVI1
ip address 217.27.110.7 255.255.255.0
standby 1 ip 217.27.110.6
standby 1 priority 101
!
!
bridge 1 protocol ieee
bridge 1 route ip
!
!

3800A# show standby
BVI1 - Group 1
State is Standby
18 state changes, last state change 00:00:54
Virtual IP address is 217.27.110.6
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.848 secs
Preemption disabled
Active router is 217.27.110.5, priority 110 (expires in 8.848 sec)
Standby router is local
Priority 101 (configured 101)
IP redundancy name is "hsrp-BV1-1" (default)
3800A# show sp
3800A# show spanning-tree

Bridge group 1 is executing the ieee compatible Spanning Tree protocol
Bridge Identifier has priority 32768, address 0013.7f11.44b8
Configured hello time 2, max age 20, forward delay 15
Current root has priority 32768, address 0001.42aa.9a43
Root port is 3 (GigabitEthernet0/0), cost of root path is 19
Topology change flag not set, detected flag not set
Number of topology changes 6 last change occurred 00:01:42 ago
from GigabitEthernet0/1
Times: hold 1, topology change 35, notification 2
hello 2, max age 20, forward delay 15
Timers: hello 0, topology change 0, notification 0, aging 300

Port 3 (GigabitEthernet0/0) of Bridge group 1 is forwarding
Port path cost 19, Port priority 128, Port Identifier 128.3.
Designated root has priority 32768, address 0001.42aa.9a43
Designated bridge has priority 32768, address 0001.42aa.9a43
Designated port id is 128.22, designated path cost 0
Timers: message age 1, forward delay 0, hold 0
Number of transitions to forwarding state: 3
BPDU: sent 485, received 392

Port 4 (GigabitEthernet0/1) of Bridge group 1 is blocking
Port path cost 19, Port priority 128, Port Identifier 128.4.
Designated root has priority 32768, address 0001.42aa.9a43
Designated bridge has priority 32768, address 0001.42aa.9a43
Designated port id is 128.25, designated path cost 0
Timers: message age 2, forward delay 0, hold 0
Number of transitions to forwarding state: 1
BPDU: sent 4, received 1058

 

HSRP e BGP

 

Le sessioni BGP non funzionano correttamente se la sessione e' fatta utilizzando un IP di HSRP

Altre letture

Consiglio di consultare l’enorme documentazione disponibile on-line nel sito della cisco http://www.cisco.com/. E’ possibile trovare sempre tutto cio’ che si cerca.


6bone

Copyright 2002-2004  – Gianrico Fichera –

Il materiale di questa pagina non e’ sponsorizzato o sottoscritto da Cisco Systems, Inc. Ciscoâ e’ un trademark di Cisco Systems, Inc. negli Stati Uniti e in altri stati. L’autore di questa pagina non si assume nessuna responsabilita’ e non da nessuna garanzia riguardante l’accuratezza e la completezza delle informazioni presenti nonche’ da conseguenze sull’uso delle informazioni presenti in questa pagina.
Il sito web ufficiale della Cisco e’ http://www.cisco.com. Nel caso si volesse utilizzare il contenuto di questa pagina nella forma in cui e’ presentato rivolgersi all’autore scrivendo a gianrico.fichera itesys.it.

This material is not sponsored by, endorsed by, or affiliated with Cisco Systems, Inc., Cisco, Cisco Systems, and the Cisco Systems logo are trademarks or registered trade marks of Cisco Systems, Inc. or its affiliates. All other trademarks are trademarks of their respective owners.