Переход с DNSmanager 5 на DNSmanager 6
Перенести данные из DNSmanager 5 в DNSmanager 6 можно двумя способами:
установить DNSmanager 6 на сервер с DNSmanager 5. Скрипт установки автоматически перенесёт данные из DNSmanager 5. Панель управления будет перенастроена на работу с СУБД MySQL и DNS-сервером;
- установить DNSmanager 6 на новый сервер и перенести дамп базы данных DNSmanager 5.
При переходе на DNSmanager 6 не сохраняются настройки брендирования.
Подготовка
Поддержка ОС
Если вы планируете установить DNSmanager 6 на сервер с DNSmanager 5, убедитесь, что DNSmanager 6 поддерживает ОС сервера. Подробнее см. в статье Требования к серверу.
Если ОС не поддерживается, перенесите панель управления на сервер с поддерживаемой ОС по инструкции из документации DNSmanager 5.
Лицензирование
Для установки DNSmanager 6 потребуется ключ лицензии. Если вы приобрели DNSmanager 6 в ISPsystem, вы можете посмотреть эту информацию в личном кабинете на my.ispsystem.com в разделе "Лицензии" → выберите лицензию DNSmanager 6 → поле Ключ лицензии.
Отключение DNSSEC
Текущая версия DNSmanager 6 не поддерживает перенос доменов с защитой DNSSEC. Чтобы отключить защиту:
- Удалите все DS-записи из родительской доменной зоны.
- Не ранее, чем через два часа, удалите подписи доменной зоны: Учётные записи → Доменные имена → выберите домен → кнопка Изменить → включите опцию Удалить подпись → Ok.
- Отключите поддержку DNSSEC: Настройки → Глобальные настройки → отключите опцию
Установка DNSmanager 6 на сервер с DNSmanager 5
Установите DNSmanager 6 по инструкции из статьи Установка. При появлении запроса DNSmanager5 found. Do you want to migrate data from it to DNSmanager6?(y/N) нажмите y.
Скрипт установки:
- Устанавливает DNSmanager 6 и дополнительные пакеты ПО.
- Блокирует DNSmanager 5.
Создаёт дамп БД и всех пространств имён из DNSmanager 5. Дамп сохраняется в директории /opt/ispsystem/dnsmanager6/dump/.
- Импортирует дамп БД в DNSmanager 6 и очищает кэш БД.
- Восстанавливает пространства имён из дампа.
Для DNSmanager 6 устанавливается новый ihttpd сервер. После установки перевыпустите Let's encrypt сертификат или переустановите существующий, если вы использовали коммерческий сертификат.
Перенос дампа БД на сервер с DNSmanager 6
- На сервере с DNSmanager 5:
- Подготовьте утилиту для формирования дампа:
Установите ПО для сборки утилиты:
yum install coremanager-devel
BASHСкачайте исходный код утилиты и выполните сборку:
cd /usr/local/mgr5/src && \ wget https://download.ispsystem.com/extras/dnsmanager/backuptool.tar.gz && \ tar -xvf backuptool.tar.gz && \ cd /usr/local/mgr5/src/backuptool && \ make centos-prepare && \ make dist DISTDIR=/usr/local/mgr5
BASH
Сформируйте дамп:
Заблокируйте панель управления:
/usr/local/mgr5/sbin/mgrctl -m dnsmgr -l
BASHЗапустите формирование дампа:
/usr/local/mgr5/sbin/backuptool --command dump --dump-dir /usr/local/mgr5/dump
BASHРазблокируйте панель управления:
/usr/local/mgr5/sbin/mgrctl -m dnsmgr -u
BASH
- Скопируйте содержимое директории /usr/local/mgr5/dump/ на сервер с DNSmanager 6 в директорию /opt/ispsystem/dnsmanager6/dump/.
- Скопируйте конфигурационный файл /usr/local/mgr5/etc/dnsmgr.conf на сервер с DNSmanager 6 в директорию /opt/ispsystem/dnsmanager6/etc/.
- Скопируйте все файлы из директории /usr/local/mgr5/var/userconf/ на сервер с DNSmanager 6 в директорию /opt/ispsystem/dnsmanager6/var/userconf/.
- Подготовьте утилиту для формирования дампа:
На сервере с DNSmanager 6:
- Удалите, если присутствуют, из конфигурационного файла /opt/ispsystem/dnsmanager6/etc/dnsmgr.conf:
- параметры подключения к PowerDNS — PdnsConfigDir, PdnsDBHost, PdnsDBUser, PdnsDBPassword;
- параметры подключения к БД — DBType, DBHost, DBUser, DBPassword, DBName;
- Файлы дампа содержат IP-адреса сервера с DNSmanager 5:
- чтобы использовать новые IP-адреса, замените старые IP-адреса на новые во всех файлах дампа: db.dump.sql, dns.dump.json, ipdb.dump.sql;
- чтобы перенести IP-адреса на новый сервер с DNSmanager 6, не изменяйте их в файлах дампа;
Заблокируйте панель управления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -l
BASHПодготовьте БД:
mysql -e 'DROP DATABASE dnsmgr; CREATE DATABASE dnsmgr'
BASHВосстановите дамп:
/opt/ispsystem/dnsmanager6/sbin/backuptool --command restore --dump-dir /opt/ispsystem/dnsmanager6/dump
BASHУдалите кэш БД:
rm -rf /opt/ispsystem/dnsmanager6/var/.db.cache.*
BASHРазблокируйте панель управления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -u
BASHДля первого пространства имён рекомендуем использовать view pdns по умолчанию. Для этого в файле dump/dns.dump.json измените IP-адрес на первый IP-адрес интерфейса:
dump/dns.dump.json
[ { "allowtransfer" : "127.0.0.1 185.48.237.3", "destip" : "1.1.1.1", // IP-адрес view по умолчанию "enabled" : true, "name" : "reseller.ru", // имя view по умолчанию "zones" : [ ... ], ... } ]
BASHДобавьте в etc/dnsmgr.conf параметры для использования view по умолчанию первым пространством имён из dump/dns.dump.json:
DefViewUsable yes DefViewAlias reseller.ru
CODEЗапустите восстановление данных DNS-сервера:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns bind_ip=on
BASHПродолжительность восстановления зависит от количества пространств имён и может занять от нескольких секунд до одного часа.
- Удалите, если присутствуют, из конфигурационного файла /opt/ispsystem/dnsmanager6/etc/dnsmgr.conf:
Заблокируйте панель управления на сервере с DNSmanager 5:
/usr/local/mgr5/sbin/mgrctl -m dnsmgr -l
BASH
Действия после переноса
Активация лицензии
Авторизуйтесь в панели управления по URL https://<ваш_домен>:1501/dnsmgr и введите ключ лицензии.
Проверка пространств имён
Проверьте состояние запущенных пространств имён:
Пространство имён по умолчанию
systemctl status pdns
CODEПользовательские пространства имён
systemctl status "pdns@*"
CODEЕсли сервисы остановлены, запустите их:
Пространство имён по умолчанию
systemctl start pdns
CODEПользовательские пространства имён
systemctl start "pdns@<view>"
CODEПояснения<view> — пространство имён
Если вывод команды содержит ошибки, выполните диагностику с помощью утилиты journalctl:
journalctl -xe
CODEЧтобы устранить ошибки, проверьте корректность конфигурационных файлов PowerDNS и перезапустите пространства имён:
Пространство имён по умолчанию
systemctl start pdns
CODEПользовательские пространства имён
systemctl start "pdns@<view>"
CODEПояснения<view> — пространство имён
Проверка DNS-записей
Проверьте ошибки при переносе DNS-записей:
zgrep "got error while restoring" var/dnsmgr.log
CODEzgrep "got error while restoring" var/logs/dnsmgr.log*
CODEЗанесите записи или зоны из сообщения об ошибке вручную через интерфейс панели управления DNSmanager.
Пример ошибок
Aug 24 03:50:05 [12784:12] dnsmgr WARNING got error while restoring record 'fft.ru.' for zone 'fft.ru': Type: 'exists' Object: 'dns_record' Value: 'fft.ru. TXT v=spf1 redirect=_spf.yandex.net'
CODE
Возможные ошибки
ERROR notconfigured(def_view_no_action): An error occurred while executing the request
Ошибка может возникнуть на этапе конвертации БД или при восстановлении данных DNS-сервера. Ошибка означает, что в дампе есть пространство имён, которое будет запускаться на IP-адресе сервера по умолчанию и будет считаться пространством имён по умолчанию.
Решение:
Определите IP-адрес сервера по умолчанию:
ip addr
CODEПример вывода
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff inet 172.31.48.152/32 brd 172.31.48.152 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.31.48.153/32 brd 172.31.48.153 scope global noprefixroute eth0 valid_lft forever preferred_lft forever
CODEСохраните первый IP-адрес из настроек сетевого интерфейса. В примере выше это IP-адрес 172.31.48.152.
Найдите сохранённый IP-адрес в параметре destip файла /opt/ispsystem/dnsmanager6/dump/dns.dump.json.
Пример файла
[ { "allowtransfer" : "127.0.0.1", "destip" : "172.31.48.152", "enabled" : true, "name" : "ns.example.com", "zones" : [ ...
CODEСохраните значение параметра name для этого IP-адреса. В примере выше это ns.example.com.
Добавьте в конфигурационный файл /opt/ispsystem/dnsmanager6/etc/dnsmgr.conf параметры
DefViewUsable yes DefViewAlias <name>
CODEПояснения<name> — сохранённое значение name
Перезапустите панель управления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -R
BASH- Перезапустите процесс восстановления:
если вы устанавливаете DNSmanager 6 на сервер с DNSmanager 5:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns
BASHесли вы переносите дамп БД DNSmanager 5:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns bind_ip=on
BASH
Перезапустите панель управления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -R
BASH
ERROR missed(ips)
Ошибка может возникнуть при восстановлении данных DNS-сервера.
Пример ошибки
ERROR missed(ips): with '192.168.1.1' does not exist
192.168.1.1 — несуществующий IP-адрес
Решение:
В файле /opt/ispsystem/dnsmanager6/dump/dns.dump.json удалите из параметра destip IP-адрес, содержащийся в тексте ошибки. Например, параметр destip имеет вид:
"destip": "192.168.1.1 192.168.2.2"
CODEЕсли ошибка содержит IP-адрес 192.168.1.1, то параметр нужно изменить на:
"destip": "192.168.2.2"
CODEПерезапустите процесс восстановления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns bind_ip=on
CODE
Trying restore DNS from dump
Если восстановление данных DNS-сервера заканчивается на строке Trying restore DNS from dump, а панель управления завершает работу, значит на сервере недостаточно оперативной памяти для выполнения операции.
Решение: увеличьте объём оперативной памяти на сервере.
Диагностика
Лог-файлы DNSmanager 5
- /usr/local/mgr5/var/backuptool.log — утилита для формирования дампа.
Лог-файлы DNSmanager 6
- /opt/ispsystem/dnsmanager6/var/dnsmgr.log — скрипт установки;
- /opt/ispsystem/dnsmanager6/var/backuptool.log — утилита для формирования дампа.