Fantástico, Epzylon!
Efectivamente el truco estaba en "marcar" los paquetes previamente. No sabía que existía esa función, pero me la apunto.
Funciona a la perfección, al final, luego de unas pequeñas correciones la cosa ha quedado así:
iptables -t mangle -A PREROUTING -p tcp --dport 10801 -j MARK --set-mark 801
iptables -t mangle -A PREROUTING -p tcp --dport 10802 -j MARK --set-mark 802
iptables -t nat -A PREROUTING -p tcp --dport 10801 -j DNAT --to-destination 20.0.0.2:10800
iptables -t nat -A PREROUTING -p tcp --dport 10802 -j DNAT --to-destination 20.0.0.2:10800
iptables -t nat -A POSTROUTING -m mark --mark 801 -j SNAT --to-source 50.0.0.2
iptables -t nat -A POSTROUTING -m mark --mark 802 -j SNAT --to-source 60.0.0.2
Solamente se me ocurren un par de cuestiones que son mas curiosidad que otra cosa,
1.- ¿Cuantas marcas distintas se pueden establecer simultáneamente?
2.- ¿Las marcas deben estar dentro de un rango o sirve cualquier numero entero?
De nuevo, un millón de gracias por las respuestas e ideas.
Efectivamente el truco estaba en "marcar" los paquetes previamente. No sabía que existía esa función, pero me la apunto.
Funciona a la perfección, al final, luego de unas pequeñas correciones la cosa ha quedado así:
iptables -t mangle -A PREROUTING -p tcp --dport 10801 -j MARK --set-mark 801
iptables -t mangle -A PREROUTING -p tcp --dport 10802 -j MARK --set-mark 802
iptables -t nat -A PREROUTING -p tcp --dport 10801 -j DNAT --to-destination 20.0.0.2:10800
iptables -t nat -A PREROUTING -p tcp --dport 10802 -j DNAT --to-destination 20.0.0.2:10800
iptables -t nat -A POSTROUTING -m mark --mark 801 -j SNAT --to-source 50.0.0.2
iptables -t nat -A POSTROUTING -m mark --mark 802 -j SNAT --to-source 60.0.0.2
Solamente se me ocurren un par de cuestiones que son mas curiosidad que otra cosa,
1.- ¿Cuantas marcas distintas se pueden establecer simultáneamente?
2.- ¿Las marcas deben estar dentro de un rango o sirve cualquier numero entero?
De nuevo, un millón de gracias por las respuestas e ideas.