Отладка DNS | FreeBSD

Короткая заметка по использованию dig – трассировка запросов dns, последовательно показывает какой сервер какой ответ получает, от корневых серверов до искомого хоста. очень наглядно.

#dig @dns1.comstar.ru your-host.ru +trace

; <<>> DiG 9.4.2-P2 <<>> @dns1.comstar.ru your-host.ru +trace
; (1 server found)
;; global options:  printcmd
.                       332276  IN      NS      d.root-servers.net.
.                       332276  IN      NS      h.root-servers.net.
.                       332276  IN      NS      k.root-servers.net.
.                       332276  IN      NS      j.root-servers.net.
.                       332276  IN      NS      g.root-servers.net.
.                       332276  IN      NS      e.root-servers.net.
.                       332276  IN      NS      m.root-servers.net.
.                       332276  IN      NS      a.root-servers.net.
.                       332276  IN      NS      c.root-servers.net.
.                       332276  IN      NS      b.root-servers.net.
.                       332276  IN      NS      l.root-servers.net.
.                       332276  IN      NS      i.root-servers.net.
.                       332276  IN      NS      f.root-servers.net.
;; Received 492 bytes from 83.242.140.11#53(83.242.140.11) in 6 ms

ru.                     172800  IN      NS      a.dns.ripn.net.
ru.                     172800  IN      NS      b.dns.ripn.net.
ru.                     172800  IN      NS      d.dns.ripn.net.
ru.                     172800  IN      NS      e.dns.ripn.net.
ru.                     172800  IN      NS      f.dns.ripn.net.
;; Received 343 bytes from 199.7.83.42#53(l.root-servers.net) in 30 ms

your-host.ru.          345600  IN      NS      ns.arlc.ru.
your-host.ru.           345600  IN      NS      dns1.comstar.ru.
;; Received 137 bytes from 193.232.156.17#53(f.dns.ripn.net) in 410 ms

your-host.ru.           38400   IN      A       19.21.14.45
your-host.ru.           38400   IN      NS      ns.arlc.ru.
your-host.ru.           38400   IN      NS      dns1.comstar.ru.
;; Received 153 bytes from 83.242.140.11#53(dns1.comstar.ru) in 5 ms

Опция +trace – трассировка запроса, @ – указание какой сервер опрашивать.

Переносим 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 или меняем владельца файлов.