Dnsmasq сломался после обновления до Bionic: работает, но на разрешение любого запроса уходит около 30 секунд

Dnsmasq сломался после обновления до Bionic: работает, но на разрешение любого запроса уходит около 30 секунд

Моя конфигурация dnsmasq сломалась после обновления с 16.04 до Ubuntu 18.04.

  • systemd-resolved включен и работает
  • dnsmasq включен и работает

Любой DNS-запрос к внешнему миру будет зависать на 30 секунд, прежде чем будет успешным. Запросы к моим локальным хостам (anything.mylocal) будут успешными немедленно.

Если я остановлю dnsmasq (т.е. service dnsmasq stop), то все DNS-запросы во внешний мир будут работать немедленно (но .mylocal, конечно, нет).

В: /etc/dnsmasq.conf

listen-address=127.0.0.1
address=/.mylocal/127.0.0.1

В: /etc/NetworkManager/NetworkManager.conf

[main]
...
# dns=dnsmasq
...

Раскомментирование строки dns= предотвратит ЛЮБЫЕ DNS-запросы.

В: /etc/systemd/resolved.conf

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=no

В: /etc/resolv.conf

Этот файл представляет собой ссылку на: ../run/resolvconf/resolv.conf, который содержит:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

В: /etc/nsswitch.conf

passwd:         compat systemd
group:          compat systemd
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Одно заметное отличие от вывода systemd-resolve --status:

  • При запущенном dnsmasq первая строка в Global выглядит так:DNS Servers: 127.0.0.1
  • При остановленном dnsmasq эта строка отсутствует, глобального DNS-сервера нет, а первый полезный сервер определен в разделе Link 2, который указывает мой шлюз по умолчанию (192.168.1.1)

Любая помощь будет высоко оценена :)

решение1

После ночного сна ;-) вот что у меня получилось. Я просто вручную добавил несколько публичных upstream-серверов (1.1.1.1 — CloudFlare, 8.8.8.8 — Google)

В: /etc/dnsmasq.conf:

listen-address=127.0.0.1
address=/.mylocal/127.0.0.1
server=1.1.1.1
server=8.8.8.8

Все остальные файлы оставлены как в моем вопросе. И systemd-resolved и dnsmasq включены и работают.

Это позволяет DNS-запросам работать.

Я все еще не считаю это правильным ответом, поскольку предпочел бы использовать DNS, предоставляемый сетью, но, по крайней мере, это работает...

Связанный контент