Новости, акции и скидки для нынешних и будущих клиентов, инструкции по настройке сайта и сервера, лайфхаки

15 Ноября 2017
Технологии

Настройка ДНС на сервере в Plesk Multi Server от Русоникс

В этой статье обсудим:

  1. Как настроить быстрый централизованный ДНС сервер в новой инсталляции Plesk Multi Server (пошаговая инструкция).
  2. Как провести этот процесс с существующими клиентами и пользователями.
  3. Как поменять ДНС и исправлять любые возникающие ошибки (когда DNS сервер не отвечает, адрес недоступен, не найден и т. д.).



Привет всем пользователям Plesk! Сегодня поговорим про расширение Plesk Multi Server с поддержкой централизованных ДНС . Почему именно об этом? Потому что вы сможете использовать один набор серверов имён NS для всех доменов, которые вы хостите на сервисных серверах (далее нодах) в Plesk Multi Server. И даже учитывая то, что Plesk продолжает развивать централизованный DNS, вы все равно можете использовать расширение Slave DNS Manager для того, чтобы выполнить эту функцию в несколько простых шагов.

  

Что такое Plesk Multi Server


Этот сервер даёт возможность пользователям с одним интерфейсом Plesk, запускать услуги хостинга на множестве серверов. Таким образом вы подключаете 2 или более объектов Plesk с помощью расширений SDK. Одна из этих нод будет «управляющей» для управления другими нодами. Все объекты Plesk, подключенные к управляющей ноде, называются «сервис нодами».

Plesk Multi Server предназначен для малых и средних провайдеров хостинга, для студий веб-дизайна и девелоперских студий, которые также размещают на хостинге клиентские сайты. Давайте кратко рассмотрим конфигурацию инфраструктуры.
 

Конфигурация инфраструктуры

 

Plesk Multi Server


Для Plesk Multi Server нужно иметь 1 или несколько установленных сервис нод. Итак, мы начнём с чистой установки — 2 сервис ноды без клиентов и подписчиков. В этой установке каждая сервис нода будет использоваться как главный ДНС сервер.

post img

Подчинённый ДНС сервер (Slave DNS Manager )


Во-первых, разверните и настройте один или несколько ДНС серверов, которые будут использоваться как подчиненный ДНС сервер. Следуйте настройке описанной ниже. В этом примере используется сервер на ОС Centos 7:

1.Настройте Selinux…
# sestatus
SELinux status: enabled
# setsebool -P named_write_master_zones 1


или полностью его отключите :
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'

Обновите пакеты и перезагрузите операционную систему:
# yum update -y; reboot

установите и настройте службу Bind:
- установка
yum install -y bind bind-utils

-разрешите новые зоны с rndc:
sed -i 's/options {/options {\n allow-new-zones yes;/;' /etc/named.conf

- выключите рекурсию ДНС
# sed -i 's/recursion\ yes;/recursion\ no;/g' /etc/named.conf

-определите какие ip адреса разрешены для опроса сервера . В данном примере эта опция полностью отключена:
# cat /etc/named.conf | grep allow-query
//allow-query { localhost; };


-добавьте сетевые интерфейсы , которые будут слушать демон named . В этом примере все IP адреса добавлены:
# chmod g+w /var/named/ /var/named/chroot/var/named/

-добавьте групповую привилегию на запись для /var/named, /var/named/chroot/var/named:
# chmod g+w /var/named/ /var/named/chroot/var/named/

Рекомендуем вам включить брандмауэр или iptables на сервере и убедиться, что порты 53 (dns) и 953 (rndc) доступны из внешней сети:
# systemctl start firewalld
# firewall-cmd --permanent --zone=public --add-port=53/tcp
# firewall-cmd --permanent --zone=public --add-port=53/udp
# firewall-cmd --permanent --zone=public --add-port=953/tcp
# firewall-cmd —reload

 

Менеджер подчинённых DNS (Slave DNS Manager ) на Plesk Multi Server

 

Установка и настройка


1. Войдите в каталог расширений и установите расширение Slave DNS Manager .

post img
post img

2.Используйте функцию «Задачи» чтобы убедиться в том, что расширение было корректно установлено на всех сервис нодах

post img

3.Добавьте настроенный ДНС сервер как подчинённый ДНС сервер на одну из сервис нод:

post img
post img
post img

4. Введите ip адрес подчинённого ДНС сервера и запомните или сохраните секретный ключ. Он будет использован в утилите rndc для трансфера ДНС зон из главной в подчинённую.

post img

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

usr/sbin/rndc -b 10.52.79.37 -s 10.52.63.61 -p 953 -y rndc-key -c /usr/local/psa/var/modules/slave-dns-manager/slave_10.52.63.61.conf status rndc: connection to remote host closed This may indicate that * the remote server is using an older version of the command protocol, * this host is not authorized to connect, * the clocks are not synchronized, or * the key is invalid.

6.Для устранения ошибки добавьте секретный ключ, который вы сохранили на 4-м шаге в конфигурационный файл named.conf на подчинённом ДНС сервере и перегрузите его.

# cat /etc/named.conf | grep -A10 rndc key “rndc-key-master” { algorithm hmac-md5; secret “Y2QwZmIxZjRmN2U3NmU1YzY5MzhmOA==”; }; controls { inet * port 953 allow { 10.52.79.37; 127.0.0.1; } keys { “rndc-key-master”; }; };

7.Нажмите «Resync» для перепроверки соединения с подчинённым ДНС сервером. Если вы все правильно сделали, то увидите зелёную метку, говорящую о корректных настройках.

post img

8. Добавьте нужное количество подчинённых ДНС серверов согласно шагам 3-7

9.Настройте подчинённые ДНС серверы для всех сервис нод в Plesk Multi Server .

