Посібники

Як додати вторинний DNS до панелі хостингу Plesk

Навіщо вашому серверу Plesk вторинний DNS

Вторинний DNS сервер для Plesk — сервіс вторинного DNS через REST API

Plesk використовує BIND як свій DNS-сервер. За замовчуванням усі ваші домени покладаються на єдиний сервер імен. Якщо цей сервер вимкнеться — через техобслуговування, апаратний збій чи DDoS-атаку — кожен домен стане недоступним. Відвідувачі отримуватимуть DNS-помилки, пошта перестане доставлятися, а сервіси відмовлятимуть через тайм-аут.

Вторинний DNS-сервер зберігає синхронізовану копію всіх ваших зон через AXFR (авторитетну передачу зони). Коли первинний сервер недоступний, вторинний продовжує відповідати на DNS-запити для ваших доменів. Ваші сайти, пошта та сервіси залишаються в мережі.

Більшість реєстраторів доменів вимагають щонайменше два сервери імен, а RFC 2182 рекомендує три для продакшн-середовищ. Додати вторинний DNS — це не просто гарна практика, а необхідна умова надійності в продакшні.

Ще не маєте вторинного неймсервера? SecondDNS дає його на безкоштовному 3-місячному пробному періоді, без картки — почніть тут, а потім виконайте кроки нижче.

Як працює DNS у Plesk

Plesk запускає BIND (named) і керує його конфігурацією через власні DNS-шаблони. Ось ключове, що треба зрозуміти: ви не редагуєте named.conf вручну на сервері Plesk, бо Plesk перегенеровує цей файл щоразу, коли перебудовує конфігурацію DNS. Будь-яку ручну зміну в named.conf Plesk може перезаписати, щойно торкнеться зони.

Важать два рівні:

1. DNS-шаблони (Tools & Settings > DNS Settings) визначають, які записи отримує кожна нова зона — зокрема, які сервери імен перелічено в NS-записах. 2. Transfer Restrictions Template і Server-wide DNS settings зберігають кастомні опції BIND (такі як allow-transfer і also-notify), що переживають перегенерацію конфігурації, бо Plesk щоразу додає їх назад.

Коли ви налаштовуєте вторинний DNS для Plesk, ви працюєте з обома рівнями: із шаблоном, щоб нові зони перелічували ваш сервер імен SecondDNS, і з налаштуваннями передачі та загальносерверними налаштуваннями, щоб передачі AXFR продовжували працювати після того, як Plesk перепише named.conf. Інсталятор SecondDNS опрацьовує обидва, але Крок 2 нижче показує, як зробити налаштування AXFR постійними самостійно.

Як працює інтеграція вторинного DNS

Інтеграція SecondDNS для Plesk використовує обробники подій, які Plesk викликає автоматично після подій DNS:

1. Коли ви створюєте домен, підписку чи аліас домену — обробник реєструє зону в SecondDNS через API 2. SecondDNS витягує повну копію зони з вашого сервера через AXFR 3. Коли ви видаляєте домен чи аліас — обробник прибирає його з SecondDNS

У Plesk кожен домен, додатковий домен і аліас домену має власну DNS-зону, тож кожен реєструється окремо. Усі зміни зон поширюються автоматично через механізм NOTIFY у BIND. Жодних ручних кроків, жодних cron-завдань, жодних застарілих записів.

Вимоги до вторинного DNS для Plesk

Перш ніж почати, переконайтеся, що у вас є:

- Plesk Obsidian (18.x або новіший) із DNS-сервером BIND - Root-доступ (sudo) до сервера - API-ключ SecondDNS (отримати можна на seconddns.com/dashboard/api-key) - IP вашого сервера імен SecondDNS (знайдіть його в дашборді в розділі Settings > Nameservers) - Відкритий вхідний TCP-порт 53 для IP сервера SecondDNS

Протокол передачі зон AXFR використовує TCP-порт 53, а не UDP. Багато конфігурацій фаєрвола відкривають лише UDP 53 для звичайних DNS-запитів. Якщо TCP 53 заблоковано, передачі зон не спрацюють без жодного повідомлення про помилку, навіть якщо звичайні DNS-запити працюють.

