Enrutamiento NAT basado en el nombre DNS (¿proxy TCP inverso?)

Enrutamiento NAT basado en el nombre DNS (¿proxy TCP inverso?)

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.

información relacionada