HSRP, VRRP y GLBP

Vamos a hablar de los protocolos de redundancia, balanceo de carga y alta disponibilidad como pueden ser HSRP , VRRP y GLBP. Para ello estudiaremos cada protocolo y opciones que tiene para ver con más detalle en los laboratorios su comportamiento.

Es importante que en redes de producción se utilizen enlaces y dispositivos redundantes para mantener la alta disponibilidad del servicio. Para ello podemos utilizar dispositivos como switches de capa 3 o routers para poder completar esta función. Para nuestras practicas utilizaremos la topologia siguiente :

Para empezar hablaremos de los tres protocolos y de sus características y seguidamente realizaremos la topología para cada uno de ellos.

 HSRP ( Hot Standby Routing Protocol )

  • Es un Protocolo propietario de Cisco
  • Pertenece al RFC 2281
  • Crea una Virtual IP address y una Virtual Mac-address para realizar la redundancia
  • Existen tres tipos de routers : Active Router, el Standby Router y Virtual Router.

Active Router : Es el router activo que recive el trafico para ser reenviado a su destino .
Standby Router : Es el router de backup en caso de que el Active Router se caiga.
Virtual Router : No es un router, pero representa al grupo HSRP como un router virtual y es el actual default gateway para los hosts.

En realidad el host tiene configurado el default gateway del Virtual Router que realmente pertenecera al Active router que sera el encargado de reenviar los paquetes al destino.

  • Este protocolo envia mensajes de Hello como los de los proocolo de routing para saber si su vecino esta vivo . Estos mensajes se envian cada 3 segundos mediante la dirección multicast 224.0.0.2 y el puerto UDP 1985.
  • Para determinar quien sera el Active Router se decide mediante la Standby Priority. Que podremos poner valores entre 0 – 255Por defecto viene a 100 y el que tenga la prioridad más alta es el que se escoje como Active Router. En caso de empatar con las prioridades, el router que tenga la IP address más grande será el Active Router.
  • En caso de no configurar la opción “preempt” sucedera que el primer router que inicie sera el escojido como Active Router . Esto lo veremos más tarde dado que esta opción permite recuperar a un Active Router cuando vuelve a estar operativo.
  • En cuanto se escoje el Active Router los demás routers estan en modo monitor a la posible espera de poder ser Active Router en caso de fallo. Esto sucede en cuantoel hold time de los hello’s llega a los 10 segundos, que es el parametro po defecto . En ese momento el Standby Router pasa a ser el Active Router y se consigue que no haya perdida de diponibilidad.

Para determinar que tipo de FHRP esta utilizando la red podemos fijarnos en el arp -a de un host y veremos la Mac-address del router gateway de la red que sera el Active Router. Recordamos que es en formato hexadecimal. En caso de haber letras tendremos que pasarlas a decimal para saber a que ID pertenecen.

C:>arp -a

Interfaz: 192.168.1.129 — 0×2
Dirección IP          Dirección física          Tipo
192.168.1.1           00-00-0c-07-ac-01     dinámico

Podremos distinguir los siguiente :

Vendor Code : 00-00-0c –> Cisco
Protocolo : 07-ac –> HSRP
ID grupo : 01 –> Grupo 1

  • Este protocolo tambien es capaz de soportar autenticación mediante texto plano y en caso más seguro en MD5.

ESTADOS HSRP

Los routers antes de pasar a tener un rol, tienen que pasar por varios estados :

Initial State : Todos los routers inician con este estado. Este estado se da cuando se ha realizado algun cambio en la configuración o cuando se ha iniciado una interface.

Learn State : En este estado aun no se ha determinado la Virtual IP address y no se ha recivido ningun hello del Active Router. El router esta esperando y escuchando para recivir algun hello del Active Router.

Listen State : El router conoce la Virtual IP address, pero no es ni el Active Router ni el Standby Router.Todos los routers del grupo HSRP persisten en este modo incluso el Active y Standby router.

Speak State : Este estado permite a los routers hablar periodicamente mendiante hello’s y participar en la elección del Active Router y el Standby Router. El router se queda en el estado Speak almenos que se convierta en un Active o Standby router.

Standby State : Este estado coloca al router en modo backup y envia mensajes hello periodicamente . En de perdida de conectividad con el Active Router el Standby Router pasa a ser el Active . Tiene que haber como mínimo un router de Standby.

Active State : Este estado, el router es el encargado de reenviar los paquetes que llegan a la Virtual IP y mac-address  del grupo HSRP. El router activo tambien envia periodicamente mensajes Hello.

 HSRP LOAD BALANCING

Se puede realizar balanceo de carga mediante grupos HSRP y mientras que un router es Active Router de un grupo, tambien puede ser Standby Router de otro grupo .

INTERFACE TRACKING

En ocasiones tendremos la topologia que en este caso trataremos y para saber si un router tiene una caida en una de las interfaces que tienen acceso al Backbone o en este caso a Internet, tendremos que marcarlas con el tracking para que en caso de fallo sea capaz de disminuir la prioridad y asi conseguir que el Standby Router pase a ser el Active Router. En caso de no configurarlo experimentaremos problemas dado que se caera la interfaz pero los hosts intentaran seguir enviando paquetes al gateway que teoricamente funciona. Hay que manejar los trackings correctamente porque en caso de fallo se restara la contidad de tracking que indiquemos a la prioridad. El decremento por defecto es de 10.

