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

Добавление доменов в DNSmanager из конфигурационного файла BIND

Инструкция на случай когда нужно добавить в DNSmanager доменные зоны, которые присутствуют в конфигурационном файле BIND.

Алгоритм добавления:

  1. Доменная зона должна принадлежать пользователю DNSmanager. Создайте его и запомните Имя пользователя и Пространство имён DNS. Подробнее см. в статье Создание пользователя.
  2. Откройте конфигурационный файл BIND:
    CentOS: /etc/named.conf

    Debian: /etc/bind/named.conf
  3. Каждому пользователю DNSmanager назначается пространство view в конфигурационном файле. Название view соответствует указанному при создании пользователя Пространству имён DNS. Внутри view добавляются все доменные зоны zone пользователя. Например:

    view "hoster.me" {
    allow-transfer { 127.0.0.1; };
           match-destinations { 149.154.66.80; };
           transfer-source 149.154.66.80;
    zone "company.my" {
                   type master;
                   file "/etc/bind/hoster.user/company.my";
           };
    };


    Перенесите нужные доменные зоны в конфигурационном файле во view созданного пользователя.

  4. Откройте базу данных DNSmanagerс помощью sqlite:

    sqlite3 /usr/local/mgr5/etc/dnsmgr.db
  5. Получите из базы данных id пользователя:

    select id from user where name='<имя пользователя>';
  6. Получите из базы данных id пространства имён пользователя:

    select id from namespace where name='<пространство имён>';
  7. Получите из базы данных id, который можно использовать для добавляемого домена:

    select max(id)+1 from domain;
  8. Добавьте запись о домене в базу данных:

    insert into domain ([id],[name],[namespace_id],[user],[dtype]) values ('<id>','<name>','<namespace_id>','<user>','<dtype>');
    Пояснения
  9. Если нужно добавить в базу данных большое количество записей, то можно автоматизировать этот процесс:

    1. Укажите все нужные доменные имена в файле.
    2. Создайте файл со скриптом.

      #!/bin/bash
      count=<id>
      for domain in `cat <file>`; do
             echo "insert into domain ([id],[name],[namespace_id],[user],[dtype]) values ('$count','$domain','<namespace_id>','<user>','<dtype>');" | sqlite3 /usr/local/mgr5/etc/dnsmgr.db 
             count=$((count+1))
      done
      Пояснения
    3. Запустите скрипт.
  10. Перезапустите DNSmanager:

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