Configuración nat udp bidireccional de iptables para múltiples fuentes

Configuración nat udp bidireccional de iptables para múltiples fuentes

Tengo la siguiente configuración, todos los paquetes udp:

cliente (42.123.124.125) -> (42.123.0.125) nat_server (192.168.2.2) -> (192.168.2.5) udp_service

nat_server tiene que recibir udp entrante del cliente a través de una IP pública y redirigir el paquete a udp_service a través de una red privada. Luego tiene que redirigir todas las respuestas de udp_service al cliente.

El cliente negocia la conexión a un puerto específico (4244) y luego recibe datos en su puerto udp aleatorio.

El flujo se puede describir con tcpdump. Negociación:

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        

Flujo de datos:

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    

Los puertos 38541 y 43434 permanecen iguales durante toda la conexión. Logré hacerlo con esta configuración de 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

¿Cómo puedo lograr el mismo comportamiento cuando hay muchos clientes? Entonces, en lugar de 42.123.124.125, me gustaría usar un rango, por ejemplo, 42.123.124.0/24.

información relacionada