Ich verwende Ubuntu 18.04 (aktualisiert von einer früheren Version), das Network Manager und systemd-resolved für die Namensauflösung verwendet. Wenn ich boote, ist meine Ethernet-Verbindung enp0s31f6
wird von Network Manager aufgerufen und erhält über DHCP drei Nameserver-Adressen, 10.1.13.10
, 10.1.141.10
, 10.1.13.36
. Ausführen von nmcli
zeigt unter „DNS-Konfiguration“ die drei Nameserver an. Ausführen von systemd-resolve --status
zeigt sie unter einem Abschnitt „Link 2 (enp0s31f6)“. Ich kann jeden anpingen. Es ist keine andere Verbindung aktiv.
testuser ☼ systemd-resolve --status
Global
DNS Domain: (my org's domain)
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 (wlp4s0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 2 (enp0s31f6)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.1.13.10
10.1.141.10
10.1.13.36
DNS Domain: (my org's domain)
Wenn ich jedoch tatsächlich versuche, einen Namen aufzulösen, sogar den Namen eines der Nameserver, dig
behauptet, dass „Zeitüberschreitung der Verbindung:Es konnten keine Server erreicht werden“.
testuser ☼ dig dcpdc001.(my org's domain)
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> dcpdc001.(my org's domain)
;; global options: +cmd
;; connection timed out; no servers could be reached
Beachten Sie, dass dieser Name zu 10.1.13.10
aufgelöst werden sollte , der erste Nameserver.
Ich habe resolvconf
konfiguriert um dynamische Updates zu verwenden. /etc/resolv.conf
zeigt auf /run/resolvconf/resolv.conf
. Diese Datei enthält nur (keine Kommentare):
nameserver 127.0.0.53
search (my orgs local search domain)
Wenn ich nameserver 10.1.13.10
hinzufüge zu dieser Datei manuell, plötzlich dig
kann wieder aufgelöst werden, und alles andere, das lokale Namen sehen muss, kann dies tun. Das Entfernen des Nameservers macht das wieder kaputt.
Ich weiß nicht viel über die Server. Sie sind Teil eines Windows-basierten Netzwerks, aber ich kann sie verwenden, wenn ich resolv.conf
bearbeite manuell, also denke ich nicht, dass das das Problem ist, und es impliziert, dass ich nicht bei der Domäne authentifiziert werden muss, um sie zu verwenden. (Ich kann mich über Ubuntu mit Realmd/SSSD bei der Domäne authentifizieren, aber nicht, wenn ich den Domänencontroller nicht auflösen kann …)
Das journalctl
Einträge für systemd-resolved
zeigen nur wenige Meldungen über „Using degraded feature set … for DNS server“, beziehen sich aber nur auf den dritten Nameserver, nicht auf die anderen. Nichts für den primären Nameserver.
Wie kann ich die Namensauflösung zum Laufen bringen, ohne resolv.conf
manuell bearbeiten zu müssen jedes Mal, wenn ich boote?
Ich übernehme den Inhalt meiner resolv.conf
Bedeutet das, dass Network Manager oder Systemd eine Art lokalen Caching-Resolver laufen hat? Wenn ja, würde die Umgehung die Probleme beheben?
Ich habe die Protokollierungsebene von systemd-resolved
erhöht und journalctl -f -u systemd-resolved
zeigt:
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Got DNS stub UDP query packet for id 19836
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Looking up RR for dcpdc001.(org domain) IN A.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Switching to DNS server 10.1.13.10 for interface enp0s31f6.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Cache miss for dcpdc001.(org domain) IN A
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Transaction 12728 for <dcpdc001.(org domain) IN A> scope dns on enp0s31f6/*.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Using feature level UDP+EDNS0+DO+LARGE for transaction 12728.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Using DNS server 10.1.13.10 for transaction 12728.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Sending query packet with id 12728.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Processing query...
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Timeout reached on transaction 12728.
Akzeptierte Antwort:
Systemd kommt mit einem „Stub“-Resolver, systemd-resolved, der ihrer Meinung nach eigentlich nicht dazu gedacht ist, als DNS-Server verwendet zu werden:
Nun, aufgelöst soll kein DNS-Server sein, es soll genau gut genug sein, damit libc-ähnliche DNS-Clients ihre Sachen auflösen können, und wir haben genug Informationen, damit das AD-Bit gesetzt werden kann.
Ubuntu ist aus irgendeinem Grund so konfiguriert, dass es als DNS-Server verwendet wird, und zwar als einziger.
Ein Kommentar zu Fehler Nr. 1624320 weist darauf hin, dass systemd-resolved drei Betriebsmodi hat und der zweite mein Problem behoben hat. Nämlich:
$ sudo rm -f /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf