У нас есть несколько офисов по всему миру, но наши центры обработки данных в основном расположены в двух центральных местах (Северная Америка и Европа). Между различными офисами существует относительно высокая задержка, поэтому мы стараемся размещать службы в ближайшем к пользователю месте (например, канадские сотрудники используют службы Exchange в США, а не в Европе).
Эта установка работает по большей части хорошо. При использовании таких служб, как Active Directory, Exchange или DFS, клиенты полагаются на информацию о существующем сайте в AD для определения ближайшего местоположения.
Теперь у нас есть запрос на общее DNS-имя для доступа к определенным веб-службам, которые размещены как в Северной Америке, так и в Европе. Раньше мы использовали отдельные DNS-имена (na-service.domain.local или eu-service.domain.local), но это становилось обременительным для наших конечных пользователей.
Весь наш внутренний DNS в настоящее время размещен на серверах Windows 2003 и 2008 с Microsoft DNS. Есть ли способ настроить службы Microsoft DNS так, чтобы они отвечали только на запросы с «локальным» IP-адресом? Я знаю, что настройка нескольких записей A приведет к ответу в стиле циклического перебора, что не идеально. Мы также можем использовать основные зоны в каждом месте и вводить только локальный IP-адрес, но у нас есть сотни других записей DNS, которые необходимо вручную реплицировать на каждый сервер.
Если это невозможно сделать с помощью MS DNS, есть ли другие недорогие альтернативы? Я знаю, что у F5 Networks есть продукты, которые с этим справятся, но это стоит довольно дорого.
Мне здесь, на работе, пару раз задавали этот вопрос, хотя до реализации он так и не дошел, так что с моей стороны это чистая теория.
Лучшее решение (взломать?), Которое я мог бы придумать, - иметь общий субдомен DNS, который не реплицируется. Затем просто поместите локальные серверы в эту настройку. Итак, у вас будет что-то вроде этого:
DNS-серверы NA
service.domain.local
web01.service.domain.local -> 10.10.10.200
DNS-серверы ЕС
service.domain.local
web01.service.domain.local -> 10.200.200.200
Таким образом, клиенты, подключающиеся к web01.service.domain.local, получат локальный IP-адрес службы с DNS-серверов по умолчанию. Вы можете реплицировать их внутри ЕС и АН, но не можете реплицировать зону между ЕС и АН.
Возможно, вам повезет с функцией «Приоритезация подсети» на сервере Microsoft DNS. Поможет это вам или нет, будет зависеть от того, как адресованы ваши подсети и как адресованы ваши географически «локальные» серверы. Эта функция включена по умолчанию в Windows Server 2003 и 2008.
Я бы рекомендовал прочитать об этой функции. Посмотри на http://technet.microsoft.com/en-us/library/dd197495(WS.10).aspx под заголовком «Приоритет подсети».
Функциональность «просмотра» в BIND, вероятно, будет делать то, что вы хотите, но тогда вы говорите о развертывании параллельной инфраструктуры DNS и большом количестве настроек.
Если у вас есть контроль над веб-приложением, вы можете сделать что-нибудь нестандартное, например, встроить некоторый Javascript, чтобы «определить» местоположение пользователя и перенаправить его на стороне клиента. Это немного странно, но может сделать то, что вам нужно.
Как указано в предыдущем ответе, представления BIND выглядят так, как вы хотите. Это позволяет серверу имен представлять различные конфигурации одного и того же сервера имен группам клиентов, которые вы определяете.
Группы могут быть определены с помощью индивидуальных IP-адресов или префиксов (например, 10.10.1.192/26). Надеюсь, ваши европейские и американские хозяева будут таким образом отличаться.
Приятное побочное преимущество: ваши два сервера могут быть (почти) одинаково настроены, с точки зрения BIND, и, таким образом, могут действовать как аварийное переключение друг друга.
Хороший способ представить Views - это версия виртуализации DNS-сервера. Вроде, как бы, что-то вроде.
BIND можно бесплатно получить на сайте www.isc.org.
Нужно ли решение делать через DNS? Если нет, то это звучит как идеальный кандидат на IP Anycast. Видеть этот вопрос Для более подробной информации, но в двух словах, это сетевая архитектура, которая позволяет вам объявлять один и тот же IP-адрес из нескольких мест, с маршрутизацией клиентов к «ближайшему» (с точки зрения стоимости сети) экземпляру IP. Таким образом, вы можете просто иметь глобальный VIP (виртуальный IP-адрес), на который будут указывать ваши записи DNS.
Помимо BIND Views, новая версия Windows Server (которая в настоящее время находится в технической предварительной версии) также имеет функцию, называемую Политики DNS что выглядит очень многообещающим для достижения того, что вы ищете.
Я была такая же проблема. если домен - domain.local, и я хотел, чтобы webmail.domain.local отвечал по-разному в зависимости от сайтов, я создал новый зона webmail.domain.local (не интегрированный в AD) и добавил запись с подстановочными знаками к локальному IP-адресу сервера веб-почты.
Этот домен нигде не реплицируется, но я выбрал конфигурации главный / подчиненный на каждом сайте для резервирования.
Хотя это становится беспорядком, если вам нужно часто поддерживать большое количество сайтов.
Новые функции в Windows Server 2016 DNS позволяют определять политики для обработки этого типа сценария. Более подробную информацию можно найти Вот.