Una vez os he dado la bara con el protocolo y sus datos técnicos vamos a lo que interesa. La Topologia sera la siguiente :

Empezaremos con las configuraciones :

CONFIGURACIÓN DE R1

R1#conf t
R1(config)#int f0/0.10
R1(config-subif)#standby 10 ip 192.168.10.254 – Esta era la IP del gateway
R1(config-subif)#standby 10 preempt – Configuramos preempt porque en caso de que se levante el Router queremos que sea de nuevo el Active Router
R1(config-subif)#standby 10 priority 115 – Configuramos priority para que sea Active Router
R1(config-subif)#standby 10 authentication md5 key-chain pass – Configuramos autenticación MD5 porque es más segura que la de texto plano
R1(config-subif)#standby 10 track serial0/0 20 – Configuramos tracking en la interface s0/0 para que en caso de que se caiga la inerfaz decremente en este caso 20 en la priority y el Active Router pase a se el R2
R1(config-subif)#standby 11 ip 192.168.10.253 – Configuramos la IP de balanceo de carga. Util para redes con muchos host o trafico
R1(config-subif)#standby 11 preempt
R1(config-subif)#standby 11 priority 100 – Configuramos la default priority porque el grupo 11 del Router R2 sera el Active para este caso
R1(config-subif)#standby 11 authentication md5 key-chain pass
R1(config-subif)#exit
R1(config-subif)#int f0/0.20
R1(config-subif)#standby 20 ip 192.168.20.254
R1(config-subif)#standby 20 preempt
R1(config-subif)#standby 20 priority 100
R1(config-subif)#standby 20 authentication md5 key-chain pass
R1(config-subif)#standby 21 ip 192.168.20.253
R1(config-subif)#standby 21 preempt
R1(config-subif)#standby 21 priority 115
R1(config-subif)#standby 21 authentication md5 key-chain pass
R1(config-subif)#standby 21 track serial0/0 20
R1(config-subif)#exit
R1(config)#int f0/0.30
R1(config-subif)#standby 30 ip 192.168.30.254
R1(config-subif)#standby 30 preempt
R1(config-subif)#standby 30 priority 115
R1(config-subif)#standby 30 authentication md5 key-chain pass
R1(config-subif)#standby 30 track serial0/0 20
R1(config-subif)#standby 31 ip 192.168.30.253
R1(config-subif)#standby 31 preempt
R1(config-subif)#standby 31 priority 100
R1(config-subif)#standby 31 authentication md5 key-chain pass
R1(config)#exit

CONFIGURACIÓN DE R2

R2(config)#int f0/0.10
R2(config-subif)#standby 10 ip 192.168.10.254
R2(config-subif)#standby 10 preempt
R2(config-subif)#standby 10 priority 100
R2(config-subif)#standby 10 authentication md5 key-chain pass
R2(config-subif)#standby 11 ip 192.168.10.253
R2(config-subif)#standby 11 preempt
R2(config-subif)#standby 11 priority 115
R2(config-subif)#standby 11 authentication md5 key-chain pass
R2(config-subif)#standby 11 track serial0/0 20
R2(config-subif)#exit
R2(config)#int f0/0.20
R2(config-subif)#standby 20 ip 192.168.20.254
R2(config-subif)#standby 20 preempt
R2(config-subif)#standby 20 priority 115
R2(config-subif)#standby 20 authentication md5 key-chain pass
R2(config-subif)#standby 20 track serial0/0 20
R2(config-subif)#standby 21 ip 192.168.20.253
R2(config-subif)#standby 21 preempt
R2(config-subif)#standby 21 priority 100
R2(config-subif)#standby 21 authentication md5 key-chain pass
R2(config-subif)#exit
R2(config)#int f0/0.30
R2(config-subif)#standby 30 ip 192.168.30.254
R2(config-subif)#standby 30 preempt
R2(config-subif)#standby 30 priority 100
R2(config-subif)#standby 30 authentication md5 key-chain pass
R2(config-subif)#standby 31 ip 192.168.30.253
R2(config-subif)#standby 31 preempt
R2(config-subif)#standby 31 priority 115
R2(config-subif)#standby 31 authentication md5 key-chain pass
R2(config-subif)#standby 31 track serial0/0 20
R2(config-subif)#exit

Fijaros que hemos definido para cada grupo 10 , 20 y 30 un grupo de balanceo de carga que seran :

– Para el grupo 10 – 11

– Para el grupo 20 – 21

– Para el grupo 30 – 31

Los hosts de la red los configuraremos con los gateways diferentes uno con 192.168.10.254 y el otro 192.168.10.253. Entonces veremos lo siguiente :

PC1 – VLAN 10 – Gateway 192.168.10.253

C:>ping 1.1.1.1

Haciendo ping a 1.1.1.1 con 32 bytes de datos:

