Používám Ubuntu 18.04 (upgradovaný z nějaké dřívější verze), který používá Network Manager a systemd-resolved pro překlad názvů. Když bootuji, mé ethernetové připojení enp0s31f6
je vyvolán Network Managerem a přes DHCP jsou mu přiděleny tři adresy jmenného serveru, 10.1.13.10
, 10.1.141.10
, 10.1.13.36
. Spuštění nmcli
zobrazuje tři jmenné servery v části „Konfigurace DNS“. Spuštění systemd-resolve --status
zobrazuje je v části „Odkaz 2 (enp0s31f6)“. Můžu pingnout každého. Žádné jiné připojení není aktivní.
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)
Když se však skutečně pokouším přeložit jméno, dokonce i jméno jednoho z jmenných serverů, dig
tvrdí, že „vypršel časový limit připojení:nelze dosáhnout žádných serverů“.
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
Všimněte si, že tento název by se měl překládat na 10.1.13.10
, první jmenný server.
Nakonfiguroval jsem resolvconf
používat dynamické aktualizace. /etc/resolv.conf
ukazuje na /run/resolvconf/resolv.conf
. Tento soubor obsahuje pouze (bez komentářů):
nameserver 127.0.0.53
search (my orgs local search domain)
Pokud přidám nameserver 10.1.13.10
do tohoto souboru ručně, najednou dig
může znovu vyřešit a vše, co potřebuje vidět místní názvy, to může udělat. Odstraněním jmenného serveru to znovu přerušíte.
O serverech toho moc nevím. Jsou součástí sítě se systémem Windows, ale mohu je použít, pokud upravím resolv.conf
ručně, takže si nemyslím, že to je ten problém, a to znamená, že k jejich použití nemusím být ověřen v doméně. (Mohu se ověřit k doméně přes Ubuntu pomocí Realmd/SSSD, ale ne, pokud nedokážu vyřešit řadič domény…)
journalctl
záznamy pro systemd-resolved
zobrazují pouze několik zpráv o „Používání degradované sady funkcí … pro server DNS“, ale odkazují pouze na třetí jmenný server, nikoli na ostatní. Nic pro primární jmenný server.
Jak mohu zprovoznit rozlišení jmen, aniž bych musel ručně upravovat resolv.conf
při každém spuštění?
Předpokládám obsah mého resolv.conf
Znamená to, že Network Manager nebo Systemd má spuštěný nějaký místní překladač mezipaměti? Pokud ano, vyřešilo by to obcházení?
Zvýšil jsem úroveň protokolování systemd-resolved
a journalctl -f -u systemd-resolved
ukazuje:
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.
Přijatá odpověď:
Systemd přichází s "stub" resolverem, systemd-resolved, který podle nich není ve skutečnosti určen k použití jako DNS server:
No, resolved nemá být DNS server, má být přesně dost dobrý na to, aby klienti DNS typu libc mohli řešit své věci, a máme dostatek informací pro nastavení AD bitu.
Z jakéhokoli důvodu je Ubuntu nakonfigurováno tak, aby jej používal jako DNS server a ve skutečnosti jako jediný.
Komentář k chybě č. 1624320 poukazuje na to, že systemd-resolved má tři provozní režimy a ten druhý vyřešil můj problém. Jmenovitě:
$ sudo rm -f /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf