.png)
Introducción
Tengo un enrutador que ejecuta pfSense (puede ser cualquier cosa, ya que es una máquina virtual en VMware, por lo que si la solución requiere algo más, por mí está bien) y detrás tengo varias máquinas virtuales (NAT).
Lo que me gustaría lograr
Me gustaría usar algún tipo de proxy para usar múltiples servicios con 1 IP, preferiblemente basado en DNS. Por ejemplo; ejecutar un servidor de correo (y un sitio web para acceso web) en mail.domain.com y ejecutar un sitio web en www.domain.com y ejecutar un servidor FTP en ftp.domain.com, pero todos son una máquina virtual diferente.
Así que básicamente:
Hostname Internal NAT IP Port
www.domain.com 192.168.1.10 80
mail.domain.com 192.168.1.11 25
mail.domain.com 192.168.1.11 80
mail.domain.com 192.168.1.11 443
ftp.domain.com 192.168.1.12 21
Entonces pensé en usar HAProxy, pero HAProxy solo permite esto para el tráfico HTTP y no para el tráfico TCP "normal" (según el nombre DNS). me gustaría tenertodoLos puertos (tanto TCP como UDP, pero si TCP solo es posible, entonces también está bien) se redirigirán a la máquina virtual respectiva.
Respuesta1
Realizar cualquier tipo de proxy basado en el nombre de host DNS utilizado también requiere que el protocolo de la aplicación lleve el encabezado del host de alguna manera.
Que yo sepa, no existen tales encabezados involucrados en FTP, por lo que no veo cómo será posible. Tal vez con un proxy FTP personalizado, que te envíe a diferentes servidores según el nombre de usuario o algo así.
TLDR: No creo que tu objetivo final sea posible. Necesita más de una dirección IP externa.