Alta disponibilidad para VoIP: estrategias de conmutación por error

Servidores SBC activo y en standby conectados por un haz de sincronización azul, ilustrando la alta disponibilidad VoIP y la arquitectura de conmutación por error

Una sola interrupción de señalización en una red de voz ocupada no falla en silencio. Los registros expiran en ciclos, el tono de marcado desaparece para miles de usuarios a la vez, y la cola de soporte se enciende antes de que alguien tenga tiempo de leer un tablero. La voz es uno de los servicios más implacables del stack para operar, porque cada falla la siente un humano en una llamada en curso.

Por eso la alta disponibilidad (HA) en VoIP es tan importante al evaluar funcionalidades. Es una disciplina compuesta por cuatro partes: detectar la falla, redirigir el tráfico, preservar la mayor cantidad de estado de llamada que sea práctico, y recuperarse limpiamente cuando el nodo fallido regresa. En este artículo, le guiaremos a través de la mecánica de la conmutación por error y redundancia del SBC tal como se implementa en la práctica, y las estrategias entre las que los arquitectos VoIP eligen en producción. Es particularmente útil para quienes deciden qué tipo de HA necesita su red de voz.

Términos y conceptos clave
Un glosario de referencia rápida para los términos utilizados en este artículo.
Alta disponibilidad (HA) Una disciplina de diseño que mantiene un servicio accesible a través de fallas de componentes individuales, típicamente medida por objetivos de disponibilidad (frecuentemente los cinco nueves, 99.999 %) y un objetivo de tiempo de recuperación en segundos.
Controlador de borde de sesión (SBC) Un dispositivo B2BUA que se ubica en el borde SIP de una red de voz y termina la señalización y los medios en ambos tramos. La HA en la capa del SBC protege todo el perímetro de voz, no solo el equipo en sí.
Objetivo de tiempo de recuperación (RTO) La cantidad máxima de tiempo que un servicio puede estar no disponible durante una conmutación por error. Para voz, el RTO está determinado por el mecanismo de detección más lento de la cadena.
VRRP Virtual Router Redundancy Protocol. Se utiliza para compartir una IP virtual entre dos nodos en el mismo segmento de Capa 2 para conmutación por error a nivel IP en menos de un segundo.
BFD Bidirectional Forwarding Detection. Un protocolo ligero para detección rápida de fallas de ruta entre dos terminales, frecuentemente utilizado para impulsar el enrutamiento o la conmutación por error del siguiente salto.
Keepalive SIP OPTIONS Una solicitud periódica SIP OPTIONS enviada a un par para confirmar que aún está accesible y dispuesto a recibir llamadas.
Activo-standby (1+1) Un patrón de redundancia donde un nodo transporta el tráfico y un segundo nodo espera en caliente, listo para asumir el control. Predecible y simple, con capacidad inactiva en estado estable.
Activo-activo Un patrón de redundancia donde múltiples nodos transportan tráfico al mismo tiempo y absorben la carga del otro en caso de falla. Mejor utilización de hardware, gestión de estado más compleja.
Preservación de llamadas La propiedad de que las llamadas en curso sobrevivan a una conmutación por error, típicamente porque los flujos de medios continúan mientras la señalización reconverge en segundo plano.
Redundancia geográfica Redundancia a través de dos o más sitios o regiones, protegiendo contra la pérdida de un centro de datos completo en lugar de un solo nodo.
Split-brain El modo de falla donde ambos miembros de un par redundante creen que son el nodo activo, generalmente porque el enlace entre nodos ha fallado.
Failback Devolver el tráfico al nodo primario recuperado después de una conmutación por error. Puede ser manual (el operador decide) o automático (regresa al restaurarse la salud).

Qué significa la alta disponibilidad para la voz en tiempo real

En un protocolo con estado como SIP, “el equipo está arriba” no es una definición útil de disponibilidad. Un controlador de borde de sesión (SBC) que se ha reiniciado en menos de treinta segundos aún ha eliminado cada llamada activa y registro que tenía. Para voz en tiempo real, la alta disponibilidad significa tres cosas a la vez: las llamadas en curso sobreviven (o, como mínimo, fallan de manera predecible), los registros permanecen válidos durante el evento, y los nuevos INVITE aterrizan en un nodo funcional dentro de un presupuesto de tiempo ajustado.

