IKE sobre TCP 4500: verifique as duas pontas antes da regra de porta
O encapsulamento TCP é negociado pelas duas pontas, não concedido por uma regra de firewall. Execute a verificação do listener, a captura e as quatro etapas de aceitação em ordem.
Os tíquetes de suporte chegam muitas vezes com a alteração de firewall já aprovada e o túnel ainda se recusando a subir. Esse é o resultado esperado quando só uma ponta tem o recurso: o encapsulamento TCP conforme a RFC 9329 precisa ser implementado e configurado nas duas pontas, e o acordo acontece dentro da conexão antes de qualquer tráfego protegido se mover. Abrir uma porta anuncia um listener que pode não existir, e um listener sem a configuração correspondente do outro lado aceita a conexão e depois se cala. A sequência a seguir coloca as verificações baratas primeiro.
Saiba o que a opção realmente adiciona
O IPsec nativo transporta os payloads cifrados como protocolo IP 50, sem número de porta para permitir. O NAT traversal envolve esses pacotes em UDP para a porta 4500, e é por isso que tantas regras de firewall citam essa porta. A RFC 9329 adiciona uma representação em fluxo: pacotes IKE e IPsec viajam ambos dentro de uma única conexão TCP, normalmente para a porta 4500.
O fluxo não é um serviço web. Uma conexão TCP para 4500 não diz nada sobre HTTP, TLS ou simpatia com proxy, e um proxy HTTP no caminho normalmente quebrará o enquadramento em vez de transportá-lo.
Verificação prévia antes de tocar no firewall
O padrão coloca o TCP como alternativa para redes que descartam o caminho UDP, não como seu substituto. Obtenha dois fatos de cada fornecedor: o nome exato do recurso e a versão que implementa a RFC 9329 em vez de uma variante proprietária. Rótulos como IPsec over TCP foram usados em projetos não relacionados, então peça a referência do documento e a chave de configuração que o ativa. Sem as duas respostas, não assuma nada sobre compatibilidade no cabo.
Prove isso num laboratório onde as duas pontas são suas. Um gateway que responde em TCP 4500 mas nunca conclui o IKE é a assinatura de um listener sem o encapsulamento correspondente do outro lado, e descobrir isso ali custa muito menos do que durante uma janela de mudança.
No respondedor: há algo escutando
Comece pelo socket. ss -ltnp | grep 4500 mostra se existe um listener TCP e qual processo o possui. A ausência de uma linha encerra a investigação na configuração do gateway, e não na rede.
Se o socket estiver lá, observe o handshake em vez de adivinhar pelo lado do cliente: tcpdump -ni any 'tcp port 4500'. Um handshake de três vias concluído seguido de silêncio significa que o fluxo foi aceito e a troca IKE dentro dele falhou, enquanto um SYN sem resposta aponta para filtragem ou para o endereço errado.
Compare com o caminho UDP na mesma janela de captura para que os dois não se confundam: tcpdump -ni any 'udp port 4500 or proto 50'. Tráfego no protocolo 50 ou na porta UDP 4500 enquanto você acredita que TCP está em uso significa que as pontas nunca concordaram com a alternativa. Capture também no gateway se puder, porque uma captura do lado do cliente não consegue mostrar o que a ponta remota enviou.
Aceite em quatro etapas separadas
Trate a subida como quatro resultados. Cada um pode falhar por um motivo diferente, e um único aprovado ou reprovado esconde qual foi, então pare na primeira etapa que falhar e recomece do topo.
| Stage | What you check | What it proves |
|---|---|---|
| 1 | TCP connection established to 4500 | A listener exists and the path permits it |
| 2 | IKE_SA authenticated in the gateway log | Both peers agreed on the encapsulation |
| 3 | CHILD_SA installed, visible with ip xfrm state | Keys exist for the protected traffic |
| 4 | A new application exchange succeeds | The data path works, not just the control path |
A quarta etapa é a que se pula. Uma sessão existente pode continuar funcionando com estado em cache, então abra uma conexão nova para um host atrás do gateway antes de fechar a mudança. Se a segunda etapa falhar enquanto a primeira passa, a discordância está na proposta ou no ajuste de encapsulamento, não no firewall.
Reversão e o custo de deixar isso ligado
Planeje o desfazer antes da mudança: desative a opção de encapsulamento nas duas pontas e confirme que o túnel volta por UDP. Mantenha a regra TCP por um ciclo de revisão caso a alternativa seja necessária de novo, e depois remova-a. Um listener sem uso em 4500 é superfície sem nenhum valor operacional.
Fique atento à assinatura de desempenho quando ele passar a carregar trabalho real. TCP dentro de TCP adiciona camadas de confirmação que travam com uma única perda, e fluxos que compartilham uma conexão podem bloquear uns aos outros, então meça a aplicação que vai usar o túnel em vez de um ping.
Lista de aceitação
Confirme o nome e a versão do recurso nas duas pontas, o listener no respondedor, a captura mostrando um handshake concluído e as quatro etapas registradas com carimbos de tempo. Acrescente o motivo da alternativa ao registro da mudança para que o próximo engenheiro saiba por que o TCP está lá. Ensaie a reversão antes de precisar dela.
Se alguma etapa falhar, conserte apenas essa etapa. Mudar o conjunto de cifras ou as configurações de identidade para caçar um problema de transporte geralmente acrescenta uma segunda falha não relacionada em cima da primeira.