lunes, 18 de julio de 2016

Segunda interfaz de red en Proxmox y habilitar el tráfico entre ellas



¡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!

Radar COVID

Tras largo tiempo sin publicar una entrada en el Blog, me he animado a escribir acerca de una App que podría llegar a ser muy útil en el con...