[MASOCH-L] DNAT para rede local não funciona (Debian)

Rafael Santos listas at rafaelsantos.com
Wed Nov 17 22:44:20 BRST 2010


Prezados,

Estou enfrentando um problema deveras bizarro aqui e gostaria de um help 
dos senhores(as):

Tenho a seguinte topologia:

Eth0 = 192.168.1.0/24 (LAN)
Eth1 = 200.200.200.200 (WAN 1)
Eth2 = 201.201.201.201 (WAN 2)

Existe uma regra de DNAT para que todos os pacotes que chegam para 
determinadas portas com destino = IP WAN 1 sejam encaminhados (DNAT) para 
o servidor 192.168.1.45.

Até aí beleza, de qualquer lugar do planeta e talvez do universo (a latência
talvez
 incomode em distâncias maiores) a conexão funciona que é uma maravilha. 
O problema ocorre quando tento acessar o servidor através do IP WAN 1 a
partir 
da própria LAN.

Vocês me dirão: “Claro, filhote de apedeuta, você não vê que a requisição
está 
sendo feita para o IP da WAN 1, porém por estarem na mesma rede a resposta 
sai direto do servidor 192.168.1.45 para a máquina que fez a requisição?”

Respondo: “Sim! Por isso mesmo que eu fiz uma regra de SNAT, que diz que 
todos os pacotes que forem encaminhados para o servidor devem ir com o 
endereço de origem igual à WAN 1!”

Tentei várias variações, mas as regras atuais são as seguintes:

DNAT       tcp  --  *      *      !192.168.1.45         200.200.200.200
tcp multiport dports 80,443,5252,7531,7532 to:192.168.1.45
SNAT       all  --  *      eth0    192.168.1.0/24       192.168.1.45
to:200.200.200.200

Os pacotes estão saindo da estação (192.168.1.50) passam pelo GTW, são 
encaminhadas corretamente para o 192.168.1.45 com endereço de
 origem = 200.200.200.200, o servidor 192.168.1.45 responde para o 
200.200.200.200, porém os pacotes não são retornados para a estação.

Não deveria existir um connection tracking para fazer este encaminhamento 
do retorno? Alguém saberia me dizer porque esta $#@%@ não está funcionando?

Agradeço qualquer ajuda.

Att.

Rafael Santos



More information about the masoch-l mailing list