CCNP SWITCH 13: Alta disponibilidad en Capa 3

( redes / certificaciones / ccnp_route-switch / switch )

Redundancia en switches multicapa

Hot Standby Router Protocol (HSRP)

HSRP es un protocolo propietario de Cisco para permitir que varios router o switches multicapa aparezcan como una única puerta de salida (gateway). RFC 2281 para información detallada del mismo.

Cada router que ofrece redundancia para una dirección de gateway se asigna a un grupo HSRP común, de los cuales un router se elige como primario o activo (active), otro como pasivo o secundario (standby) y el resto permanecen en el estado de escucha (listen). Entre los routers se intercambian mensajes hello a intervalos regulares, a la dirección multicast 224.0.0.2 usando el puerto 1985 UDP, para comprobar la existencia de los otros routers y sobre todo del router activo.

Un grupo HSRP puede asignarse un número arbitrario de grupo desde 0 a 255. Si se configuran grupos de HSRP en diferentes interfaces VLAN, suele ser útil hacer coincidir el número de grupo con el de VLAN. Sin embargo la mayoría de switches Catalyst solo soportan hasta 16 únicos grupos HSRP. Por loque si se tienen más de 16 VLAN no se tendrán suficientes números de grupo. Una alternativa es configurar el mismi número de grupo en cada interface VLAN. Esto es perfectamente posible ya que los grupos HSRP son localmente significativos en una interface, es decir, que el grupo HSRP 1 en la interface VLAN 10 es único e independiente del grupo HSRP 1 en la interface vlan 11.

HSRP puede configurarse en un puerto routed, Etherchannel o interface Vlan (SVI).

Elección del router HSRP

La elección del router activo HSRP está basado en la prioridad asignada que puede ir de 0 a 255 (siendo 255 la máxima prioridad) que por defecto está en 100. Si todos los routers tienen la misma prioridad entonces se usa el router con la dirección IP más alta. El grupo HSRP puede asignarse con un número que va desde 0 a 255, si no se indica por defecto el grupo es 0.

Cuando se configuran HSRP y STP es aconsejable configurar ambos en el dispositivo.HSRP solo puede configurarse en interfaces de capa 3 como pueden ser SVIs, interfaces de routing y etherchannels de capa 3.

Para configurar la prioridad usamos el comando:

Switch(config-if)# standby group priority priority

Cuando se configura el HSRP el router pasa por ciertos estado hasta que se vuelve activo, lo que permite al router escuchar a los otros routers del mismo grupo. Los estados por los que debe pasar son:

  1. Disabled
  2. (0) Init (El router empieza el proceso e indica que HSRP No está corriendo. Se cambia a este estado cambiando la configuración o una interface se levanta)
  3. (1) Learn (No se ha determinado la dirección IP Virtual y no ha visto aún un mensaje de autenticación hello del router activo. En este estado se está aún esperando oir algo del router activo)
  4. (2) Listen (El router conoce la dirección IP Virtual pero ni es es router activo ni standby. Escucha mensajes hello de otros routers. Routers que no sean activo o standby están en estado Listen)
  5. (4) Speak (El router envía mensajes hello periódicos y participa activamente en la elección de un router activo o standby. Cuando un router en standby se convierte en activo (preempted) el que estaba activo pasa a estado Speak. Un router no puede estar en modo Speak a menos que tenga la dirección IP Virtual)
  6. (8) Standby (El router es candidato a convertirse en el siguiente router activo y envía mensajes hello periodicamente. Por lo general debería haber al menos un router en el grupo en estado Standby)
  7. (16) Active (El router está actualmente enviando paquetes que son enviados a la dirección MAC Virtual del grupo. Envía mensajes hello periódicos. Por lo general debría haber al menos un router del grupo en estado Activo)

Por defecto los mensajes hello se envían cada 3 segundos, si no se reciben mensajes hello durante el periodo de tiempo indicado por holdtime (por defecto 10 segundos o 3 veces el tiempo de envío de los mensajes hello), se asume que el router activo está caído por lo que el router en standby toma el papel de activo.

Para cambiar los intervalos tanto de los mensajes hello como del holdtime (por defecto en segundos si no indicamos msec) podemos usar el comando:

Switch(config-if)# standby group timers [msec] hello [msec] holdtime

