Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Оглавление

...

Пакет 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

Настройка службы

...


Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12



Информация
titleСм. также:


Установка пакета

Пакет 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, чтобы клиентам автоматически выдавались правильные адреса сервера (серверов) 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 с  адресом 192.168.32.211

Для создания кеширующего dns-сервера

  • раскомментируем в файле конфигурации /etc/bind/named.conf.options строки
Информация
//  forwarders {
//      0.0.0.0;
//  };

...

в сети уже есть настроенный сервер DNS с  IP-адресом 192.168.32.1, а новый сервер DNS установлен на сервере с IP-адресом 192.168.32.100. Для перенаправления запросов на ранее настроенный сервер (и, для примера, на серверы Яндекс 77.88.8.8 и 77.88.8.1) следует:

  1. Внести в файл конфигурации /etc/bind/named.conf.options внутри секции options строки суказанием адресов серверов, которым нужно передавать запросы:

    Блок кода
    forwarders {
    	192.168.32.1;
    	77.88.8.8;
    	77.88.8.1;
    };


  2. Опционально

...

Информация
forwarders {
	8.8.8.8;
	8.8.4.4;
};
dnssec-validation False;

...

  1. добавить список интерфейсов компьютера, через которые

...

  1. сервис DNS должен принимать запросы, а также запретить работу по IPv6:

    Блок кода

...

  1. listen-on {

...

  1. 
    	127.0.0.1;

...

  1. 
    	192.168.

...

  1. 32.100;
    };
    listen-on-v6 {
        none;
    };


  2. Проверить правильность конфигурации командой:

    Command
    sudo named-checkconf

    Если команда не выдает

...

  1. никаких сообщений - значит ошибок нет

...

  1. ;

  2. Перезапустить службу:

    Command

    sudo systemctl restart bind9

Информация
named-checkconf
  • и перезапускаем сервис

...


Проверить работоспособность и эффективность кеширующего DNS-сервера можно с помощью инструмента dig:

  1. Отправить первый запрос:

    Command

...

  1. Titledig @localhost www.astralinux.ru | grep

...

  1. msec

    ;; Query time: 15 msec

    В ответе на запрос видно, что время ответа составило 15 msec;

  2. Отправить второй запрос (например, через через 5 секунд):

    Command
    Titledig @localhost www.astralinux.ru

...

  1. |

...

  1. grep

...

  1. msec
      ;; Query time:

...

  1.  0 msec
    

    Время ответа на запрос при работающем кешировании должно существенно сократиться.

Вариант простой настройки "Локальный сервер DNS"

Это вариант настройки собственного полноценного DNS-сервера,

...

обслуживающего собственную локальную сеть (собственный DNS-домен).

...

Создание DNS-сервера в локальной сети

...

необходимо для организации единого пространства имен для всех сетевых служб и пользователей.

...

В отличие от кеширующего сервера из предыдущего примера, этот сервер самостоятельно обрабатывает запросы, относящиеся к его зоне ответственности.

Для примера

...

используем следующую конфигурацию сети:

  • домен localnet.example.ru;
  • сервер DNS

...

  • в этом домене с именем

...

  • dns.localnet.example.ru

...

Настройка конфигурации bind:

  • на сервере DNS файл конфигурации /etc/bind/named.conf.options используем из предыдущего примера:
Информация
forwarders {
	8.8.8.8;
	8.8.4.4;
};
listen-on {
	127.0.0.1;
	192.168.32.211;
};

...

  • и адресом 192.168.32.211;
  • компьютер host в этом домене с именем host.localnet.example.ru и адресом 192.168.32.96.

Для настройки конфигурации bind:

  1. Файл конфигурации /etc/bind/named.conf.options использовать из предыдущего примера;
  2. Внести информацию о домене в файл конфигурации /etc/bind/named.conf.local. Исходно в этом файле содержатся только комментарии.

...

  1. Добавить следующие строки:

...

  1. Блок кода
    zone "localnet.example.

...

  1. ru"    {                    # имя прямой зоны
        type master;                                    # тип master указывает, что запросы относительно этой зоны будут обрабатываться этим сервером, и перенаправляться не будут
        file "/etc/bind/zones/db.localnet.example.ru"; # путь к файлу данных прямой зоны

...

  1. 
    };

...

  1. 
    
    zone "32.168.192.in-addr.arpa" {                    # имя реверсивной зоны. Имя реверсивной зоны формируется из адреса сети, с обратным порядком чисел.
        type master;                                    # тип master указывает, что запросы, относящиеся к этой зоне, будут обрабатываться этим сервером, и перенаправляться не будут

...

  1. 
        file "/etc/bind/zones/db.32.168.192";           # подсеть 192.168.32.0/24, путь к файлу данных
    };

...


  1. Создать подкаталог /etc/bind/zones для хранения файлов данных, и

...

  1. скопировать в созданный каталог образцы файлов данных:

...

  1. Command

    sudo mkdir /etc/bind/zones
    sudo cp /etc/bind/db.local /etc/bind/zones/db.localnet.example.ru
    sudo cp /etc/bind/db.

...

  1. 127 /etc/bind/zones/db.32.168.192
    sudo chown -R bind:bind /etc/bind/zones

...



  1. Внести

...

  1. изменения в файл прямой зоны /etc/bind/zones/db.localnet.example.

...

  1. ru:

...

  1. Блок кода
    $TTL    604800

...

  1. 
    @       

