Re: Что не так в DNS в Debian buster

Sergey Spiridonov <[email protected]>
Newsgroups gmane.linux.debian.user.russian
Organization private
Message-ID <[email protected]>
On Fri, 14 May 2021 16:16:40 +0300
Maksim Dmitrichenko <[email protected]> wrote:

> Я знаю, что я слоупок, но не так давно обновился до buster и немного
> не понимаю, что у меня теперь происходит с DNS.
> 
> Ранее (на девятке) у меня NetworkManager запускал dnsmasq и прописывал
> локальный DNS сервер в /etc/resolv.conf - при этом можно было удобно
> настроить, что при подключении к рабочему VPN, в рабочий DNS сервер
> улетали только запросы от dnsmasq, касающиеся резолва ресурсов в
> рабочей сетке. NetworkManager управлял dnsmasq на лету по мере
> подключения/отключения новых соединений.
> 
> Теперь же я вижу, что локально (на 127.0.0.53 почему-то) запущен
> systemd-resolved. dnsmasq - не запущен вообще, в /etc/resolv.conf
> каждый раз при отключении/подключении VPN пишет NetworkManager, а все
> программы, пытаясь резолвить ресурсы, доступные по VPN, отправляют в
> половине случаев свои запросы к серверу провайдера и, получая отлуп,
> говорят, что no such address.
> 
> Я, конечно, могу влезть в /etc/NetworkManager/NetworkManager.conf,
> задизаблить systemd-resolved и так далее, но почему такой неработающий
> идиотизм сделан по дефолту? Может надо какие-то хитрые пакеты
> установить или снести, чтобы всё вернулось в прямой вид?
> 

Привет, боролся с этой проблемой с переменным успехом на Дебине, Убунте
и Федоре.

Если ты согласен жить с системд-резолвед (не всегда это возможно), то
решение простое:

необходимо добавить в конфигурацию сервера

push "dhcp-option DOMAIN rabochaya.setka.com"

системд-резолвед и НМ достаточно умны, чтобы перенаправлять ДНС запросы
после этого в ДНС от рабочей сетки (который тоже должен пушиться).

При этом на клиенте в НМ должна быть включена опция "Use this
connection only for resources on its network" 


Если настройки сервера ты поменять не можешь, то должно помочь на
клиенте

 sudo nmcli connection modify rabochiy-vpn ipv4.dns-search rabochaya.setka.com


Если же непременно необходимо использовать днсмаск, то инструкция
такая (не стал переводить с английского)


Install dnsmasq

sudo apt install dnsmasq

Disable systemd-resolved listener on port 53 (do not
touch /etc/systemd/resolved.conf, because it may be overwritten on
upgrade):

$ cat /etc/systemd/resolved.conf.d/noresolved.conf 
[Resolve]
DNSStubListener=no

and restart it

$ sudo systemctl restart systemd-resolved

(alternatively disable it completely by $ sudo systemctl disable
systemd-resolved.service)

Delete /etc/resolv.conf and create again. This is important, because
resolv.conf is a symbolic link to /run/systemd/resolve/stub-resolv.conf
by default. If you will not delete symbolic link, the file will be
overwritten by systemd on reboot (even though we disabled
systemd-resolved!). Also NetworkManager (NM) checks if it is a symbolic
link to detect systemd-resolved configuration.

$ sudo rm /etc/resolv.conf
$ sudo touch /etc/resolv.conf

Disable overwriting of /etc/resolv.conf by NM (there is also an option
rc-manager, but it does not work, despite it is described in a manual):

$ cat /etc/NetworkManager/conf.d/disableresolv.conf 
[main]
dns=none

and restart it:

$ sudo systemctl restart NetworkManager

Tell dnsmasq to use resolv.conf from NM:

$ cat /etc/dnsmasq.d/nmresolv.conf 
resolv-file=/var/run/NetworkManager/resolv.conf

Резолвинг рабочей сетки, например так

cat /etc/dnsmasq.d/rabsetka
server=/rabochaya.setka.com/<айпи днс сервера в рабочей сетке>

and restart it:

$ sudo systemctl restart dnsmasq

Use dnsmasq for resolving:

$ cat /etc/resolv.conf 
# Use local dnsmasq for resolving
nameserver 127.0.0.1

Публиковал для Убунты здесь

https://askubuntu.com/questions/898605/how-to-disable-systemd-resolved-and-resolve-dns-with-dnsmasq
-- 
С уважением, Сергей Спиридонов
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.