Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


Боковая панель

unix-linux:debian:bullseye:configuring-systemd-resolved-caching-dns-client-on-debian-11

Настройка кеширующего DNS-клиента systemd-resolved в Debian GNU/Linux 11 (Bullseye)

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

Поэтому, если нужно ускорить работу механизма разрешения имён, например с корпоративных DNS-серверов, нет необходимости устанавливать и настраивать специальные пакеты типа dnsmasq, а достаточно лишь выполнить настройку systemd-resolved.

В конфигурации по умолчанию данная служба не запущена:

# systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled...) Drop-In: /lib/systemd/system/systemd-resolved.service.d └─resolvconf.conf Active: inactive (dead)...

Установим модуль nss-resolve (библиотека libnss_resolve.so из пакета libnss-resolve) для механизма Name Service Switch (NSS), который будет вызывать службу systemd-resolved для разрешения имён:

# apt-get install libnss-resolve

В процессе установки в конфигурационном файле /etc/nsswitch.conf строка hosts: files dns будет автоматически заменена на следующий вид:

nsswitch.conf
...
hosts:          files resolve [!UNAVAIL=return] dns
...

Настроим конфигурационный файл /etc/systemd/resolved.conf, заполнив параметры секции [Resolve], например следующим образом:

resolved.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details
 
[Resolve]
# Some examples of DNS servers which may be used for DNS= and FallbackDNS=:
# Cloudflare: 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001
# Google:     8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
# Quad9:      9.9.9.9 2620:fe::fe
DNS=10.1.0.9 10.2.0.8
#FallbackDNS=
Domains=mysub.holding.com
DNSSEC=no
DNSOverTLS=no
MulticastDNS=no
LLMNR=no
Cache=yes
DNSStubListener=no
#DNSStubListenerExtra=
ReadEtcHosts=yes
#ResolveUnicastSingleLabel=no

Для совместимости с приложениями, которые не используют библиотечные вызовы, а обращаются к DNS серверам напрямую, получая их из /etc/resolv.conf, создадим символическую ссылку на файл /run/systemd/resolve/resolv.conf, контент которого автоматически генерируется исходя из настроек, заданных нами в /etc/systemd/resolved.conf:

# ln -svi /run/systemd/resolve/resolv.conf /etc/resolv.conf
ln: replace '/etc/resolv.conf'? y '/etc/resolv.conf' -> '/run/systemd/resolve/resolv.conf'

Проверим линковку:

# ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 32 Dec 11 16:22 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf

Теперь осталось только включить автозагрузку службы и запустить её:

# systemctl enable systemd-resolved # systemctl restart systemd-resolved # systemctl status systemd-resolved

После запуска systemd-resolved можно отключить настройки DNS в таких классических местах, как, например, в конфигурационном файле /etc/network/interfaces. То есть теперь можно ориентироваться на то, что основным конфигурационным файлом DNS клиента будет /etc/systemd/resolved.conf.


Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия ОС Версия systemd
Debian GNU/Linux Bullseye 11.2 247.3-6 amd64

Автор первичной редакции:
Алексей Максимов
Время публикации: 17.03.2022 14:53

Обсуждение

Ваш комментарий:
 

unix-linux/debian/bullseye/configuring-systemd-resolved-caching-dns-client-on-debian-11.txt · Последнее изменение: 17.03.2022 15:24 — Алексей Максимов