Документация DNSmanager 6

Переход с 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. Чтобы отключить защиту:

  1. Удалите все DS-записи из родительской доменной зоны.
  2. Не ранее, чем через два часа, удалите подписи доменной зоны: Учётные записи Доменные имена → выберите домен → кнопка Изменить → включите опцию Удалить подписьOk.
  3. Отключите поддержку DNSSEC: Настройки  Глобальные настройки → отключите опцию Поддержка DNSSEC Ok.

Установка DNSmanager 6 на сервер с DNSmanager 5

Установите DNSmanager 6 по инструкции из статьи Установка. При появлении запроса DNSmanager5 found. Do you want to migrate data from it to DNSmanager6?(y/N) нажмите y

Скрипт установки:

  1. Устанавливает DNSmanager 6 и дополнительные пакеты ПО.
  2. Блокирует DNSmanager 5.
  3. Создаёт дамп БД и всех пространств имён из DNSmanager 5. Дамп сохраняется в директории /opt/ispsystem/dnsmanager6/dump/.
  4. Импортирует дамп БД в DNSmanager 6 и очищает кэш БД.
  5. Восстанавливает пространства имён из дампа.
Для DNSmanager 6 устанавливается новый ihttpd сервер. После установки перевыпустите Let's encrypt сертификат или переустановите существующий, если вы использовали коммерческий сертификат.

Перенос дампа БД на сервер с DNSmanager 6

Обратите внимание
Перенос дампа возможен только для PowerDNS.
  1. На сервере с DNSmanager 5:
    1. Подготовьте утилиту для формирования дампа:
      1. Установите ПО для сборки утилиты: 

        yum install coremanager-devel
      2. Скачайте исходный код утилиты и выполните сборку: 

        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
    2. Сформируйте дамп: 

      1. Заблокируйте панель управления:

        /usr/local/mgr5/sbin/mgrctl -m dnsmgr -l
      2. Запустите формирование дампа:

        /usr/local/mgr5/sbin/backuptool --command dump --dump-dir /usr/local/mgr5/dump
      3. Разблокируйте панель управления:

        /usr/local/mgr5/sbin/mgrctl -m dnsmgr -u
    3. Скопируйте содержимое директории /usr/local/mgr5/dump/ на сервер с DNSmanager 6 в директорию /opt/ispsystem/dnsmanager6/dump/.
    4. Скопируйте конфигурационный файл /usr/local/mgr5/etc/dnsmgr.conf на сервер с DNSmanager 6 в директорию /opt/ispsystem/dnsmanager6/etc/.
    5. Скопируйте все файлы из директории /usr/local/mgr5/var/userconf/ на сервер с DNSmanager 6 в директорию /opt/ispsystem/dnsmanager6/var/userconf/.
  2. На сервере с DNSmanager 6:

    1. Удалите, если присутствуют, из конфигурационного файла /opt/ispsystem/dnsmanager6/etc/dnsmgr.conf:
      1. параметры подключения к PowerDNS — PdnsConfigDir, PdnsDBHost, PdnsDBUser, PdnsDBPassword;
      2. параметры подключения к БД — DBType, DBHost, DBUser, DBPassword, DBName;
    2. Файлы дампа содержат IP-адреса сервера с DNSmanager 5:
      • чтобы использовать новые IP-адреса, замените старые IP-адреса на новые во всех файлах дампа: db.dump.sql, dns.dump.json, ipdb.dump.sql;
      • чтобы перенести IP-адреса на новый сервер с DNSmanager 6, не изменяйте их в файлах дампа;
    3. Заблокируйте панель управления:

      /opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -l
    4. Подготовьте БД: 

      mysql -e 'DROP DATABASE dnsmgr; CREATE DATABASE dnsmgr'
    5. Восстановите дамп: 

      /opt/ispsystem/dnsmanager6/sbin/backuptool --command restore --dump-dir /opt/ispsystem/dnsmanager6/dump
    6. Удалите кэш БД: 

      rm -rf /opt/ispsystem/dnsmanager6/var/.db.cache.*
    7. Разблокируйте панель управления: 

      /opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -u
    8. Для первого пространства имён рекомендуем использовать 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" : [
            	...
            ],
            ...
         }
      ]
    9. Добавьте в etc/dnsmgr.conf параметры для использования view по умолчанию первым пространством имён из dump/dns.dump.json:

      DefViewUsable yes
      DefViewAlias reseller.ru
    10. Запустите восстановление данных DNS-сервера: 

      /opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr restore_dns bind_ip=on
      Продолжительность восстановления зависит от количества пространств имён и может занять от нескольких секунд до одного часа.
  3. Заблокируйте панель управления на сервере с DNSmanager 5: 

    /usr/local/mgr5/sbin/mgrctl -m dnsmgr -l

Действия после переноса

Активация лицензии

Авторизуйтесь в панели управления по URL https://<ваш_домен>:1501/dnsmgr и введите ключ лицензии.

Проверка пространств имён

  1. Проверьте состояние запущенных пространств имён:

    Пространство имён по умолчанию
    systemctl status pdns

     

    Пользовательские пространства имён
    systemctl status "pdns@*"

    Если сервисы остановлены, запустите их:

    Пространство имён по умолчанию
    systemctl start pdns
    Пользовательские пространства имён
    systemctl start "pdns@<view>"
    Пояснения
  2. Если вывод команды содержит ошибки, выполните диагностику с помощью утилиты journalctl:  

    journalctl -xe
  3. Чтобы устранить ошибки, проверьте корректность конфигурационных файлов PowerDNS и перезапустите пространства имён:

    Пространство имён по умолчанию
    systemctl start pdns


    Пользовательские пространства имён
    systemctl start "pdns@<view>"
    Пояснения

Проверка DNS-записей

  1. Проверьте ошибки при переносе DNS-записей:

    zgrep "got error while restoring" var/dnsmgr.log
    zgrep "got error while restoring" var/logs/dnsmgr.log*
  2. Занесите записи или зоны из сообщения об ошибке вручную через интерфейс панели управления 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-адресе сервера по умолчанию и будет считаться пространством имён по умолчанию.

Решение:

  1. Определите 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.

  2. Найдите сохранённый 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.

  3. Добавьте в конфигурационный файл /opt/ispsystem/dnsmanager6/etc/dnsmgr.conf параметры

     DefViewUsable yes
     DefViewAlias <name>
    Пояснения
  4. Перезапустите панель управления: 

    /opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -R
  5. Перезапустите процесс восстановления:
    • если вы устанавливаете 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
  6. Перезапустите панель управления: 

    /opt/ispsystem/dnsmanager6/sbin/mgrctl -m dnsmgr -R

ERROR missed(ips)

Ошибка может возникнуть при восстановлении данных DNS-сервера.

Пример ошибки
ERROR missed(ips):  with  '192.168.1.1' does not exist
Пояснения

Решение:

  1. В файле /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"
  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 — утилита для формирования дампа.