동일한 LAN 내의 PC에서 웹 서버 공개 IP를 통해 웹 사이트에 액세스 포트 80에서 웹

두 대의 컴퓨터가 동일한 LAN (PC 및 웹 서버)에있는 경우 PC가 라우터 공용 IP (포트 포워딩)를 사용하여 웹 서버에서 호스팅되는 웹 사이트에 액세스하기 위해 라우터에서 ‘NAT 루프백’을 활성화해야하는 이유 포트 80에서 웹 서버로)? 동적 DNS에 관한이 기사는 설정을 완벽하게 보여줍니다. http://www.dyndns.com/support/kb/loopback_connections.html

(이 예에서 그들은 www.example.com URL을 사용하여 웹 서버에 액세스하려고합니다. 관련이없는 내 질문의 목적으로, 공개 IP를 통해 웹 서버에 액세스하는 데 관심이 있으며 URL이 없습니다)

위 기사의 마지막 문장은 다음과 같습니다. “호스트 이름 www.example.com을 통해 컴퓨터에 액세스하려고하면 NAT 라우터가이 WAN 인터페이스를 라우팅 한 다음 다시 연결하려고 시도합니다. 대부분의 경우 실패합니다. 라우터가 사용자의 행동을 이해하지 못하기 때문에 라우터 자체의 웹 인터페이스를 반환합니다.”

라우터가 혼란스러워하는 이유에 대해 누구나 기술적으로 설명 할 수 있습니까? 이 상황에서 패킷을 혼동시키기 위해 라우터에 도달하면 실제로 패킷은 어떻게됩니까?

두 번째 질문은 라우터가 ‘NAT 루프백’을 지원하면이 기능이 라우팅에서 변경되어 퍼블릭 IP를 사용할 수있는 것은 무엇입니까?



답변

다음은 예입니다. 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 루프백”이라고합니다.

그러나 대부분의 라우터 제조업체는 분명히 문제를 인식하지 못하고이 규칙 (또는 라우터 독점 시스템의 해당 규칙)을 제품에 적용하지 않았습니다 …