Я в затруднительном положении.
Мне нужно внедрить Split-Horizon DNS в моем офисе на основе подсети. Например:
Теперь это легко реализовать с помощью BIND. К сожалению, моя сеть основана на Active Directory; Я не могу изменить DNS-серверы всех рабочих станций, чтобы они указывали только на сервер BIND, не так ли? Они должны указывать на контроллеры домена.
Я играл с идеей использования заглушки или условные экспедиторы, но, насколько я понимаю, эти методы заставят контроллеры домена выполнять разрешение DNS самостоятельно, вместо того, чтобы рабочие станции связывались с соответствующими серверами имен.
Что вы можете предложить для решения этой проблемы разделения горизонтов?
Дополнительная информация:
id.company.com
, а не company.com.Вы почти сами получили свое решение.
Я предполагаю, что srv01.extra.company.com
является сервером в вашей компании, поэтому за него несут ответственность ваши серверы имен.
Вы правы в том, что вы не можете использовать зоны-заглушки или условные серверы пересылки, поскольку сервер имен, настроенный для этой цели, будет видеть только запросы, исходящие от ваших AD DC.1
Но распространено заблуждение, что в Active Directory должны быть установлены контроллеры домена в качестве серверов имен или что клиенты должны разрешать запросы через контроллеры домена..2
В этом конкретном случае вам нужно будет настроить правильную BIND, которая полностью разрешает все (это включает в себя вашу AD!). После того, как вы проверили правильность работы, вы должны добавить зону extra.company.com
на этот сервер (эффективно маскируя реальный поддомен). Там вы можете переопределить записи по своему вкусу.
Однако обратите внимание, что когда BIND опрокидывается, вся ваша реклама остановится, поскольку все запросы ваших клиентов проходят через этот сервер. Поэтому настройте соответственно (переключение при отказе, резервное копирование, режим ожидания и т. Д.).
1 Технически это верно не для всех случаев: если распознаватель клиента способен отслеживать отсылки, полномочный сервер имен будет видеть запрос, исходящий от клиента. Однако, поскольку почти все преобразователи ОС являются преобразователями заглушек, на самом деле это не применимо.
2 Вы жестяная банка безопасно установить даже авторитетный NS вашего AD на сервер BIND, но это точно не какое-то простое решение, оно требует некоторой работы; например, добавление определенных записей и разрешение вашему DC обновлять их. Microsoft это хорошо задокументировано, см. эта статья в Microsoft Technet для начала. Я обычно вообще этого избегаю и вместо этого company.com
обслуживается BIND, и делегировать субдомен ad.company.com
в AD. Я не думаю, что это стоит того, чтобы делать это в существующей AD, как в вашем случае.
Если вы хотите придерживаться Windows DNS, функция, которая может вам помочь, называется Сетевая маска заказа с круговой системой. Когда вы настраиваете несколько записей A для одного и того же хоста, DNS будет возвращать результаты с приоритетом на основе IP-адреса клиента и подсети. Вы можете определить, какая часть маски адреса используется для упорядочивания маски сети, и поскольку в вашем случае это / 16, вам также необходимо переопределить значение по умолчанию (которое равно / 24) с помощью
Dnscmd /Config /LocalNetPriorityNetMask 0x0000FFFF
К сожалению, это будет охватывать только первые два случая из вашего примера, третий будет сложным, поскольку только клиенты из 10.25.x.x будут соответствовать маске хоста.
Если DNS - ваш единственный способ сделать это, то я думаю, что единственный реальный вариант здесь - использовать представления BIND.
Рабочие станции AD могут указывать непосредственно на BIND, если BIND перенаправляет все запросы вашего домена AD на DNS-серверы AD для разрешения. На самом деле мы делаем это в очень большой организации, в которой я работаю, и все работает нормально (включая динамические обновления и т. Д.).
Какая служба работает на этих серверах? Если это HTTP, вы могли бы использовать что-то вроде перенаправления HTTP, чтобы перенаправить пользователя на его локальный сервер, а не использовать разделение DNS?