La disciplina toma sus expectativas de una era anterior. Las redes de voz de operadores fueron diseñadas para un objetivo de disponibilidad de “cinco nueves” en TDM, y los estándares SIP que las reemplazaron (notablemente RFC 3261) llevaron esas expectativas adelante. TelcoBridges tiene más de veinte años de experiencia en implementación SIP en producción detrás de ProSBC, y cada decisión de diseño de HA en este artículo está moldeada por esa misma presión de cinco nueves.

Tres términos se confunden lo suficientemente a menudo como para valer la pena separarlos desde el principio. Alta disponibilidad cubre la redundancia a nivel de componente dentro de un solo sitio o par estrechamente acoplado, con conmutación por error medida en segundos. Recuperación ante desastres aplica a la pérdida a nivel de sitio y se mide en minutos u horas. Balanceo de carga distribuye el tráfico entre múltiples nodos saludables por capacidad, no por redundancia. Un buen diseño utiliza los tres deliberadamente, no de forma intercambiable.

Cómo un SBC detecta la falla (la parte que realmente define el RTO)

La detección es la palanca más importante en el tiempo de recuperación. Un par de HA puede estar configurado perfectamente y aún tomar cuarenta y cinco segundos para la conmutación por error porque el intervalo del heartbeat se configuró de forma demasiado conservadora. Tres mecanismos hacen el trabajo pesado en implementaciones modernas de SBC, y la mayoría de los entornos de producción usan una combinación.

VRRP e IP virtuales compartidas manejan la conmutación por error a nivel IP en menos de un segundo entre nodos emparejados en el mismo segmento de Capa 2. El nodo en standby toma la propiedad de la IP virtual en milisegundos tras detectar el silencio del primario en el heartbeat multicast. Este es el mecanismo más rápido disponible, pero solo funciona cuando ambos nodos comparten un segmento de red, lo que lo limita a pares de HA locales.

Bidirectional Forwarding Detection (BFD) cubre la detección de fallas de ruta en la capa de enrutamiento para implementaciones más grandes o enrutadas. BFD intercambia paquetes de heartbeat muy cortos entre dos terminales (intervalos de 50 ms son típicos, con un multiplicador de 3 para el dead-timer), y una sesión cae en aproximadamente 150 ms cuando el par deja de responder. El protocolo está especificado en RFC 5880 y es ampliamente utilizado para impulsar la conmutación por error del siguiente salto BGP cuando un SBC se ubica detrás de un fabric de enrutamiento.

Keepalives SIP OPTIONS cubren la verificación de vida a nivel de aplicación hacia operadores upstream y PBX o clústeres IP-PBX downstream. El SBC envía una solicitud OPTIONS periódica a cada par registrado; una respuesta perdida (o una serie de respuestas perdidas) marca a ese par como caído y activa el re-enrutamiento en los grupos de troncales afectados. Los intervalos de OPTIONS generalmente se miden en decenas de segundos en lugar de milisegundos, porque la solicitud cruza Internet público o una red de operador, y los intervalos agresivos crean carga de señalización que el lado upstream no aprecia.

La compensación de ajuste es la misma en los tres: los intervalos agresivos detectan fallas rápido pero producen falsos positivos durante la congestión transitoria, mientras que los intervalos conservadores son estables pero estiran el RTO. Los operadores casi siempre comienzan demasiado conservadores en la primera implementación y ajustan los dead-timers después de que la primera interrupción real expone lo lenta que era la detección en realidad.

Activo-standby vs. activo-activo

Dos patrones de redundancia dominan la arquitectura del SBC, y hacen compensaciones muy diferentes.

Activo-standby (también llamado 1+1) es el patrón que utilizan la mayoría de las implementaciones de SBC empresarial y de acceso. Un nodo transporta todo el tráfico de producción; el segundo espera en caliente, sincronizando estado, y asume el control cuando el primario falla. El modelo es simple de razonar, el comportamiento de conmutación por error es predecible, y la planificación de capacidad es fácil porque cada nodo debe estar dimensionado para transportar la carga completa de producción solo. El costo es que la mitad de la capacidad licenciada está inactiva en estado estable.

