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:
- Criar a interface dedicada de sincronização (PFSYNC).
- Configurar o mecanismo de sincronização (PFSYNC + XMLRPC).
- Criar os IPs virtuais (CARP/VIP).
- Configurar parâmetros especiais para ambientes com PPPoE.
- Ajustar o NAT Outbound para uso do VIP da WAN.
- Configurar DHCP Failover (opcional).
- 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
- Conecte fisicamente a interface dedicada para sincronização.
- Acesse Interfaces → Assignments e adicione a interface livre com Description:
PFSYNC. -
Edite a interface recém-criada:
- Enable: marcado
- IPv4 Configuration Type:
Static IPv4 - IPv4 address:
10.99.0.1/30
-
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
- Repita o processo usando o endereço 10.99.0.2/30.
- 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
- Acesse System → High Availability → Settings.
-
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)
- Synchronize all states via:
-
Clique em Apply.
No Firewall BACKUP
- Acesse System → High Availability → Settings.
-
Configure:
- Synchronize all states via:
PFSYNC - Synchronize Peer IP:
10.99.0.1 - Synchronize Config: deixe em branco
- Synchronize all states via:
-
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
- Acesse Interfaces → Virtual IPs → Settings → Add.
-
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
-
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:
-
Acesse System → High Availability → Settings e marque:
- Disconnect dialup interfaces
-
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
- MASTER:
-
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.
- Acesse Firewall → NAT → Outbound.
- Selecione Manual Outbound NAT rule generation.
-
Clique em +Add e configure:
- Interface: WAN
- Translation Address:
192.168.100.254(VIP) - Description: NAT via VIP WAN
-
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.50a192.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.151a192.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
- Acesse Interfaces → Virtual IPs → Status e valide que o MASTER está como MASTER.
- Desconecte fisicamente o MASTER.
- Verifique o BACKUP assumindo o VIP.
- 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.