Использование PowerDNS c DNSmanager

Материал из ISPWiki

Перейти к: навигация, поиск

Содержание

Установка PowerDNS

При установке на чистый сервер достаточно выбрать необходимую версию PowerDNS в системе установки DNSmanager. Если же установка проводится на сервер с установленным MySQL, то DNSmanager запросит пароль пользователя root.

Автоматический запуск PowerDNS настраивать не нужно, напротив, если это сделал установщик пакета, то его лучше убрать. Запуск всех серверов PowerDNS будет осуществляться командой

/usr/local/ispmgr/sbin/mgrctl -m dnsmgr bindip

которая автоматически пропишется в файл /etc/rc.local

Настройка DNSmanager

Для работы DNSmanager с PowerDNS в /usr/local/ispmgr/etc/dnsmgr.conf добавляется параметр

DNSserver powerdns

в MySQL создается пользователь, из под которого выполняется работа с БД. Для настройки подключения к серверу баз данных используются следующие параметры:

PdnsDBHost <hostname> 
PdnsDBUser <user> // по умолчанию root
PdnsDBPassword <pass>  // пароль пользователя <user>
PdnsDBSocket <socket>  // путь до MySQL UNIX socket

Обратите внимание, что указываемый пользователь MySQL должен иметь права на создание и удаление баз данных и таблиц.

Другие параметры, необходимые для успешной работы:

  • path pdns_control значение по умолчанию /usr/local/bin/pdns_control - путь до утилиты pdns_control
  • path pdns_server значение по умолчанию /usr/local/sbin/pdns_server - путь до pdns_server
  • path ConfigDir значение по умолчанию /usr/local/etc/pdns - директория, в которой необходимо хранить конфигурационные файлы серверов имен.

Также вы можете изменить шаблон конфигурационного файла PowerDNS, в зависимости от своих потребностей

/usr/local/ispmgr/etc/pdns.conf.template

На основе данного шаблона DNSmanager создает конфигурационные файлы нового сервера PowerDNS. Внимание !!! Файл по указанному пути появляется при первом запуске, до этого он находится в

/usr/local/ispmgr/etc/dist/pdns.conf.template

Как это работает

Поскольку PowerDNS не имеет такого понятия как view, задача изоляции пользователей друг от друга решается запуском отдельных копий сервера, каждая из которых работает с собственным конфигурационным файлом и базой данных.

При создании нового пространства имен создается база данных и конфиг PowerDNS (на основе шаблона, описанного выше), а также запускается новая копия сервера PowerDNS.

Имя базы соответствует имени пространства имен, но символы точки заменены на символ подчеркивания.

Имя конфигурационного файла формируется аналогичным образом, но имеет дополнительно префикс pdns- и суффикс .conf

Остальную информацию о работе и настройке сервера имен вы можете прочитать на сайте производителя http://doc.powerdns.com/

Переход имеющегося сервера, использующего named

Мы постарались максимально автоматизировать процедуру смены DNS-сервера

  • Остановите named и уберите его автозапуск из конфигурационного файла. Данный шаг необходим для освобождения IP-адреса.
  • Закомментируйте на время переноса "DNSserver powerdns" в конфигурационном файле
  • Запустите команду:
/usr/local/ispmgr/sbin/mgrctl -m dnsmgr convert.dns to=powerdns

Через некоторое время начнется перенос зон с мастеров, и зоны начнут работать. Внимание !!! Если пространство имен содержит достаточно большое количество зон (от 1000), мы рекомендуем увеличивать параметр slave-cycle-interval. Чем больше зон, тем больше период опроса (для примерно 100 тыс. доменов данный параметр выставлялся в час). После того как завершится первичный трансфер зон, можно вернуть ему значение по умолчанию - 1 минута.

Если что-то пошло не так или не заработало, всегда можно откатить работу на named

1) остановите сервера PowerDNS

killall pdns_server

2) запустите named

3) в конфигурационном файле dnsmgr.conf напишите

DNSserver named

4) перезапустите DNSmanager

killall dnsmgr

Дополнительные функции

Версия 4.3.21:

domain.sharedbad - с помощью нее можно получить список доменов, записи о которых имеются в MySQL, но владелец не определен.

Использование:

/usr/local/ispmgr/sbin/mgrctl -m dnsmgr domain.sharedbad [delete=yes]

Без использования параметра "delete=yes" в dnsmgr.log выводится список доменов, в противном случае дополнительно выполняется их удаление.

Была ли эта информация полезной? Да | Нет
Личные инструменты