Mr.PlanB Logo
    Volver al blog
    proxmox
    multi-tenant
    sdn
    rbac
    self-service

    Cómo convertir un solo nodo de Proxmox en una nube multinquilino de autoservicio

    26 de diciembre de 2025
    7 min de lectura

    Hay un momento muy concreto al que toda pequeña infraestructura llega tarde o temprano.

    Automate Proxmox SDN with Terraform: Zones, VNets & DHCP

    Ocurre cuando un nodo de Proxmox se convierte en el nodo de Proxmox de la empresa.

    Empieza de forma inocua, con una máquina potente, núcleos de sobra, muchísima RAM y un par de VM para servicios internos. Quizá un entorno de pruebas. Luego otro equipo pide «solo una VM» y poco después arranca otro proyecto. De repente ese único nodo aloja la mitad del entorno de desarrollo de la empresa, y todo el mundo quiere acceso.

    Ahí es donde la situación suele ponerse incómoda.

    Proxmox, por defecto, es muy tajante con respecto a quién manda. O eres root o básicamente eres un espectador. Y en cuanto concedes acceso real a alguien en la GUI, puede verlo todo: las VM de otros equipos, el almacenamiento, los objetos de red y el árbol completo del Datacenter. El radio de impacto resulta evidente.

    Por eso se suele recurrir a malos compromisos:

    • Repartir accesos de root porque «total, es interno».
    • Recurrir a la virtualización anidada para simular aislamiento.
    • Levantar hosts independientes para cada equipo y ver cómo el aprovechamiento se desploma.
    • O cerrarlo todo bajo llave y convertirse en una API humana para peticiones de encendido, apagado o snapshots.

    Una guía reciente de la comunidad de Proxmox muestra que existe una opción mejor, una alternativa que parece obvia a posteriori pero que se aprovecha sorprendentemente poco.

    El resultado es un nodo físico de Proxmox dividido en laboratorios aislados por proyecto, donde los equipos gestionan sus propias VM mediante la GUI de Proxmox sin recibir permisos de root y sin ver nada que no les pertenezca. No hay magia ni forks de por medio: solo SDN, RBAC y algo de método.

    La idea central: tratar los proyectos como inquilinos (sin pretender ser una nube pública)

    El montaje arranca con un simple cambio de perspectiva. Los «inquilinos» en este caso son equipos de proyectos internos, pruebas de concepto, grupos de formación o entornos efímeros, y no clientes desconocidos de alojamiento web. Son personas que necesitan autonomía, pero no soberanía sobre el sistema.

    Por ejemplo:

    • Equipos de desarrollo dentro de una empresa de software pequeña
    • Laboratorios de pruebas gestionados por un MSP
    • Entornos para cursos o talleres formativos
    • Laboratorios de seguridad con separación estricta

    En todos esos escenarios, entregar a cada equipo un servidor dedicado con acceso root es un despilfarro, y conceder permisos de root a todos en una máquina compartida es una temeridad.

    En su lugar, este método construye el aislamiento de cada proyecto en torno a dos ejes:

    • Aislamiento de red: cada proyecto habita en su propia zona SDN y su respectiva VNet
    • Aislamiento en la GUI: RBAC garantiza que los usuarios solo vean y controlen sus propios recursos

    Ambos principios se aplican directamente dentro de Proxmox.

    Construir la ilusión: un solo nodo, muchos mundos invisibles

    En el centro de esta configuración se encuentra un único nodo de Proxmox VE que ejecuta varios «laboratorios de proyecto» totalmente aislados.

    Cada proyecto recibe:

    • Su propia zona SDN (devpj01, devpj02, etc.)
    • Su propia VNet dentro de esa zona
    • Su propio punto de entrada por VPN
    • Su propio pool de recursos en Proxmox

    La capa SDN garantiza que el tráfico no pueda cruzar los límites del proyecto. Los usuarios conectados por VPN aterrizan directamente dentro de la VNet de su proyecto y nada más, sin artificios de enrutamiento ni malabares de firewall posteriores.

    Aquí es donde destaca la SDN de Proxmox. Con las zonas y las VNet, el aislamiento queda integrado en el propio diseño de red en vez de depender de buenas intenciones.

    Sin embargo, el aislamiento de red por sí solo no resuelve el factor humano. Los usuarios no solo quieren conectividad: también necesitan botones donde hacer clic.

    Convertir la GUI de Proxmox en un portal de autoservicio

    La pregunta audaz que responde este montaje es si puedes permitir que los usuarios de VPN inicien sesión en la GUI de Proxmox sin arrepentirte al día siguiente.

    La respuesta resulta ser un sí rotundo, pero solo si aprovechas el RBAC de Proxmox del modo para el que fue diseñado. El secreto reside en los pools.

    Cada proyecto cuenta con su propio pool:

    • pj01
    • pj02
    • etcétera

    A continuación:

    • Se crea un grupo por cada proyecto (Pj01Admins)
    • Se añaden los usuarios a ese grupo
    • Se asigna al grupo un rol únicamente sobre el pool, nunca sobre el Datacenter ni sobre el nodo

    Ese rol es PVEAdmin. Suena arriesgado hasta que comprendes que el alcance importa más que el rol. PVEAdmin dentro de un pool permite:

    • Iniciar y apagar VM
    • Abrir consolas
    • Modificar ajustes de las VM
    • Tomar snapshots
    • Ejecutar backups
    • Crear y eliminar VM

    Todo eso aplica exclusivamente a los recursos que residen dentro de ese pool. Fuera de él, los demás objetos son completamente invisibles para ellos.

    Cuando un administrador de proyecto inicia sesión, el árbol de Proxmox se reduce a una vista despejada y ordenada:

    • Sin panel general del Datacenter
    • Sin rastro de otros proyectos
    • Sin ajustes globales del clúster
    • Solo su pool, sus VM y el almacenamiento asignado explícitamente

    Da la sensación de ser una instancia dedicada de Proxmox, sin serlo en realidad.

    El almacenamiento y las formas sutiles en que RBAC puede fallar

    Aquí es donde la mayoría de las pruebas con RBAC tropiezan sin previo aviso.

    Si no añades de forma explícita el almacenamiento al pool, la creación de VM fallará de forma desconcertante. Te quedas sin discos, sin ISOs, sin almacenamiento EFI y con una ristra de errores.

    La solución es sencilla aunque poco evidente:

    • El almacenamiento de disco para las VM debe añadirse al pool
    • El almacenamiento de imágenes ISO debe añadirse
    • El almacenamiento ligado al arranque y a EFI debe añadirse

    Solo entonces se sostiene el aislamiento. Una vez completado este paso, los administradores de proyecto pueden crear VM de principio a fin sin tocar ningún ajuste global.

    Permisos de SDN: el detalle crítico

    La selección de red al crear una VM es el punto más delicado. Si olvidas los permisos de SDN, los usuarios chocarán contra un muro al intentar asociar una interfaz de red. Si los configuras mal, podrían acceder a las redes de otros proyectos.

    La solución más limpia pasa por definir zonas SDN individuales por proyecto. Cada proyecto cuenta con su propia zona, y al grupo de administradores del proyecto solo se le otorgan permisos sobre ella. De ese modo:

    • Pueden conectar interfaces de red a su propia VNet
    • No pueden ver ni modificar las VNet de otros proyectos
    • No pueden crear nuevas zonas ni VNet a nivel global

    Existe un método alternativo para entornos que ya emplean una zona compartida, consistente en asignar permisos directamente sobre rutas de VNet ocultas. Aun así, la dirección idónea es clara: las zonas dedicadas por proyecto escalan mejor y son más seguras ante errores.

    Esta es la pieza que transforma una demostración curiosa en un entorno multinquilino de verdad.

    Acceso por VPN sin abrir el entorno al mundo

    Por último, el acceso. Los usuarios de la VPN solo tienen permitido alcanzar la GUI de Proxmox a través de la IP de la puerta de enlace SDN de su proyecto, en el puerto 8006. Las reglas de firewall unen todas las piezas mediante conjuntos de IP (ipsets), de modo que el acceso queda restringido tanto por red como por identidad.

    No hace falta exponer la GUI a internet, ni hacen falta servidores de salto o túneles SSH frágiles. Te conectas a la VPN, abres el navegador y Proxmox aparece delante, pero solo con tu parcela correspondiente.

    Transmite una sensación de modernidad que no siempre se le reconoce a Proxmox.

    Lo que esto todavía no resuelve (y por qué no pasa nada)

    Este esquema es potente, pero no busca fingir que es AWS.

    No existen cuotas estrictas de CPU, RAM ni recuento de VM. Los identificadores VMID son globales. Las convenciones de nombres siguen dependiendo de la disciplina del equipo, y el acceso a la GUI por usuario individual resulta complejo sin IPs de VPN estáticas.

    Para el público al que va dirigido, nada de eso supone un obstáculo grave, porque lo que ganas es claridad operativa:

    • Los responsables de infraestructura conservan root y el control del Datacenter
    • Los equipos de proyecto obtienen autonomía
    • El aislamiento se impone por diseño y no por confianza
    • El aprovechamiento del hardware se mantiene alto

    Muchas organizaciones pequeñas nunca se percatan de que este punto de equilibrio está a su alcance.

    Una perspectiva más amplia

    Lo más llamativo de este patrón es la poca complejidad a medida que requiere. No hay parches, planos de control externos ni apaños que se desmoronen con las actualizaciones. Solo utiliza Proxmox tal y como fue diseñado, aplicando pools, RBAC y SDN con coherencia.

    También recuerda que el modelo multinquilino no tiene por qué reservarse a las grandes nubes públicas. A veces basta con dejar que la gente haga su trabajo sin estorbarse mutuamente, en un único nodo y sin repartir privilegios de root. Cuando lo ves en marcha, resulta muy difícil volver atrás.

    Si hoy utilizas Proxmox y tienes que lidiar con varios equipos a la vez, esta configuración plantea una duda inevitable: ¿por qué seguimos haciéndolo por el camino difícil?