Page tree

Versions Compared

Key

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

Table of Contents


Info
title
См. также: Info
Данная статья применима к:
  • ОС ОН Орёл 2.12;
  • ОС СН Смоленск 1.6;
  • ОС СН Ленинград 8.1.

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

Пакет bind9 входит в стандартный дистрибутив ОС ОН Орёл 2.12 и доступен через репозиторий ОС ОН Орёл.
Установку службы DNS BIND9 можно выполнить из графического менеджера пакетов, или из командной строки:

Command

sudo apt install bind9

При установке пакета bind9 будет автоматически уставновлен пакет инструментов командной строки bind9utils. Из этих инструментов следует отметить:

  • named-checkconf  — инструмент проверки синтаксиса файлов конфигурации;
  • named-checkzone — инструмент проверки файлов зон DNS;
  • rndc                             — инструмент управления службой DNS.
В дополнение к пакетам bind9 и bind9utils, рекомендуем сразу установить пакет инструментов командной строки dnsutils, предназначенных для работы с DNS
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2

  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

  • Astra Linux Common Edition 2.12



Info
titleСм. также:


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

Пакет bind9 входит в стандартные дистрибутивы ОС Astra Linux. Установку службы DNS bind9 можно выполнить из графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:

Command

sudo apt install

dnsutils

bind9

