Secondary DNS FreeBSD

Потихоньку(начальство консерваторы) перевожу районы на «умную» сеть с провиженом для цыскофонов итд. Для этого кроме tftp, ntp, dhcp нам еще пригодиться вторичный DNS на месте. Сказано сделано)

Как всегда использую FreeBSD. так как named из коробки идет, то будем использовать его. Выбор дистрибутива это не тема обсуждения)
Сразу замечу
1. Добавляем в rc.conf
named_enable=»YES»
2. Правим /etc/named/named.conf
Все можно оставить по умолчанию
Немного дополним секцию options

allow-query     {any;}; //кто может обращаться c ДНС запросами к этому серверу - ставим "any", т.е. любой.
version         "Goood"; //Прячем реальную версию ДНС сервера 
listen-on       { 127.0.0.1; 10.199.39.39;}; //на каких интерфейсах нам нужно ловить ДНС запросы, на 53 порту.
allow-recursion { 10.199.0.0/16; }; //разрешаем рекурсивные запросы с заданных адресов  или { none; };

Немного теории 
При ответе на нерекурсивный запрос, а также — при неумении или запрете выполнять рекурсивные запросы, — DNS-сервер либо возвращает данные о зоне, за которую он ответствен, либо возвращает адреса серверов, которые обладают большим объёмом информации о запрошенной зоне, чем отвечающий сервер, чаще всего — адреса корневых серверов. И клиент сам ищет, что он хочет) 
В случае рекурсивного запроса DNS-сервер опрашивает серверы (в порядке убывания уровня зон в имени), пока не найдет ответ или не обнаружит, что домен не существует. (На практике поиск начинается с наиболее близких к искомому DNS-серверов, если информация о них есть в кэше и не устарела, сервер может не запрашивать другие DNS-серверы.)

добавим лишь

zone "sla.local" {
        type slave;
        file "/etc/namedb/slave/sla.local"; #файл зоны hosting.local
        masters { 10.199.68.99; }; # указываем ip Primary DNS
        allow-query { localhost; 10.199.0.0/16; }; # задаем хосты которым разрешено делать запросы к Secondary DNS
        allow-notify { 10.199.68.99; }; # указываем хост от которого будем принимать оповещения об обновлении зоны
};

Стартуем named
/etc/rc.d/named start
проверяем стартонул ли
#pgrep named
52964
Работает, смотрим затянул ли зону:
ls /etc/namedb/slave/
sla.local
затянул, проверяем отдаст ли нам:
#dig @127.0.0.1 ls1.sla.local
Если получили красивый ответ все хорошо)

С другого компа должны получить такой же ответ, все хорошо — все работает. Если мы запретили рекурсию, то с просьбой отдать нам ya.ru мы получим болт.

Комментарии: