Ir para o conteúdo

Capítulo 44 – Alta Disponibilidade (HA)

Introdução

A continuidade operacional de um firewall é essencial em ambientes corporativos. Mesmo dispositivos robustos estão sujeitos a falhas — sejam elas causadas por defeitos de hardware, corrompimento de arquivos, problemas de atualização, falha humana ou degradação progressiva do sistema.

Para eliminar pontos únicos de falha e garantir que a rede continue funcionando mesmo diante de incidentes, utiliza-se o recurso de Alta Disponibilidade (HA – High Availability) do OPNsense. A arquitetura de HA consiste em dois firewalls operando em conjunto:

  • MASTER – dispositivo principal, ativo e responsável pelas configurações.
  • BACKUP – dispositivo em espera, pronto para assumir imediatamente em caso de falha.

O failover ocorre de forma automática e praticamente imperceptível. Isso é possível graças à combinação de três componentes fundamentais:

  • CARP (Common Address Redundancy Protocol): fornece IPs virtuais (VIPs) e detecta falhas.
  • PFSYNC: sincroniza sessões/estados das conexões entre os firewalls.
  • XMLRPC Config Sync: replica configurações do MASTER para o BACKUP.

Todas as configurações devem ser feitas exclusivamente no MASTER. A replicação de configurações via XMLRPC não é automática, devendo ser feita manualmente ou programada via cron.


Visão Geral do Processo

A implantação de HA com OPNsense segue as etapas abaixo:

  1. Criar a interface dedicada de sincronização (PFSYNC).
  2. Configurar o mecanismo de sincronização (PFSYNC + XMLRPC).
  3. Criar os IPs virtuais (CARP/VIP).
  4. Configurar parâmetros especiais para ambientes com PPPoE.
  5. Ajustar o NAT Outbound para uso do VIP da WAN.
  6. Configurar DHCP Failover (opcional).
  7. Testar failover, validar sincronização e revisar rotas.

Cada etapa é complementar e forma uma arquitetura consistente e resiliente.


Cenário e Pré-Requisitos

Antes de iniciar o processo, verifique os pré-requisitos abaixo:

  • Ambiente dedicado para implantação (não realizar HA em firewalls já em produção sem janela de manutenção).
  • Hardware dos dois firewalls deve ser idêntico — mesmas interfaces, drivers e capacidade.
  • Ambos os dispositivos devem utilizar a mesma versão de firmware e plugins.
  • A interface dedicada de sincronização (PFSYNC) deve ser física ou VLAN exclusiva (preferencialmente /30).
  • Ajuste de hora entre os firewalls deve estar sincronizado via NTP.
  • Cada rede (WAN, LAN, VLANs e DMZs) deve possuir três endereços IP: Primário, Secundário e VIP.
  • Credenciais administrativas (root) devem ser iguais nos dois firewalls.
  • A sincronização de configurações (Config Sync) deve ser feita manualmente após cada alteração ou automatizada via cron.

Etapas

Fase 1 – Criar a Interface de Sincronização (PFSYNC)

No Firewall MASTER

  1. Conecte fisicamente a interface dedicada para sincronização.
  2. Acesse Interfaces → Assignments e adicione a interface livre com Description: PFSYNC.
  3. Edite a interface recém-criada:

    • Enable: marcado
    • IPv4 Configuration Type: Static IPv4
    • IPv4 address: 10.99.0.1/30
  4. Acesse Firewall → Rules → PFSYNC e crie uma regra permitindo qualquer tráfego entre os nós.

    • Protocol: Any
    • Source: Any
    • Destination: Any
    • Description: Libera tráfego PFSYNC
    • Save → Apply Changes

No Firewall BACKUP

  1. Repita o processo usando o endereço 10.99.0.2/30.
  2. Crie a mesma regra de firewall.

Importante

Embora permitir “any/any” funcione, recomenda-se restringir futuramente aos protocolos pfsync e HTTPS entre os IPs internos (10.99.0.1 ↔ 10.99.0.2).


Fase 2 – Habilitar Sincronização (PFSYNC + XMLRPC)

No Firewall MASTER

  1. Acesse System → High Availability → Settings.
  2. Configure:

    • Synchronize all states via: PFSYNC
    • Synchronize Peer IP: 10.99.0.2
    • Synchronize Config to IP: 10.99.0.2
    • Remote System Username: root
    • Password: senha do BACKUP
    • Services: selecione Select All (ou escolha os apropriados)
  3. Clique em Apply.

No Firewall BACKUP

  1. Acesse System → High Availability → Settings.
  2. Configure:

    • Synchronize all states via: PFSYNC
    • Synchronize Peer IP: 10.99.0.1
    • Synchronize Config: deixe em branco
  3. Clique em Apply.

Importante

  • PFSYNC sincroniza apenas estados de conexão, e funciona em tempo real.
  • XMLRPC Config Sync replica configurações, mas não é automático.
  • Sempre sincronize manualmente após alterações no MASTER (ou agende via cron).

Fase 3 – Criar os IPs Virtuais (CARP VIPs)

CARP fornece o endereço virtual que será utilizado por servidores e estações como gateway.

Exemplo (WAN)

Elemento Endereço
Modem/Roteador 192.168.100.1/24
Firewall MASTER 192.168.100.251/24
Firewall BACKUP 192.168.100.252/24
CARP VIP 192.168.100.254/24

No Firewall MASTER

  1. Acesse Interfaces → Virtual IPs → Settings → Add.
  2. Preencha:

    • Mode: CARP
    • Interface: WAN
    • Network / Address: 192.168.100.254/24
    • VHID Group: 10 (único)
    • Password: senha forte
    • advbase: 1
    • advskew: 0
    • Description: WAN_CARP
  3. Save → Apply.

Repita o processo para LAN, DMZ e demais VLANs.

Nota

Cada VHID deve ser exclusivo por VLAN. Reutilizar VHIDs pode gerar colisões e comportamento imprevisível.


Fase 4 – Configurações Especiais para PPPoE

Quando a WAN utiliza PPPoE, o VIP deve existir na interface física, não na sessão PPPoE:

  1. Acesse System → High Availability → Settings e marque:

    • Disconnect dialup interfaces
  2. Configure endereços privados na interface física do PPPoE (ex.: vtnet1):

    • MASTER: 10.90.0.1/24
    • BACKUP: 10.90.0.2/24
    • VIP CARP: 10.90.0.3/24
  3. Crie regra permitindo comunicação dessa rede:

    • Firewall → Rules → (vtnet1)
    • Source: 10.90.0.0/24 → any

Importante

Isso mantém a comunicação CARP funcionando mesmo que a sessão PPPoE esteja momentaneamente desconectada.


Fase 5 – Configurar NAT Outbound

O NAT deve sempre utilizar o VIP, e não o IP físico de cada firewall.

  1. Acesse Firewall → NAT → Outbound.
  2. Selecione Manual Outbound NAT rule generation.
  3. Clique em +Add e configure:

    • Interface: WAN
    • Translation Address: 192.168.100.254 (VIP)
    • Description: NAT via VIP WAN
  4. Save → Apply Changes

Repita para outros links.


Fase 6 – DHCP Failover

Usando ISC DHCP (Recomendado)

No MASTER:

  • Acesse Services → ISC DHCPv4 → [LAN]
  • Preencha Failover peer IP: 192.168.1.252
  • Salve → Aplique.
  • Sincronize a configuração dos firewalls via Config Sync.

Usando Dnsmasq (Ranges separados)

No MASTER:

  • Acesse Services → Dnsmasq DNS & DHCP → DHCP Ranges
  • Configure o Range de 192.168.1.50 a 192.168.1.150
  • Acesse Services → Dnsmasq DNS & DHCP → General
  • Marque Disable HA sync

No BACKUP:

  • Acesse Services → Dnsmasq DNS & DHCP → DHCP Ranges
  • Configure o Range de 192.168.1.151 a 192.168.1.250
  • Acesse Services → Dnsmasq DNS & DHCP → General
  • Preencha o DHCP reply delay com 5 (segundos)

Importante

O Dnsmasq não mantém os leases sincronizados entre os firewalls. Usar a tática de dividir o range evita conflito de empréstimo de IPs entre os firewalls.


Fase 7 – Testes de Failover

  1. Acesse Interfaces → Virtual IPs → Status e valide que o MASTER está como MASTER.
  2. Desconecte fisicamente o MASTER.
  3. Verifique o BACKUP assumindo o VIP.
  4. Teste conectividade, rotas e sessões abertas.

Importante

Sempre teste após sincronizar as configurações recentemente. Se usar cron para sync, valide se o agendamento está funcionando.


Diagnóstico Rápido

Sintoma Possível Causa Ação Recomendada
Ambos firewalls em BACKUP VHID duplicado Ajustar VHIDs
PFSYNC sem sincronizar Falha na regra ou IP incorreto Validar conectividade 10.99.0.1 ↔ 10.99.0.2
VIP permanece no BACKUP Falha na sincronização Executar sync manual
Sem Internet após failover NAT usando IP físico Ajustar NAT para usar VIP
PPPoE não assume “Disconnect dialup interfaces” desmarcado Ativar

Segurança e Boas Práticas

  • Alterações sempre no MASTER, nunca no BACKUP.
  • A sincronização Config Sync deve ser executada manualmente ou agendada via cron.
  • Isolar a interface de sincronização PFSYNC (VLAN ou cabo dedicado).
  • Usar senhas CARP fortes.
  • Desabilitar offloading de hardware (TSO, LRO, checksum) se houver perda de pacotes.
  • Definir prioridades claras:

    • MASTER: advskew = 0
    • BACKUP: advskew = 100
  • Monitorar eventos CARP em syslog ou servidor de logs.

  • Realizar testes periódicos de failover.
  • Registrar mudanças e manter backups da configuração.

Ambientes Virtualizados

Em ambientes virtualizados, habilite permissões como MAC spoofing e forged transmit no hypervisor. Em clusters, utilize regras de anti-affinity para evitar que os dois firewalls rodem em um mesmo host físico.


Conclusão

A configuração de Alta Disponibilidade no OPNsense garante resiliência contra falhas e continuidade dos serviços críticos, mesmo diante de interrupções inesperadas.

Com:

  • interfaces dedicadas,
  • VIPs corretamente configurados,
  • NAT direcionado ao VIP,
  • sincronização consistente,
  • testes regulares,

o HA torna-se um componente confiável, previsível e alinhado às melhores práticas de infraestrutura.

A implantação correta reduz drasticamente o risco de indisponibilidade e transforma o par de firewalls em um pilar essencial para a segurança e estabilidade da rede.