Настройка кэширующего dns сервера bind

Завести дома, да и на работе, свой кэширующий DNS сервер довольно приятно так как это даёт несколько хороших преимуществ и стоит совсем немного усилий (минут 5)

  1. Экономия служебного трафика, особенно актуально в случае GPS
  2. Ускорение повторного доступа к любым ресурсам
  3. Независимость от проблем с DNS провайдера, такое тоже случается

Для примера приведу лог работы wget при выкачивание части сайта.

Эта ситуация в которой в роли DNS выступает сервер провайдера
> cat /etc/resolve.conf
nameserver 217.9.147.42
> time wget -c -np -r -k --no-proxy http://info.nic.ru/st/14/out_267.shtml
Преобразовано 21 файлов за 0,5 секунд.
real0m17.691s
user0m0.490s
sys0m0.269s


А в этом случае я использую собственный кэширующий сервер, тоесть повторный расчёт имени производится локально

> cat /etc/resolve.conf
nameserver 192.168.80.76
> time wget -c -np -r -k --no-proxy http://info.nic.ru/st/14/out_267.shtml
Преобразовано 21 файлов за 0,5 секунд.
real0m2.751s
user0m0.402s
sys0m0.182s

Разница 15 секунд говорит о том, что работать в интернете с собственным DNS сервером гораздо приятнее. Итак приступаем

> sudo pacman -S bind # устанавливаем последнюю версию bind
> pacman -lQ bind |grep named.conf$ # находим файл настроек
bind /etc/named.conf
> su # становимся root
# vim /usr/sbin/named.conf # приступаем к настройке

создаём алиас для указания обслуживаемых сетей, машин
в данном случае 192.168.80.0-(2^(32-25))
будет обслуживаться сеть из адресов 192.168.80.0-128

acl "homenet" {192.168.80.0/25;};
options {
    directory "/var/named";
    pid-file "/var/run/named/named.pid";
    allow-query {"homenet";}; // разрешаем обслуживать только эти адреса
    forwarders { 217.9.147.42; }; // все запросы будем переправлять на этот DNS сервер, это DNS моего провайдера
};

Теперь сохраняем и  в файле /etc/resolv.conf добавляем запись (можно и на других компьютерах в этой сети)

nameserver 192.168.80.76 # это адрес компьютера на котором мы подняли DNS сервер

Все программы расчитывающие DNS имя будут обращаться к серверам указанным в этом файле , в нём имеются и другие полезные опции но об этом позже.
Запускаем сервер
/etc/rc.d/named start
:: Starting DNS    [BUSY]    [DONE]

и проверяем: nslookup r0.ru
Server:ru 192.168.80.76
Address:Address 192.168.80.76#53

Non-authoritative answer:
Name:Namer0.ru
Address: 81.19.70.3

Ура, теперь мы имеем собственный кэшируюший сервер. Для того чтобы после перезагрузки не запускает его руками, добавьте в файле /etc/rc.conf в строчке DAEMONS слово named

далее: для чего и как создать собственную домашнюю

Если имеются вопросы, то оставляйте их в комментариях, уведомления о новых коментариях мгновенно приходит мне в чат и возможно я помогу решить вашу проблему, только давайте больше информации без прелюдий

похожие страницы

  1. Bind, настройка собственной зоны
  2. Как добавить текст в защищённый файл с помощью sudo
  3. Объединение DNS зон в VPN сетях
  4. Скрипт автоматического создания виртуальных хостов apache2
  5. Запуска apache в окружении chroot

#1:

можно для этих целей заюзать pdnsd ;)

ответить  2009-03-22 21:06:53 

#2:  Басманов:

power DNS ?

ответить  2009-03-22 21:22:05 

#3:

а как называется утилиты для проверки файлов синтаксиса bind ?

ответить  2009-04-03 10:58:08 

#4:  Басманов:


ffsdmad@serv:/home/httpd$ named
named named-checkconf named-checkzone named-compilezone

ответить  2009-04-03 11:00:13 

#5:  moog:

Не срабатывает что то, если указать конфиг (acl "homenet" _) в /etc/named.conf , то named не стартует

ответить  2013-06-26 20:25:47 

#1:  Басманов:

homenet должен быть определён вот так: acl "homenet" {192.168.80.0/25;}; а затем использован вот так: allow-query {"homenet";}; // разрешаем обслуживать только эти адреса а не запускаться может по другой причине, чтобы понять по какой нужно почитать последние логи, например вот так: grep bind /var/log/daemon.log

ответить  2013-06-27 08:47:44 

#6:  moog:

Указываю в самом начале named.conf acl "localnets" {10.10.0.0/16;}; ,потом options { и т.д, не стартует named из за этой строки acl "localnets" {10.10.0.0/16;};

ответить  2013-06-29 22:19:42 

#7:  moog:

Все вроде получилось , прописать правильно acl, примеры тут http://www.zytrax.com/books/dns/ch7/acl.html

acl "someips" {
10.10.0.0/16; 10.10.54.0/24;
};

nslookup r0.ru
Server: 10.10.54.209
Address: 10.10.54.209#53

** server can't find r0.ru: REFUSED
вот последний лог http://www.fpaste.org/21924/25348431/

ответить  2013-06-29 23:41:22