===== Настройка кеширующего DNS-клиента systemd-resolved в Debian GNU/Linux 9 (Stretch) ===== {{:unix-linux:debian:pasted:20171124-194401.png }} В составе **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'' будет автоматически заменена на следующий вид: ... hosts: files resolve [!UNAVAIL=return] dns ... Настроим конфигурационный файл ''/etc/systemd/resolved.conf'', заполнив параметры секции ''[Resolve]'', например следующим образом: # 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
---- Дополнительные источники информации: * [[https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html|man systemd-resolved.service]] * [[https://www.hippolab.ru/perehodim-na-systemd-resolved|HippoLab - Переходим на systemd-resolved]] ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ |Debian GNU/Linux Stretch 9.3 | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 27.12.2017 11:29 {{tag>Linux Debian "Debian 9" "Debian Stretch" DNS systemd systemd-resolved resolv NSS libnss}} ~~DISCUSSION~~