Путь юниксоида

Блог посвященный UNIX-подобным операционным системам.

Установка и настройка Bind9 на Debian 8 «Jessie»

1 Мая 2015, 09:29, Пт | Комментарии

Bind9

В сети очень много статей на тему установки и настройки DNS-сервера Bind9. Они разные. Некоторые написаны просто и доступно, но нет пояснений зачем и почему. В других материал подан очень подробно, но новичкам такой материал осилить сложно. Я же попытаюсь совместить достоинства способов подачи материала, нащупать ту золотую середину, которая подойден большинству. Но опять таки, я не претендую на истину в последней инстанции и готов принять конструктивную критику.

Итак, вступление закончено, приступим к самой статье. Я как приверженнец Debian, буду описывать процесс установки и настройки именно на этой ОС. Дано Debian 8 «Jessie» установленный вот с такими параметрами (Ну разве кроме пункта web server, он пригодится тем, кто в дальнейшем будет работать с веб-сервером Apache):
Debian preinstall options

Настройки сети:

1
2
3
IP адрес роутера 192.168.1.1
IP адрес сервера 192.168.1.10
Имя домена nixway.loc

Для решения данной задачи настроим сервер таким образом, чтобы при обращении по доменному имени внутри сети он отвечал по локальному адресу. Все комманды выполняются от имени суперпользователя (root).

Сначала установим необходимые пакеты:

1
apt-get -y install bind9 dnsutils

Теперь необходимо настроить файл конфигурации Bind9:

1
vim /etc/bind/named.conf.options

Приведём его к следующему виду:

1
2
3
4
5
6
7
8
acl mynetwork {192.168.1.0/24; 127.0.0.1; };
options {
  directory "/var/cache/bind";
  auth-nxdomain no;
  forwarders {192.168.1.1; 8.8.8.8; };
  listen-on-v6 { none; };
  allow-query { mynetwork; };
}; 

Расшифровка:
acl - создает ACL (Access control list) - так называемый список контроля доступа, с помощью которого мы ограничиваем диапазон адресов которые могут запрашивать зоны с нашего сервера. В данном примере это разрешено подсети 192.168.1.0/24. и локальному хосту.
allow-query { mynetwork; }; - список тех, кто имеет право запрашивать информацию. Можно ограничить с помошью acl либо установить allow-query { any; }; - что будет означать, что запросы разрешенмы всем.
forwarders {192.168.1.1; 8.8.8.8; }; - это DNS провайдера, или любые другие, у которых можно получить информацию о доменах неизвестных вашему серверу.
listen-on-v6 { none; } - запрещает работать с IPv6.

Настройка зон

Для начала покорректируем файл локальной конфигурации Bind9:

1
vim /etc/bind/named.conf.local

Этот файл содержит локальную конфигурацию DNS-сервера, в нем объявляются зоны, связанные с доменами этого сервера. Добавляем в него файлы наших зон (зону прямого просмотра и зону обратного просмотра):

1
2
3
4
5
6
7
8
9
10
zone "nixway.loc" {
    type master;
    file "/etc/bind/zones/nixway/flz.nixway.zone";
};
 
zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/nixway/rlz.nixway.zone";
};
  

Зона прямого просмотра

Зона в DNS — это часть пространства имён DNS, управляемая конкретным сервером или группой серверов DNS. Зона прямого просмотра - это тип зоны в которой доменное имя преобразуется в IP-адрес. Создадим файл для зоны прямого просмотра:

1
vim /etc/bind/zones/nixway/flz.nixway.zone

Со следующим содержимым:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;
; Зона прямого просмотра
;
$TTL 30
$ORIGIN nixway.loc.
 
@               IN      SOA     ns1.nixway.loc. admin.nixway.loc. (
        2015050101      ; Serial
                1d      ; Refresh
                1h      ; Retry
                1w      ; Expire
                2h      ; Negative Cache TTL
)

@               IN      NS      ns1.nixway.loc.
@               IN      NS      ns.provider.org.
@               IN      A       192.168.1.10

ns1             IN      A       192.168.1.10
nixway.loc      IN      A       192.168.1.10

www             IN      CNAME   nixway.loc.
  

В конце этого файла нужно обязательно оставить пустую строку!

Расшифровка:
$ORIGIN - оригинальное имя зоны
ns1.nixway.loc. - Наш DNS-сервер (точка в конце обязательна).
admin.nixway.loc. - email администратора сервера, где вместо символа @ используется точка.
Serial - серийный номер зоны в формате ГГГГММДД и номер текущего изменения за этот день. (Важно, при каждом изменении, нужно редактировать этот номер увеличивая его в большую сторону) Пример: 2015020301.
Refresh - период времени с которым вторичный сервер днс обращается к основному.
Retry - период с которым вторичный сервер будет повторять попытки при неудачном обновлении.
Expire - максимальное время использования данных на вторичном сервере, после которого делается обязательное обновление.
Negative Cache TTL - время актуальности данных в кэше запросов.

Далее идут записи имён хостов с ip-адресами или псевдонимами.
ns.provider.org. - вместо этой записи можете указать NS вашего регистратора либо Free DNS сервиса.

Зона обратного просмотра

Зона обратного просмотра, выполняет преобразование IP-адреса в доменное имя. Создадим файл для зоны обратного просмотра:

1
vim /etc/bind/zones/nixway/rlz.nixway.zone

И запишем туда следующее:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
;
; Зона обратного просмотря для nixway.loc
;
$TTL 30
@               IN      SOA     ns1.nixway.loc. root.nixway.loc. (
         201505013      ; Serial
                1d      ; Refresh
                1h      ; Retry
                1w      ; Expire
                2h      ; Negative Cache TTL
)
 
@               IN      NS      nixway.loc.

10              IN      PTR     ns1.nixway.loc.
  

В этом файле должны быть только записи типа PTR. В конце этого файла так же должна быть пустая строка. Число 10 - это последний октет в IP адресе нашего сервера.

Например, можно добавить в файл зоны прямого просмотра строку:

1
router          IN      A       192.168.1.1

А в файл зоны обратного просмотра строку:

1
1               IN      PTR     router.nixway.loc.

Тогда по адресу router.nixway.loc в браузере будет открываться web-интерфейс роутера (эквивалентно 192.168.1.1), но только внутри локальной сети.

Проверка

Проверим файлы зон на наличие ошибок командой:

1
named-checkconf -z

Если ошибок нет, обновим информацию о зонах:

1
rndc reload

Теперь необходимо отредактировать resolv.conf:

1
vim /etc/resolv.conf

Приводим его в следующий вид:

1
2
3
4
domain nixway.loc
search nixway.loc
nameserver 192.168.1.10
nameserver 192.168.1.1

Проверку можно сделать двумя командами:

1
2
nslookup nixway.loc
nslookup 192.168.1.10

Которые должны выдать cледующий результат:

1
2
Имя:   nixway.loc
Address: 192.168.1.10

Последние штрихи

Если DHCP у вас раздает роутер, не забудьте установить выдаваемые по умолчанию DNS сервера 192.168.1.10 и 192.168.1.1 Проверьте корректность работы, введя в консоли Windows-машины

1
tracert nixway.loc

Если маршрут пошел сразу на адрес 192.168.1.10, значит все работает корректно. Если нет, пропробуйте очистить кэш DNS и посторить еще раз:

1
ipconfig /flushdns

Не забудьте пробросить необходимые порты на роутере, если это необходимо конечно.

Обсуждение статьи на форуме.

Комментарии