Bind 9 и Ubuntu. Кэширующий DNS сервер

Опубликовано:

Для начала установим bind9:
apt-get install bind9

Находим файл /etc/bind/named.conf.options и добавляем (сети, которым будет разрешено посылать запросы через наш DNS-сервер):
acl «corpnets» { 192.168.1.0/24; 127.0.0.1; };
Ниже раскомментируем строчку и добавим (к какому DNS серверу будет обращатся наш сервер):
forwarders {
194.187.48.2;
82.144.192.30;
195.189.246.18;
193.193.193.100;
};


P.S. Если есть DNS сервер у вашего провайдера, то укажите его первым, для экономии трафика.
Разрешаем запросы тем сетям, которые указаны выше:
allow-query { «corpnets»; };

Перезапускаем BIND:
/etc/init.d/bind9 restart

Не забываем поменять DNS адрес в /etc/resolv.conf на свой.

Некоторые вопросы, которые возникли у меня:
1. Где хранит BIND свой кэш?

> В памяти.
2. Хранится ли кэш между перезапусками?
> Нет.
3. В named.conf.options есть такая строчка auth-nxdomain no (у меня no). Лучше оставить как есть, но если будут проблемы со старыми программами, то исправить на yes.
4. Как можно проверить, кеширует ли DNS?
> Набираем nslookup www.ru, если в ответе содержится строка Non-authoritative answer, то адрес пришел из кэша.
5. Как еще проверить?
> Набираем (спросить адрес, например, www.ru. (которого еще нет в кэше) через 5 секунд спросить ещё раз. Время запроса должно быть меньше на несколько секунд):
$ dig @localhost www.ru 
... 
;; Query time: 4825 msec
;; SERVER: 127.0.0.1#53 (127.0.0.1)
... 
[ждём 5 сек.] 
$ dig @localhost www.ru 
... 
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53 (127.0.0.1)
...

Понравилась статья, расскажи о ней друзьям, нажми кнопку!