Respuesta desde 1.1.1.1: bytes=32 tiempo=19ms TTL=254
Respuesta desde 1.1.1.1: bytes=32 tiempo=18ms TTL=254
Respuesta desde 1.1.1.1: bytes=32 tiempo=18ms TTL=254
Respuesta desde 1.1.1.1: bytes=32 tiempo=18ms TTL=254

Estadísticas de ping para 1.1.1.1:
Paquetes: enviados = 4, recibidos = 4, perdidos = 0
(0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
Mínimo = 18ms, Máximo = 19ms, Media = 18ms

C:>arp -a

Interfaz: 192.168.10.200 — 0×10004
Dirección IP            Dirección física            Tipo
192.168.10.1          00-13-80-63-f9-ef        dinámico
192.168.10.253      00-00-0c-07-ac-0b      dinámico

Podemos ver que el host aprendio mediante ARP que su gateway o Virtual Router es 192.168.10.253 tiene la mac-address 00-00-0c-07-ac-0b, que pertenece al grupo 11 ( 0b = 11 ) .

C:>tracert 1.1.1.1

Traza a 1.1.1.1 sobre caminos de 30 saltos como máximo.

1     2 ms    <1 ms     1 ms  192.168.10.2
2    26 ms    26 ms    26 ms  1.1.1.1

Traza completa.

En el tracer vemos como realmente vamos al Active Router del grupo 11, que es la 192.168.10.2. Veamos el resumen de la configuración de HSRP actual y comprovamos que el Active router para el grupo 11 es el local  y el standby es 192.168.10.1 que es R1.

R2#show standby brief
P indicates configured to preempt.
|
Interface   Grp Prio  P State       Active              Standby           Virtual IP
Fa0/0.10    10  100  P Standby  192.168.10.1    local                192.168.10.254
Fa0/0.10    11  115  P Active     local                192.168.10.1   192.168.10.253
Fa0/0.20    20  115  P Active      local                192.168.20.1    192.168.20.254
Fa0/0.20    21  100  P Standby  192.168.20.1    local                192.168.20.253
Fa0/0.30    30  100  P Standby  192.168.30.1    local                192.168.30.254
Fa0/0.30    31  115  P Active      local                 192.168.30.1   192.168.30.253

PC2 – VLAN 10 – Gateway 192.168.10.254

C:>ping 1.1.1.1

Haciendo ping a 1.1.1.1 con 32 bytes de datos:

Respuesta desde 1.1.1.1: bytes=32 tiempo=19ms TTL=254
Respuesta desde 1.1.1.1: bytes=32 tiempo=18ms TTL=254
Respuesta desde 1.1.1.1: bytes=32 tiempo=18ms TTL=254
Respuesta desde 1.1.1.1: bytes=32 tiempo=18ms TTL=254

Estadísticas de ping para 1.1.1.1:
Paquetes: enviados = 4, recibidos = 4, perdidos = 0
(0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
Mínimo = 18ms, Máximo = 19ms, Media = 18ms

C:>arp -a

Interfaz: 192.168.10.200 — 0×10004
Dirección IP            Dirección física        Tipo
192.168.10.1          00-13-80-63-f9-ef     dinámico
192.168.10.2          00-14-a8-1f-e4-fd     dinámico
192.168.10.254      00-00-0c-07-ac-0a   dinámico

Podemos ver que el host aprendio mediante ARP que su gateway o Virtual Router es 192.168.10.254 tiene la mac-address 00-00-0c-07-ac-0a, que pertenece al grupo 10 ( 0a = 10 ) y podemos ver que tambien ha resuelto la verdadera ip del Active Router, 192.168.10.1 y el Standby Router que es la 192.168.10.2 .

C:>tracert 1.1.1.1

Traza a 1.1.1.1 sobre caminos de 30 saltos como máximo.

1     2 ms    <1 ms     1 ms  192.168.10.1
2    26 ms    26 ms    26 ms  1.1.1.1

Traza completa.

En el tracer vemos como realmente vamos al Active Router del grupo 10, es la 192.168.10.1. Veamos el resumen de la configuración de HSRP actual y comprovamos que el Active router para el grupo 10 es el local  y el standby es 192.168.10.2 que es R2.

R1#show standby brief
P indicates configured to preempt.
|
Interface   Grp Prio P State        Active              Standby              Virtual IP
Fa0/0.10    10  115  P Active      local                 192.168.10.2    192.168.10.254
Fa0/0.10    11  100  P Standby  192.168.10.2    local                  192.168.10.253
Fa0/0.20    20  100  P Standby  192.168.20.2    local                  192.168.20.254
Fa0/0.20    21  115  P Active      local                 192.168.20.2    192.168.20.253
Fa0/0.30    30  115  P Active      local                 192.168.30.2    192.168.30.254
Fa0/0.30    31  100  P Standby  192.168.30.2    local                  192.168.30.253

Ahora realizaremos una prueba tirando a bajo una interface serial connectada a internet para ver como actua HSRP ante una caida y como se reasignan los roles a los routers. Veremos los decrementos de la prioridades que antes definimos en el tracking y los cambios de estados HSRP.