Normalmente cuando el router activo falla y el router standby se convierte en activo, cuando se recupera el router que era activo no puede volver a ser el router activo inmediatamente. Dicho de otra manera, si un router no es activo, no puede ser activo hasta que el actual router activo falla aunque éste (el que no es activo) tenga mayor prioridad que el router activo actual. Como caso curioso cuando los routers se encienden o se añaden a la red, el primero router que levanta su interface se convierte en el router activo HSRP incluso aunque su prioridad sea la más baja de todos los routers del grupo HSRP.

Podemos cambiar esta situación y que un router asuma el estado de activo (siempre que su prioridad sea la más alta) cuando se recupera o reinicia utilizando el parámetro peempt con este comando:

Switch(config-if)# standby group preempt [delay [minimum seconds] [reload seconds]]

Autenticación HSRP en plano

Los mensajes HSRP son enviados usando una clave en texto plano (que puede ser interceptada fácilmente) de hasta 8 caracteres. Para configurar esta clave usamos el comando:

Switch(config-if)# standby group authentication string

Autenticación MD5

Para reforzar la seguridad podemos usar claves en MD5 que son suficientemente fuertes y la configuramos con el comando:

Switch(config-if)# standby group authentication md5 key-sting [0 | 7] string

Concediendo la elección

HSRP tiene un mecanismo para detectar fallos de enlaces que permite cambiar la prioridad del router haciendo de este modo que pueda (o no) cambiar el estado, para ello podemos usar el comando:

Switch(config-if)# standby group track type mod/num [decrementvalue]

El valor por defecto de decrementvalue es de 10. Hay que tener en cuenta que este comando NO hace que cambie el estado del router solo decrementa la prioridad cuando un enlace falla y recupera el valor cuando el enlace vuelve a estar disponible.

Asignando direcciones al HSRP

Cada router del grupo HSRP tiene su propia y única dirección IP asignada al interface y además tienen una dirección IP común que es la puerta de salida (gateway) también llamada "dirección virtual del router (virtual router address)". Para asigna esta IP virtual usamos el comando:

Switch(config-if)# standby group ip ip-address [secondary]

Podemos añadir el parámetro "secondary" para agregar una segunda IP y así tener una puerta de salida (gateway) redundado.

Cada router tiene una única dirección MAC para su interface que es asociada a una dirección IP única. Para la dirección virtual HSRP define una dirección MAC especial con el formato 0000.0c07.acXX, donde XX es el número de grupo HSRP (en hexadecimal).

Balanceo de carga con HSRP

HSRP no soporta balanceo de carga pero se puede usar un truco que es dividir los servidores en 2 grupos y que cada grupo tenga una puerta de salida que ambas se configuran en los dos router pero con prioridad contraria para que así un grupo de servidores sale por un router y el otro por el otro router, si alguno de los dos routers falla el otro router asume ambos grupos que salen por el mismo y único router (al estar el otro caído).

Un ejemplo sería:

SwitchA(config)# interface vlan 69
SwitchA(config-if)# ip address 192.168.69.3 255.255.255.0
SwitchA(config-if)# standby 1 priority 200
SwitchA(config-if)# standby 1 preempt
SwitchA(config-if)# standby 1 ip 192.168.69.1
SwitchA(config-if)# standby 2 priority 100
SwitchA(config-if)# standby 2 ip 192.168.69.2

SwitchB(config)# interface vlan 69
SwitchB(config-if)# ip address 192.168.69.4 255.255.255.0
SwitchB(config-if)# standby 1 priority 100
SwitchB(config-if)# standby 1 ip 192.168.69.1
SwitchB(config-if)# standby 2 priority 200
SwitchB(config-if)# standby 2 preempt
SwitchB(config-if)# standby 2 ip 192.168.69.2

Protocolo de Redundancia de Router Virtual (VRRP)

VRRP (Virtual Router Redundancy Protocol) es un estándar que surge como alternativa a HSRP que está definido por IETF en el RFC 2338. Ambos protocolos son similares, aunque una diferencia es que VRRP puede ofrecer como IP virtual una virtual (al igual que HSRP) o la dirección IP del router activo.

