Переносим Bind на FreeBSD | FreeBSD

DNS долго крутился на старой машине на Linux появилась необходимость перетащить на новую. В общем все достаточно просто.
Bind в системе уже есть (если ставили),
скрипт управления – в /etc/rc.d/named
файлы конфига и зон в /etc/namedb/ (это алиас на /var/named/etc/namedb)

В /etc/rc.conf добавляем:

named_enable="YES"

Копируем файлы зон (можно все в папку /var/named/etc/namedb, можно по папкам рассовать (что слейвы, что мастера).

Редактируем named.conf

options {
// Relative to the chroot directory, if any
//Место где храним файлы зон, если разложили по папкам, 
//то в описании зоны путь указываем от этой папки
directory<----->"/etc/namedb";
pid-file<------>"/var/run/named/pid";
dump-file<----->"/var/dump/named_dump.db";
statistics-file>"/var/stats/named.stats";
//Скрываем версию
version><------>"Hi to DNS";
//Принимать зоны с
allow-recursion { 15.20.14.0/24; 83.242.140.0/24;};
//вышестоящий ДНС, если есть, будет спрашивать прежде всего у него из его кэша
forwarders {15.20.14.15;};
};

Далее несколько записей чтобы соотвествовать RFС.
Добавляем описание зон

Пример зоны которая хостится на старом и ещё живом серваке

zone "mxxnet.ru" {
   type slave;
            file "mxxnet.ru.hosts";
            allow-transfer {19.20.18.3; 15.20.14.15; };
            masters {
            15.20.14.15;
            };
            };

Если мы решили перетащить зону на новый сервер то будет так

zone "mxxnet.ru" {
   type master;
            file "mxxnet.ru.hosts";
            allow-transfer {19.20.18.3; 15.20.14.15; };
            };

В самом файле описания зоны на старом серваке добавляем оба сервера в качестве хранителя зоны (NX запись)

mcnet.ru. IN NS newserver.ru.

Теперь если все правильно настроено, с мастера после изменений зоны файл будет передаваться на новый сервер. Формат файла зоны немного изменится, но bind поймет и файлы зоны для линукса.

В процессе конфигурирования обращаем внимание на синтаксис (закрывающие скобки, точки с запятой). Перед запуском чекаем конфиг командой:

named-checkconf /etc/namedb/named.conf

Можем поймать ошибки типа

unknown option 'zone'

или ругань на отсутствие скобок и т.д. Проверяем синтаксис, может при редактировании секции options удалили закрывающую скобку.

Если поймали ошибку о невозможности трансфера зоны

failed while receiving responses: permission denied

Проверяем права. Добавляем право на запись группе bind или меняем владельца файлов.