Activo-activo (a veces N+1 o en clúster) distribuye el tráfico entre todos los nodos del clúster. Cada nodo transporta una parte de la carga de producción, y ante una falla de un solo nodo los nodos sobrevivientes absorben el tráfico huérfano. La utilización de hardware es mucho mejor, pero la distribución de estado es más difícil, porque cada nodo necesita una vista consistente de los registros, los diálogos y (para el manejo de medios con estado) el contexto de medios. Los escenarios de split-brain se convierten en modos de falla reales, especialmente a través de enlaces de mayor latencia.

Dónde encaja cada patrón es una función del rol de implementación. Los SBC de acceso ubicados frente a un IP-PBX o centro de contacto casi siempre ejecutan 1+1 porque la simplicidad importa más que la capacidad inactiva. Los SBC de interconexión en el borde del operador frecuentemente ejecutan activo-activo a través de múltiples nodos porque los volúmenes de tráfico justifican la complejidad operativa. Las implementaciones de Enrutamiento directo de Microsoft Teams (Direct Routing) y los servicios gestionados multiinquilino aterrizan en cualquiera de los patrones dependiendo de si los inquilinos comparten infraestructura o cada uno obtiene su propio par.

Redundancia geográfica: cuando un par local no es suficiente

Un par 1+1 ubicado en el mismo rack no ayuda si el centro de datos pierde energía, la refrigeración falla, o un evento de mantenimiento de red deja todo el sitio fuera de línea. La redundancia geográfica es un problema separado de la HA local, y se resuelve con herramientas diferentes. Los SBC implementados en la nube han hecho que los diseños geo-redundantes sean más accesibles al permitir que el segundo sitio resida en una región de nube diferente en lugar de un segundo centro de datos físico, pero los patrones arquitectónicos son los mismos.

Dos patrones son comunes. Activo/pasivo entre sitios ejecuta la producción en una ubicación con un sitio caliente listo para asumir el control vía DNS, retiro de BGP anycast o enrutamiento de conmutación por error del lado del operador. El cambio de sitio generalmente es orquestado en lugar de instantáneo, y el RTO termina en minutos en lugar de segundos. La simplicidad operativa es real, y muchas implementaciones empresariales se detienen aquí.

Activo/activo entre sitios ejecuta tráfico concurrente en dos regiones, frecuentemente con balanceo de carga del lado del operador dividiendo llamadas por código de área, por inquilino, o simplemente por DNS ponderado por salud. La conmutación por error es más rápida, pero la consistencia de la ruta de medios se vuelve más difícil, porque la latencia entre sitios afecta la calidad de voz, las opciones de códec deben ser consistentes en ambas regiones, y las obligaciones de interceptación legal pueden diferir por jurisdicción. La prevención de split-brain también se vuelve más difícil, y la mayoría de los diseños activo/activo entre sitios incluyen un testigo o mecanismo de quórum (a veces arbitraje del lado del operador) para manejar la falla del propio enlace entre sitios.

Vale la pena notar que la respuesta más limpia para algunos modos de falla no está en la capa del SBC en absoluto. Tener múltiples troncales SIP con enrutamiento basado en prioridad protege contra la falla del lado del operador tanto como contra la falla del SBC, y el motor de enrutamiento dentro del SBC maneja el cambio sin que se involucre ningún evento de HA. La redundancia de troncales SIP y la HA del SBC son complementarias, no sustitutos.

Planificación práctica de conmutación por error

Tres detalles operativos separan los diseños de HA que funcionan de los diseños de HA que se ven bien en una diapositiva.

Capacidad para conmutación por error requiere dimensionar el nodo sobreviviente para absorber el tráfico del nodo fallido. Un par donde cada nodo opera al 80 % de la capacidad en estado estable no puede sobrevivir una pérdida de un solo nodo, porque el sobreviviente necesitaría transportar 160 % en el límite de llamadas por segundo, el techo de sesiones simultáneas y el pool de transcodificación de medios. La planificación de capacidad útil apunta a que cada nodo esté a no más del 50 % de su máximo nominal bajo condiciones normales.

