1

Это может быть довольно просто, поэтому, если вам так кажется, не думайте об этом!

Моя настройка

  • Домашний сервер под управлением Hyper-V с виртуальными машинами для IIS, MSSQL и другими
  • Жилое соединение с потенциально меняющимся IP-адресом, которое я сопоставил с доменом DynDNS (поэтому DNS обновляется автоматически)
  • Сервер и все виртуальные машины (кроме одной) работают под управлением Windows Server 2012
  • Сервер, на котором размещены виртуальные машины, настроен как DNS-сервер, и все виртуальные машины имеют как статический внутренний IP-адрес для сети (так и имя хоста - моя виртуальная машина IIS, например, iis.mydomain.com)
  • Сервер находится за маршрутизатором, но может настраивать обычный (DMZ, переадресация портов и т.д.)

Сценарий

Я хотел бы иметь возможность перенаправлять трафик на все порты для **. Mydomain.com:PORT* для перехода к соответствующим образом отображенной виртуальной машине (т.е. iis.mydomain.com:PORT -> IIS_VM:PORT), которая отображается на конкретный статический IP в моей сети.

Например, я подключился к iis.mydomain.com по протоколу RDP, и он подключил меня к виртуальной машине IIS через удаленный рабочий стол из внешней сети. Я нажал на iis.mydomain.com в веб-браузере, и он загрузил соответствующий сайт, связанный с этим именем хоста на виртуальной машине IIS.

В качестве альтернативы, учитывая все вышесказанное, я могу создать mssql.mydoman.com и запустить его через удаленный рабочий стол, где он соединит меня с этой виртуальной машиной . Я мог бы также поразить это через Management Studio и заставить это соединиться.

Текущая попытка

  • Настройте серверы имен, которые указывают на мой жилой IP-адрес (и динамически обновляются через DynDNS)
  • Указал mydomain.com вышеупомянутым серверам имен
  • Использование центрального сервера под управлением DNS для разрешения имен хостов в сети

проблема

Я могу зайти на iis.mydomain.com из-за пределов моей сети, и он разрешает IP - к сожалению, он разрешает 192.168.0.105, который является внутренним IP-адресом компьютера IIS. Это имеет смысл, потому что в диспетчере DNS это то, что я назначил имени хоста.

Итак, вопрос:

Как настроить DNS-сервер (или перенастроить текущие настройки) таким образом, чтобы изнутри к сети трафик правильно перенаправлялся на 192.168.0.105 - но вне сети он просто попадает в жилой IP-адрес?

Догадки

Я понимаю, что здесь все "работает как задумано" в том смысле, что мой DNS-сервер правильно разрешает имя хоста по указанному IP-адресу - поэтому, если бы я пытался все это в моей локальной сети, это было бы полностью функциональным. Я чувствую, что проблема заключается в маскировке внутреннего IP-адреса, когда внешняя машина подключается только к моему домашнему IP-адресу, а затем существует некоторый скрытый уровень, который преобразует запрошенное имя хоста во внутренний IP-адрес.

Судя по моим прочтениям, у меня есть подозрение, что NAT может быть тем, что я ищу, но у меня действительно нет хорошего контекста.

1 ответ1

3

Для маршрутизации имя хоста не является частью уравнения - DNS-запрос уже разрешил IP-адрес, и он будет использоваться для соединения TCP/IP. Когда он попадает туда (где бы он ни находился), тогда может вступить в действие протокол, работающий по соединению, как в HTTP/1.1, в котором указывается имя хоста, чтобы обеспечить массовый виртуальный хостинг.

Таким образом, вы можете отправлять весь HTTP-трафик, поступающий через порт 80, на вашу виртуальную машину для веб-обслуживания (при условии, что ваш интернет-провайдер не блокирует его на маршруте); аналогично, вы можете отправлять VNC-соединения на другой сервер, RDP-соединения - на другой; но вы не можете попытаться выполнить RDP на iis.example.com и ожидать, что он перейдет куда-то еще к соединению RDP с MySQL.example.com, если оба имени хоста разрешают один и тот же IP-адрес с точки зрения клиента.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .