Собственный DNS сервер

Изображение пользователя Anakin_Sk.

Сегодня что то меня кольнуло, и решил я намутить свой собственный кэширующий DNS сервер. Спросите "а зачем оно надо?". Дело все в том, что такой сервер способен разрешать поступающие к нему запросы, сохраняя ответы в локальном кэше. При повторном запросе ответ уже будет возвращен из кэша, за счет чего достигается некоторая экономия трафика и времени.

Для этого на благо меня будет трудится пакет BIND (sudo apt-get install bind9). После установки bind уже готов к работе. Но я решил, что будет лучше, если те запросы, на которые не сможет ответить мой сервер, он будет обращаться к DNS моего провайдера. Для этого мне необходим файл настроек /etc/bind/named.conf.options.
Выглядит он примерно так:
options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses repla$
        // the all-0's placeholder.

        forwarders {
                62.213.0.12; // - DNS сервер провайдера
                62.213.2.1; // - слейв сервер
         };

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
         };

Если добавить опцию " forward only", то мы запретим нашему серверу любую самостоятельную деятельность даже в случае, если ни один forward сервер его не удовлетворит.

Кстати стоит отметить, что для управление bind используется rndc. наберите "rndc status" чтобы увидеть статус сервера. Ежели набрать без опций, то утилита покажет список всех команд.
Теперь осталось только внести наш DNS сервер в файл /etc/resolv.conf. Примерно так:
nameserver 127.0.0.1
Все бы хорошо, но я столкнулся с проблемой, когда при каждой загрузке мой resolv.conf злостно затирался. Решил проблему следующем образом: Так как информацию для соединения машина получает по dhcp, то в файле /etc/dhcp3/dhclient.conf я раскомментировал следующую строку:
prepend domain-name-servers 127.0.0.1;. Теперь инфа о моем DNS в resolf.conf не затирается и сервер функционирует в штатном режиме-)

Комментарии (8)

0
balamutick - 22 Июнь, 2009 - 10:22
Изображение пользователя balamutick.

аффтар пишы исчо ! пожалуйста продолжайте писать столь полезные статьи.

+2
awesome - 28 Октябрь, 2009 - 17:07
Изображение пользователя awesome.

Присоединяюсь к предыдущему посту! Огромное спасибо!!!
наберите "rndc satus" чтобы увидеть статус сервера.

rndc status
Пропустил одну букву ;)

0
Anakin_Sk - 1 Ноябрь, 2009 - 09:04
Изображение пользователя Anakin_Sk.

Спасибо - исправил -)

+2
balamutick - 28 Октябрь, 2009 - 17:15
Изображение пользователя balamutick.

Добавил статью в подшивку "Сети и интернет", чтобы не повадно было больше скрываться в глубине форума.

0
lyopa5 - 24 Сентябрь, 2011 - 22:45
Изображение пользователя lyopa5.

Автору огромное спасибо!

0
dyug - 25 Сентябрь, 2011 - 01:05

Хотя правильней и проще для этих целей использовать dnsmasq он и полегче бинда будет, и более ориентирован на кеширование для маленьких сетей. да и как легкий дхцп сервер он тоже неплох. :-)

+1
DarkneSS - 17 Апрель, 2012 - 20:28
Изображение пользователя DarkneSS.

Если устроит что-нибудь попроще, то можно установить pdnsd, который способен обращаться к списку DNS-серверов и кешировать результаты. Для работы достаточно немного подправить /etc/pdnsd.conf

  • вписать DNS своего провайдера после ip = в строке после label= "myisp";
  • раскомментировать OpenDNS: убрать */ до и после соответствующего блока.

Если файл /etc/pdnsd.conf не нашёлся, скопируйте на его место /etc/pdnsd.conf.sample
Сервер по умолчанию отзывается по 127.0.0.1
Предварительно протестировать его можно, вбивая несколько раз подряд строку на подобие dig @127.0.0.1 irc.freenode.net | grep ime
Перевод справочной страницы. Мой конфиг.

+1
lyopa5 - 17 Апрель, 2012 - 21:45
Изображение пользователя lyopa5.

Кстати, отличный вариант!

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры