Os sintomas que você descreve correspondem aos vistos quando há um conflito entre uma regra NAT e uma entrada de rastreamento de conexão.
Por exemplo, quando um pacote é correspondido por
-A PREROUTING -s 10.0.0.2 -i eth1 -j DNAT --to-destination 10.0.1.123
uma nova entrada de rastreamento de conexão precisa ser criada. Isso mapeará uma tupla de IP e porta de origem e destino no lado de entrada para uma tupla semelhante no lado de saída.
Não pode haver uma entrada de rastreamento de conexão existente que corresponda ao lado de entrada, porque, se houvesse, ela teria sido usada em vez da regra. No entanto, uma vez que o IP de destino da tupla tenha sido substituído para construir a tupla para o lado de saída, a tupla pode entrar em conflito com uma entrada de rastreamento de conexão existente.
Se você instalar o utilitário conntrack
, poderá digitar conntrack -L
para ver uma lista de entradas de rastreamento de conexão existentes. Esse utilitário também possui recursos para listar apenas entradas de rastreamento de conexão que correspondam a critérios específicos, bem como remover entradas selecionadas.
Se esse for realmente o problema que você está enfrentando, remover a entrada de rastreamento de conexão incorreta fará com que o problema desapareça. Uma correção permanente geralmente envolve a configuração de regras NAT relevantes para pacotes em ambas as direções, de forma que você sempre obtenha a entrada de rastreamento de conexão desejada, mesmo se o primeiro pacote for enviado na direção oposta do que normalmente é o caso.