Estou tentando experimentar com DNAT em PREROUTING. Achei um tutorial aqui . Contém a seguinte frase:
Isso é feito na cadeia PREROUTING, assim que o pacote chega; isso significa que qualquer outra coisa na própria caixa do Linux (roteamento, filtragem de pacotes) verá o pacote indo para seu destino 'real'.
Eu quero perguntar o que o autor quer dizer com a última parte ou seja anything else on the Linux box itself will see the packet going to its 'real' destination
?
Eu tentei um teste em que tenho um dispositivo virtual (tap) e redirecionei os pacotes ICMP de entrada para esse dispositivo de toque (meu endereço de dispositivo de toque é 10.0.4.1/24
e há um programa ouvindo o dispositivo de toque, então seu estado é UP):
# iptables -t nat -A PREROUTING -i eth0 -p icmp -j DNAT --to-destination 10.0.4.2
Quando faço ping em um IP externo, essa regra nunca é usada ( pkts
contagem em iptables permanece 0 para esta regra). Esta observação está relacionada com o que o autor está dizendo?
Sua primeira pergunta já está respondida pelo texto que você citou:
Ou seja, roteamento e filtragem de pacotes.
Para sua segunda pergunta: você parece estar pingando do próprio sistema. Portanto, os pacotes não estão entrando no sistema, portanto, esses pacotes não passam pela cadeia PREROUTING. Você precisará originar esses pacotes de fora desse sistema.