Saltar la navegación

NAT

Si queremos que un equipo GNU/Linux que hace de router, también realice la operación NAT, debemos usar el comando iptables en el momento de la activación de la tarjeta que va a hacer NAT. Esto se hará de una de determinada forma en función de si la asignación de la IP a la tarjeta que hará NAT es dinámica (por DHCP) o estática (IP fija).

  • Para el caso de que la IP de la tarjeta de red sea dinámica, y por lo tanto, cambiante entre distintos arranques del sistema:

post-up iptables -t nat -A POSTROUTING -o tarjeta-que-hace-nat -j MASQUERADE

Cuando la tarjeta se desactive, se debe eliminar la regla anterior:

pre-down iptables -t nat -D POSTROUTING -o tarjeta-que-hace-nat -j MASQUERADE

  • Para el caso de que la IP de la tarjeta de red sea fija:

post-up iptables -t nat -A POSTROUTING -o tarjeta-que-hace-nat -j SNAT --to-source IP-de-la-tarjeta-que-hace-nat

Cuando la tarjeta se desactive, se debe eliminar la regla anterior:

pre-down iptables -t nat -D POSTROUTING -o tarjeta-que-hace-nat -j SNAT --to-source IP-de-la-tarjeta-que-hace-nat

Podemos comprobar con el siguiente comando si la regla anterior está activa o no:

# iptables -nv -t nat -L POSTROUTING

Si no estuviera activa, no veríamos la regla:

# iptables -nv -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Si estuviera activa, veríamos la regla:

# iptables -nv -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0

Se ha supuesto para el ejemplo que la operación de NAT la realiza la tarjeta eth0 y que la IP es dinámica (MASQUERADE), no es fija y por lo tanto a priori no sabemos cuál será.

Este apartado del uso de iptables se explica de forma mucho más extensa en el tema del cortafuegos netfilter/iptables.

Licencia: licencia de software libre GPL