En esta entrada compartiré mi experiencia de alquilar un servidor, instalar Proxmox, y configurar internet a las VM con una sola interfaz de red, y por tanto una única ip pública.

Después, también programé un script, que ejecutado directamente sobre el anfitrión, abre puertos a las VM según necesitemos. Permite también borrar puertos abiertos. Esto en otra publicación.

Instalación de Proxmox

En mi caso lo contraté con ovh, y en las maquetas de instalación, una de las opciones era instalar Proxmox Virtual Environment. Está baso en Debian. Por lo tanto, básicamente es Debian modificado y optimizado para la virtualización.

La definición es básica y se podría ahondar en ella, pero no es el objetivo de esta entrada.

Una vez instalado, entramos a su panel de administración vía web. https://miip:8006/ Y tendremos algo similar a esto.

admin proxmox

Si creas una VM, verás que te asigna de red una virtual vmbr0 en mi caso. Que por mucho que configures, no sale a internet.

Configurar internet una sola interfaz de red

Busqué, leí mucha información por internet. Mucho prueba error, pero no daba salido a internet. Incluso vi artículos del propio ovh, configurando internet con una segunda ip. Pero no me apetece pagar una segunda ip. Así que seguí buscando.

Active el IP_FORWAR editando el fichero /etc/sysctl.conf descomentando la línea net.ipv4.ip_forward=1. Algo hacía mal que no funcionaba.

Finalmente me fui a la documentación, cosa que debería haber hecho antes. Network Configuration – Proxmox VE y entre una de las opciones, encontré la solución.

Masquerading (NAT) with iptables que viene siendo lo que escribí arriba, pero añadiendo un par de líneas y configurando la interfaz de red.

#nano /etc/network/interfaces

auto lo
iface lo inet loopback

auto eno1
#real IP address
iface eno1 inet static
        address  198.51.100.5/24
        gateway  198.51.100.1

auto vmbr0
#private sub network
iface vmbr0 inet static
        address  10.10.10.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE

Donde en eno1 address y gateway, deberían aparecer los valores de nuestra ip pública y puerta de enlace. en la interfaz vmbr0 se puede cambiar el 10.10.10.1/24 por 192.168.1.1/24 si os apatece. Van a definir la red interna.

Configurando las VM

En los equipos clientes, cuando esté instalado el sistema operativo, o durante la instalación, si se necesita configurar la red, ha de hacerse manualmente. No hay DHCP, aunque podría instalarse.

red:              10.10.10.50
Subred:           255.255.255.0
Puerta de enlace: 10.10.10.1
DNS:              8.8.8.8

Con esto, nuestra máquina virtual ya dispondría de salida a internet. En otro post veremos como abrir puertos hacia las VMs.