resolvconf — пакет, используемый в современных операционных системах, отвечающий за автоматическое назначение DNS серверов и разрешение имён в ip адреса.
Другие имена пакета systemd-resolve и resolvectl. Через resolvectl можно выполнять команды в консоли вручную.
Например:
root@server:~# resolvectl query ya.ru
ya.ru: 77.88.55.242 -- link: ens3 5.255.255.242 -- link: ens3 -- Information acquired via protocol DNS in 4.1ms. -- Data is authenticated: no
Сервис называется systemd-resolved.service. Им можно управлять как любым сервисом systemd:
resolvconf в Debian и настройки DNS на сервере
resolvconf представляет собой базу с данными по именам, пакет используется службами сети при поднятии интерфейсов и других операциях с сетью сервера.
У администратора или пользователя обычно возникает необходимость взаимодействовать с resolvconf в случае если есть какие-то проблемы с разрешением DNS записей. Например, результаты DNS запросов с сервера и с других машин разные.
Локально проверку можно выполнять с помощью запроса query, с опциональными ключами. Пример приведен ниже.
root@server:~#
resolvectl --legend=no -t MX query ya.ru
ya.ru IN MX 10 mx.yandex.ru -- link: ens3
При отсутствии пакета то, какие DNS сервера использовать для резолвинга определяется содержимым файла /etc/resolv.conf
less /etc/resolv.conf
nameserver 192.168.1.2
domain example.com
Как система использует resolvconf
Рассмотрим как выглядят настройки сети на Debian сервере, в частности файл /etc/network/interfaces
less /etc/network/interfaces
allow-hotplug eth0
iface eth0 inet static
address 192.168.11.13
netmask 255.255.255.0
gateway 192.168.11.1
dns-domain example.com
dns-nameservers 192.168.1.2
Когда ядро определяет наличие физического интерфейса eth0 allow-hotplug дает сигнал ifup поднять интерфейс.
iface указывает ifup, что нужно использовать статический IP адрес.
Последние две строки определяют настройки DNS. Они нужны только если установлена служба resolvconf
Проверить установлена ли служба можно так:
root@server:~# dpkg -l | grep resolvconf
ii resolvconf 1.82 all name server information handler
Если DNS запросы разрешаются неправильно
В случае если результат разрешения DNS запросов с сервера не такой как результат разрешения DNS запросов с других серверов можно попробовать следующее:
- проверить /etc/hosts. Файл используется системой и обрабатывается по умолчанию до DNS. Если в /etc/hosts есть строки задающие для определенного домена ip адрес имя будет преобразовываться в этот адрес без запроса к DNS
- сброс кэша DNS. Он выполняется командой resolvectl flush-caches. При её выполнении в консоль не происходит никакого вывода
- перезапуск службы через systemctl restart systemd-resolved.service
Проверять в какой адрес происходит преобразование можно с помощью утилит host и dig. Также можно выполнять ping до домена (ping example.com) и смотреть какой ip адрес будет в ответе.
Сетевые настройки также могут задаваться не статически, а за счет DHCP или формироваться скриптами или за счет Network Manager.