.png)
Introdução
Eu tenho um roteador rodando pfSense (pode ser qualquer coisa já que é uma máquina virtual no VMware, então se a solução exigir mais alguma coisa, por mim tudo bem) e atrás dele tenho várias máquinas virtuais (NAT).
O que eu gostaria de realizar
Eu gostaria de usar algum tipo de proxy para usar vários serviços com 1 IP, de preferência baseado em DNS. Por exemplo; executando um servidor de e-mail (e site para acesso à web) em mail.domain.com e executando um site em www.domain.com e executando um servidor FTP em ftp.domain.com, mas todos são máquinas virtuais diferentes.
Então, basicamente:
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
Então pensei em usar o HAProxy, mas o HAProxy só permite isso para tráfego HTTP e não para tráfego TCP "normal" (com base no nome DNS). eu gostaria de tertodosportas (TCP e UDP, mas se o TCP só for possível, tudo bem também) sejam redirecionadas para a respectiva máquina virtual.
Responder1
Fazer qualquer tipo de proxy com base no nome de host DNS usado também requer que o protocolo do aplicativo carregue o cabeçalho do host de alguma forma.
Que eu saiba, não existem tais cabeçalhos envolvidos no FTP, então não vejo como isso será possível. Talvez com um proxy FTP personalizado, que o envie para servidores diferentes com base no nome de usuário ou algo parecido.
TLDR: Não acho que seu objetivo final seja possível. Você precisa de mais de um endereço IP externo.