我刚刚升级到 focal;有时 systemd-resolved 会从一个 DNS 服务器切换到另一个。问题是我有一个“内部”DNS 服务器。在我的路由器 (Netgear Orbi) 中,我已将该 IP 配置为主要和次要;但是,出于某种原因,resolved 认为“其他”服务器是 8.8.8.8,当然它没有我的内部名称。
resolv.conf
指向 127.0.0.53 并且符号链接到../run/systemd/resolve/stub-resolv.conf
。
/etc/systemd/resolved.conf
是空的。
以下是 resolvectl status 的输出:
Global
LLMNR setting: no
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
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 2 (ens3)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 192.168.75.5
DNS Servers: 192.168.75.5
8.8.8.8
DNS Domain: prosser.n7qnm.net
两个问题:
- 为什么要切换到备用服务器?
- 它从哪里获得 8.8.8.8?
答案1
我刚刚才明白这一点。
在 20/Focal 中,“Cloud Init”包开始发挥作用,在 /etc/cloud/conf.cfg.d 中有一个名为 50-curtin-networking.cfg 的文件,其中包含名称服务器定义。更新显然读取 /etc/systemd/resolved.conf;在我的情况下,它是在我添加第二个本地 DNS 服务器之前填充的;而在 18 中,使用方式不同。
“管道修得越多,下水道就越容易堵塞”——蒙哥马利·斯科特