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

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

Введение

У меня есть один маршрутизатор, на котором запущен pfSense (может быть что угодно, поскольку это виртуальная машина на VMware, так что если для решения требуется что-то еще, меня это устраивает), а за ним у меня несколько виртуальных машин (NAT).

Чего я хотел бы достичь

Я хотел бы использовать какой-нибудь прокси-сервер для использования нескольких служб с одним 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, то это тоже нормально) для перенаправления на соответствующую виртуальную машину.

решение1

Для выполнения любого вида проксирования на основе используемого имени хоста DNS также необходимо, чтобы протокол приложения каким-либо образом передавал заголовок хоста.

Насколько мне известно, в FTP нет таких заголовков, поэтому я не вижу, как это будет возможно. Может быть, с помощью специального FTP-прокси, который отправляет вас на разные серверы в зависимости от имени пользователя или что-то в этом роде.

TLDR: Я не думаю, что ваша конечная цель достижима. Вам нужно больше одного внешнего IP-адреса.

Связанный контент