iptables nat 테이블이 PREROUTING에서 대상 IP를 변경하지 않습니까?

iptables nat 테이블이 PREROUTING에서 대상 IP를 변경하지 않습니까?

좋습니다. 바닐라 Ubuntu 14.04.2 설치에서 다음 명령을 실행합니다.

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

192.168.100.1​ 그런 다음 다른 터미널에서 ping을 보냅니다 . 하지만 tcpdump나에게 이것을 보여주는 것이 보입니다.

01:46:37.536354 IP 10.196.100.76 > 192.168.100.1: ICMP echo request, id 6635, seq 1, length 64

그러나 nat 테이블을 플러시하고 실행하면이 명령대신에:

sudo iptables -t nat -A OUTPUT -d 192.168.100.1 -j DNAT --to-destination 10.196.106.230

그런 다음 tcpdump다음을 제공합니다.

01:46:53.168639 IP 10.196.100.76 > 10.196.106.230: ICMP echo request, id 6638, seq 1, length 64

(핑이 성공하고 다른 컴퓨터에서 퐁이 돌아옵니다.)

로부터수많은 튜토리얼온라인에서는 PREROUTING 체인에서도 대상 IP가 변경될 것으로 예상합니다. 그렇죠? 아니면 내가 뭔가를 놓치고 있는 걸까?

답변1

PREROUTING 체인은 로컬 프로세스에서 생성된 패킷에 대해 평가되지 않습니다.

첫 번째 규칙은 네트워크 인터페이스에서 들어오는 패킷에 대해 작동합니다(다른 컴퓨터에서 ping을 시도).

아마도 이 그림은 패킷 흐름을 검사하는 방법을 명확히 할 수 있습니다.iptables의 패킷 필터링

원천:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-IPTables.html

관련 정보