OpenVZ: Habilitar Acceso A Internet Dentro De Los Containers

Tras crear containers en nuestra máquina OpenVZ puede que necesitemos habilitar acceso a internet dentro de ellos para, por ejemplo, realizar actualizaciones.

Para habilitar que los containers, que sólo tienen IP privadas, tengan acceso a Internet deberemos configurar SNAT (Source Network Address Translation, también conocido como enmascaramiento de IP) en el nodo físico. Para esto utilizaremos unas simples reglas de iptables como la que se muestran a continuación:

# iptables -t nat -A POSTROUTING -s private_ip -o eth0 -j SNAT --to public_ip

Por ejemplo, si nuestra máquina física utiliza una IP pública 88.88.88.88 y queremos utilicen una IP privada 192.168.1.0/24 tendriamos que escribir:

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 88.88.88.88

También tendremos que habilitar una regla para reenvio de paquetes así:

# iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
# iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT

Con esto ya podríamos probar como desde dentro de algún container disponemos de acceso completo a Internet

vzctl exec $CTID ping debian.org
This entry was posted in Linux, Tips, Virtualización and tagged , , , , . Bookmark the permalink.