В составе пакета dnsutils будут установлены следующие инструменты:

  • dig              - инструмент для опроса DNS-серверов и проверки их реакции
  • nslookup - инструмент для проверки преобразования имен в IP-адреса

    При установке пакета bind9 будет автоматически установлен пакет инструментов командной строки bind9utils. Из этих инструментов следует отметить:

    • named-checkconf  — инструмент проверки синтаксиса файлов конфигурации;
    • named-checkzone — инструмент проверки файлов зон DNS;
    • rndc                            (далее в тексте используется термин "разрешение имён")
    • nsupdate - инструмент для динамического обновления записей DNS
    WarningМногие устаревшие материалы в сети Интернет рекомендуют для работы bind создать учётную запись и группу named.
    Этого делать не следует, так как при установке пакета будут автоматически созданы учётная запись пользователя и группа, причем не named, как написано в устаревших метериалах, а учетная запись bind и группа bind. 
    •  — инструмент управления службой DNS.

    В дополнение к пакетам bind9 и bind9utils, рекомендуем сразу установить пакет инструментов командной строки dnsutils, предназначенных для работы с DNS:

    Command
    sudo apt install dnsutils

    В составе пакета dnsutils будут установлены следующие инструменты командной строки:

    • dig - инструмент для опроса DNS-серверов и проверки их реакции;
    • nslookup - инструмент для проверки преобразования имен в IP-адреса (далее в тексте используется термин "разрешение имён");
    • nsupdate - инструмент для динамического обновления записей DNS.

    Warning

    Многие устаревшие материалы в сети Интернет рекомендуют для работы bind создать учетную запись и группу named. Этого делать не следует, так как при установке пакета будут автоматически созданы учётная запись пользователя и группа, причем не named, как написано в устаревших материалах, а учетная запись bind и группа bind. Соответственно, сервис будет работать от имени bind:bind, а не от имени named:named, о чем следует помнить при работе с устаревшими примерами из сети Интернет.

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

    Warning

    После настройки службы DNS не забудьте перенастроить службу DHCP,
    чтобы клиентам автоматически выдавались правильные адреса сервера (серверов) DNS.

    Конфигурационные файлы BIND9находятся При установке BIND9 в каталоге /etc/bind .
    При установке BIND9 автоматически создаются следующие конфигурационные файлы:



    /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).

    Получение списка корневых DNS-серверов

    Info
    Данный пункт необязателен, и применим только для открытых сетей.

    Загружаем свежий список корневых DNS-серверов в файл /etc/bind/named.root:

    Command

    sudo wget -q -O /etc/bind/named.root http://www.internic.net/zones/named.root

    Предоставляем доступ к файлу учётной записи bind:

    Command

    sudo chown root:bind /etc/bind/named.root
    sudo chmod 640 /etc/bind/named.root

    Дополнительно, можно установить задачу cron для автоматического обновления файла.

    В файл конфигурации добавляем ссылку на файл:

    Code Block
    // Имя из одной точки (.) представляет собой корень всего пространства имён DNS namespace,
    // таким образомм, это определение зоны указывает, где начинать поиск любого имени в Интернет
    zone "." IN {
        type hint;
        file "named.root";
    };

    Настройка BIND9 для работы с Samba AD

    Параметры настройки BIND9 и BIND9_DLZ для использования в качестве DNS-сервера домена см. BIND9 как DNS-сервер для Samba AD

    Вариант простейшей настройки "Кеширующий сервер DNS"

    Если у вас уже есть настроенный и доступный DNS-сервер (собственный, или сервер провайдера), создание в локальной сети кеширующего DNS-сервера позволит без особых затрат ускорить работу с Интернет за счет ускорения разрешения имен по запросам различных сетевых служб и/или пользовательскими программами.

    Для примера предположим, что у нас есть:

    • сервер DNS с  адресом 192.168.32.211

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

    • раскомментируем в файле конфигурации /etc/bind/named.conf.options строки
    Code Block
    //  forwarders {
    //      0.0.0.0;
    //  };
  • указываем адреса используемых DNS-серверов, которым нужно передавать запросы (для примера взяты адреса DNS-серверов Google)
  • и, в этом примере, отключаем авторизацию dnssec (использование dnssec будет рассмотрено позже)
    Code Block
    forwarders {
    	8.8.8.8;
    	8.8.4.4;
    };
    dnssec-validation False;

    Можно , но не обязательно, ещё добавить список интерфейсов компьютера, через которые сервис DNS должен принимать запросы:

    Code Block
    listen-on {
    	127.0.0.1;
    	192.168.1.1;
    };
    • сохраняем файл конфигурации
    • проверяем правильность конфигурации командой (если команда не выдаёт никаких сообщений - значит ошибок нет)
    Command
    sudo named-checkconf
    • и перезапускаем сервис
    Command

    sudo systemctl restart bind9

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

    Посылаем первый запрос:

    Command
    Titledig @localhost www.astralinux.ru | grep msec

    ;; Query time: 15 msec

    В ответе на запрос видно, что время ответа составило 15 msec. Посылаем второй запрос например через через 5 секунд:

    Command
    Titledig @localhost www.astralinux.ru | grep msec
      ;; Query time: 0 msec
    

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

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

    Это вариант настройки собственного полноценного DNS-сервера, обеслуживающего собственную локальную сеть (собственный DNS-домен). 
    Создание DNS-сервера в локальной сети позволяет организовать единое пространство имён для всех сетевых служб и пользователей.
    В отличие от кеширующего сервера из предыдущего примера, этот сервер самостоятельно обрабатывает запросы, относящиеся к его зоне ответственности.

    Для примера, предположим, что у нас есть

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

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

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

    Настройка 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) следует:

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

      Code Block
      forwarders {
      	192.168.32.1;
      	77.88.8.8;
      	77.88.8.1;
      };


    2. Опционально добавить список интерфейсов компьютера, через которые сервис DNS должен принимать запросы, а также запретить работу по IPv6:

      Code Block
      listen-on {
      	127.0.0.1;
      	192.168.32.100;
      };
      listen-on-v6 {
          none;
      };


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

      Command
      sudo named-checkconf

      Если команда не выдает никаких сообщений - значит ошибок нет;

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

      Command

      sudo systemctl restart bind9


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

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

      Command
      Titledig @localhost www.astralinux.ru | grep msec

      ;; Query time: 15 msec

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

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

      Command
      Titledig @localhost www.astralinux.ru | grep msec
        ;; Query time: 0 msec
      

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

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

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

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

    • домен localnet.example.ru;
    • сервер DNS в этом домене с именем dns.localnet.example.ru и адресом 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. Добавить следующие строки:

      Code Block
      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, путь к файлу данных
      };
    создаём каталог

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

    копируем
    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.127 /etc/bind/zones/db.32.168.192
      sudo chown -R bind:bind /etc/bind/zones

    вносим

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

      Code Block
      $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
    вносим

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

      Code Block
      $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
    проверяем

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

      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

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

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

      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

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

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

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

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

    ,
    1. и

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

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

      Code Block
      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; };             # добавлен адрес вторичного сервера
      };
    на

    1. На резервном сервере

    DNS файл конфигурации 
    1. DNS файл конфигурации /etc/bind/named.conf.options

     используем
    1. использовать из предыдущего примера

    , но
    1. с одним отличием - резервный сервер использует ("слушает") слушает адрес 192.168.32.212:

      Code Block
      forwarders {
      	
    8
    1. 77.
    8
    1. 88.8.8;
      	
    8
    1. 77.88.8.
    4.4
    1. 1;
      };
      
      listen-on {
      	127.0.0.1;
      	192.168.32.212; # изменён адрес интерфейса
      };
    вносим

    1. Внести изменения в файл

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

    .
    1. :

      Code Block
      zone "localnet.example.ru" {
          type slave;
          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; };  # адрес первого сервера
      
      };
    проверяем

    1. Проверить корректность конфигурации и

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

      Command

      sudo named-checkconf
      sudo systemctl restart bind9

    Добавляем служебные записи

    Добавление служебных записей (SRV-записи)

    .

    Служебная запись (SRV-запись) — стандарт в DNS, определяющий имя хоста и номер порта серверов для определённых служб. Определяется в RFC 2782.
    Могут использоваться в различных протоколах, например, в Kerberos. SRV-записи располагаются в файлах зоны (в примере выше - это файл  файл  /etc/bind/zones/db.localnet.example.ru).

    Формат записи: 

    Code Block
    _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)

    Code Block
    $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-cерверов

    Для того, чтобы сервер не тратил ресурсы на попытки опроса недоступных корневых серверов, работающих по протоколу IPv6 (например, когда протокол IPv6 не поддерживается сетью), в файл парамеров сервера локальных параметров сервера /etc/bind/named.conf.local можно добавить секцию:

    Code Block
    server ::/0 {
            bogus yes;
    };
    


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

    В работе

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

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