Настройка кеширующего DNS-клиента systemd-resolved в Debian

Материал из support.qbpro.ru

Одним из изменений конфигурации systemd, используемой по умолчанию в Debian GNU/Linux 12.0, является отсутствие службы, отвечающей за разрешение имён с возможностью кэширования результатов запросов с внешних DNS-серверов - systemd-resolved. Поэтому, если нужно ускорить работу механизма разрешения имён, например с корпоративных DNS-серверов, можно выполнить самостоятельную установку и настройку этой службы.

  • Устанавливаем одноимённый пакет systemd-resolved из стандартных репозиториев Debian Bookworm:
apt-get install systemd-resolved
  • В ходе установки для службы systemd-resolved будет включён автоматический запуск при старте системы. Помимо этого, в систему автоматически будут доустановлены пакеты libnss-myhostname и libnss-resolve. Модуль nss-resolve (библиотека libnss_resolve.so из пакета libnss-resolve) будет добавлен в механизм Name Service Switch (NSS), который будет вызывать службу systemd-resolved для разрешения имён. А в конфигурационном файле /etc/nsswitch.conf строка hosts: files dns будет автоматически заменена на следующий вид:
 ...
 hosts:          files resolve [!UNAVAIL=return] dns myhostname
 ...
  • Сохраняем оригинальный конфиг-файл:
cp /etc/systemd/resolved.conf /etc/systemd/resolved.conf.dst
  • Отредактируем конфигурационный файл /etc/systemd/resolved.conf:
 [Resolve]
 DNS=192.1.2.1
 FallbackDNS=192.1.2.2
 Domains=local.int
 DNSSEC=allow-downgrade
 DNSOverTLS=no
 MulticastDNS=no
 LLMNR=no
 Cache=yes
  • Перезапускаем службу и проверяем работу:
 systemctl restart systemd-resolved
 systemctl status systemd-resolved
  • Смотрим какие настройки DNS:
 resolvectl status
 
  • Вывод статистики кэша:
 resolvectl statistics
  • Проверка работы DNS:
 nslookup ya.ru