OK, então em uma instalação baunilha do Ubuntu 14.04.2, eu executo os seguintes comandos:
sudo bash -c 'echo 1 > "/proc/sys/net/ipv4/ip_forward"'
sudo iptables -t nat -A PREROUTING -d 192.168.100.1 -j DNAT --to-destination 10.196.106.230
sudo tcpdump -i wlan0 icmp and icmp[icmptype]=icmp-echo -n
Então eu pingar 192.168.100.1
de outro terminal. Mas eu vejo tcpdump
me mostrando isso:
01:46:37.536354 IP 10.196.100.76 > 192.168.100.1: ICMP echo request, id 6635, seq 1, length 64
No entanto, se eu limpar a tabela nat e executar este comando em vez disso:
sudo iptables -t nat -A OUTPUT -d 192.168.100.1 -j DNAT --to-destination 10.196.106.230
Então, tcpdump
dá isto:
01:46:53.168639 IP 10.196.100.76 > 10.196.106.230: ICMP echo request, id 6638, seq 1, length 64
(O ping é bem-sucedido, com um pong vindo da outra máquina.)
A partir dos inúmeros tutoriais on-line, eu esperaria que o IP de destino fosse alterado mesmo no Cadeia PREROUTING, certo? Ou estou faltando alguma coisa?