Вики IT-KB

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

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

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


unix-linux:debian:stretch:systemd-resolved-in-debian-9

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

В составе systemd, используемой в конфигурации по умолчанию в Debian GNU/Linux 9 имеется отдельная служба, отвечающая за разрешение имён с возможностью кэширования результатов запросов с внешних 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]
DNS=10.1.0.9 10.2.0.8
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Domains=my.holding.com
LLMNR=no
DNSSEC=no
Cache=yes
DNSStubListener=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

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


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

Версия ОС
Debian GNU/Linux Stretch 9.3

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

Обсуждение

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

unix-linux/debian/stretch/systemd-resolved-in-debian-9.txt · Последние изменения: 27.12.2017 13:17 — Алексей Максимов