Alta disponibilidade para VoIP: estratégias de failover

Servidores SBC ativo e standby conectados por um feixe de sincronização azul, ilustrando a alta disponibilidade VoIP e a arquitetura de failover

Uma única interrupção de sinalização em uma rede de voz movimentada não falha silenciosamente. Registros expiram em ciclos, o tom de discagem desaparece para milhares de usuários ao mesmo tempo, e a fila de suporte se acende antes que alguém tenha tempo de ler um painel. Voz é um dos serviços mais implacáveis na pilha para se operar, porque toda falha é sentida por um humano em uma chamada ao vivo.

É por isso que a alta disponibilidade (HA) para VoIP é tão importante ao avaliar funcionalidades. É uma disciplina composta por quatro partes: detectar a falha, redirecionar o tráfego, preservar o máximo de estado de chamada possível e recuperar de forma limpa quando o nó com falha retorna. Neste artigo, vamos apresentar a mecânica de failover e redundância de SBC como realmente é implantada, e as estratégias entre as quais os arquitetos de VoIP escolhem em produção. É particularmente útil para quem está decidindo qual tipo de HA sua rede de voz precisa.

Termos e conceitos-chave
Um glossário de referência rápida para os termos usados ao longo deste artigo.
Alta Disponibilidade (HA)Uma disciplina de design que mantém um serviço acessível durante falhas de componentes individuais, geralmente medida por metas de uptime (frequentemente os cinco noves, 99,999%) e um objetivo de tempo de recuperação em segundos.
Controlador de Borda de Sessão (SBC)Um dispositivo B2BUA que fica na borda SIP de uma rede de voz e termina sinalização e mídia em ambos os lados. HA na camada do SBC protege todo o perímetro de voz, não apenas o equipamento em si.
Objetivo de Tempo de Recuperação (RTO)O tempo máximo que um serviço pode ficar indisponível durante um failover. Para voz, o RTO é definido pelo mecanismo de detecção mais lento na cadeia.
VRRPVirtual Router Redundancy Protocol. Usado para compartilhar um IP virtual entre dois nós no mesmo segmento Layer 2 para failover em nível de IP em sub-segundo.
BFDBidirectional Forwarding Detection. Um protocolo leve para detecção rápida de falha de caminho entre dois terminais, frequentemente usado para acionar roteamento ou failover de próximo salto.
SIP OPTIONS keepaliveUma solicitação SIP OPTIONS periódica enviada a um peer para confirmar que ele ainda está acessível e pronto para receber chamadas.
Active-standby (1+1)Um padrão de redundância onde um nó transporta tráfego e um segundo nó fica pronto, aguardando para assumir. Previsível e simples, com capacidade ociosa em estado estável.
Active-activeUm padrão de redundância onde múltiplos nós transportam tráfego ao mesmo tempo e absorvem a carga uns dos outros em caso de falha. Melhor utilização de hardware, gerenciamento de estado mais complexo.
Preservação de chamadaA propriedade de que chamadas em andamento sobrevivem a um failover, geralmente porque os fluxos de mídia continuam enquanto a sinalização reconverge em segundo plano.
Redundância geográficaRedundância entre dois ou mais sites ou regiões, protegendo contra a perda de um data center inteiro em vez de um único nó.
Split-brainO modo de falha onde ambos os membros de um par redundante acreditam ser o nó ativo, geralmente porque o link entre os nós falhou.
FailbackRetorno do tráfego ao nó primário recuperado após um failover. Pode ser manual (o operador decide) ou automático (retorna quando a saúde é restaurada).

O que alta disponibilidade significa para voz em tempo real

Em um protocolo stateful como o SIP, “o equipamento está ativo” não é uma definição útil de disponibilidade. Um Controlador de Borda de Sessão (SBC) que reiniciou em menos de trinta segundos ainda eliminou todas as chamadas ativas e registros que estavam nele. Para voz em tempo real, alta disponibilidade significa três coisas ao mesmo tempo: chamadas em andamento sobrevivem (ou, no mínimo, falham de forma previsível), registros permanecem válidos durante o evento, e novos INVITEs chegam a um nó funcional dentro de um orçamento de tempo apertado.

A disciplina traz suas expectativas de uma era anterior. Redes de voz de operadoras foram projetadas para uma meta de disponibilidade de “cinco noves” no TDM, e os padrões SIP que os substituíram (notavelmente a RFC 3261) levaram essas expectativas adiante. A TelcoBridges tem mais de vinte anos de experiência em implantação SIP em produção por trás do ProSBC, e cada decisão de design de HA neste artigo é moldada por essa mesma pressão dos cinco noves.

Três termos são confundidos com frequência suficiente para valer a pena separá-los logo de início. Alta disponibilidade cobre redundância em nível de componente dentro de um único site ou par fortemente acoplado, com failover medido em segundos. Recuperação de desastres se aplica à perda em nível de site e é medida em minutos ou horas. Balanceamento de carga distribui tráfego entre múltiplos nós saudáveis para capacidade, não para redundância. Um bom design usa os três deliberadamente, não de forma intercambiável.

Como um SBC detecta falhas (a parte que realmente define o RTO)

A detecção é a maior alavanca sobre o tempo de recuperação. Um par HA pode estar configurado perfeitamente e ainda levar quarenta e cinco segundos para fazer failover porque o intervalo de heartbeat foi definido de forma muito conservadora. Três mecanismos fazem o trabalho pesado em implantações modernas de SBC, e a maioria dos ambientes de produção usa uma combinação.

VRRP e IPs virtuais compartilhados lidam com failover em nível de IP em sub-segundo entre nós pareados no mesmo segmento Layer 2. O nó standby assume a propriedade do IP virtual em milissegundos após detectar o silêncio do primário no heartbeat multicast. Este é o mecanismo mais rápido disponível, mas só funciona quando ambos os nós compartilham um segmento de rede, o que o limita a pares HA locais.

Bidirectional Forwarding Detection (BFD) cobre detecção de falha de caminho na camada de roteamento para implantações maiores ou roteadas. O BFD troca pacotes de heartbeat muito curtos entre dois terminais (intervalos de 50ms são típicos, com um multiplicador de 3 para o dead-timer), e uma sessão cai em aproximadamente 150ms quando o peer para de responder. O protocolo é especificado na RFC 5880 e é amplamente usado para acionar failover de próximo salto BGP quando um SBC está atrás de um fabric de roteamento.

SIP OPTIONS keepalives cobrem a verificação de atividade em nível de aplicação em direção a operadoras upstream e PBXs ou clusters IP-PBX downstream. O SBC envia uma solicitação OPTIONS periódica a cada peer registrado; uma resposta perdida (ou uma sequência de respostas perdidas) marca esse peer como inativo e aciona o redirecionamento nos grupos de troncos afetados. Os intervalos de OPTIONS geralmente são medidos em dezenas de segundos em vez de milissegundos, porque a solicitação cruza a internet pública ou uma rede de operadora, e intervalos agressivos criam carga de sinalização que o lado upstream não aprecia.

O trade-off de ajuste é o mesmo nos três: intervalos agressivos detectam falhas rapidamente mas produzem falsos positivos durante congestão transitória, enquanto intervalos conservadores são estáveis mas esticam o RTO. Operadores quase sempre começam conservadores demais na primeira implantação e apertam os dead-timers após a primeira interrupção real expor o quão lenta a detecção realmente era.

Active-standby vs active-active

Dois padrões de redundância dominam a arquitetura de SBC, e eles fazem trade-offs muito diferentes.

Active-standby (também chamado 1+1) é o padrão que a maioria das implantações de SBC empresariais e de acesso utiliza. Um nó transporta todo o tráfego de produção; o segundo fica pronto, sincronizando estado, e assume quando o primário falha. O modelo é simples de entender, o comportamento de failover é previsível, e o planejamento de capacidade é fácil porque cada nó precisa ser dimensionado para suportar a carga total de produção sozinho. O custo é que metade da capacidade licenciada fica ociosa em estado estável.