10.Не забывайте добавлять IP адреса сервис нод в секцию controls{…} в конфигурационном файле named.conf на каждом подчинённом ДНС сервере.
 

Как проверить корректность настроек подчиненных ДНС серверов


1.Для проверки корректности подчиненных ДНС серверов нужно сначала создать новую подписку в Plesk Multi Server. В этом примере это домен «testing.tld»

post img


2. Проверьте подчинённый ДНС сервер.
- вы увидите следующие сообщения в /var/log/messages

Aug 19 17:34:10 a10-52-63-61 named[21982]: received control channel command 'addzone testing.tld IN { type slave; file "testing.tld"; masters { 10.52.79.37; }; };'
Aug 19 17:34:10 a10-52-63-61 named[21982]: zone testing.tld added to view _default via addzone
Aug 19 17:34:10 a10-52-63-61 named[21982]: zone testing.tld/IN: Transfer started.
Aug 19 17:34:10 a10-52-63-61 named[21982]: transfer of 'testing.tld/IN' from 10.52.79.37#53: connected using 10.52.63.61#36010
Aug 19 17:34:10 a10-52-63-61 named[21982]: zone testing.tld/IN: transferred serial 2017081903
Aug 19 17:34:10 a10-52-63-61 named[21982]: transfer of 'testing.tld/IN' from 10.52.79.37#53: Transfer completed: 1 messages, 20 records, 575 bytes, 0.002 secs (287500 bytes/sec)
Aug 19 17:34:10 a10-52-63-61 named[21982]: zone testing.tld/IN: sending notifies (serial 2017081903)
Aug 19 17:34:10 a10-52-63-61 named[21982]: received control channel command 'refresh testing.tld IN '


-в файле сопоставления (mapping file)

# cat /var/named/3bf305731dd26307.nzf | grep testing.tld
zone "testing.tld" { type slave; file "testing.tld"; masters { 10.52.79.37; }; };


-в файле ДНС зоны

# ll /var/named/ | grep testing.tld
-rw-r--r-- 1 named named 1031 Aug 19 17:34 testing.tld


3. в конце проверьте ДНС зону определённого домена с внешнего сервера:

# dig testing.tld @10.52.63.61
….
;; ANSWER SECTION:
testing.tld. 86400 IN A 10.52.79.37

 

Добавьте подчиненный ДНС сервер с существующими подписками и доменами


Вы можете также настроить менеджер подчинённых ДНС серверов для инфраструктуры существующего Plesk Multi Server, аналогично как для новой установки. Давайте настроим централизованный ДНС для Plesk Multi Server с двумя сервис нодами и 500-ми подписками.

post img

Выполните шаги с 1-го по 7-й аналогично как для новой установки. После окончания настройки нажмите «Resync» кнопку, чтобы сделать трансфер ДНС зон всех существующих доменов на подчинённые ДНС серверы.

post img

 

Проверьте лог /var/log/messages, чтобы убедиться, что все ДНС зоны были перемещены. Вы увидите сообщения об успешном завершении трансфера или одну из ошибок описанных в секции «Исправление проблем». Переданные ДНС зоны можно найти в директории /var/named

[root@a10-52-63-61 ~]# cat /var/named/3bf305731dd26307.nzf | wc -l
508
[root@a10-52-57-119 ~]# ls -la /var/named/ | wc -l
519

 

Исправление проблем: подчиненный ДНС сервер в Plesk Multi Server


Здесь список ошибок, с которыми вы можете столкнуться во время настройки подчинённого ДНС сервера и пути их решения.

1. Ошибка:rndc: connect failed: 10.52.47.119#953: host unreachable
Решение: проверьте что сервер активен и работает

2. Ошибка:rndc: connection to remote host closed
Решение:
- проверьте , что Selinux был выключен и правильно настроен.
- проверьте что мастер ключ rndc добавлен в файл named.conf
- проверьте, что необходимые порты не блокированы в брандмауэере

#firewall-cmd --get-default-zone public # firewall-cmd --list-port 953/tcp 53/udp 53/tcp

- проверьте секцию настройки подчинённого ДНС сервера по пунктам устранения этих ошибок.

3.Ошибка:rndc: recv failed: connection reset

Решение: Проверьте что инструкции управления доступны с ip адреса сервис ноды Plesk Multi Server. Проверьте настройки BIND на прослушивание на всех доступных сетевых интерфейсах. Затем проверьте секцию controls{…} в файле /etc/named.conf на подчинённом ДНС сервере.

4. Ошибка: в логе /var/log/messages:named[2296]: open: 3bf305731dd26307.nzf: file not found

Решение: исправьте все права в директории/var/named

5. Ошибка:в логе /var/log/messages:

named[2003]: invalid command from 10.52.79.37#34535: expired
named[2449]: invalid command from 10.52.75.171#52596: clock skew
chronyd[473]: Forward time jump detected!


Решение: Синхронизируйте время между серверами

6.Ошибка:в логе /var/log/messages:named[2253]: client 10.50.2.83#54824 (testing2.tld): query ‘testing2.tld/A/IN’ denied

Решение: Проверьте, что нет разрешённых запросов только для localhost , а также секцию allow-query{…} в файле /etc/named.conf

И вуаля! Ваш менеджер подчинённых ДНС серверов заработал!

Теперь вы знаете как установить централизованный подчиненный ДНС сервер на обеих новых установках Plesk Multi Server и один из которых уже в продакшене. Плюс вы теперь знаете что делать с возникающими подводными камнями. Теперь время применить эти знания на практике. Вперёд! Пробуйте :)

Подводя итог, скажем, что расширение «менеджер подчинённых ДНС серверов» это открытый проект и вы всегда можете способствовать улучшению в репозитории Github.

На этом все. Да прибудет с вами сила!