Как настроить переадресацию с внешнего домена на внутренний с помощью DNS?

Добрый день! 

У меня возникла проблема с настройкой доменов. Я приобрел внешний домен example.ru и настроил внутреннюю зону в Windows Server 2022 Active Directory для example.ru. У меня есть DNS-сервер на Windows Server 2022 с внешним IP-адресом, на котором созданы записи ns1.ex.ru и ns2.ex.ru. Все необходимые DNS-записи были обновлены у регистратора.

На внешнем DNS-сервере я добавил A-записи для основного домена example.ru и поддомена test.example.ru с указанием внешних IP-адресов. На локальном DNS-сервере созданы A-записи для двух локальных машин, на которых развернут IIS и открыты 80-й порт через маршрутизатор MikroTik.

В результате, домен example.ru открывается корректно, а test.example.ru либо перенаправляется на example.ru, либо отображает ошибку 404 в зависимости от настроек DNS. Могу ли я настроить оба домена (example.ru и test.example.ru) для работы на 80-м порту без использования обратного прокси-сервера, такого как Nginx?
  • 10 февраля 2025 г. 1:14
Ответы на вопрос 2
Да, вы можете настроить оба домена (example.ru и test.example.ru) для работы на 80-м порту без использования обратного прокси-сервера, но вам понадобится правильная настройка в IIS и DNS. Вот шаги, которые помогут достичь данной конфигурации:

### Шаг 1: Настройка DNS

1. **Убедитесь, что DNS-записи правильные**:
   - На вашем внешнем DNS-сервере, добавьте следующие A-записи:
     - `example.ru` -> [ваш внешний IP]
     - `test.example.ru` -> [ваш внешний IP]
   - Эти записи должны указывать на один и тот же внешний IP-адрес вашего сервера, где работает IIS.

### Шаг 2: Настройка IIS

2. **Создание сайтов в IIS для каждого домена**:
   - Откройте `IIS Manager`.
   - Кликните правой кнопкой мыши на узле "Sites" и выберите "Add Website".
   - Для `example.ru`:
     - Укажите "Site name" (например, `ExampleSite`).
     - Укажите физический путь к папке, где находятся файлы вашего сайта.
     - В поле "Binding":
       - Тип: `http`
       - Имя узла: `example.ru`
       - Порт: `80`
   - Для `test.example.ru`:
     - Аналогично создание нового сайта с указанием "Site name" (например, `TestSite`).
     - Укажите физический путь к папке для `test.example.ru`.
     - В поле "Binding":
       - Тип: `http`
       - Имя узла: `test.example.ru`
       - Порт: `80`
   - Убедитесь, что оба сайта имеют уникальные "Host Names".

### Шаг 3: Проверка

3. **Проверка настройки**:
   - После завершения настройки, перезагрузите IIS (`iisreset` в командной строке).
   - Проверьте в браузере доступность `example.ru` и `test.example.ru`. Оба должны открываться корректно в своих соответствующих директориях.

### Возможные проблемы и решения

- **Проблема с кэшированием DNS**:
  Если изменения записей DNS не проявляются, может потребоваться очищение кэша DNS на вашем локальном компьютере командой `ipconfig /flushdns`.

- **Вывод ошибок**:
  Если вы все еще видите ошибку 404 или другой ошибка, проверьте:
  - Правильность настроек на сайте IIS (папка, где находятся файлы сайта, и другие параметры конфигурации).
  - Логи IIS для поиска возможных проблем.
  - Настройки брандмауэра и маршрутизатора, чтобы убедиться, что трафик на 80 порт правильно направляется.

Если вы выполните все эти шаги, оба сайта должны открываться корректно на 80-м порту без использования обратного прокси.
У вас сервер DNS на КД является полномочным для зоны домена example.ru. Поэтому все записи он разрешает чеез свою зону (обычно - интегрированную с AD). Менять такую настройку не надо - иначе замучаетесь с настройко домена AD. Надо решать задачу по-другому, через имеющуюся внутреннюю копию зоны. 

Задача, на самом деле распадается на две:
1. Настроить публикацию сайта с именем, совпадающим с именем домена
2. Настроить публикацию других сайтов
Вариантов решения первой задачи два. Как известно, по умолчанию КД по умолчанию регистрируют записи A с именем домена и своим адресом. Поэтому нужно сделать одно из двух:

1. настроить на всех КД обратный прокси для публикации внешнего сайта, совпадающего с именем домена. Для IIS для этого используется модуль ARR (Application Request Routing).
2. Запретить через политику (Default Domain Controller Policy)регистрацию КД записей A с именем домена. Это можно делать практически безопасно - эти записи нужны только для устаревших ещё во времена Windows 2000 клиентов LDAP, которые ищут сервер LDAP домена по записи типа A с его именем. Все хоть сколько-нибудь современные клиенты (включая саму Windows) ищут сервер LDAP для домена по записям SRV. Нужный раздел политики - Конфигурация Компьютера/Административные шаблоны/Система/Сетевой вход в систему/DNS-записи локатора домена/DNS-записи контроллеров домена, не регистрируемые контроллерами домена: добавьте туда слово LdapIPAddress.

А для других сайтов просто добавьте в зону домена их имена с нужными IP.
Похожие вопросы