Configurar proxy inverso para máquinas virtuales en HostOS

Configurar proxy inverso para máquinas virtuales en HostOS

Actualmente estoy instalando un servidor que consta de un host de virtualización (kvm en ubuntu) y 7 máquinas virtuales, algunas ejecutan MySQL y LDAP, otras ejecutan diferentes servidores web y aplicaciones web. Las máquinas virtuales que ejecutan las bases de datos solo serán consultadas por otras máquinas virtuales en el mismo servidor físico. Las máquinas virtuales del servidor web ejecutarán entre 10 y 20 sitios web y aplicaciones web. El servidor se ubicará en un centro de datos, conectado directamente a Internet.

Mi idea era utilizar la red NAT entre el Host y las VM (formando una LAN internamente) y asignar al HostOS la dirección IP pública. HostOS ejecutará el firewall (con iptables) y distribuirá el tráfico de red a las máquinas virtuales. Inicialmente, las máquinas virtuales estarían completamente aisladas del exterior, por lo que en este esquema no sería necesario tener un firewall con todas las funciones en ninguna de las máquinas virtuales. Además, sólo necesitaría 1 dirección IP pública. Tengo que pagar extra por direcciones IP adicionales y no puedo tener más de 5.

Pensé que podría usar un proxy inverso en HostOS para distribuir el tráfico entre las máquinas virtuales según los nombres de host solicitados.

Mi pregunta es doble:

  • ¿Es esta una buena forma de configurar hostOS y VM? ¿O un proxy inverso ralentizará demasiado el servidor? ¿Debería simplemente utilizar redes puente (recomendadas por la mayoría de las fuentes), aceptar que todas mis máquinas virtuales estén expuestas directamente al exterior y tomar las medidas correspondientes?
  • ¿Cuál sería un buen proxy inverso para ejecutar en hostOS? Escucho buenas historias sobre HAproxy. Configuré mod_proxy antes (aunque en un escenario completamente diferente), pero escuché que la mayoría de la gente prefiere HAproxy. ¿O necesito algún proxy inverso ultraligero que ocupe el menor espacio posible para no ralentizar demasiado el hostOS?

Respuesta1

Estoy usando exactamente este tipo de arquitectura con Proxmox. La conexión en red puente no es una opción, ya que no tengo una cantidad suficiente de IP públicas para las máquinas virtuales. Estoy usando nginx como máquinas virtuales proxy, puedes configurarlo directamente en el Host, pero usar una máquina virtual tampoco es una mala idea (intenta mantener la configuración del Host lo más simple posible).

Respuesta2

La única forma de utilizar la red puente es tener una IP para cada máquina virtual que deba estar conectada a Internet. Dado que esto significa que debe proteger cada máquina virtual por sí sola, puede resultar menos complicado utilizar un solo firewall en su sistema host. También hay buenos tutoriales para eso, si usas libvirt (https://jamielinux.com/docs/libvirt-networking-handbook/nat-based-network.html). En mi experiencia (con nginx) no hubo ninguna desaceleración notable con esta solución. Supongo que HAproxy podría ser incluso más rápido.

información relacionada