TCP 및 UDP 패킷이 NAT되면 어떻게 되나요?

TCP 및 UDP 패킷이 NAT되면 어떻게 되나요?

두 개의 가상 개인 서버가 있고 서로 다른 국가에 있는 경우. 그런 다음 서버(139.162.131.242)를 프록시 서버로 사용하여 tcp 및 udp 트래픽을 프록시하고 프록시 프로세스가 로컬 포트 ​​8300에서 수신 대기하고 싶습니다. 다른 서버(172.104.98.95)는 트래픽을 프록시 서버로 릴레이하는 데 사용됩니다.

누군가 나에게 IPTABLES를 사용하여 이를 달성하는 방법을 가르쳐주었습니다.
1 단계:프록시 서버(139.162.131.242)에 프록시를 설정하고 실행합니다.
2 단계:릴레이 서버(172.104.98.95)에 다음과 같이 일부 iptables 규칙을 작성합니다.

iptables -t nat -A PREROUTING -p tcp --dport 8300 -j DNAT --to-destination 139.162.131.242:8300  
iptables -t nat -A PREROUTING -p udp --dport 8300 -j DNAT --to-destination 139.162.131.242:8300  
iptables -t nat -A POSTROUTING -d 139.162.131.242 -p tcp --dport 8300 -j SNAT --to-source 172.104.98.95  
iptables -t nat -A POSTROUTING -d 139.162.131.242 -p udp --dport 8300 -j SNAT --to-source 172.104.98.95  

3단계:모든 tcp 및 udp 트래픽이 릴레이 서버로 이동하도록 프록시 클라이언트 프로그램을 설정합니다.

그런데 이 방법이 헷갈리네요. 예를 들어, 저는 온라인 게임을 하고 있는데 udp나 tcp를 사용하여 게임 서버와 통신합니다. 이 트래픽이 릴레이 서버에 도달하면 DNA 분석을 거쳐 최종적으로 프록시 서버에 도달하는데, 프록시 서버는 이 트래픽이 어디로 전송되는지 알고 있을까요? 프록시 서버가 이 트래픽을 게임 서버로 보낸다는 뜻인가요? 가능하다면, 릴레이 서버에서 트래픽의 목적지 주소가 변경된 후 프록시 서버는 실제 게임 서버 주소를 어떻게 알 수 있나요?

답변1

IP 데이터 패킷의 관련 정보는 다음과 같습니다.소스 주소,목적지 주소,소스 포트그리고목적지 포트. 소스 및 대상 포트 쌍은 클라이언트와 서버에서 사용됩니다. 초기자는 대상 포트로 패킷을 보내고 응답에서 소스 포트를 대상 포트로 사용하고 대상 포트를 소스 포트로 사용하여 소스 포트를 선택합니다.

패킷이 변경될 때마다 변경 사항 간의 매핑이 저장됩니다. 이 매핑을 통해 장치는 패킷을 처리하는 방법을 알고 있습니다. NAT는 이 정보를 사용하여 호스트 간의 연결을 매핑합니다. 고정 NAT는 미리 구성된 규칙에 따라 매핑을 사용하는 반면, 동적 NAT는 새 연결이 시작될 때 매핑을 확장하고 연결이 닫힐 때 매핑 항목을 삭제합니다.

클라이언트와 서버 간에 패킷이 전송되는 방법을 단계별로 설명하겠습니다. 나는 귀하가 사용하고 있는 프록시의 세부 사항을 모르기 때문에 프록시에 대한 모든 트래픽이 서버로 전달되어 투명하게 발생한다고 가정합니다.

클라이언트와 서버 사이의 단계:

client <---> VPN <---> NAT <---> proxy <---> server

클라이언트에서 서버로:

  1. 클라이언트는 패킷을 다음으로 보냅니다.목적지 주소(대리인). 라우팅은 VPN을 통해 트래픽을 보내는 데 사용됩니다.
  2. NAT는 패킷을 전달합니다. NAT가 변경됨소스 주소소스 NAT 규칙을 통해 직접 사용해 보세요.대상 주소(프록시)는 변경되지 않습니다..
  3. 프록시는 NAT에서 패킷을 가져와 평소대로 중계합니다.
  4. 대상 서버는 프록시로부터 패킷을 수신합니다.

서버에서 클라이언트로:

  1. 대상 서버는 패킷을 프록시로 보냅니다.
  2. 프록시는 패킷을 NAT로 중계합니다.
  3. NAT는 패킷을 전달합니다.목적지 주소대상 NAT 규칙을 클라이언트 주소로 변경합니다.소스 주소(프록시)는 변경되지 않고 유지됩니다..
  4. 클라이언트가 패킷을 받습니다.

관련 정보