Tengo un circo montado con mi conexión que no podría explicaros en 10 páginas xD
A grandes rasgos, una parte del tráfico de mi máquina sale a Internet a través de un Linux, que lo NATea y lo enruta por una VPN. El caso es que quiero que algunas conexiones UDP que pasan por esta máquina tengan como puerto de origen el 53. Algunas aplicaciones permiten especificarlo, pero otras no, así que tengo que forzarlo en el iptables.
Lo lógico, creo yo, es cambiarlo en POSTROUTING (SNAT), con una regla como esta:
iptables -t nat -A POSTROUTING -p udp -o ppp0 -j SNAT --to-source ip_vpn:53-53
Y funciona, pero claro, cuando vuelve el paquete no se le restaura el puerto original y por tanto llega a mi máquina:53 y se pierde.
Puedo poner una regla para DNAT que cambie el puerto 53 por otro, pero nos vemos en las mismas, porque el original no es uno fijo, sino aleatorio.
En resumen, ¿se puede hacer lo que quiero?