Unidad 04 — Redundancia en redes de datos

El objetivo de la redundancia es asegurar la continuidad del funcionamiento ante un fallo simple (un fallo en un punto específico de la red), previendo caminos alternativos que se utilicen automáticamente si los actuales dejan de estar disponibles. Este curso analiza la redundancia en tres niveles: dentro de la LAN (protocolos de primer salto redundante: HSRP, VRRP, GLBP), entre Sistemas Autónomos (multihoming con BGP) y en sistemas de servidores (Round Robin de DNS, Anycast, Server Load Balancing).

Conceptos clave

HSRP (Hot Standby Router Protocol)
Mecanismo propietario de Cisco (1994, RFC 2281) que provee una salida redundante a los hosts de una LAN mediante una IP y una MAC virtuales compartidas por un router activo y uno standby.
VRRP (Virtual Router Redundancy Protocol)
Mecanismo creado por IETF en 1999 (RFC 3768), similar a HSRP pero de múltiples proveedores (no propietario), con temporizadores más rápidos por defecto.
GLBP (Gateway Load Balancing Protocol)
Mecanismo de Cisco (2005) que permite balance de carga real del default gateway sin necesidad de definir múltiples grupos (a diferencia de MHSRP), usando los roles AVG y AVF.
AVG y AVF (terminología GLBP)
AVG (Active Virtual Gateway): responde las solicitudes ARP a la IP virtual y asigna a cada router del grupo una MAC virtual distinta. AVF (Active Virtual Forwarder): router responsable de reenviar el tráfico dirigido a una de esas MAC virtuales (hasta 4 AVF por grupo).
MHSRP (Multi-group HSRP)
Balanceo de carga mediante dos (o más) grupos HSRP independientes en la misma LAN: un router es activo en un grupo y standby en el otro, y viceversa. Distintos hosts usan distinta IP virtual como default gateway.
Multihoming
Redundancia de proveedores de acceso a Internet mediante BGP, empleando un número de Sistema Autónomo público para identificar el origen de las publicaciones de direcciones propias.
Round Robin de DNS
Tener más de un registro DNS para un mismo nombre, devolviendo la lista en distinto orden en cada consulta. No detecta fallos de servidor ni asegura balance real de carga.
Anycast
Replicar servidores con el mismo direccionamiento IP; el cliente accede por el camino de menor métrica. Requiere dejar de anunciar la ruta ante una caída, y solo sirve para servicios resolubles con un solo paquete (falta de persistencia), típicamente DNS.
SLB (Server Load Balancing)
Granja de servidores reales detrás de un balanceador de carga accesible mediante una única IP virtual, que reparte el tráfico entre ellos.

HSRP — Hot Standby Router Protocol

HSRP involucra dos routers: uno será el activo y el otro permanecerá en standby para intervenir en caso de fallo del activo. Los hosts configuran como default gateway la IP virtual de HSRP; ambos routers también tienen sus propias IP en la LAN. Los equipos deben poder verse por la LAN e intercambian sus parámetros de configuración mediante paquetes de hello (cada 3 segundos), con un hold timer de 10 segundos que determina cuándo el standby debe pasar a activo si dejó de escuchar hellos.

El router activo responde las solicitudes de ARP con una dirección MAC virtual (formato 0000.0C07.ACxx, donde xx es el número del grupo standby), independiente de la MAC propia del router. Al conmutar el rol de activo, el nuevo activo envía un ARP gratuito con la MAC virtual para que los switches actualicen sus tablas y redirijan el tráfico dirigido a esa MAC por el puerto correspondiente. La prioridad determina quién es el activo (gana la mayor); standby preempt permite que un router recupere el rol de activo si vuelve a estar disponible con mayor prioridad que el activo actual.

Diagrama de funcionamiento básico de HSRP con router activo R1 y standby R2, y configuración de ambos
Funcionamiento básico de HSRP: R1 activo (priority 110, preempt), R2 standby (priority 105), IP virtual 192.168.0.1.

Nótese que HSRP solo afecta el tráfico saliente de la LAN. La redundancia para el tráfico entrante se logra por medio de los anuncios de las rutas de la LAN a través de ambos routers (vía el IGP correspondiente).

¿Qué pasa si el router activo pierde su uplink?

Opción 1: R1 activo pierde el uplink pero tiene ruta alternativa a través de R2
Opción 1: si R1 (activo) tiene una ruta alternativa vía R2 gracias a un protocolo de ruteo interno, redirige el tráfico saliente a R2 aunque sigue siendo el activo HSRP (todo el tráfico de la LAN sigue pasando por R1).
Opción 2: tracking del uplink como parte de HSRP, R1 baja su prioridad y R2 pasa a activo
Opción 2: standby <grupo> track <interfaz> hace que R1 disminuya su prioridad (10 por defecto) al caer el uplink, permitiendo que R2 (con preempt) tome el rol de activo directamente.

