Посібники

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

Навіщо CyberPanel потрібен вторинний DNS

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

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

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

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

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

Як працює DNS у CyberPanel

CyberPanel використовує PowerDNS, а не BIND. Це важливо, бо підхід до налаштування відрізняється від того, що описано в більшості інструкцій щодо вторинного DNS.

У PowerDNS дані DNS зберігаються в базі даних MySQL (таблиці domains та records бази cyberpanel), а не у файлах зон. PowerDNS читає й записує дані через бекенд бази даних. Це означає, що ви не можете просто відредагувати named.conf для налаштування трансферу зон — потрібно оновити параметри PowerDNS у pdns.conf та використовувати утиліти PowerDNS (pdnsutil), щоб керувати властивостями зон.

При налаштуванні вторинного DNS для CyberPanel ви вказуєте PowerDNS:

1. Позначити кожну зону як MASTER, щоб PowerDNS надсилав NOTIFY-повідомлення при зміні зони 2. Дозволити AXFR-запити з IP-адреси сервера SecondDNS (allow-axfr-ips) 3. Оновлювати серіал SOA у форматі, що ініціює оновлення зони на вторинному сервері

Плагін SecondDNS виконує все це автоматично, перехоплюючи події створення та видалення доменів у CyberPanel.

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

Плагін SecondDNS інтегрується в CyberPanel і перехоплює події створення та видалення доменів. Коли ви додаєте новий домен, плагін автоматично:

1. Змінює тип зони з NATIVE на MASTER, щоб PowerDNS надсилав NOTIFY вторинному серверу при зміні зони (сам AXFR дозволяється через allow-axfr-ips) 2. Оновлює серіал SOA до стандартного формату YYYYMMDDNN 3. Реєструє зону в SecondDNS через API, щоб вторинний сервер завантажив повну копію

Коли ви видаляєте домен, плагін прибирає його з вторинного сервера. Жодних ручних дій, забутих зон чи застарілих записів.

Після налаштування призначений вам неймсервер SecondDNS зберігає копію кожної зони лише для читання та відповідає на DNS-запити як повноцінний авторитетний сервер. Хостнейм та IP вашого неймсервера відображаються в панелі SecondDNS у розділі Settings > Nameservers.

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

Перед початком переконайтеся, що у вас є:

- CyberPanel v2.x або новіше з PowerDNS - Root (sudo) доступ до сервера - git встановлений на сервері - 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 вашого неймсервера в панелі SecondDNS у розділі Settings > Nameservers, потім замініть SECONDARY_IP у командах нижче.

Якщо використовуєте UFW:

ufw allow from SECONDARY_IP to any port 53 proto tcp
ufw reload

Якщо використовуєте iptables:

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

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

nmap -p 53 -sT YOUR_SERVER_IP

Інсталятор автоматично додає правильний IP до allow-axfr-ips PowerDNS, коли ви запускаєте його з API-ключем — він отримує дані призначеного вам неймсервера через API SecondDNS.

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

Виконайте команду від root:

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

Інсталятор: - Перевірить ваш API-ключ - Визначить IP-адресу сервера (IPv4 та IPv6) - Встановить CLI-інструмент та плагін CyberPanel - Налаштує PowerDNS для AXFR (master-режим, allow-axfr-ips на ваш призначений IP SecondDNS, формат серіалу SOA) - Запропонує перезапустити CyberPanel для активації плагіна

Замініть YOUR_API_KEY на ключ з вашої панелі SecondDNS. У разі будь-якої помилки інсталятор завершується з кодом помилки та повідомляє, на якому кроці вона сталася.

Виправте схему PowerDNS на CyberPanel

CyberPanel v2.4.5 має застарілу схему бази даних PowerDNS. Через два відсутні стовпці PowerDNS аварійно завершується під час оновлення зон. Виконайте ці SQL-запити в консолі MySQL:

mysql -e "ALTER TABLE cyberpanel.domains ADD COLUMN options TEXT DEFAULT NULL;"
mysql -e "ALTER TABLE cyberpanel.domains ADD COLUMN catalog VARCHAR(255) DEFAULT NULL;"

Потім перезапустіть PowerDNS:

systemctl restart pdns

Якщо стовпець вже існує, команда виведе безпечну помилку Duplicate column — її можна ігнорувати. Цей крок потрібен лише для CyberPanel v2.4.5. Інших версій ця проблема не стосується.

Налаштуйте неймсервери в CyberPanel

Перейдіть до CyberPanel > DNS > Create/Edit Nameservers та вкажіть:

- NS1: ваш основний неймсервер (наприклад, ns1.yourdomain.com) - NS2: хостнейм вашого неймсервера SecondDNS (відображається в панелі у розділі Settings > Nameservers)

Якщо у вас є додаток Personalized NS, використовуйте ваш брендований хостнейм (наприклад, ns2.yourdomain.com). Завдяки цьому кожна нова зона матиме правильний вторинний неймсервер у своїх NS-записах.

Синхронізуйте існуючі домени з вторинним DNS

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

seconddns sync

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

Щоб перевірити статус конкретної зони:

seconddns status example.com

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

Створіть тестовий домен у CyberPanel і переконайтеся, що він з'явився на вторинному сервері:

seconddns list

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

dig @YOUR_PRIMARY_SERVER_IP example.com SOA +short
dig @SECONDARY_IP example.com SOA +short

Обидві команди мають повернути однаковий серіал SOA у форматі YYYYMMDDNN. Якщо вторинний показує менший серіал, трансфер зони ще не завершено — зачекайте 30 секунд і повторіть.

Якщо вторинний повертає SERVFAIL або не відповідає, перевірте правила файрволу для TCP-порту 53. Найчастіша причина невдалих трансферів — TCP 53 заблоковано на рівні файрволу, тоді як UDP 53 відкритий.

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

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

seconddns status

AXFR відхилено PowerDNS відхиляє запит трансферу зони. Інсталятор налаштовує allow-axfr-ips автоматично, але ручні зміни pdns.conf можуть його перезаписати. Перевірте поточне значення:

grep allow-axfr-ips /etc/pdns/pdns.conf

Значення має відповідати IP вашого неймсервера SecondDNS (з панелі). Якщо ні — оновіть і перезапустіть PowerDNS:

systemctl restart pdns

Серіал SOA залишається 1 Плагін оновлює серіал після створення зони. Якщо зона була створена до встановлення плагіна, виконайте:

seconddns sync

або примусово оновіть серіал:

pdnsutil increase-serial YOURDOMAIN.COM

PowerDNS аварійно завершується при оновленні зони Застосуйте виправлення схеми з Кроку 2. Це відома проблема CyberPanel v2.4.5.

Плагін не спрацьовує під час створення домену Перевірте, що в точці входу CyberPanel є блок сигналів. Запустіть інсталятор повторно, щоб перереєструвати сигнали — це безпечно для вже встановленого плагіна.

TCP-порт 53 недоступний Запустіть тест nmap з розділу налаштування файрволу. Якщо TCP 53 заблоковано, додайте правило для IP вашого неймсервера SecondDNS (з панелі) та повторіть трансфер.

Трансфер зони зависає Великі зони (тисячі записів) можуть потребувати більше часу. Перевірте розмір зони:

pdnsutil list-zone YOURDOMAIN.COM | wc -l

Зони з понад 10 000 записів можуть передаватись кілька хвилин.

Видалення

Щоб видалити інтеграцію:

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

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

seconddns remove-all

перед видаленням, якщо хочете очистити вторинний сервер.