Meine DNSMASQ-Konfiguration ist nach dem Upgrade von Ubuntu 16.04 auf Ubuntu 18.04 beschädigt.
- systemd-resolved ist aktiviert und läuft
- dnsmasq ist aktiviert und läuft
Jede DNS-Abfrage an die Außenwelt bleibt etwa 30 Sekunden hängen, bevor sie erfolgreich ist. Abfragen an meine lokalen Hosts (anything.mylocal) sind sofort erfolgreich.
Wenn ich dnsmasq (also ) stoppe service dnsmasq stop
, dann funktionieren sofort alle DNS-Anfragen nach außen (aber .mylocal natürlich nicht).
In: /etc/dnsmasq.conf
listen-address=127.0.0.1
address=/.mylocal/127.0.0.1
In: /etc/NetworkManager/NetworkManager.conf
[main]
...
# dns=dnsmasq
...
Durch das Entfernen des Kommentarzeichens aus der Zeile „dns=“ wird JEDE DNS-Abfrage verhindert.
In: /etc/systemd/resolved.conf
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=no
In: /etc/resolv.conf
Diese Datei ist ein Link zu: ../run/resolvconf/resolv.conf und enthält:
# 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
In: /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
Ein auffälliger Unterschied bei der Ausgabe von systemd-resolve --status
:
- Wenn dnsmasq ausgeführt wird, lautet die erste Zeile in Global:
DNS Servers: 127.0.0.1
- Wenn dnsmasq gestoppt ist, fehlt diese Zeile, es gibt keinen globalen DNS-Server und der erste nützliche Server ist im Abschnitt Link 2 definiert, der mein Standard-Gateway (192.168.1.1) angibt.
Ich bin für jede Hilfe sehr dankbar :)
Antwort1
Nach einer Nacht Schlaf ;-) ist das hier das Ergebnis. Ich habe einfach manuell einige öffentliche Upstream-Server hinzugefügt (1.1.1.1 ist von CloudFlare, 8.8.8.8 ist von Google)
In: /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
Alle übrigen Dateien bleiben wie in meiner Frage. Sowohl systemd-resolved als auch dnsmasq sind aktiviert und laufen.
Dadurch funktionieren DNS-Abfragen.
Ich halte das immer noch nicht für die richtige Antwort, da ich lieber das vom Netzwerk bereitgestellte DNS verwenden würde, aber zumindest funktioniert es ...