Назад | Перейти на главную страницу

Как эффективно обрабатывать несколько DNS-серверов?

Я недавно добавил в свою сеть больше DNS-серверов BIND9, и работа по добавлению каждой зоны / домена, для которых я хочу, чтобы подчиненные узлы были подчиненными, становится слишком повторяющейся, не говоря уже о том, что наличие только одного главного сервера создает простой точка отказа. Есть ли лучший способ управления зонами / подчиненными серверами DNS и т. Д.?

Как системный администратор в среде с десятками DNS-серверов и тысячами доменов, я чувствую (ну, ощущаю) вашу боль. Мы решили это с помощью марионетки и шаблонов.

Все наши домены и серверы также имеют записи в нашей базе данных инфраструктуры (даже зоны генерируются оттуда, но пока это не имеет значения). Итак, мы делаем примерно следующее:

Главные серверы имен:

  • В главном named.conf есть несколько операторов включения для сгенерированных файлов, как показано ниже.
  • Сгенерированная конфигурация включает операторы уведомления для всех ведомых устройств, сгенерированные из запроса SQL к нашей базе данных инфраструктуры.
  • Список доменов также создается из этой БД.

О рабах:

  • В главном named.conf есть несколько операторов включения для сгенерированных файлов, как показано ниже.
  • Список доменов формируется из БД инфраструктуры, включая информацию о мастере

Когда марионетка изменяет любой из файлов выше, она также вызывает rndc reconfig чтобы перезагрузить конфигурацию, но только если она правильно разбирается.

Я использую другой подход. С PowerDNS репликация зон и записей довольно проста. Все dns-данные хранятся в MySQL-DB и реплицируются через MySQL на 2 подчиненных сервера, которые также используют powerdns.

Эта установка проработала около 6 лет без каких-либо проблем.

Кстати: привязка все еще используется для кеширования

Вот некоторые предложения:

  • Создайте DNS-сервер, предназначенный только для кеширования, как описано в Эта статья ?
  • Периодически копируйте конфигурацию с одного ведомого устройства на другое с помощью rsync.
  • Используйте heartbeat или keepalived, чтобы сделать основной DNS-сервер балансировки нагрузки для того же IP-адреса.