VRRP ofrece dirección de la puerta de salida (gateway) redundante para un grupo de routers. El router activo se llama router maestro (master router) y es el que tiene mayor prioridad, mientras que los otros están en estado de backup (backup state). El número de grupo va de 0 a 255 y la prioridad va de 1 a 255 (siendo 255 la más alta) y por defecto es de 100. Si el router "master" falla anuncia una prioridad de 0 forzando la elección de un nuevo "master" entre los "backups" sin tener que esperar a que el "hold down timer" expire.

La dirección virtual MAC es de la forma 0000.5e00.01XX, donde XX son los 3 dígitos en hexadecimal del número de grupo VRRP. Los mensajes (hellos) son enviados cada 1 segundo.

Por defecto todos los routers VRRP están configurados para asumir el papel de master (siempre que tenga la mayor prioridad) lo que se llama preempt.

Al contrario que HSRP, VRRP no tiene forma de monitorizar interfaces.

EXAMEN: VRRP permite configurar un grupo de routers para formar un único router virtual y usar las direcciones IP de un router como Gateway.

Para configurar VRRP usamos el comando:

Switch(config-if)# vrrp group ip virtual-ip

Switch(config-if)# vrrp group priority priority

Los VRRP timers son anuncios o hellos cada segundo (por defecto), el intervalo "master down" es 3 veces el tiempo de los anuncios + el skew (basicamente lo mismo que el hold down timer del HSRP). El tiempo de "skew" es (256-prioridad)/256, se usa para asegurarse que la máxima prioridad del backup se convierte en master. Para configurar los anuncios usamos el comando:

Switch(config-if)# vrrp group advertise time-en-segundos

Gateway Load Balancing Protocol (GLBP)

Gateway Load Balancing Protocol (GLBP) es un protocolo propietario de Cisco diseñado para ofrecer balanceo de carga sin la limitaciones de HSRP (o VRRP). Al contrario que HSRP todos los routers están activos con lo cual el balanceo de carga se cumple entre todos los routers del grupo. NOTA: este protocolo no está soportado en los 4500, 6500 o Nexus.

Puerta de salida virtual activa (Active Virtual Gateway - AVG)

Uno de los routers del grupo GLBP, el que tenga mayor prioridad o en su defecto la IP más alta, es elegido como puerta de salida virtual activa (Active Virtual Gateway - AVG). El cometido del AVG es responder a todas las peticiones ARP de los servidores que llegan a la dirección del router virtual, luego dependiendo del algoritmo que se use este router AVG responderá con la MAC del router que corresponda al cual se enviarán los paquetes.

El router AVG asigna las direcciones MAC virtuales de cada router que participe en el grupo GLBP hasta un máximo de 4 direcciones MAC. Cada uno de estos 4 routers se llaman Active Virtual Forwarder (AVF). En caso de que haya más routers en el grupo GLBP se mantienen en backup o secundarios por si algún AVF falla y tenga que sustituirlo.

Para asignar la prioridad a un router en un grupo GLBP:

Switch(config-if)# glbp group priority level

El número de grupo GLBP va de 0 a 1023 y la prioridad de 1 a 255 (siendo 255 la máxima prioridad) que por defecto es de 100.

Al igual que el HSRP es necesario configurar el preempt para que un ruoter con mayor prioridad asuma su papel (en este caso de AVG), para ello usamos el comando:

Switch(config-if)# glbp group preempt [delay minimum seconds]

Los mensajes hello se envían cada 3 segundos a la dirección multicast 224.0.0.102 y en caso de que no se reciban durante un periodo de tiempo indicado por holdtime (que por defecto son 10 segundos) se considera que el router está caído. Para ajustar estos valores:

Switch(config-if)# glbp group timers [msec] hellotime [msec] holdtime

Los valores se asignan en segundos a menos que se especifique el parámetro msec entonces se indican en mili segundos. hellotime va de 1 a 60 segundos o de 50 a 60.000 mili segundos. holdtime debe ser mayor que hellotime y puede ir hasta 180 segundos o 180.000 mili segundos. Al igual que HSRP holdtime debe ser al menos tres veces mayor que hellotime.

Active Virtual Forwarder

Cada router que participa en el grupo GLBP puede ser un AVF que tendrá un aMAC virtual el formato 0007.b4xx.xxyy, donde xx.xx representan 6 ceros seguidos por 10 bits con el número de grupo del GLBP, yy representan 8 bits con el número de forwareder virtual (AVF).

Ajustar los temporizadores:

Switch(config-if)# glbp group timers redirect redirect timeout

Para definir la interface a comprobar:

Switch(config)# track object-number interface type mod/num {line-protocol | ip routing}

Para ajustar los pesos:

Switch(config-if)# glbp group weighting maximum [lower lower] [upper upper]

Indicar el objeto para que se ajuste los pesos:

Switch(config-if)# glbp group weighting track object-number [decrement value]

Cuando el objeto comprobado falla se decrementa la cantidad indicado por value (que va de 1 a 254 y por defecto es 10).

Balanceo de Carga GLBP

Se pueden configurar uno de estos métodos de balanceo de carga:

Para configurar el método de balanceo:

Switch(config-if)# glbp group load-balancing [round-robin | weighted | host-dependent]

Activando GLBP

Para activar GLBP se debe asignar una dirección IP virtual al grupo con el comando:

Switch(config-if)# glbp group ip [ip-address [secondary]]

Si no se indica la dirección IP se aprende de otro router del grupo. Si por el contrario este router va a ser el AVG se debe configurar la IP explícitamente.

Redundancia del procesador de rutas y la supervisora

Los protocolos HSRP, VRRP y GLBP ofrecen redundancia para la dirección de la puerta de salida (gateway) pero si alguno de los dispositivos que ofrecen esta dirección falla debemos tener otros dispositivos para que sigan ofreciendo la redundancia y no se queda un solo dispositivo. Pero también podemos redundar la supervisora del dispositivo para que en caso de que falle no haya problema con lo que se consigue doble redundancia.

Supervidora del switch redundante

Podemos usar estos modos de redundancia en un switch Catalyst:

Para configurar la redundancia de la supervisora primero entramos en el modo redundancia y luego activamos el modo con estos 2 comandos:

Router(config)# redundancy
Router(config-red)# mode {rpr | rpr-plus | sso}

Y para ver el modo y estado de la redundancia:

Router# show redundancy states

Configurar la sincronización de la supervisora

Por defecto la supervisora activa sincroniza su configuración startup y los valores de los registros pero se pueden especificar otra información a sincronizar:

Router(config)# redundancy
Router(config-red)# main-cpu
Router(config-r-mc)# auto-sync {startup-config | config-register | bootvar}

Nonstop Forwarding (NSF)

Además de la redundancia SSO (en Catalyst 4500R y 6500), que es para capa 2, podemos activar NonStop Forwarding (NSF) que es para capa 3 y un método que reconstruye rápidamente la tabla de Routing Information Base (RIB) cuando se conmutan las supervisoras. La tabla RIB se usa para generar la tabla FIB para CEF la cual se descarga a cualquier módulo de switch o hardware que ofrece CEF. Usando en conjunción SSO y NSF se pierden cero o casi cero paquetes durante la transición.

Se pueden configurar los protocolos de routing (EIGRP, OSPF, IS-IS, BGP) para que en caso de que haya una transición de supervisora en un router con soporte de NSF, éste envíe unos paquetes especiales que fuerzan actualizaciones de routing desde los vecinos sin que se reinicien las relaciones de peers y previniendo cambios y flapping de rutas.

Para activar Nonstop Forwarding (NFS) en el protocolo BGP es un poco diferente del resto:

Router(config)# router bgp as-number
Router(config-router)# bgp graceful-restart

Para activar Nonstop Forwarding (NFS) en el protocolo EIGRP:

Router(config)# router eigrp as-number
Router(config-router)# nsf

Para activar Nonstop Forwarding (NFS) en el protocolo OSPF:

Router(config)# router ospf process-id
Router(config-router)# nsf

Para activar Nonstop Forwarding (NFS) en el protocolo IS-IS:

Router(config)# router isis [tag]
Router(config-router)# nsf [cisco | ietf]
Router(config-router)# nsf interval [minutes]
Router(config-router)# nsf t3 {manual [seconds] | adjacency}
Router(config-router)# nsf interface wait seconds
Modificado el 3 Enero, 2015
   

Compartiendo conocimiento desde 1995 - I.M.D. I.M.D.