У меня есть один маршрутизатор, работая pfSense (может быть что-либо, так как это - виртуальная машина на VMware, поэтому если решение требует чего-либо еще, это меня устраивает), и позади него у меня есть несколько виртуальных машин (NAT).
Я хотел бы использовать какой-то прокси для использования многочисленных услуг с 1 IP, предпочтительно на основе DNS. Например; при выполнении почтового сервера (и веб-сайт для веб-доступа) на mail.domain.com и выполнении веб-сайта на www.domain.com и выполнении FTP-сервера на ftp.domain.com, но все - различная виртуальная машина.
Так в основном:
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
Таким образом, я думал об использовании HAProxy, но HAProxy только позволяет это для Трафика HTTP а не для "регулярного" трафика TCP (на основе имени DNS). Я хотел бы иметь все порты (и TCP и UDP, но если TCP только возможен затем, он прекрасен также) быть перенаправленным к соответствующей виртуальной машине.
Выполнение любого вида проксирования на основе используемого имени хоста DNS также требует, чтобы протокол приложения каким-либо образом переносил заголовок хоста.
Насколько мне известно, в FTP нет таких заголовков, поэтому я не понимаю, как это будет возможно. Может быть, с помощью специального FTP-прокси, который отправляет вас на разные серверы в зависимости от имени пользователя или чего-то подобного.
TL; DR: Я не думаю, что ваша конечная цель возможна. Вам нужно более одного внешнего IP-адреса.