Bind9

Материал из support.qbpro.ru

Установка и базовая настройка

Назначение DNS это перевод доменных имен, легко запоминаемых человеком в IP адреса которые понимают компьютеры, этот процесс называется-Разрешение имен. Что нам даст установка собственного кеширующего DNS сервера?! Это немного ускорит отклик сайтов + Linux не очень хорошо воспринимает имена NetBios, а ведь иногда приходится находить компьютеры или принтеры внутри локальной сети, а хочется это делать по именам. Запоминать IP адреса- не удобно, а постоянно лазить к журнал работы DHCP сервера- тоже не наш метод. Вот для таких случаев и нужен DNS в локальной сети. Сама установка пакета bind9 не отличается сложностью, затыки, обычно возникают на стадии его конфигурирования, т.к. после легко читаемых конфигурационных файлов системы, на человека сваливается непонятный синтаксис, кстати, очень похожий на язык программирования С. Т.к. сервер будет работать внутри локальной сети, то не имеет смысла переносить его в chroot окружение и вся настройка занимает совсем немного времени. На этом, лирическую часть, можно завершить, переходим к установке и настройке. Установим DNS сервер Bind9:

sudo apt-get install bind9

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

sudo nano /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 replacing
       // the all-0's placeholder.

       // forwarders {
       //      0.0.0.0;
       // };

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

Секция forwarders, отвечает за то, куда будет передаваться DNS запрос на разрешение имени, в случае если его нет в собственной базе. Последнее время меня совсем не радует, работа этих серверов у провайдера по этому можно подключить сторонние например гугловские, запомнить IP очень легко 8.8.8.8, на его примере я и буду вести настройку, но никто не мешает использовать, те что вам нравятся больше.

Редактируем секцию, для начала с нее нужно снять комментарии и добавить сторонние DNS, если есть необходимость добавить несколько серверов, например на тот случай если сервер google не выдержит ваших запросов и поломается :), то IP других серверов можно написать в столбик, тогда можно добиться более значительной отказоустойчивости.

forwarders {
          8.8.8.8;
          193.58.251.251;   //Российская служба DNS -SkyDNS
       };

В эту секцию лучше вписать IP того сервера который у вас указан в файле /etc/resolv.conf или вписать туда в секцию nameserver этот IP Сохраняем изменения и выходим Перезапускаем сервер и проверяем Набираем в командной строке nslookup mail.ru Должно выдать:

Non-authoritative answer:
Name:        mail.ru
Addresses:  94.100.191.202

Это говорит о том, что наш сервер не является, главным в обслуживании этой зоны (mail.ru), но запросы добавил в кеш! Теперь нужно создать ДНС зону для нашей сети чтобы машины могли находить различные сетевые сервисы — могут быть, например, сетевые принтеры, они могут быть как самостоятельными так и расшаренными на других рабочих станциях. Нашу зону можно назвать orgname –т.е. название организации. Первым делом создаем зону, для этого отредактируем named.conf.local

sudo nano /etc/bind/named.conf.local

и добавим в него следующее:

zone "orgname" {
    type master;
    file "/etc/bind/db.orgname";
 };

Сохраняем и выходим Теперь нам необходимо создать файл настройки зоны

sudo nano /etc/bind/db.orgname

и вставляем в него следующее:
(Прошу отнестись внимательно к синтаксису конфигурационного файла, даже точки имеют значение)

@ IN SOA orgname. root.orgname.    (
       20101015        
       4h              ; время обновления -4 часа
       1h              ; повтор каждый час
       1w              ; как долго хранить информацию -1 неделю
       1d    )         ; TTL (время жизни ) записи - 1 день

@   IN    NS    server.        ; имя сервера имен
@   IN    A  192.168.10.1       ; A - запись - IP адрес нашего ДНС сервера который обслуживает эту зону, @ означает что это корневая зона.
*   IN    CNAME  @             
                               
printer IN A 192.168.10.25      ; Можно создать ДНС запись сетевого принтера который находится по адресу 192.168.10.25
server  IN A 192.168.10.1      ; Можно создать ДНС запись сетевого принтера который находится по адресу 192.168.10.25


Теперь, при добавлении нового сетевого устройства, вам необходимо сделать 2 вещи:

1) Зарезервировать IP адрес на DHCP сервере, о том, как это сделать, можно прочитать в статье- Настройка DHCP сервера 
2) Создать DNS зону для этого IP, вида devicename IN A XXX.XXX.XXX.XXX. Где: devicename-сетевое имя устройства; XXX.XXX.XXX.XXX-его IP адрес который зарезервирован на DHCP сервере.

теперь нам необходимо отредактировать файл resolv.conf

sudo nano /etc/resolv.conf
и вписать туда:
nameserver 127.0.0.1

все что там было можно закоментировать поставив #

перезапускам сервер

sudo reboot

Сделано это для того чтобы сервер искал все в собственной базе, а уже потом BIND будет перенаправлять запросы к серверу 8.8.8.8 IP которого вписан в директиве forwarders.

DNS. Разные ответы разным IP


DNS сервер BIND с локальными зонами


Bind9 unable to convert errno to isc result: 28: No space left on device


Полезное