iptables nat 활성화 시 외부에서 내부 사설IP로의 Ping test 문의드립니다.
안녕하세요!
iptables로 nat를 활성화하고 외부에서 내부 사설IP로 Ping test했을 경우에 대해 문의드리려고 합니다.
일단 iptables 정책설정은 다음과 같습니다.
$iptables -S
-A FORWARD -i external -o internal -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i internal -o external -j ACCEPT
$iptables -t nat -S
-A POSTROUTING -s 192.168.0.0/24 -o external -j MASQUERADE
문의드리고자 하는 것은 NAT를 활성화했을 때 외부에서 내부 사설IP로 Ping test를 하면 안되어야 할 것 같은데 잘된다는 겁니다. 외부에서 NAT 사설IP로 보내어진 ICMP에 대한 응답으로, 내부 사설IP에서 출발한 Reply ICMP Packet이 NAT를 통과하며 Source IP가 공인IP로 교체되어야 할 것 같은데 교체되지 않고 사설IP 그대로 패킷이 통과합니다.
물론 내부 사설IP에서 외부로 Ping test했을 때 Echo-request, Reply ICMP Packet에 모두 NAT가 적용된 것을 확인했습니다.
질문은 크게 두 가지입니다.
1. 외부에서 내부 사설IP로 Ping test했을 때 Echo-request ICMP가 무사히 도착하는 것이 정상인가요?
2. 내부 사설IP에서 외부로 나가는 Echo-request ICMP는 NAT가 적용되는 반면, 내부 사설IP에서 외부로 나가는 Reply ICMP에는 왜 NAT가 적용되지 않는 걸까요?
1. DNAT 설정을 하지 않는 이상, 외부IP에서
1. DNAT 설정을 하지 않는 이상, 외부IP에서 내부 사설IP로 PING이 당연히 안가죠.
2. reply가 nat가 먹지 않았다는건,
-A POSTROUTING -s 192.168.0.0/24 -o external -j MASQUERADE
이룰에 안걸렸다는건데요 네크워크 구성도를 한번 그려보세요
어디서 문제가 있는지 보일꺼 같은데요
댓글 달기