iptables bidirektionale NAT-UDP-Konfiguration für mehrere Quellen

iptables bidirektionale NAT-UDP-Konfiguration für mehrere Quellen

Ich habe das folgende Setup, alle UDP-Pakete:

Client (42.123.124.125) -> (42.123.0.125) NAT-Server (192.168.2.2) -> (192.168.2.5) UDP-Dienst

Der Nat_Server muss eingehende UDP-Daten vom Client über eine öffentliche IP-Adresse empfangen und das Paket über ein privates Netzwerk an den UDP_Service umleiten. Anschließend muss er alle Antworten vom UDP_Service zurück an den Client umleiten.

Der Client verhandelt eine Verbindung zu einem bestimmten Port (4244) und empfängt dann Daten auf seinem zufälligen UDP-Port.

Der Ablauf kann mit tcpdump beschrieben werden. Verhandlung:

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        

Datenfluss:

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    

Die Ports 38541 und 43434 bleiben während der gesamten Verbindung gleich. Ich habe es mit dieser iptables-Konfiguration geschafft:

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

Wie kann ich das gleiche Verhalten erreichen, wenn viele Clients vorhanden sind? Statt 42.123.124.125 würde ich also gerne einen Bereich verwenden, z. B. 42.123.124.0/24

verwandte Informationen