вторник, 13 декабря 2011 г.

Split-Brain DNS: как выбрать правильную реализацию?

Последнее время в моей практике участились случаи, когда ИТ специалисты, реализуя архитектуру системы разрешения доменных имён до конца не осознают всех нюансов, с которыми они столкнуться в процессе эксплуатации того или иного решения. Поэтому, решил ещё раз кратко осветить эту тему.

Как пример рассмотрим следующий сценарий:
существует корпоративная сеть с пользователями, которым необходим доступ к различным интернет ресурсам, а так же веб-сайтам компании, размещенными в DMZ и опубликованных в интернет;

 
Основная цели:
  • обеспечить свободное разрешение доменных имён интернет для пользователей корпоративной сети
  • обеспечить доступ корпоративных пользователей изнутри и снаружи к веб-сайтам компании
  • предотвратить возможность для внешних пользователей разрешать имена внутренних ресурсов компании

  
Существует три возможных сценария построения системы разрешения доменных имён:

  • Одинаковое имя DNS внутреннего и внешнего пространства имён организации (Пример: ABC.COM);
  • Разное имя DNS для внутреннего и внешнего пространства имён организации, для разрешения имён используется Conditional Forwarding (Пример: ABC.LOCAL и ABC.COM);
  • Делегированное имя зоны DNS для внутреннего пространства имён DNS (Пример: AD.ABC.COM и ABC.COM);

  
Одинаковое имя DNS внутреннего и внешнего пространства имён организации (Пример: ABC.COM)

Самый простой способ реализации. На внутреннем DNS размещаются A записи веб-ресурсов компании. Когда корпоративные пользователи запрашивают какой либо ресурс, размещённый в DMZ и опубликованный наружу, внутренний DNS отдаёт адрес, указанный в “А” записи, созданной администратором на внутреннем DNS сервере. Внешний DNS служит для обслуживания только внешних пользователей, динамические обновления записей на нём запрещены. Передача зон отключена.

Плюсы:
  • Одинаковые имена для ресурсов внутри и снаружи меньше вопросов от пользователей (пример: корпоративный веб-портал изнутри и снаружи будет доступен для пользователя по одинаковому адресу WEB.ABC.COM, хотя обслуживающие DNS сервера внутренней и внешней зоны друг о друге не знают);
  • Не нуждается в дополнительной настройке сетевых экранов;
  • Максимальная изоляция пространств имён;

 
Минусы:
  • Для каждого веб-ресурса компании необходимо создать “А” запись в ручную, что не совсем удобно при большом их количестве и частых изменениях;
  • Необходимо отслеживать актуальность записей в DNS, однако при небольшом количестве это несложно.



Разное имя DNS для внутреннего и внешнего пространства имён организации, для разрешения имён используется Conditional Forwarding (Пример: ABC.LOCAL и ABC.COM)

ПРИМЕЧАНИЕ! На сегодняшний день, при построении инфраструктуры использование имён DNS, с неподдерживаемым Интернетом форматом (пример:*.local, *.loc,*.internal), не рекомендуется.
 
В данном сценарии существуют два отдельных DNS сервера для разрешения внутренних и внешних имён. Разрешение внешних веб-ресурсов компании происходит за счёт Conditional Forwarding. К примеру, запрос адреса ресурса WEB.ABC.COM к внутреннему DNS серверу будет перенаправлен на внешний DNS сервер отвечающий за зону ABC.COM. Внешний DNS служит для обслуживания внутренних и внешних пользователей, динамические обновления записей на нём запрещены. Передача зон отключена.

 
Плюсы:
  • Простота администрирования веб-ресурсов компании (достаточно создать новуюА” запись для ресурса на внешнем DNS и он станет доступен внутренним пользователям, а так же пользователям из интернет);
  • Снижение административной нагрузки - нет необходимости отслеживать актуальность “А” записей для внешних веб-ресурсов компании;
 
Минусы:
  • Потребуется конфигурировать сетевые экраны компании для разрешения имён веб-ресурсов из внутренней сети;
  • Могут возникнуть вопросы у пользователей, придётся объяснять разницу между abc.local и abc.com;
  • В случае с настройкой Conditional Forwarding создаётся жесткая привязка имени внешнего домена ABC.COM к IP адресу внешнего DNS, в случае смены IP адреса внешнего DNS не забудьте поменять настройки Conditional Forwarding;

 
Делегированное имя зоны DNS для внутреннего пространства имён DNS (Пример: AD.ABC.COM и ABC.COM)

 
В данном сценарии существует внешний DNS, ответственный за домен ABC.COM, который делегировал внутреннему DNS серверу право на управление внутренней зоной AD.ABC.COM.

 
Плюсы и минусы данного сценария очень напоминают второй случай, однако в данном сценарии нам необходимо предотвратить разрешение имён из зоны AD.ABC.COM запросом снаружи, для этого потребуется сконфигурировать сетевые экраны компании на блокирование такого вида трафика (DNS запроса). Ещё один из возможных плюсов: внешний DNS сервер может являться *nix BIND DNS.

 
 
Сменить IP внешнего DNS будет достаточно проблемно рекомендуется избегать подобных ситуаций.

 
Разрешение же имён веб-ресурсов компании внутренними пользователями происходит за счёт Conditional Forwarding,внешний DNS служит для обслуживания внутренних и внешних пользователей, динамические обновления записей на нём запрещены. Передача зон отключена.

 
Пожалуй, это основные сценарии реализации Split-Brain DNS, надеюсь данная короткая статья позволит вам выбрать правильную архитектуру DNS.

 

 

 

1 комментарий:

  1. статья на эту же тему, но с точки зрения сертификатов.
    https://blog.startcom.org/?p=221

    ОтветитьУдалить

Уважаемый коллега, Ваш комментарий пройдёт модерацию, чтобы избежать спам-атак в ленте. Спасибо за понимание.