La opción de tracking evita que R1 siga cursando tráfico "en desvío" hacia R2 y hace que el router sin salida deje de ser el activo HSRP.

Laboratorio: configuración y verificación

Topología de laboratorio HSRP con R1 y R2, configuración de ambos y salida de show standby brief
Topología de laboratorio con configuración de R1 (priority 110, preempt) y R2 (priority 105), y verificación con show standby brief: R1 aparece como Active (local), R2 como Standby.
R1
interface FastEthernet1/0
  ip address 10.0.1.2 255.255.255.0
  standby 1 ip 10.0.1.1
  standby 1 priority 110
  standby 1 preempt

R2
interface FastEthernet1/0
  ip address 10.0.1.3 255.255.255.0
  standby 1 ip 10.0.1.1
  standby 1 priority 105

R1#show standby brief
Interface  Grp  Pri P State   Active     Standby   Virtual IP
Fa1/0      1    110 P Active  local      10.0.1.3  10.0.1.1

MHSRP: redundancia + balanceo de carga

En HSRP es posible definir instancias (grupos) independientes, de modo de tener dos parejas diferentes de direcciones IP y MAC virtuales. Uno de los routers será el activo para una de esas parejas, y el otro lo será para la otra. En parte de los hosts se configura como default gateway una de las direcciones IP virtuales, y en el resto la otra, repartiendo así el tráfico saliente entre ambos routers.

Diagrama de MHSRP con dos grupos HSRP, R1 activo del grupo 2 y standby del grupo 1, R2 activo del grupo 1 y standby del grupo 2
MHSRP: R1 es activo del grupo 2 (IP virtual .12) y standby del grupo 1; R2 es activo del grupo 1 (IP virtual .11) y standby del grupo 2. Una parte de los hosts usa .11 como gateway, y el resto .12.
Router R1                              Router R2
interface Ethernet0/0                  interface Ethernet0/0
 ip address 192.168.0.2 255.255.255.0   ip address 192.168.0.3 255.255.255.0
 standby 1 priority 110                 standby 1 priority 105
 standby 1 preempt                      standby 1 ip 192.168.0.11
 standby 1 ip 192.168.0.11              standby 2 priority 110
 standby 2 priority 95                  standby 2 preempt
 standby 2 ip 192.168.0.12              standby 2 ip 192.168.0.12

VRRP y GLBP

VRRP — Virtual Router Redundancy Protocol

VRRP es un mecanismo creado por IETF en 1999 (RFC 3768), similar a HSRP pero utilizado por equipos de múltiples proveedores (no es propietario). Tiene temporizadores más rápidos que HSRP por defecto: hello cada 1 segundo. El hold timer se calcula como Hold time = 3 × Advertisement + tiempo skew, donde el tiempo skew permite que cada router difiera del resto en el tiempo total que espera, siendo inversamente proporcional a la prioridad.

Diagrama básico de VRRP con router activo A, virtual y standby B
VRRP: router A activo (10.0.0.2), router virtual (10.0.0.1) y router B standby (10.0.0.3).
Router A                                Router B
interface Ethernet0/0                   interface Ethernet0/0
 ip address 10.0.0.2 255.255.255.0       ip address 10.0.0.3 255.255.255.0
 vrrp 1 preempt                          vrrp 1 preempt
 vrrp 1 priority 110                     vrrp 1 priority 105
 vrrp 1 ip 10.0.0.1                      vrrp 1 ip 10.0.0.1

GLBP — Gateway Load Balancing Protocol

GLBP es un mecanismo de Cisco (2005), desarrollado a partir de HSRP, que permite efectuar balance de carga sin necesidad de crear múltiples grupos (a diferencia de MHSRP), pudiendo definir hasta 1024 grupos. Permite el envío de mensajes autenticados mediante MD5. Los routers GLBP emplean por defecto la dirección multicast 224.0.0.102 para enviar hellos a sus peers, cada 3 segundos, mediante UDP puerto 3222 (origen y destino).

Terminología: AVG (Active Virtual Gateway) asigna a cada router del grupo una MAC virtual única (formato 0007.B400.xxYY, donde xx es el número de grupo GLBP e YY el número propio de cada router), y es responsable de operar el protocolo. AVF (Active Virtual Forwarder): dentro de cada grupo se elige un router AVF para cada dirección MAC virtual, responsable de reenviar los paquetes enviados a esa MAC; pueden existir hasta 4 AVF por grupo. Solo hay una IP virtual (vIP) por grupo, con al menos un miembro.

Diagrama de GLBP con un router AVG/AVF y otros dos routers AVF adicionales
GLBP: un router es AVG y AVF (1.1) a la vez; los otros son solo AVF (1.2 y 1.3). Todos comparten la misma IP virtual (router virtual).