Active-active (às vezes N+1 ou clusterizado) distribui o tráfego entre todos os nós do cluster. Cada nó transporta uma parcela da carga de produção, e na falha de um único nó, os nós sobreviventes absorvem o tráfego órfão. A utilização de hardware é muito melhor, mas a distribuição de estado é mais difícil, porque cada nó precisa de uma visão consistente de registros, diálogos e (para tratamento de mídia stateful) contexto de mídia. Cenários de split-brain se tornam modos de falha reais, especialmente em links de maior latência.

Onde cada padrão se encaixa é função do papel da implantação. SBCs de acesso posicionados na frente de um IP-PBX ou central de atendimento quase sempre operam em 1+1 porque a simplicidade importa mais que a capacidade ociosa. SBCs de peering na borda da operadora frequentemente operam em active-active entre múltiplos nós porque os volumes de tráfego justificam a complexidade operacional. Implantações de Microsoft Teams Direct Routing e serviços gerenciados multi-tenant ficam em um ou outro padrão dependendo se os tenants compartilham infraestrutura ou se cada um tem seu próprio par.

Redundância geográfica: quando um par local não é suficiente

Um par 1+1 no mesmo rack não ajuda se o data center perder energia, a refrigeração falhar ou um evento de manutenção de rede tirar todo o site do ar. Redundância geográfica é um problema separado do HA local, e é resolvido com ferramentas diferentes. SBCs implantados na nuvem tornaram designs geo-redundantes mais acessíveis ao permitir que o segundo site fique em uma região de nuvem diferente em vez de um segundo data center físico, mas os padrões arquiteturais são os mesmos.

Dois padrões são comuns. Active/passive entre sites executa produção em um local com um site warm pronto para assumir via DNS, retirada de BGP anycast ou roteamento de failover do lado da operadora. A troca de site geralmente é orquestrada em vez de instantânea, e o RTO acaba ficando na casa dos minutos em vez de segundos. A simplicidade operacional é real, e muitas implantações empresariais param aqui.

Active/active entre sites executa tráfego concorrente em duas regiões, frequentemente com balanceamento de carga do lado da operadora dividindo chamadas por código de área, por tenant ou simplesmente por DNS ponderado por saúde. O failover é mais rápido, mas a consistência do caminho de mídia fica mais difícil, porque a latência entre sites afeta a qualidade de voz, as escolhas de codec precisam ser consistentes em ambas as regiões, e as obrigações de interceptação legal podem diferir por jurisdição. A prevenção de split-brain também fica mais difícil, e a maioria dos designs active/active inter-site inclui um mecanismo de witness ou quorum (às vezes arbitração do lado da operadora) para lidar com a própria falha do link inter-site.

Vale notar que a resposta mais limpa para alguns modos de falha não está na camada do SBC. Manter múltiplos troncos SIP com roteamento baseado em prioridade protege contra falha do lado da operadora, além de falha do SBC, e o mecanismo de roteamento dentro do SBC realiza a troca sem que nenhum evento de HA esteja envolvido. Redundância de tronco SIP e HA do SBC são complementares, não substitutos.

Planejamento prático de failover

Três detalhes operacionais separam designs de HA que funcionam de designs de HA que ficam bonitos em um slide.

Capacidade para failover exige dimensionar o nó sobrevivente para absorver o tráfego do nó com falha. Um par onde cada nó opera a 80% da capacidade em estado estável não pode sobreviver à perda de um único nó, porque o sobrevivente precisaria suportar 160% no limite de chamadas por segundo, no teto de sessões concorrentes e no pool de transcoding de mídia. Um planejamento de capacidade útil mira cada nó em no máximo 50% do seu máximo nominal em condições normais.