Відкрийте TCP-порт 53 для трансферу зон DNS

Перш ніж запускати інсталятор, відкрийте TCP-порт 53 для сервера SecondDNS. Знайдіть IP вашого сервера імен у дашборді в розділі Settings > Nameservers, а потім замініть SECONDARY_IP у командах нижче.

Якщо ви використовуєте розширення Plesk Firewall, додайте правило в Tools & Settings > Firewall, яке дозволяє вхідні TCP-з'єднання на порт 53 з SECONDARY_IP.

Якщо ви керуєте фаєрволом напряму через firewalld:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="SECONDARY_IP" port port="53" protocol="tcp" accept'
firewall-cmd --reload

Або через iptables:

iptables -I INPUT -s SECONDARY_IP -p tcp --dport 53 -j ACCEPT

Щоб перевірити, що TCP-порт 53 досяжний ззовні:

nmap -p 53 -sT YOUR_SERVER_IP

Встановлення вторинного DNS на Plesk

Запустіть однорядкову команду від root:

curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/plesk/install.sh | bash -s -- --api-key=YOUR_API_KEY

Інсталятор: - Перевірить ваш API-ключ через API SecondDNS - Визначить IP-адресу вашого сервера (IPv4 та IPv6) - Запитає, яку IP-адресу використати, якщо доступно кілька - Установить скрипти обробників подій - Зареєструє 12 обробників подій Plesk для створення, перейменування та видалення доменів - Замінить типовий ns2.<domain> на ваш сервер імен SecondDNS у DNS-шаблоні - Налаштує BIND для AXFR (allow-transfer, also-notify) - Запропонує синхронізувати наявні домени

Після встановлення перевірте DNS-шаблон вручну — автоматична заміна не завжди вдається:

Zone Records Template: Перейдіть до Tools & Settings > DNS Settings > Zone Records Template і переконайтеся, що другий NS-запис (ns2.<domain>.) замінено на сервер імен SecondDNS, показаний у вашому дашборді.

Zone Settings Template: Перейдіть до Tools & Settings > DNS Settings > Zone Settings Template і знайдіть Primary Name Server. Це розкривний список, заповнений на основі NS-записів шаблону — змініть значення з (Autoselect) на запис для сервера імен вашого сервера Plesk (ns1.<domain>). Це гарантує, що нові зони використовуватимуть ваш сервер Plesk як авторитетний первинний, а не вторинний.

Зробіть налаштування трансферу зон постійними

Інсталятор налаштовує BIND напряму, але Plesk може перезаписати named.conf під час перегенерації конфігурації. Щоб налаштування AXFR пережили це, задайте їх через власні DNS-налаштування Plesk — Plesk додає їх назад щоразу, коли перебудовує конфігурацію. Є дві частини: дозвіл на передачу і ціль для NOTIFY.

Дозвольте передачу (штатний спосіб Plesk). Використовуйте Transfer Restrictions Template, — він спеціально призначений, щоб надавати AXFR вторинному серверу для всіх зон, і Plesk його перевіряє:

1. Перейдіть до Tools & Settings > DNS Settings > Transfer Restrictions Template 2. Додайте IP вашого сервера імен SecondDNS (з дашборда в розділі Settings > Nameservers) до списку дозволених адрес 3. Натисніть OK / Apply

Надсилайте NOTIFY при зміні. Додайте also-notify до загальносерверних налаштувань:

1. Перейдіть до Tools & Settings > DNS Settings > Server-wide Settings 2. У полі Additional DNS settings додайте (замініть SECONDARY_IP на IP вашого сервера імен):

also-notify { SECONDARY_IP; };

3. Натисніть Apply.

Transfer Restrictions Template надає серверу SecondDNS дозвіл витягувати зону (allow-transfer), а also-notify наказує BIND надіслати NOTIFY, щоб вторинний сервер оновився одразу після зміни. Оскільки обидва зберігаються в налаштуваннях Plesk, а не в named.conf, передачі зон продовжують працювати навіть після того, як Plesk перегенерує свою конфігурацію DNS.

Синхронізуйте наявні домени з вторинним DNS

Якщо до встановлення у вас уже були домени в Plesk, синхронізуйте їх із вторинним сервером:

