|
||
---|---|---|
.. | ||
multi_zones | ||
dav.lan.rzone | ||
dav.lan.zone | ||
named.conf | ||
named.conf.dav.lan | ||
named.conf.options | ||
readme.md |
readme.md
Настройка сервера разрешения имён BIND
1. Установка
Debian, Ubuntu
sudo apt install bind9 bind9-doc dnsutils python-ply-doc
при этом, можно ограничится установкой основного пакета bind
, однако установщик предлагает и дополнительные пакеты
Cent OS Stream
sudo dnf install bind bind-utils
В результате установки в системе появится служба named.sevice
2. Запуск службы
После установки необходимо перечитать список демонов системы
sudo systemctl daemon-reload
и выполнить запуск службы named
sudo systemctl enable --now named.service
3. Основной конфигурационный файл BIND
Конфигурационный файлы расположены:
Debian, Ubuntu - /etc/bind
Cent OS - /etc
Основным файлом настройки является - named.conf
Для проверки корректности конфигурации служит утилита - named-checkconf
Кроме, непосредственно, самой настройки сервера, файл named.conf
может включать ссылки на другие конфигурационные файлы, которые указываются в директиве include
, например
include "/etc/bind/named.conf.options";
Таким образом, файл named.conf
может содержать исключительно ссылки на другие конфигурационные файлы
da2001@ns:/etc/bind $ cat /etc/bind/named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
В конфигурационных файлах bind можно использовать комментарии различных стилей:
стиль C: /* */
стиль C++: // до конца строки
стиль Unix: # до конца строки
4. Кэширующий режим работы
По умолчанию конфигурация настраивается на работу в режиме кэширующего сервера. В этом режиме bind
только сохраняет в своём кэше ответы от вышестоящих DNS серверов и транслирует их клиентам. За счёт этого, при повторном запросе, ответ клиенту выдаётся из записи в кэше, соответственно и ответ клиент получает быстрее, т.к. нет обращения к внешним серврерам имён. Всё, что для этого требуется - это добавить IP адреса DNS вышестоящих серверов в секции forwarders
Пример настройки - /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
// интерфейсы, на которых принимаются DNS запросы
listen-on port 53 {
127.0.0.1;
192.168.13.2; // IP адрес интерфейса сервера
};
listen-on-v6 port 53 {
any;
};
// кто может обращаться за DNS запросами к этому серверу. { any; } значит любой
allow-query {
any;
};
// вышестоящие DNS-сервера, на которые будет переадресован запрос при отсутствии ответа
forwarders {
// NS сервера Яндекса
77.88.8.8;
77.88.8.1;
};
dnssec-validation auto;
};
После внесения изменений в конфигурацию, необходимо выполнить проверку синтаксиса с помощью утилиты named-checkconf
. Если будут обнаружены ошибки, утилита укажет на строки с ошибками и предложит варианты исправления.
5. Firewall
Если на сервере активирован межсетевой экран, необходимо разрешить работу DNS:
Cent OS (firewalld)
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
Проверить разрешения
sudo firewall-cmd --list-services
или
sudo firewall-cmd --list-all
Ubuntu (ufw)
sudo ufw allow dns
Проверить разрешения
sudo ufw status verbose
Перезапуск службы для применения внесенных изменений в конфигурацию
sudo systemctl restart named.service
6. Проверка работы BIND
Для проверки работы сервера в режиме кэширования можно запросить разрешение имени с помощью утилиты nslookup
. Эта утилита входит в состав пакета dnsutils
.
С клиента в одной локальной сети с сервером BIND выполним запрос разрешения имени ubuntu.com
nslookup ubuntu.com ns
ns
- имя сервера BIND в локальной сети
Если всё настроено верно, в ответ получим
[da2001@fedora ~]$ nslookup ubuntu.com ns
Server: ns
Address: 192.168.13.2#53
Non-authoritative answer:
Name: ubuntu.com
Address: 185.125.190.20
Name: ubuntu.com
Address: 185.125.190.21
Name: ubuntu.com
Address: 185.125.190.29
Name: ubuntu.com
Address: 2620:2d:4000:1::27
Name: ubuntu.com
Address: 2620:2d:4000:1::26
Name: ubuntu.com
Address: 2620:2d:4000:1::28
7. Разрешение имён в локальной сети.
Для разреешения имён в локальной сети, необходимо определить зоны прямого и обратного просмотра:
- зона прямого просмотра выпоняет разрешение доменных имён в IP адреса
- зона обратного просмотра выполняет разрешения IP адресов в имена
Зона прямого просмотра
Необходимо создать файл описания зоны и указать его в основном конфигурационном файле named.conf
в Ubuntu это можно сделать следующими командами:
sudo touch /etc/bind/named.conf.dav.lan
sudo bash -c "echo 'include \"/etc/bind/named.conf.dav.lan\";' >> /etc/bind/named.conf"
в Cent OS в команде необходимо изменить пути размещения файлов на /etc/named.conf
Содержимое файла описания зоны прямого просмотра
da2001@ns:~ $ cat /etc/bind/named.conf.dav.lan
zone "dav.lan" {
type master;
file "/etc/bind/zone.dav.lan";
};
теперь необходимо выполнить непосредственное описание зоны
da2001@ns:~ $ cat /etc/bind/zone.dav.lan
$TTL 604800
@ IN SOA dav.lan. root.dav.lan. (
2022070101 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS ns
@ IN AAAA ::1
ns IN A 192.168.13.2
zidoo IN A 192.168.13.3
voip IN A 192.168.13.4
где,
$TTL 604800
- время жизни записи в кэше
dav.lan.
- название зоны, root.dav.lan.
- эл.адрес администратора, но вместо @ указана точка. Точки в конце названия зоны и адреса администраторы ОБЯЗАТЕЛЬНЫ
Serial
- указан номер версии конфигурации, может быть задан произвольно, обычно в нём указывают дату изменения и порядковый номер изменения
@ IN NS ns
- указание на DNS сервер
@ IN A 192.168.13.2
- сопоставление имени и IPv4 адреса DNS сервера
@ IN AAAA ::1
- сопоставление имени и IPv6 локального адреса DNS сервера
Далее можно добавлять записи сопоставления адресов других хостов в сети.
После внесения всех изменений в конфигурацию, стоит проверить корректность описания файла зоны утилитой named-checkzone
, утилите необходимо передать в качестве аргументов имя зоны и файл описывающий зону
da2001@ns:~ $ named-checkzone dav.lan /etc/bind/zone.dav.lan
zone dav.lan/IN: loaded serial 2022070101
OK
Зона обратного просмотра
Для указания файла описания заны обратного просмотра, добавим его в ранее созданный файл named.conf.dav.lan
da2001@ns:~ $ cat /etc/bind/named.conf.dav.lan
zone "dav.lan" {
type master;
file "/etc/bind/zone.dav.lan";
};
zone "13.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zone.192.168.13";
};
и опишем зону обратного просмотра
$TTL 604800
@ IN SOA dav.lan. root.dav.lan. (
2022070101 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS ns.
2 IN PTR ns.dav.lan.
3 IN PTR zidoo.dav.lan.
4 IN PTR voip.dav.lan.
от описания прямой зоны, обратная зона отличается типом записей, в ней указываем записи PTR.
Формат PTR записи
3 IN PTR zidoo.dav.lan.
3
- последний октет IPv4 адреса
zidoo.dav.lan.
- FQDN, точка в конце обязательна
После описания обратной зоны, проверим корректность внесения данных
da2001@ns:/etc/bind $ sudo named-checkzone 13.168.192.in-addr.arpa dav.lan.rzone
zone 13.168.192.in-addr.arpa/IN: loaded serial 2022070101
OK
8. Проверка разрешения имён в локальной сети.
Проверка зоны прямого просмотра
С клиента в локальной сети запросим разрешение имени в IPv4 адрес существующего хоста в локальной сети, при этом укажем, что разрешать имя в адрес необходимо нашим DNS сервером
[da2001@fedora ~]$ nslookup voip ns
Server: ns
Address: 192.168.13.2#53
Name: voip.dav.lan
Address: 192.168.13.4
Проверка зоны обратного просмотра
С клиента в локальной сети запросим разрешение IPv4 адреса существующего хоста в локальной сети в его FQDN, также, с указанием коркретного DNS сервера
[da2001@fedora ~]$ nslookup 192.168.13.5 ns
5.13.168.192.in-addr.arpa name = qnap.dav.lan.