GLBP admite tres algoritmos de balance de carga para adaptarse a distintos entornos:

Ejemplo de configuración de GLBP con balanceo ponderado (weighting, track) en los routers AVG y AVF1
Configuración de GLBP con balanceo ponderado: glbp 1 load-balancing weighted, glbp 1 weighting <peso> lower <n> upper <n> y glbp 1 weighting track <objeto> decrement <n>.
Comparación HSRP / VRRP / GLBP
CaracterísticaHSRPVRRPGLBP
OrigenCisco (1994, RFC 2281)IETF (1999, RFC 3768)Cisco (2005)
Hello / Hold3 s / 10 s1 s / 3×Advert.+skew3 s (UDP 3222, multicast 224.0.0.102)
Balance de cargaSolo con múltiples grupos (MHSRP)Solo con múltiples grupos (similar a MHSRP)Nativo, sin múltiples grupos (hasta 1024 grupos, hasta 4 AVF)
RolesActivo / StandbyMaster / BackupAVG (gateway) / AVF (hasta 4 forwarders)
MAC virtualUna sola (0000.0C07.ACxx)Una solaUna por AVF (hasta 4)

Multihoming: redundancia entre Sistemas Autónomos

Cuando se desea disponer de redundancia de proveedores de acceso a Internet, se debe emplear BGP en modalidad de multihoming, lo cual implica el empleo de un número de Sistema Autónomo público para identificar el origen de las publicaciones de direcciones. En cualquier caso, interesa que se evite el tránsito de tráfico de otros AS a través del AS propio, lo cual resultaría en un consumo indeseado de recursos de la red.

Diagrama de multihoming con AS 63036 conectado a dos ISP (AS 65000 y AS 64250)
Multihoming: el AS 63036 (propio) se conecta a dos ISP distintos (AS 65000 y AS 64250) para tener redundancia de acceso a Internet.

Control de tráfico saliente: tres alternativas de recepción

Se presentan tres alternativas de acceso, según qué rutas se reciben de los proveedores:

  1. Solo rutas default: se acepta solamente 0.0.0.0/0 de cada proveedor mediante una prefix-list, y el router local elige la de menor métrica IGP.
  2. Rutas directamente conectadas (partial routing): además de la default, se aceptan las rutas originadas en cada AS proveedor (filtradas por AS-Path con as-path access-list), permitiendo elegir el AS-Path más corto para esos destinos.
  3. Rutas completas de todos los proveedores (full routing): se recibe la tabla completa de Internet de ambos proveedores, sin restricción, y BGP elige por AS-Path más corto (u otros atributos) para cualquier destino.
Diagrama de tráfico saliente con rutas por defecto de todos los proveedores
A — Rutas por defecto de todos los proveedores. El AS elige la default con menor métrica IGP.
Diagrama de tráfico saliente con rutas por defecto y de clientes de cada proveedor (partial routing)
B — Rutas por defecto + rutas de clientes de cada proveedor (partial routing). Se elige el AS-Path más corto.
Diagrama de tráfico saliente con rutas completas de todos los proveedores (full routing)
C — Rutas completas de todos los proveedores (full routing): se elige el AS-Path más corto entre todas las rutas disponibles a Internet.
! Configuración para recibir sólo rutas default
router bgp 63036
 network 1.0.0.0
 network 2.0.0.0
 neighbor 10.10.10.10 remote-as 64250
 neighbor 10.10.10.10 route-map sololocal out
 neighbor 10.10.10.10 prefix-list DEFAULT in
 neighbor 20.20.20.20 remote-as 65000
 neighbor 20.20.20.20 route-map sololocal out
 neighbor 20.20.20.20 prefix-list DEFAULT in
!
ip prefix-list DEFAULT seq 5 permit 0.0.0.0/0

Control de tráfico entrante

Si se desea que el tráfico a distintos destinos de una red tenga distintos puntos de ingreso, pero con posibilidad de redundancia en caso de fallos, se puede publicar rutas con distinta especificidad por cada punto de ingreso: por cada punto se publica la ruta específica a la que se desea que se dirija el tráfico entrante por ese punto, además de la sumarización de los bloques por todos los puntos. Ante el fallo de un punto de ingreso, el tráfico que normalmente entraba por él seguirá llegando por el otro, porque el bloque sumarizado sigue publicándose.

Diagrama de tráfico entrante con publicaciones de distinto grado de especificidad
Tráfico entrante con distinta especificidad: 100.0.0.0/24 entra por la izquierda y 100.0.1.0/24 por la derecha; si un enlace cae, el bloque sumarizado /23 mantiene la redundancia.