Comportamento de failback cobre o que acontece quando o nó com falha se recupera. Failback manual permite que o operador decida quando retornar o tráfego, o que evita o modo de falha onde um nó se recupera, recebe tráfego, falha novamente e oscila. Failback automático é conveniente, mas se torna uma interrupção real se a condição de saúde subjacente for intermitente.

Testes de simulação são a parte que a maioria dos operadores pula até que uma interrupção os envergonhe. HA que nunca é exercitado é HA que não foi realmente comprovado. Exercícios trimestrais de failover forçado (e pelo menos um exercício completo de DR de site por ano) são como um arquiteto verifica que a configuração corresponde ao design e que o runbook ainda funciona.

FAQ

Qual é a diferença entre alta disponibilidade do SBC e redundância de tronco SIP?

HA do SBC protege contra falha do próprio SBC (o nó, o software, a rede local onde ele está). Redundância de tronco SIP protege contra falha da operadora upstream ou do caminho de rede da operadora. Eles resolvem problemas diferentes, e um design confiável usa ambos: um par SBC HA roteando através de dois ou mais troncos SIP independentes.

Quanto tempo o failover do SBC realmente leva?

Depende do mecanismo de detecção. VRRP em um segmento compartilhado pode trocar a propriedade do IP em bem menos de um segundo. Failover de roteamento acionado por BFD geralmente fica na casa das centenas de milissegundos. Failover acionado por SIP OPTIONS para peers upstream geralmente leva dezenas de segundos, porque o intervalo de keepalive precisa equilibrar velocidade de detecção com carga de sinalização no caminho público. A detecção mais lenta na cadeia define o RTO real.

O HA preserva chamadas em andamento, ou apenas a próxima chamada?

Isso depende do nível de sobrevivência para o qual o SBC está configurado. Muitos designs de HA em produção preservam fluxos de mídia (RTP continua retransmitindo durante o failover) enquanto a sinalização reconverge em segundo plano. Preservação completa de sinalização e mídia sem renegociação requer replicação de estado síncrona e é genuinamente mais difícil, especialmente com SRTP e TLS envolvidos.

Preciso de redundância geográfica se já tenho um par HA 1+1?

Um par HA local protege contra falha de nó único. Não protege contra uma interrupção de site (energia, refrigeração, manutenção de rede ou falha de nuvem regional). Se a redundância geográfica se justifica depende do custo para o negócio de uma interrupção de site de várias horas versus o custo operacional de operar active/passive ou active/active entre duas regiões. Muitas implantações empresariais aceitam um par 1+1 local mais um procedimento manual documentado de DR; operadoras e centrais de atendimento que lidam com tráfego regulado geralmente não.

Conclusão

Alta disponibilidade para VoIP é uma pilha de decisões, não uma funcionalidade única. O mecanismo de detecção define o RTO; o padrão de redundância (active-standby ou active-active) define o trade-off de capacidade e estado; o nível de sobrevivência define quais chamadas realmente sobrevivem a um failover; e a redundância geográfica é sua própria camada acima do HA local. HA não testado é HA teórico, e os operadores que administram redes de voz confiáveis são os que exercitam seus caminhos de failover com regularidade.

Por que TelcoBridges

A TelcoBridges implanta infraestrutura SIP em redes de produção de operadoras e empresas há mais de duas décadas, e o ProSBC é construído em torno das expectativas de HA que vêm com essa história. Alta disponibilidade 1+1 active/standby está disponível em toda a linha de produtos ProSBC, e o Serviço Gerenciado ProSBC inclui suporte 24×7, configuração, integração, testes e monitoramento. O par HA funciona da mesma forma quer o ProSBC seja implantado em uma máquina virtual, uma instância na nuvem na AWS ou Azure, um hypervisor VMware ou KVM, ou bare metal. Um ProSBC Lab gratuito de três sessões está disponível se você quiser validar o comportamento de failover no seu próprio ambiente antes de se comprometer com uma implantação de produção.

Prefere avaliar por conta própria primeiro? Inicie seu teste gratuito de 30 dias.