Перенести данные из DNSmanager 5 в DNSmanager 6 можно двумя способами:
- установить DNSmanager 6 на сервер с DNSmanager 5. Скрипт установки автоматически перенесёт данные из DNSmanager 5. Панель управления будет перенастроена на работу с СУБД MySQL и DNS-сервером;
- установить DNSmanager 6 на новый сервер и перенести дамп базы данных DNSmanager 5.
Подготовка
Поддержка ОС
Если вы планируете установить 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: Настройки → Глобальные настройки → отключите опцию Поддержка DNSSEC → Ok.
Установка 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
- На сервере с DNSmanager 5:
- Подготовьте утилиту для формирования дампа:
-
Установите ПО для сборки утилиты:
yum install coremanager-devel
-
Скачайте исходный код утилиты и выполните сборку:
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
-
-
Сформируйте дамп:
-
Заблокируйте панель управления:
/usr/local/mgr5/sbin/mgrctl -m dnsmgr -l
-
Запустите формирование дампа:
/usr/local/mgr5/sbin/backuptool --command dump --dump-dir /usr/local/mgr5/dump
-
Разблокируйте панель управления:
/usr/local/mgr5/sbin/mgrctl -m dnsmgr -u
-
- Скопируйте содержимое директории /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
-
Подготовьте БД:
mysql -e 'DROP DATABASE dnsmgr; CREATE DATABASE dnsmgr'
-
Восстановите дамп:
/opt/ispsystem/dnsmanager6/sbin/backuptool --command restore --dump-dir /opt/ispsystem/dnsmanager6/dump
-
Удалите кэш БД:
rm -rf /opt/ispsystem/dnsmanager6/var/.db.cache.*
-
Разблокируйте панель управления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -u
-
Для первого пространства имён рекомендуем использовать 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" : [ ... ], ... } ]
-
Добавьте в etc/dnsmgr.conf параметры для использования view по умолчанию первым пространством имён из dump/dns.dump.json:
DefViewUsable yes DefViewAlias reseller.ru
-
Запустите восстановление данных DNS-сервера:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns bind_ip=on
Продолжительность восстановления зависит от количества пространств имён и может занять от нескольких секунд до одного часа.
- Удалите, если присутствуют, из конфигурационного файла /opt/ispsystem/dnsmanager6/etc/dnsmgr.conf:
-
Заблокируйте панель управления на сервере с DNSmanager 5:
/usr/local/mgr5/sbin/mgrctl -m dnsmgr -l
Действия после переноса
Активация лицензии
Авторизуйтесь в панели управления по URL https://<ваш_домен>:1501/dnsmgr и введите ключ лицензии.
Проверка пространств имён
-
Проверьте состояние запущенных пространств имён:
Пространство имён по умолчаниюsystemctl status pdns
Пользовательские пространства имёнsystemctl status "pdns@*"
Если сервисы остановлены, запустите их:
Пространство имён по умолчаниюsystemctl start pdns
Пользовательские пространства имёнsystemctl start "pdns@<view>"
Пояснения -
Если вывод команды содержит ошибки, выполните диагностику с помощью утилиты journalctl:
journalctl -xe
-
Чтобы устранить ошибки, проверьте корректность конфигурационных файлов PowerDNS и перезапустите пространства имён:
Пространство имён по умолчаниюsystemctl start pdns
Пользовательские пространства имёнsystemctl start "pdns@<view>"
Пояснения
Проверка DNS-записей
-
Проверьте ошибки при переносе DNS-записей:
zgrep "got error while restoring" var/dnsmgr.log
zgrep "got error while restoring" var/logs/dnsmgr.log*
-
Занесите записи или зоны из сообщения об ошибке вручную через интерфейс панели управления 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'
Возможные ошибки
ERROR notconfigured(def_view_no_action): An error occurred while executing the request
Ошибка может возникнуть на этапе конвертации БД или при восстановлении данных DNS-сервера. Ошибка означает, что в дампе есть пространство имён, которое будет запускаться на IP-адресе сервера по умолчанию и будет считаться пространством имён по умолчанию.
Решение:
-
Определите IP-адрес сервера по умолчанию:
ip addr
Пример вывода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
Сохраните первый 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" : [ ...
Сохраните значение параметра name для этого IP-адреса. В примере выше это ns.example.com.
-
Добавьте в конфигурационный файл /opt/ispsystem/dnsmanager6/etc/dnsmgr.conf параметры
DefViewUsable yes DefViewAlias <name>
Пояснения -
Перезапустите панель управления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -R
- Перезапустите процесс восстановления:
-
если вы устанавливаете DNSmanager 6 на сервер с DNSmanager 5:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns
-
если вы переносите дамп БД DNSmanager 5:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns bind_ip=on
-
-
Перезапустите панель управления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -R
ERROR missed(ips)
Ошибка может возникнуть при восстановлении данных DNS-сервера.
ERROR missed(ips): with '192.168.1.1' does not exist
Решение:
-
В файле /opt/ispsystem/dnsmanager6/dump/dns.dump.json удалите из параметра destip IP-адрес, содержащийся в тексте ошибки. Например, параметр destip имеет вид:
"destip": "192.168.1.1 192.168.2.2"
Если ошибка содержит IP-адрес 192.168.1.1, то параметр нужно изменить на:
"destip": "192.168.2.2"
-
Перезапустите процесс восстановления:
/opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns bind_ip=on
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 — утилита для формирования дампа.