Dnsmasq zepsuty po aktualizacji do Bionic: działa, ale zajmuje ~ 30 sekund na rozwiązanie każdego zapytania

1

moja konfiguracja dnsmasq została zerwana po aktualizacji do Ubuntu 18.04 z 16.04.

  • systemd-resolved jest włączony i działa
  • dnsmasq jest włączone i działa

Każde zapytanie DNS skierowane do świata zewnętrznego zostanie zawieszone na około 30 sekund przed sukcesem. Zapytania do moich lokalnych hostów (cokolwiek.mylocal) odniosą natychmiastowy sukces.

Jeśli zatrzymam dnsmasq (tj. service dnsmasq stop ), wtedy wszystkie zapytania DNS do świata zewnętrznego będą działać natychmiast (ale oczywiście nie. lokalny).

W: /etc/dnsmasq.conf

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

W: /etc/NetworkManager/NetworkManager.conf

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

Odkomentowanie linii dns = uniemożliwi KAŻDĄ kwerendę dns.

W: /etc/systemd/resolved.conf

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

W: /etc/resolv.conf

Ten plik jest linkiem do: ../run/resolvconf/resolv.conf, który zawiera:

# 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

W: /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

Jedna zauważalna różnica w stosunku do mocy wyjściowej systemd-resolve --status:

  • Przy uruchomionym dnsmasq pierwsza linia w Global czyta: DNS Servers: 127.0.0.1
  • Po zatrzymaniu dnsmasq linia ta jest nieobecna, nie ma globalnego serwera DNS, a pierwszy użyteczny serwer jest zdefiniowany w sekcji Łącze 2, która określa moją bramę domyślną (192.168.1.1)

Każda pomoc jest bardzo mile widziana :)

Palantir
źródło
Jeśli resolv.conf jest linkiem, to co zawiera jego plik docelowy?
grawity
Zawiera: nameserver 127.0.0.53 (edytowałem również odpowiedź)
Palantir
Jakich narzędzi używasz do testowania zapytań DNS? Jakie moduły „hostów” są włączone w /etc/nsswitch.conf?
grawity
Przepraszamy, kliknąłem zbyt szybko. Zgłosiłem zawartość nsswitch.conf. Jeśli chodzi o testy, po prostu wykonuję ping do google.com. Z dnsmasq zawiesza się na 30 sekund, bez niego natychmiast wraca.
Palantir
Dodano również trochę wyjścia systemd-resolve --status
Palantir

Odpowiedzi:

0

Po nocnym śnie ;-) oto co wymyśliłem. Właśnie ręcznie dodałem kilka publicznych serwerów upstream (1.1.1.1 to CloudFlare's, 8.8.8.8 to Google)

W: /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

Wszystkie pozostałe pliki są pozostawione jak w moim pytaniu. Zarówno systemd-resolved, jak i dnsmasq są włączone i działają.

Dzięki temu kwerendy DNS działają.

Nadal nie uważam tego za poprawną odpowiedź, ponieważ wolałbym korzystać z DNS dostarczonego przez sieć, ale przynajmniej działa ...

Palantir
źródło