Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

5 views
Skip to first unread message

Maksim Dmitrichenko

unread,
May 14, 2021, 9:20:03 AM5/14/21
to
Я знаю, что я слоупок, но не так давно обновился до 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 и так далее, но почему такой неработающий идиотизм сделан по дефолту? Может надо какие-то хитрые пакеты установить или снести, чтобы всё вернулось в прямой вид?

--
With best regards
  Maksim Dmitrichenko

Maksim Dmitrichenko

unread,
May 17, 2021, 9:50:03 AM5/17/21
to
Спасибо, Сергей, за реакцию. Но у меня на нескольких компах с buster одно и то же: /etc/resolv.conf - это не ссылка на какой-то там файл, а сгенерированный NN'ом фалик. Я так понимаю, что при переходе с девятки на десятку отключили у NM логику использования dnsmasq. systemd-resolved хоть и запускается сейчас и висит на 53-м порту на локальном IP-шнике, как понимаю, никем не используется, потому что /etc/resolv.conf про него вообще ничего не знает. /me как-то не понимает как можно было такой дефолт запилить (все компы ставились с нуля без upgrade).

Таким образом, получается, что неизбежать танцев с бубном по редактированию конфигов NM, что при апгрейде на 11-й выпуск, прилетит бумерангом скорее всего.

пн, 17 мая 2021 г. в 16:32, Sergey Spiridonov <se...@s73.work>:
Привет, боролся с этой проблемой с переменным успехом на Дебине, Убунте
и Федоре.

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

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

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
--
С уважением, Сергей Спиридонов

Anatoly Pugachev

unread,
May 17, 2021, 10:00:03 AM5/17/21
to
On Mon, May 17, 2021 at 4:42 PM Maksim Dmitrichenko <dmit...@gmail.com> wrote:
>
> Спасибо, Сергей, за реакцию. Но у меня на нескольких компах с buster одно и то же: /etc/resolv.conf - это не ссылка на какой-то там файл, а сгенерированный NN'ом фалик. Я так понимаю, что при переходе с девятки на десятку отключили у NM логику использования dnsmasq. systemd-resolved хоть и запускается сейчас и висит на 53-м порту на локальном IP-шнике, как понимаю, никем не используется, потому что /etc/resolv.conf про него вообще ничего не знает. /me как-то не понимает как можно было такой дефолт запилить (все компы ставились с нуля без upgrade).
>
> Таким образом, получается, что неизбежать танцев с бубном по редактированию конфигов NM, что при апгрейде на 11-й выпуск, прилетит бумерангом скорее всего.

Максим, да какие "танцы с бубном" то? Если комп один, то на нем можно
и руками один раз настроить, как вам уже порекомендовал Сергей. Если
компов много, то тут ansible вам сильно поможет настроить оставшиеся
компы по аналогии с первым настроенным, единственное playbook все-таки
придется написать и протестировать на том же первом/локальном компе.

Sergey Spiridonov

unread,
May 17, 2021, 10:10:03 AM5/17/21
to
On Fri, 14 May 2021 16:16:40 +0300
Maksim Dmitrichenko <dmit...@gmail.com> wrote:

Sergey Spiridonov

unread,
May 19, 2021, 8:10:02 AM5/19/21
to
Привет

On Mon, 17 May 2021 16:41:40 +0300
Maksim Dmitrichenko <dmit...@gmail.com> wrote:

> Спасибо, Сергей, за реакцию. Но у меня на нескольких компах с buster
> одно и то же: /etc/resolv.conf - это не ссылка на какой-то там файл, а
> сгенерированный NN'ом фалик. Я так понимаю, что при переходе с

Ну, значит меньше работы. Но вообще странно, /etc/resolv.conf это
софтлинк на /run/NetworkManager/resolv.conf

Попрообуй для начала просто запушить днс и рабочий домен с сервера -
этого точно хватает на Убунте и Федоре. Естественно, после этого хосты
в рабочей сетке надо указывать полносьтю, с рабочим доменом. На Дебиане
у меня везде стоит днсмаск, так что проверить быстро не могу. В любом
случае, в 11 Дебиане думаю всё будет работать как должно.

> девятки на десятку отключили у NM логику использования dnsmasq.

Да, но проблема решаема (только вручную, к сожалению).


> systemd-resolved хоть и запускается сейчас и висит на 53-м порту на
> локальном IP-шнике, как понимаю, никем не используется, потому
> что /etc/resolv.conf про него вообще ничего не знает. /me как-то не
> понимает как можно было такой дефолт запилить (все компы ставились с
> нуля без upgrade).

А что стоит в /etc/resolv.conf?

> Таким образом, получается, что неизбежать танцев с бубном по
> редактированию конфигов NM, что при апгрейде на 11-й выпуск, прилетит
> бумерангом скорее всего.

Я бы попробовал вернуться к системд-резолвед, если нет необходимости
ставить днсмаск.


Пользуясь случаем, хотелось бы высказать своё фи
разработчикам системд за написание своей собственной фигни вместо
использования прекрасного днсмаск.


--
Sergey
0 new messages