Dnsmasq ist nach dem Upgrade auf Bionic defekt: funktioniert, dauert jedoch etwa 30 Sekunden, um eine Abfrage zu lösen

583
Palantir

meine dnsmasq-Konfiguration wurde nach dem Upgrade auf Ubuntu 18.04 vom 16.04. beschädigt.

  • Systemd-aufgelöst ist aktiviert und läuft
  • dnsmasq ist aktiviert und läuft

Jede DNS-Abfrage an die Außenwelt wird für etwa 30 Sekunden hängen bleiben, bis sie erfolgreich ist. Abfragen an meine lokalen Hosts (anything.mylocal) werden sofort erfolgreich durchgeführt.

Wenn ich dnsmasq anhalte (dh service dnsmasq stop), werden alle DNS-Abfragen an die Außenwelt sofort funktionieren (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 ... 

Wenn Sie die Zeile dns = auskommentieren, wird keine 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, der Folgendes 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. Der erste nützliche Server ist im Abschnitt Link 2 definiert, der mein Standardgateway angibt (192.168.1.1).

Jede Hilfe wird sehr geschätzt :)

1
Wenn resolv.conf ein Link ist, was enthält dann die Zieldatei? grawity vor 5 Jahren 0
Es enthält: Nameserver 127.0.0.53 (Ich habe die Antwort auch bearbeitet) Palantir vor 5 Jahren 0
Welche Tools verwenden Sie zum Testen von DNS-Abfragen? Welche "hosts" -Module sind in /etc/nsswitch.conf aktiviert? grawity vor 5 Jahren 0
Entschuldigung, ich habe zu schnell geklickt. Ich habe den Inhalt der nsswitch.conf gemeldet. Was die Tests angeht, mache ich einfach einen Ping zu google.com. Bei dnsmasq bleibt es 30 Sekunden hängen, ohne dass es sofort zurückkehrt. Palantir vor 5 Jahren 0
Außerdem wurde eine Ausgabe von systemd-resol --status hinzugefügt Palantir vor 5 Jahren 0
Vermuten Sie stark, dass beide Programme miteinander als Upstream-Server konfiguriert werden, was zu einer Schleife führt. dnsmasq erhält es von resolv.conf, aber ich habe keine Ahnung, was diesen zusätzlichen Eintrag in systemd-resolution hinzufügt. grawity vor 5 Jahren 0
Vielen Dank für Ihren Vorschlag ... Wenn Sie weitere Informationen zum Debuggen haben, lassen Sie es mich wissen! Palantir vor 5 Jahren 0

1 Antwort auf die Frage

0
Palantir

Nach einer Nachtruhe ;-) das ist was ich mir ausgedacht habe. Ich habe gerade einige öffentliche Upstream-Server manuell hinzugefügt (1.1.1.1 ist CloudFlares, 8.8.8.8 ist 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 übrig. Sowohl systemd-aufgelöst als auch dnsmasq sind aktiviert und werden ausgeführt.

Dies bewirkt, dass DNS-Abfragen funktionieren.

Ich halte das immer noch nicht für die richtige Antwort, weil ich lieber die vom Netzwerk bereitgestellten DNS verwenden würde, aber zumindest funktioniert es ...