다음은 예입니다. Neufbox4 (프랑스 ISP에서 제공하는 라우터)와 같은 일부 라우터는 Linux를 실행합니다. 이 라우터에서 프로그램 "iptables"는 NAT 동작을 구성하는 데 사용됩니다 (iptables는 Linux 네트워킹을위한 일종의 스위스 군용 칼입니다).
라우터 뒤에 웹 서버 (포트 TCP 80)가 LAN 주소 192.168.0.2에서 수신 대기하고 있으며 포트 맵핑 (리디렉션)을 추가한다고 가정하십시오. 이것은 iptables의 용어에서 다음과 같이 번역됩니다.
iptables -t nat -A PREROUTING -i wan -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
이는 "TCP 포트 80을 향한 WAN 인터페이스를 통해 들어오는 모든 패킷에 대해 192.168.0.2로 전송합니다"를 의미합니다. 정확히 당신이 원하는 것입니다. 지금은 괜찮습니다 ...
라우터의 WAN 인터페이스와 관련된 IP 주소는 공용 인터넷 주소라는 것을 이해해야합니다. 예를 들어, 인터넷 IP가 1.2.3.4 인 경우 라우터의 "wan"인터페이스의 IP 주소는 1.2.3.4입니다.
이제 자신의 인터넷 주소를 사용하여 LAN에서 웹 서버에 액세스하려고한다고 가정합니다 (예 : 개인 컴퓨터에서 주소 192.168.0.3). 예를 들어, 브라우저에 " http://1.2.3.4/ " 를 입력 하십시오.
컴퓨터가 LAN에서 1.2.3.4, TCP 포트 80으로 지정된 패킷을 전송하게됩니다. 라우터는이 패킷을받습니다. 그러나 192.168.0.2로 리디렉션하지 않습니다. 왜? 위의 iptables 규칙은 LAN이 아닌 WAN 인터페이스에서 들어오는 패킷 만 처리하므로!
그러면 어떻게 될까요? 글쎄, 그것은 라우터의 다른 네트워킹 규칙에 달려 있습니다. 일반적으로 다음 두 가지 중 하나가 발생합니다.
라우터는 자신을 향한 패킷을 보게됩니다 (1.2.3.4는 라우터의 IP 주소 중 하나이므로 완벽하게 정상입니다). 대부분의 라우터에는 관리 인터페이스를 위해 포트 80에서 수신 대기하는 웹 서버가 있습니다. 따라서이 웹 서버는 LAN의 웹 서버가 아닌 패킷을 처리하며 웹 사이트 대신 관리 인터페이스를 얻습니다.
또는 라우터는 LAN 포트의 WAN 주소로 향하는 패킷을 처리하는 방법을 모르기 때문에 어떤 이유로 든 패킷을 삭제합니다.
기술적으로 솔루션은 매우 간단하며 iptables 규칙 형식으로 구성됩니다.
iptables -t nat -A PREROUTING -i lan -d 1.2.3.4 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
이는 "TCP 포트 80으로 향하고 대상 주소가 1.2.3.4 인 LAN 인터페이스를 통해 들어오는 모든 패킷에 대해 192.168.0.2로 전송합니다"를 의미합니다. 이것을 "NAT 루프백"이라고합니다.
그러나 대부분의 라우터 제조업체는 분명히 문제를 인식하지 못하고이 규칙 (또는 라우터 독점 시스템의 해당 규칙)을 제품에 적용하지 않았습니다 ...