Otra alternativa consiste en el empleo de prepends selectivos: se aplican prepends de AS-Path a un rango de direcciones hacia un proveedor (para desalentar la entrada por ese enlace) y al rango complementario hacia el otro proveedor, logrando así un reparto de carga entrante con redundancia.

Diagrama de tráfico entrante empleando publicaciones con y sin prepends
Tráfico entrante con prepends: el bloque 100.0.1.0/24 se publica con prepends hacia el AS 65000 (por la izquierda) y sin prepends hacia el otro vecino (por la derecha), y viceversa para 100.0.0.0/24.
route-map Prepends1 permit 10
 match ip address 1
 set as-path prepend 63036 63036 63036 63036
!
access-list 1 permit 100.0.0.0 0.0.0.255

Redundancia en sistemas de servidores

Round Robin de DNS

Consiste en tener más de un registro DNS para un mismo nombre, de modo que cada uno devuelve una dirección IP diferente. Ante una consulta, el DNS devuelve la lista de registros haciendo una permutación circular en cada respuesta, para variar el orden. El cliente utilizará en primer lugar la primera opción de la lista, y solo recurrirá a la siguiente si la primera falla.

Como desventaja: si un servidor falla, el DNS seguirá informando su dirección (no hay detección de caída), el comportamiento de los clientes ante la lista no está estandarizado, y si existen sistemas de caché de respuestas DNS de por medio, la distribución de carga puede desequilibrarse porque se tiende a reiterar el uso de ciertas direcciones que quedan en memoria.

Diagrama de Round Robin de DNS con dos servidores y direcciones distintas para el mismo nombre
Round Robin de DNS: dos registros A para www.web.com, cada cliente recibe la lista en un orden distinto.

Anycast

Consiste en tener replicados los servidores con el mismo direccionamiento IP. El cliente accederá al servidor por el camino de menor métrica en la red. Si un servidor falla, es necesario que la ruta al mismo deje de anunciarse; esto se logra en general implementando enrutamiento mediante el sistema operativo del servidor, controlando las rutas que publica según la disponibilidad del servicio.

Una limitación del mecanismo es la falta de "persistencia": si un cliente necesita enviar más de un paquete en una misma consulta y la red hace balance de carga, un paquete podría llegar a un servidor y el siguiente a otro que no entendería de qué se trata, descartándolo. Por esa razón, este mecanismo se emplea solo para consultas resolubles con un solo paquete de solicitud, como suele suceder en servicios de DNS.

Diagrama de Anycast con dos servidores replicados con la misma dirección IP
Anycast: Servidor A y Servidor B replican la misma dirección IP 200.0.0.1; cada cliente llega al más cercano según la ruta de menor métrica.

Server Load Balancing (SLB)

Independientemente de que se use Anycast o Round Robin, la implementación de un servicio suele consistir en una granja de servidores detrás de un balanceador de carga. Los servidores reales son los que responden a las consultas de los clientes, pero es el balanceador el que las recibe y reparte la carga entre ellos; el servicio siempre es accesible a través de una única dirección IP virtual.

Diagrama de Server Load Balancing con un balanceador y una granja de servidores
SLB: el balanceador de carga recibe todo el tráfico por la IP virtual 100.0.0.1 y lo reparte entre la granja de servidores (.100 a .103).
Algoritmos de balanceo en granjas de servidores
AlgoritmoDescripciónFuncionamiento
Weighted Round RobinAsigna conexiones a servidores en modo circular según su pesoCada servidor recibe n conexiones (donde n es su peso) antes de pasar al siguiente
Weighted Least ConnectionsSelecciona servidores basándose en su capacidad y conexiones actualesElige el servidor más alejado de su límite de conexiones según su peso n y la fórmula n/(n1+n2+n3...)
Port-Round ServersDefine conjuntos de servidores virtuales y realesPermite que diferentes servicios o direcciones IP apunten a distintos conjuntos de servidores reales
Client-Assigned Load BalancingRestringe el acceso de clientes a servidores específicosDefine una lista de clientes con permiso para acceder a un servidor virtual
Sticky ConnectionsMantiene la persistencia de conexionesGarantiza que un cliente sea atendido por el mismo servidor que lo atendió previamente hasta que expire el "sticky timer"
Automatic Server Failure DetectionDetecta y gestiona servidores caídosContabiliza sesiones TCP fallidas y marca servidores como caídos si superan el "failure threshold"
Automatic UnfailReincorpora servidores caídosTras superar el "retry timer" el sistema vuelve a enviar conexiones al servidor removido de la lista. Si las conexiones son exitosas lo devuelve a la lista de servidores activos
Stateless BackupProporciona redundancia para balanceadores de cargaImplementa redundancia mediante HSRP en switches de capa 3
Tabla original del curso con los algoritmos de balanceo de carga de una granja de servidores
Tabla original del curso: algoritmos de balanceo en una granja de servidores.

Cheat sheet — Redundancia