Оглавление |
---|
...
Пакет bind9
входит в стандартный дистрибутив ОСОН Смоленск и доступен через репозиторий ОСОН Орёл.
Установку службы DNS BIND9 можно выполнить из графического менеджера пакетов, или из командной строки:
Информация |
---|
apt install bind9 |
При установке пакета bind9
будет автоматически уставновлен пакет инструментов командной строки bind9utils
. Из этих инструментов следует отметить:
- named-checkconf — инструмент проверки синтаксиса файлов конфигурации
- named-checkzone — инструмент проверки файлов зон DNS
- rndc — инструмент управления службой DNS
В дополнение к пакетам bind9
и bind9utils
, рекомендуем сразу установить пакет инструментов командной строки dnsutils
, предназначенных для работы с DNS:
Информация |
---|
apt install dnsutils |
В составе пакета dnsutils
будут установлены следующие инструменты:
- dig - инструмент для опроса DNS-серверов и проверки их реакции
- nslookup - инструмент для проверки преобразования имен в IP-адреса
(далее в тексте используется термин "разрешение имён") - nsupdate - инструмент для динамического обновления записей DNS
Настройка службы
Предупреждение |
---|
После настройки службы DNS не забудьте перенастроить службу DHCP, |
Вариант простейшей настройки "Кеширующий сервер DNS"
Если у вас уже есть настроенный и доступный DNS-сервер (собственный, или сервер провайдера), создание в локальной сети кеширующего DNS-сервера позволит без особых затрат ускорить работу с Интернет за счет ускорения разрешения имен по запросам различных сетевых служб и/или пользовательскими программами.
Для примера предположим, что у нас есть:
- сервер DNS с адресом
192.168.32.211
Для создания кеширующего dns-сервера
- раскомментируем в файле конфигурации
/etc/bind/named.conf.options
строки
Информация |
---|
// forwarders {
// 0.0.0.0;
// };
|
...
Информация | ||
---|---|---|
| ||
|
Информация | ||
---|---|---|
| ||
|
Установка пакета
Пакет bind9
входит в стандартные дистрибутивы ОС Astra Linux. Установку службы DNS bind9 можно выполнить из графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:
Command |
---|
sudo apt install bind9 |
При установке пакета bind9
будет автоматически установлен пакет инструментов командной строки bind9utils
. Из этих инструментов следует отметить:
- named-checkconf — инструмент проверки синтаксиса файлов конфигурации;
- named-checkzone — инструмент проверки файлов зон DNS;
- rndc — инструмент управления службой DNS.
В дополнение к пакетам bind9
и bind9utils
, рекомендуем сразу установить пакет инструментов командной строки dnsutils
, предназначенных для работы с DNS:
Command |
---|
sudo apt install dnsutils |
В составе пакета dnsutils
будут установлены следующие инструменты командной строки:
- dig - инструмент для опроса DNS-серверов и проверки их реакции;
- nslookup - инструмент для проверки преобразования имен в IP-адреса (далее в тексте используется термин "разрешение имён");
- nsupdate - инструмент для динамического обновления записей DNS.
Предупреждение |
---|
Многие устаревшие материалы в сети Интернет рекомендуют для работы bind создать учетную запись и группу named. Этого делать не следует, так как при установке пакета будут автоматически созданы учетная запись пользователя и группа, причем не группа named, как написано в устаревших материалах, а учетная запись bind и группа bind. Соответственно, сервис будет работать от имени bind:bind, а не от имени named:named, о чем следует помнить при работе с устаревшими примерами из сети Интернет. |
Настройка службы
Предупреждение |
---|
После настройки службы DNS необходимо перенастроить службу DHCP (DHCP: служба isc-dhcp-server или DHCP: служба kea), чтобы клиентам автоматически выдавались правильные адреса сервера (серверов) DNS. |
При установке BIND9 в каталоге /etc/bind автоматически создаются следующие конфигурационные файлы:
/etc/bind/named.conf | Основной файл конфигурации. Этот файл изменять не следует, так как он содержит в себе только ссылки на остальные конфигурационные файлы (см. ниже). |
/etc/bind/named.conf.options | Файл для глобальных настроек службы |
/etc/bind/named.conf.local | Файл для настроек зоны DNS |
/etc/bind/named.conf.default-zones | Файл конфигурации зон "по умолчанию". В частности, этом файле содержатся ссылки на автоматически созданные файлы конфигурации зоны localhost /etc/bind/db.local и /etc/bind/127.db |
Подробности о конфигурационных параметрах см. в руководстве man named.conf (5).
Настройка BIND9 для работы с Samba AD
Параметры настройки BIND9 и BIND9_DLZ для использования в качестве DNS-сервера домена см. BIND9 как DNS-сервер для Samba AD
Вариант простейшей настройки "Кеширующий сервер DNS"
Если в сети уже есть настроенный и доступный DNS-сервер (собственный или сервер провайдера), то создание в локальной сети дополнительного кеширующего DNS-сервера позволит ускорить работу с Интернет за счет ускорения разрешения имен по запросам различных сетевых служб и/или пользовательскими программами.
Установленная по умолчанию служба bind9 сразу настроена на выполнение роли кеширующего сервера, однако при этом запросы будут направляться к внешним серверам, входящим в т.н. список корневых DNS-серверов, что может быть не всегда оптимальным вариантом.
Для примера предположим, что в сети уже есть настроенный сервер DNS с IP-адресом 192.168.32.1, а новый сервер DNS установлен на сервере с IP-адресом 192.168.32.100. Для перенаправления запросов на ранее настроенный сервер (и, для примера, на серверы Яндекс 77.88.8.8 и 77.88.8.1) следует:
Внести в файл конфигурации
...
Информация |
---|
forwarders {
8.8.8.8; 8.8.4.4;
}; dnssec-validation False; |
Можно , но не обязательно, ещё добавить список интерфейсов компьютера, через которые которые служба DNS должна принимать запросы:
Информация |
---|
listen-on { 127.0.0.1; |
- сохраняем файл конфигурации
- проверяем правильность конфигурации командой (если команда не выдаёт никаких сообщений - значит ошибок нет)
Информация |
---|
named-checkconf |
- и перезапускаем сервис
Информация |
---|
service bind9 restart |
Проверить работоспособность и эффективность кеширующего DNS-сервера можно с помощью инструмента dig
:
Информация |
---|
|
Вариант простой настройки "Локальный сервер DNS"
Это вариант настройки собственного полноценного DNS-сервера, обеслуживающего собственную локальную сеть (собственный домен).
Создание DNS-сервера в локальной сети позволяет организовать единое пространство имён для всех сетевых служб и пользователей.
В отличие от кеширующего сервера из предыдущего примера, этот сервер самостоятельно обрабатывает запросы, относящиеся к его зоне ответственности.
Для примера, предположим, что у нас есть
- домен l
ocalnet.example.ru
- сервер DNS в этом домене с именем
dns.localnet.example.ru
и адресом192.168.32.211
- компьютер host в этом домене с именем
host.localnet.example.ru
и адресом192.168.32.96
Настройка конфигурации bind:
...
/etc/bind/named.conf.options
...
внутри секции options строки суказанием адресов серверов, которым нужно передавать запросы:
Блок кода
...
forwarders { 192.168.32.1;
...
77.
...
88.8.8;
...
...
77.88.8.
...
1; };
Опционально добавить список интерфейсов компьютера, через которые сервис DNS должен принимать запросы, а также запретить работу по IPv6:
Блок кода listen-on { 127.0.0.1;
...
192.168.32.
...
100; };
...
- внесём информацию о домене в файл конфигурации
/etc/bind/named.conf.loca
l. Исходно в этом файле содержатся только комментарии. Добавляем следующие строки:
...
listen-on-v6 { none; };
Проверить правильность конфигурации командой:
Command sudo named-checkconf Если команда не выдает никаких сообщений - значит ошибок нет;
Перезапустить службу:
Command sudo systemctl restart bind9
Проверить работоспособность и эффективность кеширующего DNS-сервера можно с помощью инструмента dig
:
Отправить первый запрос:
Command Title dig @localhost www.astralinux.ru | grep msec ;; Query time: 15 msec
В ответе на запрос видно, что время ответа составило 15 msec;
Отправить второй запрос (например, через через 5 секунд):
Command Title dig @localhost www.astralinux.ru | grep msec ;; Query time: 0 msec
Время ответа на запрос при работающем кешировании должно существенно сократиться.
Вариант простой настройки "Локальный сервер DNS"
Это вариант настройки собственного полноценного DNS-сервера, обслуживающего собственную локальную сеть (собственный DNS-домен). Создание DNS-сервера в локальной сети необходимо для организации единого пространства имен для всех сетевых служб и пользователей. В отличие от кеширующего сервера из предыдущего примера, этот сервер самостоятельно обрабатывает запросы, относящиеся к его зоне ответственности.
Для примера используем следующую конфигурацию сети:
- домен l
ocalnet.example.ru;
- сервер DNS в этом домене с именем
dns.localnet.example.ru
и адресом192.168.32.211;
- компьютер host в этом домене с именем
host.localnet.example.ru
и адресом192.168.32.96.
Для настройки конфигурации bind:
- Файл конфигурации
/etc/bind/named.conf.options
использовать из предыдущего примера; Внести информацию о домене в файл конфигурации
/etc/bind/named.conf.loca
l. Исходно в этом файле содержатся только комментарии. Добавить следующие строки:Блок кода zone "localnet.example.ru" {
...
# имя прямой зоны type master; # тип master указывает, что запросы относительно этой зоны будут обрабатываться этим сервером, и перенаправляться не будут file "/etc/bind/zones/db.localnet.example.ru"; # путь к файлу данных прямой зоны
...
};
...
zone "32.168.192.in-addr.arpa" { # имя реверсивной зоны. Имя реверсивной зоны формируется из адреса сети, с обратным порядком чисел. type master; # тип master указывает, что запросы, относящиеся к этой зоне, будут обрабатываться этим сервером, и перенаправляться не будут
...
file "/etc/bind/zones/db.32.168.192"; # подсеть 192.168.32.0/24, путь к файлу данных };
...
Создать подкаталог /etc/bind/zones для хранения файлов данных, и
...
скопировать в созданный каталог образцы файлов данных:
...
Command sudo mkdir /etc/bind/zones
sudo cp /etc/bind/db.local /etc/bind/zones/db.localnet.example.ru
sudo cp /etc/bind/db.127 /etc/bind/zones/db.32
...
.168.192
sudo chown -R bind:bind /etc/bind/zonesВнести
...
изменения в файл прямой зоны /etc/bind/zones/db.localnet.example.
...
ru:
...
Блок кода $TTL 604800
...
@ IN SOA dns.localnet.example.ru. admin.localnet.example.ru. (
...
3 ; Serial
...
604800 ; Refresh
...
86400 ; Retry
...
2419200 ; Expire
...
604800 ) ; Negative Cache TTL
...
;
...
...
name servers - NS records - определяем имена DNS-серверов
...
IN NS dns.localnet.example.ru.
...
; name servers - A records - определяем адреса компьютеров, сначала сервер(ы) DNS
...
dns.localnet.example.ru. IN A 192.168.32.211
...
;
...
192.168.32.0/24 - A records - а потом все остальные компьютер(ы) сети
...
host.localnet.example.ru. IN A 192.168.32.96
...
Внести изменения в файл /etc/bind/zones/db.32.168.192 реверсивной зоны:
...
Блок кода $TTL
...
604800 @ IN SOA localnet.example.ru. admin.localnet.example.ru. (
...
3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL
...
;
...
; name servers IN NS dns.localnet.example.ru.
...
;
...
...
PTR Records 211
...
IN PTR dns.localnet.example.ru. ; 192.168.32.
...
211 96
...
IN PTR host.localnet.example.ru. ; 192.168.32.96
...
...
Проверить созданную конфигурацию с помощью соответствующих инструментов :
...
Command sudo named-checkconf
sudo named-checkzone
...
localnet.example.ru
...
/etc/bind/zones/db.localnet.example.ru
sudo named-checkzone
...
32.168.192.in-addr.arpa
...
/etc/bind/zones/db.32.168.192
...
Перезапустить службу:
...
Command sudo systemctl
...
restart
...
bind9
Проверить работу сервера можно выполнив на сервере команду:
...
Command |
---|
dig @localhost host.localnet.example.ru |
...
Добавление резервного сервера
Как и в примере ранее, предположим, что
...
используются:
- домен
localnet.example.ru
- сервер DNS в этом домене с именем
dns.localnet.example.ru
и адресом192.168.32.211
- компьютер host в этом домене с именем
host.localnet.example.ru
и адресом192.168.32.96
- и добавляется резервный сервер DNS
dns2.localnet.example.ru
и адресом192.168.32.212
Для добавления резервного сервера:
на основном сервере DNS
...
внести информацию о резервном сервере в файл
...
конфигурации
/etc/bind/named.conf.loca
l
...
и
...
перезапустить службу. Добавляемые строки
...
отмечены комментариями:
...
Блок кода zone "localnet.example.
...
ru" { type master; file "/etc/bind/zones/db.localnet.example.ru";
...
allow-transfer { 192.168.32.212; }; # добавлен адрес вторичного сервера };
...
zone "32.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/db.32.168.192"; allow-transfer { 192.168.32.212; }; # добавлен адрес вторичного
...
сервера };
На резервном сервере DNS файл конфигурации
/etc/bind/
...
named.conf.options
использовать из предыдущего примера с одним отличием - резервный сервер использует ("слушает") слушает адрес 192.168.32.212:Блок кода forwarders { 77.88.8.8; 77.88.8.1; }; listen-on { 127.0.0.1; 192.168.32.212
...
;
...
#
...
изменён адрес
...
интерфейса
...
};
...
Внести изменения в файл конфигурации
/etc
...
/bind/named.conf.loca
l:Блок кода zone "localnet.example.ru" { type slave; file "slaves/db.nyc3.example.ru"; masters {
...
forwarders {
8.8.8.8;
8.8.4.4;
};
listen-on {
127.0.0.1;
...
192.168.32.
...
211; }; #
...
адрес
...
первого
...
сервера };
...
- вносим изменения в файл конфигурации
/etc/bind/named.conf.loca
l.
...
zone "
...
32.168.192.in-addr.arpa" { type slave; file "slaves/db.
...
32.
...
168.
...
masters { 192.168.32.211; }; # адрес первого сервера
};
- проверяем корректность конфигурации и перезапускаем сервис
Информация |
---|
|
Добавляем служебные записи (SRV-записи).
Служебная запись (SRV-запись) — стандарт в DNS, определяющий имя хоста и номер порта серверов для определённых служб. Определяется в RFC 2782.
Могут использоваться в различных протоколах, например, в Kerberos.
SRV-записи располагаются в файлах зоны (в примере выше - это файл /etc/bind/zones/db.localnet.example.ru).
Формат записи:
Информация |
---|
_service._proto.name TTL class SRV priority weight port target |
Где:
- service - символьное имя сервиса;
- proto - транспортный протокол используемый сервисом, как правило _tcp или _udp;
- name - доменное имя, для которого эта запись действует;
- TTL - стандарт DNS, время жизни;
- class- стандарт DNS, поле класса (это всегда IN);
- priority - приоритет целевого хоста, более низкое значение означает более предпочтительный;
- weight - относительный вес для записей с одинаковым приоритетом;
- port - Порт TCP или UDP, на котором работает сервис;.
- target - канонические имя машины, предоставляющей сервис.
Примеры служебных записей
Kerberos
Информация |
---|
$ORIGIN localdomain.example.com. 2 ; Serial ; IN NS dns.localdomain.example.com. @ IN AAAA ::1 ntp.localdomain.example.com. IN A 10.0.2.253 ;kerberos _kerberos TXT "LOCALDOMAIN.EXAMPLE.COM" _kerberos._udp SRV 0 0 88 kdc SRV 0 0 88 kdc SRV 0 0 88 kdc ;ntp server |
...
192"; masters { 192.168.32.211; }; # адрес первого сервера };
...
Проверить корректность конфигурации и перезапустить службу:
Command sudo named-checkconf
sudo systemctl restart bind9
Добавление служебных записей (SRV-записи)
Служебная запись (SRV-запись) — стандарт DNS, определяющий имя хоста и номер порта серверов для определённых служб. Определяется в RFC 2782. Могут использоваться в различных протоколах, например, в Kerberos. SRV-записи располагаются в файлах зоны (в примере выше - это файл /etc/bind/zones/db.localnet.example.ru).
Формат записи:
Блок кода |
---|
_service._proto.name TTL class SRV priority weight port target |
Где:
- service - символьное имя сервиса;
- proto - транспортный протокол используемый сервисом, как правило _tcp или _udp;
- name - доменное имя, для которого эта запись действует;
- TTL - стандарт DNS, время жизни;
- class- стандарт DNS, поле класса (это всегда IN);
- priority - приоритет целевого хоста, более низкое значение означает более предпочтительный;
- weight - относительный вес для записей с одинаковым приоритетом;
- port - Порт TCP или UDP, на котором работает сервис;.
- target - канонические имя машины, предоставляющей сервис.
Примеры служебных записей (Kerberos и NTP)
Блок кода |
---|
$ORIGIN samdom.example.ru.
$TTL 1h
@ IN SOA dns.samdom.example.ru. root.samdom.example.ru. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS dns.samdom.example.ru.
@ IN AAAA ::1
dns.samdom.example.ru. IN A 10.0.2.254
dhcp.samdom.example.ru. IN A 10.0.2.254
kdc.samdom.example.ru. IN A 10.0.2.253
ntp.samdom.example.ru. IN A 10.0.2.253
;kerberos
_kerberos TXT "SAMDOM.EXAMPLE.RU"
kerberos CNAME kdc
_kerberos._udp SRV 0 0 88 kdc
SRV 0 0 88 kdc
SRV 0 0 88 kdc
_kerberos-master._udp SRV 0 0 88 kdc
_kerberos-adm._tcp SRV 0 0 749 kdc
_kpasswd._udp SRV 0 0 464 kdc
;ntp server
_ntp._udp IN SRV 0 100 123 ntp.samdom.example.ru. |
Запрет опроса IPv6-серверов
Для того, чтобы сервер не тратил ресурсы на попытки опроса недоступных корневых серверов, работающих по протоколу IPv6 (например, когда протокол IPv6 не поддерживается сетью), в файл локальных параметров сервера /etc/bind/named.conf.local можно добавить секцию:
Блок кода |
---|
server ::/0 {
bogus yes;
};
|
Включение аутентификации по ключам.
В работе
Настройка клиентов
...
Клиентским компьютерам после стандартной установки ОС настройка не требуется.