여러 소스에 대한 iptables 양방향 NAT UDP 구성

여러 소스에 대한 iptables 양방향 NAT UDP 구성

나는 다음과 같은 설정을 가지고 있습니다. 모든 UDP 패킷은 다음과 같습니다.

클라이언트 (42.123.124.125) -> (42.123.0.125) nat_server (192.168.2.2) -> (192.168.2.5) udp_service

nat_server는 공용 IP를 통해 클라이언트로부터 들어오는 UDP를 수신하고 개인 네트워크를 통해 패킷을 udp_service로 리디렉션해야 합니다. 그런 다음 udp_service의 모든 응답을 다시 클라이언트로 리디렉션해야 합니다.

클라이언트는 특정 포트(4244)에 대한 연결을 협상한 다음 임의의 UDP 포트에서 데이터를 수신합니다.

흐름은 tcpdump로 설명할 수 있습니다. 협상:

15:03:48.630928 IP 42.123.124.125.38541 > nat_server.4244: UDP, length 4         
15:03:48.630953 IP nat_server.38541 > 192.168.2.5.4244: UDP, length 4           
15:03:48.680698 IP 192.168.2.5.43434 > nat_server.38541: UDP, length 4          
15:03:48.680707 IP nat_server > 42.123.124.125.38541: UDP, length 4        

데이터 흐름:

15:03:48.680741 IP 192.168.2.5.43434 > nat_server.38541: UDP, length 16           
15:03:48.680743 IP nat_server.43434 > 42.123.124.125.38541: UDP, length 16    

포트 38541 및 43434는 전체 연결 동안 동일하게 유지됩니다. 나는 이 iptables 구성을 사용하여 이를 수행했습니다.

iptables -t nat -A PREROUTING -s 42.123.124.125 -p udp -j DNAT --to-destination 192.168.2.5:4244
iptables -t nat -A PREROUTING -s 192.168.2.5 -p udp -j DNAT --to-destination 42.123.124.125
iptables -t nat -A POSTROUTING -j MASQUERADE

클라이언트가 많을 때 어떻게 동일한 동작을 수행할 수 있습니까? 따라서 42.123.124.125 대신 42.123.124.0/24와 같은 범위를 사용하고 싶습니다.

관련 정보