Назад | Перейти на главную страницу

Маршрутизация NAT на основе имени DNS (обратный TCP-прокси?)

Введение

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