Инструкция на случай когда нужно добавить в 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";
           };
    };
    BASH


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

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

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

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

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

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

    insert into domain ([id],[name],[namespace_id],[user],[dtype]) values ('<id>','<name>','<namespace_id>','<user>','<dtype>');
    BASH

    <id> — идентификатор, полученный на шаге 7.
    <name> — домен.
    <namespace_id> — идентификатор пространства имён пользователя, полученный на шаге 6.
    <user> — идентификатор пользователя, полученный на шаге 5.
    <dtype> — определяет, первичным или вторичным является DNS-сервер для доменной зоны. Если первичным, то укажите "master". Если вторичным — "slave".

  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
      BASH

      <id> — идентификатор, полученный на шаге 7.

      <file> — файл со списком доменных имён.

      <namespace_id> — идентификатор пространства имён пользователя, полученный на шаге 6.

      <user> — идентификатор пользователя, полученный на шаге 5.

      <dtype> — определяет, первичным или вторичным является DNS-сервер для доменных зон. Если первичным, то укажите "master". Если вторичным — "slave".

    3. Запустите скрипт.
  10. Перезапустите DNSmanager:

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