Собираем и настраиваем авторитарный сервер на базе PowerDNS
Установка и настройка авторитаторного сервера DNS
Собираем высокопроизводительный DNS-сервер на базе PowerDNS.
Для тестов берем 3 сервера:
ns1.domain.ru - 111.111.111.111
ns2.domain.ru - 222.222.222.222
ns3.domain.ru - 333.333.333.333
Подготовка системы
Настройка NTP
Выполняем настройку NTP сервера на каждом сервере.
Это очень важный шаг, поскольку большинство проблем может возникнуть именно из-за некорректной настройки времени.
Установим NTP
sudo yum install ntp ntpdate |
Вносим изменения в конфигурационный файл /etc/ntp.conf.
server ntp2.stratum2.ru |
Выполним настройку временной зоны, если это не было сделано при установке системы.
Установка необходимых пакетов
yum install epel-release remi-release bind-utils net-tools traceroute wget -y |
Установка MariaDB Galera Cluster
Подробную процедуру установки и настройки MariaDB Galera можно найти в моей статье
Установка PDNS
Создаем базу данных, а также необходимые таблицы:
mysql -uroot -p |
Создаем базу данных и пользователя:
create database powerdns; |
Создаем таблицы:
CREATE TABLE domains ( |
Установим PDNS
yum install pdns-backend-mysql pdns pdns-tools |
Выполним настройку файла конфигурации /etc/pdns/pdns.conf:
setuid=pdns |
Запускаем сервис и добавляем в автозагрузку:
systemctl enable pdns.service |
Проверяем статус работы сервиса:
[root@dns1 run]# service pdns status |
Не забываем добавить правила на firewall.
Я использую Firewalld.
firewall-cmd --permanent --zone=public --add-port=53/udp |
Установка GUI Poweradmin
Установим PHP и NGINX
yum install nginx php-fpm php-cli php-mysqlnd php-mcrypt |
Изменим настройки php-fpm для работы с сокетом, для этого отредактируем файл /etc/php-fpm.d/www.conf:
Заменим:
listen = 127.0.0.1:9000 |
На:
listen = /var/run/php-fpm/php-fpm.socket |
Создаем папку под сессии и назначаем соответствующие права:
mkdir /var/lib/php/session |
server { |
Перезагружаем NGINX и добавляем в автозагрузку.
systemctl start nginx.service |
Установим PowerAdmin:
mkdir -p /srv/www/pdns.domain.ru/public_html |
Назначаем соответствующие права на директорию:
chown -R apache:apache /srv/www/pdns.domain.ru/public_html |
Переходим по ссылке https://pdns.domain.ru/installer и выполняем настройку.
Не забываем удалить папку rm -rf install/ по окончании установки.
Troubleshooting
Не работает IPv6
Если действия выполняются на виртуальной машине KVM, то на хост машине необходимо добавить строчки в файл /etc/sysctl.conf:
net.ipv6.conf.all.disable_ipv6=0 |
Пояснение на русском конфигурационного файла pdns.conf
# Разрешить трансфер зон для подсети или ip адреса |