Skip to content

Troubleshooting: timeout de TLS no OpenVPN (roteamento assimétrico em Multi-WAN)

O cenário e o problema

Em firewalls com múltiplos links de internet (Multi-WAN), clientes externos do OpenVPN podem falhar na fase de negociação de chaves. O erro típico no log do cliente, após 60 segundos, é:

▎ TLS Error: TLS key negotiation failed to occur within 60 seconds ▎ TLS handshake failed

Este documento cobre o diagnóstico e a correção desse incidente, causado pelo roteamento assimétrico que o comportamento padrão do protocolo UDP gera nesse tipo de topologia.

Topologia de referência (IPs fictícios)

  • eth1 (link principal / rota default): IP 203.0.113.10
  • eth2 (link secundário / dedicado à VPN): IP 198.51.100.20
  • Cliente externo: IP 192.0.2.50
  • Porta OpenVPN: UDP 1194 (padrão) ou 50000 (customizada)

Processo de diagnóstico (CLI)

O primeiro passo é isolar se o pacote está sendo bloqueado pelo provedor de internet ou se o problema está na camada lógica do servidor. Substitua a porta 1194 nos comandos abaixo pela porta usada no seu ambiente.

1. Verificação do serviço (bind)

Confirme se o daemon do OpenVPN está ativo e escutando na porta correta.

ss -ulnp | grep 1194

Saída esperada (serviço escutando em todas as interfaces):

UNCONN 0 0 0.0.0.0:1194 0.0.0.0:* users:(("openvpn",pid=12345,fd=6))

2. Captura de pacotes na interface WAN

Inspecione a interface de rede dedicada à VPN (eth2) para confirmar que os pacotes do cliente chegam ao firewall.

tcpdump -i eth2 -n udp port 1194

Saída esperada:

17:36:22.140844 IP 192.0.2.50.1194 > 198.51

O tráfego chega na interface eth2 sem problemas, então não há bloqueio de operadora.

3. Simulação da rota de retorno

O problema acontece porque a requisição entra por um link, mas o servidor tenta responder pelo outro. Para confirmar, consulte a tabela de roteamento do kernel para o IP do cliente:

ip route get 192.0.2.50

Saída obtida:

192.0.2.50 via 203.0.113.1 dev eth1 src 203.0.113.10 uid 0

O kernel direciona a resposta do OpenVPN parcipal), diferente da interface de entrada(eth2).

4. Auditoria do Policy Based Routing (PBR)

Verifique se o firewall tem as regras de Multi-WAN configuradas.

ip rule show

Saída esperada (as regras existem):

85:    from 198.51.100.20 lookup eth2-wan-vivo
32766: from all lookup main

Causa raiz

A falha combina o comportamento do protocolo UDP com a topologia Multi-WAN:

  1. Como o OpenVPN escuta em 0.0.0.0, ele recebe o pacote pela eth2, mas entrega a resposta ao kernel do Linux sem especificar o IP de origem 198.51.100.20.
  2. Sem um IP de origem explícito, o Linux ignora a regra 85 do PBR e despacha o pacote pela tabela principal de rotas, que sai pela eth1.
  3. O pacote sai com o IP trocado (de 198.51.100.20 para 203.0.113.10). O firewall do cliente detecta a quebra do estado de conexão e descarta o tráfego, o qu

Solução: simetria de rotas (multihome)

Para corrigir o roteamento assimétrico, force o OpenVPN a registrar a interface de entrada de cada requisição e a usar o mesmo endereço na resposta.

Aplicação

Edite o arquivo de configuração do servidor (server.conf) ou acesse a seção de configurações avançadas (Custom Options) do painel de gerência da VPN, e adicione:

multihome

Se a VPN não precisar operar em múltiplas interfaces, também é possível fixar o IP de escuta com a diretiva local 198.51.100.20.

Validação

Depois de reiniciar o serviço, o daemon passa a assinar os pacotes de resposta com o IP de origem correto. Isso aciona a regra de PBR do sistema operacional: o pacote volta pela eth2 e o handshake TLS se completa.