Der DNS des Systems, der bei 127.0.0.53 geliebt wird, scheint zu funktionieren, außer wenn ich nach lokalen Computern mit Namen frage. Aber wenn ich danach frage und speziell den lokalen DNS-Server (meinen Router) spezifiziere, erhalte ich die richtige Antwort. In der Konfigurationsdatei heißt es jedoch, dass auch der Router als Suchadresse verwendet wird. Irgendwelche Gedanken?
Ich verwende Ubuntu 18.04 auf meinem Dell-Laptop.
Falsche Ergebnisse:
$ nslookup web1
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find web1: SERVFAIL
Scheitert auch
$ nslookup -i wlp3s0 web1
nslookup: couldn't get address for 'web1': not found
Richtige Ergebnisse:
$ nslookup web1 192.168.1.1
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: web1
Address: 192.168.1.107
Konfigurationsinfo systemd-resolve
$ systemd-resolve --status
Global
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 3 (wlp3s0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.1
DNS Domain: wp.comcast.net
Link 2 (enp2s0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Konfigurationsinfo NetworkManager
$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
[device]
wifi.scan-rand-mac-address=no
Wie bringe ich nslookup dazu, die richtige Antwort zurückzugeben? Link 3 scheint die richtige Information zu sein (meine WLAN-Verbindung) und mein DNS auf dem Router gibt die richtige Antwort zurück, aber der lokale Cache versucht nie, die Adresse zu ermitteln (oder so scheint es).
quelle
nslookup -i wlp3s0 web1
Antworten:
Ihre Datei resolv.conf deutete nicht an der falschen Stelle -
../run/systemd/resolve/stub-resolv.conf
ist , wo es zu Punkt angenommen hat , in der Standardeinstellung.Das Problem ist, dass
systemd-resolved
keine nicht gepunkteten Namen an DNS übergeben werden. Anscheinend funktioniert dies "wie geplant". Sehen Sie sich dieses Github-Problem an, das besagt, dass " Behoben wird, dass Single-Label-Lookups niemals in Unicast-DNS gelangen".Unabhängig davon, ob Sie der Argumentation in diesem Github-Problem zustimmen oder nicht, gibt es eine Möglichkeit, dieses Problem zu beheben. Es sind nicht einmal Änderungen am Standard-Setup Ihres Ubuntu-Rechners erforderlich:
Zunächst muss der DNS Ihres LAN einen Domänennamen haben.
Wenn Sie dnsmasq verwenden, fügen Sie
/etc/dnsmasq.conf
auf Ihrem DNS-Server Folgendes hinzu :Sie sollten nun in der Lage sein, LAN-Hostnamen aufzulösen, wenn Sie die Domäne hinzufügen:
Stellen Sie zweitens sicher, dass der Name für die LAN-Domäne auch in Ihrem DHCP-Server festgelegt ist, wenn er sich von Ihrem DNS-Server unterscheidet. Auf meinem DHCP-Server (meinem Router) heißt diese Einstellung nur "Domänenname".
Wenn Sie dann Ihre DHCP-Lease auf Ihrer Ubuntu-Box erneuern, sollte eine Suchanweisung in folgenden Feldern erscheinen
/run/systemd/resolve/stub-resolv.conf
:web1
Wenn Sie jetzt nachschlagen, wird es zu "Erweitern"web1.your-domain
, was dann mithilfe von DNS aufgelöst wird.Beachten Sie, dass , wenn Sie verwenden
dig
stattnslookup
,dig
nicht den Suchpfad standardmäßig nicht verwendet - verwendet seine+search
Option , dass zu ermöglichen.quelle
/etc/resolv.conf
oder in der Ausgabe von entwedernmcli -g all
odersystemd-resolve --status
? Schauen Sie sich vielleicht an, was in Ihrer DHCP-Lease enthalten ist .Ich habe die Lösung gefunden, die für mich funktioniert hat.
Meine resolv.conf-Datei zeigte auf den falschen Ort. Dies scheint ein Fehler in Ubuntu zu sein, der auf meinem Laptop (dem Computer, auf dem ich dieses Problem zum ersten Mal bemerkte) und auf einer Neuinstallation von Ubuntu 18.04 Server aufgetreten ist.
Der Standard
Ich habe dies gelöscht und auf die richtige Datei hingewiesen. Nach dem Neustart wurde das Problem behoben. Und ich konnte sogar Netzwerke auf meinem Laptop wechseln und der DNS wurde richtig geschaltet. Natürlich kann ich in externen Netzwerken keine meiner lokalen Computer auflösen, aber das wird erwartet. Sobald ich zu meinem lokalen Netzwerk zurückschalte, werden alle lokalen Computer korrekt aufgelöst, da mein Router der DNS ist.
Die Reparatur
Danach hat alles wie erwartet funktioniert und 127.0.0.53 wird überhaupt nicht mehr verwendet.
Die richtigen Ergebnisse
quelle
ubuntu-bug resolvconf
.systemd-resolve
wird vomsystemd
Paket bereitgestellt , bitte versuchen Sie esubuntu-bug systemd
stattdessen.resolv.conf
ist auf diese Weise für Docker-Bridge-Netzwerk-DNS eingerichtet, oder?