Comportamiento de failback cubre lo que sucede cuando el nodo fallido se recupera. El failback manual deja que el operador decida cuándo devolver el tráfico, lo que evita el modo de falla donde un nodo se recupera, toma tráfico, falla de nuevo y oscila. El failback automático es conveniente pero se convierte en una interrupción real si la condición de salud subyacente es intermitente.

Pruebas de simulacro es la parte que la mayoría de los operadores omiten hasta que una interrupción los avergüenza. La HA que nunca se ejercita es HA que en realidad no se ha comprobado. Los simulacros trimestrales de conmutación por error forzada (y al menos un ejercicio completo de DR con falla de sitio por año) son la forma en que un arquitecto verifica que la configuración coincide con el diseño y que el runbook aún funciona.

Preguntas frecuentes

¿Cuál es la diferencia entre alta disponibilidad del SBC y redundancia de troncales SIP?

La HA del SBC protege contra la falla del propio SBC (el nodo, el software, la red local en la que reside). La redundancia de troncales SIP protege contra la falla del operador upstream o la ruta de red del operador. Resuelven problemas diferentes, y un diseño confiable usa ambos: un par de SBC con HA enrutando a través de dos o más troncales SIP independientes.

¿Cuánto tiempo toma realmente la conmutación por error de un SBC?

Depende del mecanismo de detección. VRRP en un segmento compartido puede cambiar la propiedad de IP en mucho menos de un segundo. La conmutación por error de enrutamiento impulsada por BFD es típicamente de cientos de milisegundos. La conmutación por error impulsada por SIP OPTIONS para pares upstream es generalmente de decenas de segundos, porque el intervalo del keepalive debe equilibrar la velocidad de detección contra la carga de señalización en la ruta pública. La detección más lenta en la cadena establece el RTO real.

¿La HA preserva las llamadas en curso o solo la siguiente llamada?

Eso depende del nivel de supervivencia para el que esté configurado el SBC. Muchos diseños de HA en producción preservan los flujos de medios (RTP sigue retransmitiendo durante la conmutación por error) mientras la señalización reconverge en segundo plano. La preservación completa tanto de señalización como de medios sin renegociación requiere replicación de estado síncrona y es genuinamente más difícil, especialmente con SRTP y TLS involucrados.

¿Necesito redundancia geográfica si ya tengo un par de HA 1+1?

Un par de HA local protege contra la falla de un solo nodo. No protege contra una interrupción de sitio (energía, refrigeración, mantenimiento de red o falla regional de nube). Si la redundancia geográfica está justificada depende del costo para el negocio de una interrupción de sitio de varias horas versus el costo operativo de ejecutar activo/pasivo o activo/activo en dos regiones. Muchas implementaciones empresariales aceptan un par local 1+1 más un procedimiento manual de DR documentado; los operadores y centros de contacto que manejan tráfico regulado generalmente no.

Conclusión

La alta disponibilidad VoIP es un conjunto de decisiones, no una sola funcionalidad. El mecanismo de detección establece el RTO; el patrón de redundancia (activo-standby o activo-activo) establece la compensación de capacidad y estado; el nivel de supervivencia establece qué llamadas realmente sobreviven a una conmutación por error; y la redundancia geográfica es su propia capa por encima de la HA local. La HA no probada es HA teórica, y los operadores que ejecutan redes de voz confiables son los que ejercitan sus rutas de conmutación por error según un calendario.

Por qué TelcoBridges

TelcoBridges ha estado implementando infraestructura SIP en redes de producción de operadores y empresas durante más de dos décadas, y ProSBC está construido alrededor de las expectativas de HA que vienen con esa historia. La alta disponibilidad 1+1 activo/standby está disponible en toda la línea de productos ProSBC, y el ProSBC Managed Service la incluye junto con soporte 24×7, configuración, integración, pruebas y monitoreo. El par de HA funciona de la misma manera ya sea que ProSBC se implemente en una máquina virtual, una instancia de nube en AWS o Azure, un hipervisor VMware o KVM, o bare metal. Un ProSBC Lab gratuito de tres sesiones está disponible si desea validar el comportamiento de conmutación por error en su propio entorno antes de comprometerse con una implementación de producción.

¿Prefiere evaluar por su cuenta primero? Comience su prueba gratuita de 30 días.