클라이언트와 서버가 있다고 가정 해 봅시다. 클라이언트가 NAT 뒤에 있고 서버가 공용입니다.
클라이언트가 서버와의 세션 을 원합니다 .
클라이언트가 192.168.1.1에 있고 NAT가 192.168.1.2 개인 IP 주소에 있다고 가정 해 봅시다. 50.0.0.1의 NAT와 50.0.0.2의 공용 IP 주소의 서버.
클라이언트는 UDP / IP (TCP / IP와 유사) 패킷을 서버로 보냅니다. 이 패킷의 소스 IP는 192.168.1.1이며 소스 포트는 1000 (임의로 선택됨)이며 대상 포트 50.0.0.2 및 대상 포트 2000도 있습니다. 포트 응용 프로그램이 서버에서 실행되기 때문입니다.
TCP / IP 패킷은 NAT에 도착하여 소스 IP를 50.0.0.1로 변경하고 포트는 5000 (임의로 선택됨)이라고 말하고 서버로 라우팅합니다.
서버는 대상 IP 50.0.0.1 및 포트 5000을 사용하여 응답 패킷을 보냅니다.
NAT는 패킷의 대상 IP를 192.168.1.1로 변경하고 대상 포트를 1000으로 변경합니다.
-
이제 서버가 많은 UDP / IP 패킷을 동일한 IP 50.0.0.1 및 포트 5000으로 전송할 수 있으며 모든 패킷이 클라이언트 192.168.1.1 포트 1000으로 전달됩니까?
-
그렇다면 NAT의 공용 측에있는이 포트 5000이 패킷을 언급 된 클라이언트에 얼마나 오랫동안 전달합니까?
-
소스 IP 50.0.0.2 및 소스 포트 2000 이있는 패킷 만 클라이언트로 전달됩니까?
답변
답변:
- 예.
- 이는 장치의 NAT 구현에 따라 다릅니다. Linux에서는 / proc / sys / net / ipv4 / netfilter / ip_conntrack_udp_ * 를 편집 하여 조정할 수 있습니다.
- 예-NAT가 인식하는 “관련”포트가없는 경우 추가 NAT 모듈을 사용하여 관련 사항을 해결하는 데 사용합니다 (적어도 Linux에서는).