Я управляю небольшой компанией, предоставляющей услуги хостинга [1], в качестве средства выплаты студенческой ссуды. У меня есть несколько стоечных серверов Windows, расположенных в центре обработки данных. Подготовка выполняется с помощью некоторых инструментов, которые я написал на C #, которые связаны с WMI и ADSI для настройки Active Directory, IIS и Exchange для моих клиентов.
[1] Я, вероятно, должен сказать «веб-хостинг», но я предоставляю больше услуг, чем это.
Пока все работает нормально, но когда я начал, я решил использовать одно и то же доменное имя для внутреннего и внешнего использования. «Foohost.com» - это и мое имя каталога AD, и доменное имя веб-сайта моей компании. Открыты серверы AD DNS.
Когда я расширился до двух серверов и установил частную связь между ними (с использованием диапазона 192.168.x.x), все начало ломаться, поскольку DNS-серверы возвращали эти частные IP-адреса, когда люди в Интернете пытались nslookup адресов моих серверов.
Я прочитал несколько статей на TechNet о разработке Active Directory, они рекомендуют использовать «internal.foohost.com» для домена Active Directory и «foohost.com» для внешних целей. Для меня это имеет смысл, но я не понимаю, как правильно настроить мои DNS-серверы:
Я использую Microsoft DNS Server, входящий в состав Server 2008, который не поддерживает ACL или более строгий контроль над рекурсией. DNS-сервер имеет файл зоны (иногда интегрированный в AD, а иногда использующий файловую систему) для каждого веб-сайта или доменного имени клиента. Я не знаю, следует ли мне использовать отдельный выделенный DNS-сервер (который я действительно не могу себе позволить) с отключенной рекурсией только для размещения файлов зоны моего клиента и использовать DNS-серверы AD строго для файлов зоны домена AD, и рекурсия включена (чтобы серверы в домене могли разрешать записи DNS в Интернете), но заблокирована от общественности брандмауэром.
... что другое: у меня нет надлежащего брандмауэра. Я просто использую брандмауэр Windows на всех своих серверах.
Вам действительно следует сохранить DNS для Active Directory и DNS для публичного разрешения ваших размещенных доменов на разных DNS-серверах. Вы уже видели, что DNS-сервер Microsoft, хотя и прекрасно справляется с обязанностями "за брандмауэром", обслуживая DNS для Active Directory и рекурсивное разрешение имен для клиентских компьютеров, не имеет функций, которые могут вам понадобиться в DNS-сервере в Интернете (списки контроля доступа являются большой, о котором вы уже упоминали).
Я сам не размещаю DNS и не рекомендую делать это своим клиентам. Сторонний DNS-хостинг - это всегда мой путь. Сказав это, если вы хотите разместить свой DNS самостоятельно по соображениям стоимости / контроля, вы можете подумать о запуске пары небольших виртуальных машин Linux с BIND для общедоступного DNS.
Редактировать:
Здесь есть хорошее обсуждение переименования домена: https://web.archive.org/web/1/http://techrepublic%2ecom%2ecom/5208-6230-0.html?forumID=102&threadID=229757&start=0
Я выполнял переименование домена в небольших средах (менее 20 ПК, 2 контроллера домена) и в лабораторных условиях, и у меня не было проблем с этим. Опыт, связанный с этой ссылкой на techrepublic.com, в значительной степени отражает мой. Если вы имеете дело с небольшим количеством компьютеров-рядовых серверов домена, я думаю, что это вполне осуществимо. (Очевидно, сначала проверьте это в лабораторных условиях.)
Вы можете отключить регистрацию определенных адаптеров в DNS, и это решит эту проблему.
Переименование домена - серьезное испытание, и я бы не рекомендовал его. Нет абсолютно ничего плохого в том, что ваше AD - это company.com, а ваше присутствие в Интернете - это company.com. Это ОЧЕНЬ распространенная установка.
Обычно у вас есть отдельный DNS, выходящий в Интернет. Может быть, посмотрите что-нибудь стороннее для вашего Интернета, связанного с DNS? Это относительно недорого и избавит вас от бремени / ответственности.
Если вы хотите пойти по этому пути, прежде всего вам нужно переименовать свой домен AD:
http://technet.microsoft.com/en-us/library/cc786120(WS.10).aspx http://technet.microsoft.com/en-us/library/cc794869(WS.10).aspx
Я предлагаю использовать «foohost.local» (или «foohost.internal», «foohost.dom», «foohost.private» и т. Д.), Чтобы удалить любую зависимость между внутренними и внешними доменными именами.
Когда вы успешно завершите операцию переименования домена, вы сможете правильно управлять отдельной зоной DNS для «foohost.com».
Лучшим решением, конечно, было бы использование отдельных DNS-серверов для внешних и внутренних доменов, чтобы избежать конфликта между ними; но если вы не можете позволить себе другие серверы, вам придется придерживаться тех, которые у вас есть.
А как насчет виртуализации? Вы можете легко настроить виртуальные машины для размещения ваших общедоступных DNS-серверов (и только для этого); Система Windows с включенной только службой DNS требует очень мало ресурсов.
Я бы рекомендовал использовать единое пространство имен для домена, которое все ваши серверы должны будут использовать в качестве своего полного доменного имени. В противном случае вы обнаружите, что по мере роста вам придется добавлять контроллеры домена в каждый домен для избыточности.
Обратите внимание, что членство в домене не обязательно должно иметь отношение к вашим приложениям. Вы можете назвать свой домен «datacenter.foo.com» и использовать привязку для обслуживания внешних доменов. Делая это, вы также получаете возможность управлять объектами групповой политики с места.
Внимательно прочтите документацию Microsoft по этим темам, поскольку они обычно предполагают, что у вас одна большая плоская сеть.