У меня есть один маршрутизатор, на котором запущен 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-адреса.