Настройка DNS

В качестве сервера DNS в продукте «Служба каталогов "Эллес"» используется решение с открытым исходным кодом BIND9, которое соответствует RFC 1034 и RFC 1035.

См. описание процесса настройки службы DNS с использованием BIND 9 в руководстве по администрированию BIND 9, а также в документации на используемый дистрибутив Linux (например, в документации Astra Linux, РЕД ОС, Ubuntu Server, Debian и т. д.).

Описания доменных зон и информация об их наполнении хранятся в службе каталогов. Для работы с ними доступны те же возможности, что и для других элементов службы каталогов, включая репликацию между контроллерами домена, а также резервное копирование и восстановление.

Работа ядра службы каталогов (Inno Samba) с BIND 9 обеспечивается модулем BIND9_DLZ («DNS-бэкенд» в терминологии Samba).

Встроенный DNS-сервер Samba (SAMBA_INTERNAL) поддерживает базовую функциональность, необходимую для работы службы каталогов, но имеет следующие ограничения:

  • не может выступать в роли кэширующего DNS-сервера (caching resolver);

  • не поддерживает обработку рекурсивных запросов;

  • не поддерживает аутентификацию DNS-транзакций с использованием общих ключей по протоколу TSIG;

  • не поддерживает работу с зонами-заглушками;

  • не поддерживает передачу зоны DNS;

  • не поддерживает циклическую балансировку нагрузки между контроллерами домена;

  • не поддерживает условное перенаправление DNS-запросов (conditional DNS forwarding).

В силу этих ограничений использовать его при работе с Inno Samba не рекомендуется.

Схема развертывания DNS-сервера BIND 9

В базовом сценарии развертывания экземпляр DNS-сервера BIND 9 устанавливается и работает на сервере, выполняющем функции контроллера домена под управлением Inno Samba (Рис. 1).

dns deployment
Рис. 1. Развертывание экземпляра DNS-сервера BIND 9 совместно с экземпляром Inno Samba на контроллере домена

Настройка модуля BIND9_DLZ

Для использования BIND 9 совместно с контроллером домена Inno Samba:

  1. Установите и настройте BIND 9 и дополнительные утилиты на сервере, который будет выполнять функции контроллера домена:

    sudo apt install bind9 bind9utils
  2. При развертывании домена Inno Samba или присоединении к существующему домену укажите опцию --dns-backend=BIND9_DLZ. При этом будет создан файл /app/inno-samba/bind-dns/named.conf.

  3. Добавьте ссылку на созданный файл в конец файла /etc/bind/named.conf или /etc/bind/named.conf.local:

    include "/app/inno-samba/bind-dns/named.conf";

    Например:

    echo 'include "/app/inno-samba/bind-dns/named.conf";' >> /etc/bind/named.conf
  4. Чтобы обеспечить динамическое обновление DNS с использованием Kerberos:

    • добавьте в блок options в файле /etc/bind/named.conf.options BIND 9 следующую настройку:

      options {
           [...]
           tkey-gssapi-keytab "/app/inno-samba/bind-dns/dns.keytab";
      };
    • убедитесь, что на контроллере домена доступна утилита nsupdate:

      which nsupdate
      /usr/bin/nsupdate

      Команда nsupdate используется для обновления DNS. Если утилита отсутствует, обратитесь к документации на используемый дистрибутив Linux и установите ее.

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

    sudo named-checkconf
  6. Перезапустите сервис bind9:

    sudo systemctl restart bind9.service
  7. Перезапустите сервис inno-samba:

    sudo systemctl restart inno-samba.service
  8. Убедитесь, что сервис bind9 работает корректно:

    sudo systemctl status bind9.service

Для проверки корректности обновления данных DNS выполните на контроллере домена с настроенным DNS-сервером принудительное обновление всех DNS-записей:

sudo /app/inno-samba/sbin/samba_dnsupdate \
   --verbose \
   --all-names

В выводе команды должны содержаться строки с информацией о поиске и проверке записей DNS. В случае необходимости внесения изменений в выводе также будут присутствовать записи с информацией о результатах операций по изменению записей.

Дальнейшая работа по созданию, изменению и удалению записей и зон DNS выполняется с помощью группы подкоманд dns утилиты samba-tool (см. подробное описание подкоманд и доступных параметров в разделе «Администрирование DNS»).

Изменение DNS-бэкенда на контроллере домена

Inno Samba позволяет переключаться между встроенным DNS-сервером и модулем BIND9_DLZ на контроллере домена без потери данных.

При использовании в качестве базы данных каталога LMDB (--backend-store=mdb) перед переключением убедитесь, что на контроллере домена установлен пакет lmdb-utils.

Например:

dpkg -s lmdb-utils

Если пакет отсутствует, установите его.

Например:

sudo apt install lmdb-utils

Миграция с встроенного DNS-сервера на BIND9_DLZ

Для переключения с встроенного DNS-сервера на модуль BIND9_DLZ выполните следующие действия на контроллере домена:

  1. Настройте модуль BIND9_DLZ (см. раздел «Настройка модуля BIND9_DLZ»).

  2. Остановите сервис inno-samba:

    sudo systemctl stop inno-samba.service
  3. Выполните команду миграции:

    sudo /app/inno-samba/sbin/samba_upgradedns --dns-backend=BIND9_DLZ
  4. Отключите встроенный DNS-сервер в файле /app/inno-samba/etc/smb.conf одним из следующих способов:

    • если в разделе global в файле smb.conf задан параметр server services, удалите из списка служб значение dns; после этого список значений параметра может выглядеть, например, так:

      server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
    • если параметр server services не используется, добавьте в раздел global в файле smb.conf следующую строку:

      server services = -dns
  5. Настройте автоматический запуск сервиса bind9 при загрузке:

    sudo systemctl enable bind9.service
  6. Запустите службу bind9:

    sudo systemctl start bind9.service
  7. Запустите службу inno-samba:

    sudo systemctl start inno-samba.service

Миграция с BIND9_DLZ на встроенный DNS-сервер

Для переключения с модуля BIND9_DLZ на встроенный DNS-сервер выполните следующие действия на контроллере домена:

  1. Остановите сервис bind9. Например:

    sudo systemctl stop bind9.service
  2. Отключите автоматический запуск сервиса bind9 при загрузке (см. инструкции в документации на используемый дистрибутив Linux). Например:

    sudo systemctl disable bind9.service
  3. Остановите сервис inno-samba. Например:

    sudo systemctl stop inno-samba.service
  4. Выполните команду миграции:

    sudo /app/inno-samba/sbin/samba_upgradedns --dns-backend=SAMBA_INTERNAL
  5. Отключите модуль BIND9_DLZ в файле smb.conf одним из следующих способов:

    • если в разделе global в smb.conf задан параметр server services, добавьте в список служб значение dns; например:

      server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
    • если в разделе global в параметре server services указана только опция -dns, удалите его полностью.

  6. Запустите сервис inno-samba:

    sudo systemctl start inno-samba.service
Использование встроенного DNS-сервера предусмотрено настройкой параметра server services по умолчанию. Удаление параметра server services означает включение всех служб по умолчанию, включая DNS-сервер.