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

Поиск NAT на основе имени

У меня есть выделенный тестовый сервер с одним общедоступным IP-адресом, на котором есть сервер VMWare, и 4 тестовые среды, подключенные через NAT.

Это отлично работает для RDP на хосте Windows Server 2003 и предварительного просмотра сайтов и клиент / сервер оттуда, но некоторые из этих сайтов / серверов должны быть доступны для внешних клиентов.

Есть ли способ перевести имя (например, clientXYZ.ourtestserver.com), в котором говорится, что DNS GoDaddy разрешается на хост-сервер (64.89.12.44), на частный IP-адрес (192.168.248.16) и перенаправлять весь трафик гостю?

Любая помощь очень ценится.

Нет, это невозможно с использованием одного адреса без принятия недостатков или использования программного обеспечения, предназначенного для этого подхода. Что вы можете сделать:

  • Перенаправьте порт для каждой целевой машины. Допустим, у вас есть три машины с NAT, на которых размещается служба на TCP-порту 12345. Вы можете создать переадресацию портов на своем общедоступном компьютере: порт 12345 -> хост A, порт 12345, порт 12346 -> хост B, порт 12345, порт 12347 -> хост C, Порт 12345

  • Используйте обратный прокси-сервер на уровне протокола. Это, конечно, работает только для протоколов, которые по своей сути поддерживают именование, если это необходимо. Предполагая, что вы хотите обслуживать HTTP, у вас должен быть обратный прокси-сервер, работающий на порту 80 на вашем общедоступном адресе. Затем этот прокси будет анализировать заголовки Host: и перенаправлять запрос на машины с NAT.

В домашняя страница фунта объясняет, как это сделать, используя фунт в качестве обратный прокси в разделе ВИРТУАЛЬНЫЕ ХОЗЯЙКИ (В ОБЩЕМ). Хотя автор говорит, что не думает, что это работа Паунда :-) Я думаю, что вы также можете сделать это с помощью Apache, используя mod_proxy.

В основном pound получает общедоступный IP-адрес и распределяет запросы на соответствующий частный IP-адрес, читая заголовки HTTP-запроса. Обычно вы не могли сделать это с помощью SSL, но теперь есть способы сделать это, см. эту ссылку.

Если я правильно понимаю ваш вопрос, я могу придумать способ сделать это, который действительно может сработать для вас. Это немного запутано, но я думаю, что это сработает. Каждой виртуальной машине можно дать возможность маршрутизации с одной машины на другую. Учитывая, что это тестовая среда, снижение производительности этого метода может не иметь значения.

Итак, начнем ... Если все уникальные внешние записи DNS, которые вам нужно разрешить, относятся к одному и тому же IP-адресу, просто настройте каждый сервер виртуальной машины, чтобы знать, как достичь каждого конкретного сервера виртуальной машины посредством статического маршрута. Вам необходимо жестко закодировать fqdn в файлах хоста затронутых виртуальных машин или вы можете использовать свой внутренний DNS, если он у вас есть. Вам все равно нужно будет настроить определенные маршруты для каждой машины, на которую вы маршрутизируете локально.