seconddns sync

Ця команда порівнює ваші локальні зони з SecondDNS і додає ті, яких бракує. Домени, видалені локально, прибираються з вторинного сервера. Команда ідемпотентна — її безпечно запускати багато разів.

Щоб перевірити конкретну зону чи переглянути все на вторинному сервері:

seconddns status example.com
seconddns list

Перевірте налаштування вторинного DNS Plesk

Створіть тестовий домен у Plesk і слідкуйте за логом обробника:

tail -f /var/log/seconddns.log

Ви маєте побачити:

Zone created: testdomain.com (plesk event handler)
[+] Zone testdomain.com added to SecondDNS

Потім зробіть запит до обох серверів імен. Замініть SECONDARY_IP на IP вашого сервера імен із дашборда:

dig @YOUR_SERVER_IP testdomain.com SOA +short
dig @SECONDARY_IP testdomain.com SOA +short

Обидва мають повернути той самий серійний номер SOA у форматі YYYYMMDDNN. Якщо вторинний сервер показує менший серійний номер або повертає SERVFAIL, перевірте доступ до TCP-порту 53 і лог обробника.

Підтримувані типи доменів

Інтеграція опрацьовує всі типи доменів Plesk:

- Типові домени (перший домен у підписці) - Додаткові домени - Аліаси доменів (як для типових, так і для додаткових доменів)

Кожен тип має власну DNS-зону в Plesk і автоматично запускає обробник подій, коли його створюють чи видаляють через панель керування Plesk або CLI.

Підтримка IPv4 та IPv6

Інсталятор автоматично визначає, які протоколи підтримує ваш сервер і які доступні з боку SecondDNS. Якщо доступні і IPv4, і IPv6, ви можете обрати, який використати для передачі зон.

Конфігурацію AXFR (allow-transfer і also-notify) налаштовано з правильною IP-адресою для обраного вами протоколу. Якщо ви використовуєте обидва, додайте кожну адресу до блоків allow-transfer і also-notify у загальносерверних налаштуваннях.

Усунення несправностей вторинного DNS Plesk

Зона не з'являється на вторинному сервері Перевірте лог за шляхом /var/log/seconddns.log. Переконайтеся, що обробники подій зареєстровано:

plesk bin event_handler --list | grep seconddns

Ви маєте побачити 12 обробників (4 для створення, 4 для перейменування, 4 для видалення). Якщо їх немає, запустіть інсталятор повторно.

AXFR відхилено Переконайтеся, що ваш IP SecondDNS є в Transfer Restrictions Template (Tools & Settings > DNS Settings > Transfer Restrictions Template). Саме це налаштування переживає перегенерацію конфігурації Plesk — якщо передачі спочатку працюють, а потім ламаються, то IP бракує в шаблоні — він існував лише в named.conf.

Тайм-аут підключення Перевірте, що TCP-порт 53 відкрито між вашим сервером і SecondDNS. AXFR використовує TCP, а не UDP. Найпоширеніша причина невдалих передач — заблокований на фаєрволі TCP 53, тоді як UDP 53 відкритий.

Налаштування за деякий час скидаються Це означає, що директиви AXFR було додано лише до named.conf, а не через налаштування Plesk. Додайте IP до Transfer Restrictions Template, а also-notify — до Server-wide Settings, як показано в Кроці 2.

Перевірте обробник вручну

NEW_DOMAIN_NAME=example.com bash -c /usr/local/bin/seconddns-plesk-domain_create.sh

Видалення

Щоб прибрати інтеграцію:

curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/plesk/uninstall.sh | bash

Це видаляє обробники подій, скрипти та файл конфігурації. Ваші зони на вторинному DNS не видаляються автоматично — приберіть їх через дашборд SecondDNS або запустіть:

seconddns remove-all

перед видаленням, якщо хочете прибрати їх із вторинного сервера.

Зверніть увагу: IP SecondDNS у Transfer Restrictions Template і рядок also-notify у Server-wide Settings (Крок 2) деінсталятор не прибирає. Видаліть їх вручну з Tools & Settings > DNS Settings, якщо вони вам більше не потрібні.