Использование PowerDNS c DNSmanager
Материал из ISPWiki
Содержание |
Установка PowerDNS
При установке на чистый сервер, достаточно выбрать необходимую версию PowerDNS в системе установки DNSmanager. Если же установка проводится на сервер с установленным MySQL, то для успешной активации в файл /usr/local/ispmgr/etc/dnsmgr.conf необходимо добавить 2 параметра:
DBPassword имя_администратора_MySQL DBSocket путь_к_сокету_MySQL
и запустить установку.
Автоматический запуск 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> 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
