iptables regra SNAT funciona para ICMP e TCP, mas não para UDP

2

Eu tenho uma situação estranha em uma das minhas configurações. Descrevi a configuração abaixo, mas tenho várias dessas configurações, todas com as mesmas regras, mas o problema acontece em apenas uma.

Estou fazendo isso no Centos 6.5, versão do kernel 3.10.14. Eu estou tentando SNAT tráfego vindo de eth0 e sendo encaminhado em eth1. Eu tenho uma regra de iptable que diz (na tabela nat)

-A POSTROUTING -s 10.92.0.0/14 -o eth1 -j SNAT --to-source 70.70.70.5 --random --persistent

70.70.70.5 é o endereço IP na eth1.

Eu vejo um pacote UDP entrar em eth0 , tem um IP 10.92.0.1 e é roteado para fora de eth1 , mas nunca é afetado. Eu adicionei logs do iptables + trace e vejo o pacote atingindo o mangle POSTROUTING, mas não o POSTROUTING de NAT. TCP e ICMP do mesmo IP funciona bem. E isso acontece em apenas uma configuração entre muitas.

Eu verifiquei os contadores do iptables e não vejo a regra do NAT POSTROUTING sendo atingida para este pacote.

Eu tenho o rastreamento de conexão ativado, vejo as conexões para TCP e ICMP sendo rastreadas. Eu também vejo pacotes UDP originados pela caixa sendo rastreada (e natted), somente os que estão sendo encaminhados não são.

Os logs do iptables mostram que o pacote foi roteado para fora da eth1 corretamente.

Eu tentei habilitar o logging do conntrack escrevendo 17 (para UDP) para / proc / sys / net / netfilter / nf_conntrack_log_invalid. Mas eu não vejo nenhum registro.

Eu tentei com endereços e portas de destino diferentes, mas não preciso. Eu não tenho regras específicas do udp em qualquer lugar.

Eu posso ter 15 conexões na tabela conntrack. O máximo é 65K.

Existe alguma maneira de verificar por que a conexão UDP não está sendo rastreada? Qualquer registro que possa ajudar?

Existem problemas com UDP e NAT?

Existe alguma outra maneira de depurar o módulo NF?

Thanx antecipadamente para qualquer ajuda / ponteiros.

    
por skp 08.12.2017 / 02:12

0 respostas

Tags