Failover dual-WAN automático em OPNsense (fibra + 5G) — testado a puxar o cabo

Started by Nuno, June 26, 2026, 11:32:01 AM

Previous topic - Next topic
Failover dual-WAN automático em OPNsense (fibra + 5G)

Uma só ligação à internet é um ponto único de falha. Basta uma quebra a meio de uma
chamada, de um upload ou de um exame online e ficamos presos a reconectar à mão. Por isso
montei uma segunda ligação que assume sozinha: fibra como linha principal, 5G como recurso.
Quando a fibra cai, o tráfego passa para o 5G em segundos; quando a fibra volta, regressa a
ela.

Isto é failover puro, não load balancing — uma linha leva tudo, a outra espera. Fica
aqui a configuração completa. Parte do princípio de que as duas WAN já estão definidas como
interfaces (no meu caso: fibra na WAN, 5G na OPT1).

1) Gateways — System ▸ Gateways ▸ Configuration

Dá a cada gateway um monitor IP distinto e externo. É isto que faz o failover
disparar de verdade. Eu uso:
 - fibra → 1.1.1.1
 - 5G    → 8.8.8.8

Mantém o gateway monitoring ativo. Sem monitor IPs distintos, o OPNsense não percebe que uma
linha caiu, e o failover nunca acontece.

2) Gateway group — System ▸ Gateways ▸ Group ▸ Add

 - Nome: GW_FAILOVER
 - Fibra = Tier 1
 - 5G    = Tier 2
 - Trigger Level: Member down

"Member down" significa que só salta para o 5G quando o gateway da fibra é dado como morto —
exatamente o que se quer para uma separação limpa entre principal e recurso.

3) A regra de LAN — Firewall ▸ Rules ▸ LAN  (o passo que a maioria dos guias esquece)

Edita a regra "allow LAN to any" (ou cria uma nova no topo). Em Advanced, define:
 - Gateway → GW_FAILOVER

É este o passo que ativa o policy-based routing. Sem ele, o tráfego da LAN ignora o grupo
por completo e o failover não faz nada. Se houver uma coisa para reter deste post, é esta.

4) Outbound NAT — Firewall ▸ NAT ▸ Outbound

O modo automático já cobre as duas interfaces. Se usares Hybrid/Manual, garante que existe
regra de outbound NAT para a fibra e para o 5G, senão o tráfego pelo recurso não é
traduzido.

5) DNS

O Unbound local resolve sem problema. Se reencaminhares para o resolver do ISP, muda-o para
1.1.1.1 / 8.8.8.8 em System ▸ Settings ▸ General, para não ficares preso ao DNS da fibra
quando a fibra é precisamente o que está em baixo.

Testar — a sério

Não confies nisto sem o partires primeiro. Desliga a fibra fisicamente e cronometra a
comutação. Com "Member down", conta com uns 5–10 segundos até o 5G assumir. Volta a ligar e
confirma que regressa à fibra.

O que sobrevive à troca (e o que não)

A comutação demora uns segundos, e as sessões TCP ativas quebram — a ligação cai e
restabelece-se no novo caminho. Tudo aquilo em que a sessão vive num token e não no IP (a
maioria das apps web em HTTPS) aguenta um recarregar de página sem perder o estado. Streams
de longa duração levam com o corte. Planeia em conformidade.

Notas

 - O 5G atrás de CGNAT não é problema aqui: não são precisas ligações de entrada, isto é
   failover de saída.
 - Sê honesto quanto ao alcance: isto é failover por queda de link, não SD-WAN. Não
   há seleção de caminho em tempo real por latência/jitter/perda nem orquestração central —
   comuta quando um link é dado como morto, que é o que a maioria dos homelabs e pequenos
   escritórios precisa.

Nota de hardware: corri isto num appliance de segunda mão, fanless, sem saída de vídeo
(instalação só por consola série), mas a configuração de failover acima é igual em qualquer
máquina compatível com OPNsense.

Disponível para responder a dúvidas — e se puxares mesmo o cabo para testar, diz-me o teu
tempo de comutação. :)
Wrote this up as a full step-by-step PDF (install + failover, EN/PT) → njba.gumroad.com/l/opnsense-dual-wan-failover

Olá Nuno, tudo bem?
Sou novato no ramo e estou aprendendo a configurar o OPNSense. Segui seu tutorial para realizar o failover mas não sei o que posso estar errando. Depois que eu realizo o passo 3) A regra de LAN — Firewall ▸ Rules ▸ LAN  (o passo que a maioria dos guias esquece), eu paro de navegar na internet. Nenhum site abre, e a mensagem de erro que mostra é a DNS_PROBE_FINISHED_BAD_CONFIG. Pela rede eu consigo fazer um ping em 1.1.1.1, 8.8.8.8, mas o ping não responde se eu fizer o teste em um site direto, tipo www.yahoo.com . Eu já conferi todos os passos para verificar onde pode estar o problema, mas sem sucesso. Alguma dica que eu possa usar para encontar o problema?
Muito obrigado!

Essa consulta estendida pode evitar bastante dor de cabeça com os grupos do AD. Uma dúvida: em ambientes com mais de um controlador de domínio, você chegou a testar como o OPNsense se comporta caso o servidor LDAP principal fique indisponível?

Também estou testando uma configuração parecida com fibra como principal e 5G como backup. O failover para o 5G funciona quando desligo a fibra, mas quando a fibra volta nem sempre o tráfego retorna imediatamente para ela. Alguém já passou por isso? Tem alguma configuração específica no gateway group para o retorno ao Tier 1 funcionar de forma mais consistente?

Além disso, acho útil observar o intervalo entre a queda e a recuperação do link, porque isso ajuda a diferenciar um problema de detecção de falha de um atraso no retorno da rota principal. Uma contagem de tempo entre datas pode facilitar essa comparação durante os testes.

Muito bom teste. O failover automático entre fibra e 5G é especialmente útil quando a ligação principal cai, e testar puxando o cabo é uma forma simples de confirmar se a troca realmente funciona. Para quem também gosta de personalizar textos e nomes, as Letras Bonitas são uma opção interessante para copiar e colar.