¡Hola a todos de nuevo! En esta entrada
traigo los pasos que debemos seguir para tras instalar una segunda interfaz de
red en Proxmox, las máquinas virtuales que se conecten al bridge virtual creado
relacionado con dicha segunda interfaz puedan enrutar su tráfico hacia
internet. Esto se podría aplicar a cualquier servidor servidor con Gnu/Linux
obviando la parte relacionada con vmbr (Linux bridges) ya que al final lo que
se hace no es más que habilitar el enrutamiento en el server y configurar una
regla de nat en iptables para permitir el tráfico entre las redes que hay tras
las interfaces.
En esta entrada lo traigo con Proxmox ya
que el otro día revisando las configuraciones de un VPS que tengo montado con
Proxmox vi las reglas de iptables relacionadas y no me acoraba de ellas, así
que pensé en hacer una publicación en el blog al respecto.
Para explicarlo partiremos de un modelo
simplificado, en el cual tienen cabida todas las opciones de conectividad y
dispositivos de red que se os ocurra sólo tendréis que adaptarlo a vuestras
necesidades.
Pero antes de nada es necesario haber
instalado y hacer visible la nueva interfaz de red (NIC) en Proxmox. Dicho
proceso no se describirá aquí por tratarse de un proceso general en Gnu/Linux.
Suponiendo que la primera interfaz de nuestro VPS con Proxmox es denominado
eth0 y la segunda interfaz eth1, el siguiente paso en crear un nuevo bridge
virtual relacionado con eth1 que por defecto se llamará vmbr1. A partir de
entonces cualquier máquina virtual que se cree con dicha vmbr1 usará dicha
interfaz para comunicarse con dispositivos y máquinas que formen parte de su
segmento de red.
Creación de Linux bridge en Proxmox
En el árbol jerárquico de las vistas
seleccionamos Server View, a continuación seleccionamos Proxmox bajo
Datacenter, a continuación en el panel de la derecha seleccionamos Network,
Create y Linux Bridge. Lo podemos ver en la siguiente imagen:
Rellenamos los campos con
la información de red que queramos configurar teniendo en cuenta que en Bridge
Ports pondremos eth1 que hemos supuesto que es la segunda interfaz de nuestro
VPS Proxmox. Aquí lo hemos completado con la información que usaremos en el
modelo que se presenta a continuación. En la siguiente imagen podemos ver como
quedaría.
Es importante resaltar que el campo Gateway
debe quedarse en blanco ya que no puede haber dos puertas de enlaces
diferentes, si por lo que sea lo rellenamos Proxmox se encargará de recordárnoslo.
Una vez creado vmbr1 deberemos reiniciar
nuestro VPS. Muy importante pensar si podéis reiniciarlo en ese momento por los
servicios que puedan estar ofreciendo vuestras máquinas virtuales, o es mejor
hacerlo más tarde. En cualquier caso, los cambios se harán efectivos tras el
reinicio del sistema.
A continuación se muestra como ya se
mencionó con anterioridad un modelo simplificado en el que aparece el VPS con
Proxmox, dos conmutadores (uno en la “pata” de eth0 y el otro en la “pata” de
eth1), dos máquinas físicas (machine1 y machine4) y dos máquinas virtuales
(vmachine2 y vmachine3).
¿Qué es lo que ocurre?
Vamos a suponer lo siguiente; el VPS tenía conectividad a
internet a través de su puerta de enlace que estará en la red 192.168.1.0/24
que alcanzaba a través de su interfaz eth0 aunque no se haya representado en la
imagen. Por ende, si así se hubieran configurado (vamos a suponer que sí) las
máquinas virtuales conectadas a vmbr0 saldrían a Internet.
Por defecto, tras instalar la nueva
tarjeta de red en el VPS, crear vmbr1, las máquinas virtuales que se creen
relacionadas con vmbr1 no saldrán a internet (recuerda que no se le pudo poner
ninguna puerta de enlace en su creación).
¿Solución?
Crear unas reglas iptables que permitan
el tráfico entre las redes de cada una de las interfaces.
Editamos el fichero
/etc/network/interfaces en nuestro VPS Proxmox con nuestro editor de texto
favorito y añadimos las siguientes líneas bajo la interfaz vmbr0 (Linux bridge
inicial).
post-up
echo 1 > /proc/sys/net/ipv4/ip_forward
Habilita el enrutamiento
de paquetes de red ipv4
post-up
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o vmbr0 -j MASQUERADE
Añade una regla iptables tras
“levantarse” la interfaz que permite que el tráfico proveniente de la red
192.168.3.0/24 salga a través de vmbr0 haciendo nat con la ip de la interfaz de
vmbr0.
post-down
iptables -t nat -D POSTROUTING -s 192.168.3.0/24 -o vmbr0 -j MASQUERADE
Borra una regla iptables tras
“tumbar” la interfaz que permitía que el tráfico proveniente de la red
192.168.3.0/24 salga a través de vmbr0 haciendo nat con la ip de la interfaz de
vmbr0.
Recuerda que esto es aplicable a cualquier server Gnu/Linux sólo tendrás que adaptarlo a tu escenario. Espero que os haya resultado útil o lo sea en algún momento. Como siempre voloro muchísimo vuestras aportaciones, experiencias en forma de comentarios para completar y mejorar las entradas de este blog.
¡Nos leemos en la próxima!