...

  1. IN      SOA     dns.localnet.example.ru. admin.localnet.example.ru. (

...

  1. 
                                  3         ; Serial

...

  1. 
                             604800         ; Refresh

...

  1. 
                              86400         ; Retry

...

  1. 
                            2419200         ; Expire

...

  1. 
                             604800 )       ; Negative Cache TTL

...

  1. 
    ; name servers - NS records - определяем имена DNS-серверов

...

  1. 
            IN      NS      dns.localnet.example.ru.

...

  1. 
    ; name servers - A records - определяем адреса компьютеров, сначала сервер(ы) DNS

...

  1. 
    dns.localnet.example.ru.           IN      A      192.168.32.211

...

  1. 
    ; 

...

  1. 192.168.32.0/24 - A records - а потом все остальные компьютер(ы) сети

...

  1. 
    host.localnet.example.ru.          IN      A      192.168.32.96

...


  1. Внести изменения в файл /etc/bind/zones/db.32.168.192 реверсивной зоны:

...

  1. Блок кода
    $TTL

...

  1.   

...

  1.  

...

  1.  

...

  1. 604800
    @       IN      SOA     localnet.example.ru. admin.localnet.example.ru. (

...

  1. 
                                  3         ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL

...

  1.  ;
    

...

  1. 
    ; name servers
          IN      NS      dns.localnet.example.ru.
    

...

  1. ;

...

  1.  

...

  1. PTR Records
    211

...

  1.  IN      PTR     dns.localnet.example.ru.    ; 192.168.32.

...

  1. 211
    96

...

  1.   IN      PTR     host.localnet.example.ru.   ; 192.168.32.96

...

...


  1. Проверить созданную конфигурацию с помощью соответствующих инструментов :

...

  1. Command

    sudo named-checkconf
    sudo named-checkzone

...

  1. localnet.example.ru

...

  1. /etc/bind/zones/db.localnet.example.ru
    sudo named-checkzone

...

  1. 32.168.192.in-addr.arpa

...

  1. /etc/bind/zones/db.32.168.192

...


  1. Перезапустить службу:

...

  1. Command

    sudo systemctl

...

  1. restart

...

  1. 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

Для добавления резервного сервера:

  1. на основном сервере DNS

...

  1. внести информацию о резервном сервере в файл

...

  1. конфигурации /etc/bind/named.conf.local

...

  1. и

...

  1. перезапустить службу.  Добавляемые строки

...

  1. отмечены комментариями:

...

  1. Блок кода
    zone "localnet.example.

...

  1. ru"    {                    
        type master;                                    
        file "/etc/bind/zones/db.localnet.example.ru";  
        allow-transfer { 192.168.32.212; };             # добавлен адрес вторичного сервера
    };
    
    zone "32.168.192.in-addr.arpa" {          

...

  1.     

...

  1.  

...

  1.   

...

  1.    
     

...

  1.   

...

  1.  type master;             

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.  

...

  1.                  
       

...

  1.  file "/etc/bind/zones/db.32.168.192";  

...

  1.  

...

  1.         
        allow-transfer { 192.168.32.212; };             # добавлен адрес 

...

  1. вторичного сервера
    };


  2. На резервном сервере 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;
    	

...

    file "/etc/bind/zones/db.32.168.192";           

...

  1. 192.168.32.212; 

...

  1. # изменён адрес интерфейса
    };


  2. Внести изменения в файл конфигурации /etc/bind/named.conf.local:

    Блок кода
    zone "localnet.example.ru" {
        type 

...

  1. slave;
     

...

  1.  

...

  1.  

...

};
  • на резервном сервере DNS файл конфигурации /etc/bind/named.conf.options используем из предыдущего примера, но с одним отличием - резервный сервер слушает адрес 192.168.32.212:
Информация
forwarders {
	8.8.8.8;
	8.8.4.4;
};
listen-on {
	127.0.0.1;
	192.168.32.212; # изменён адрес интерфейса
};
  • вносим изменения в файл конфигурации /etc/bind/named.conf.local.
Информация
zone "localnet.example.ru" {
    type slave;
    file "slaves/db.nyc3.example.com";
    masters { 192.168.32.211; };  # адрес первого сервера
};

zone "32.168.192.in-addr.arpa" {
    type slave;
    file "slaves/db.32.168.192";
    masters { 192.168.32.211; };  # адрес первого сервера
};
  • проверяем корректность конфигурации и перезапускаем сервис
Информация
named-checkconf
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 localdomain.example.com.
$TTL 1h
@ IN SOA dns.localdomain.example.com. root.localdomain.example.com. (

	2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
	IN NS dns.localdomain.example.com.
@ IN AAAA ::1
dns.localdomain.example.com. IN A 10.0.2.254
dhcp.localdomain.example.com. IN A 10.0.2.254
kdc.localdomain.example.com. IN A 10.0.2.253
ntp.localdomain.example.com. IN A 10.0.2.253
;kerberos
_kerberos TXT "LOCALDOMAIN.EXAMPLE.COM"
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.localhost.example.com.

...

  1.  

...

  1. file "slaves/db.nyc3.example.ru";
        masters { 192.168.32.211; };  # адрес первого сервера
    };
    
    zone "32.168.192.in-addr.arpa" {
        type slave;
        file "slaves/db.32.168.192";
    
        masters { 192.168.32.211; };  # адрес первого сервера
    
    };


  2. Проверить корректность конфигурации и перезапустить службу:

    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;
};


Включение аутентификации по ключам.

В работе

Настройка клиентов

...

Клиентским компьютерам после стандартной установки ОС настройка не требуется.