Today is Thursday, 9th September 2010

NAT sobre conexiones locales

En ocasiones es útil el NAT ;) . En este caso concreto pondremos una línea de iptables para realizar Source Nat sobre conexiones originadas localmente.

Antes de nada, queremos mostrar la cadena que atraviesa un paquete por un sistema con iptables:

iptables-chain-graph

Es importante destacar las partes donde se toman decisiones de enrutado, sobre todo cuando utilizamos las tablas de mangle y nat.

¿Para qué puede ser útil?

  • En sistemas locales con VMware Workstation/Server, cuando creamos una máquina virtual con tarjeta de red tipo NAT, este NAT lo hace el módulo del kernel de VMware, por tanto no es una NAT puro que podamos controlar. Si podemos evitar usar esto mejor, y como alternativa utilizar tipo host-only y realizar el NAT con iptables.
  • En terminadores de túneles, cuando queremos ir al otro terminador con una ip de otro interfaz, por ejemplo para lanzar 4 icmps y comprobar el túnel.
  • ???

Comando iptables:

# iptables -t nat -A POSTROUTING -o <interfaz-de-salida> -s <ip-origenA>/32 -d <ip o red destino> -j SNAT –to-source <ip-origenB>

ip-origenA – es la dirección IP del interfaz que normalmente utilizaría el paquete sin alterar.

ip-origenB – es la dirección que queremos asignar al paquete de salida. El paquete queda alterado.

Fuente: http://www.iescopernic.com/sergi_wiki/index.php/Iptables

Es importante dejar claro que en VPN de tipo SSL esto funciona correctamente, pero en túneles IPSec habrá que tener cuidado con el NAT Transversal


Leave a Reply





Top