DNS 解析器不断中断

DNS 解析器不断中断

时不时地,我会尝试通过 ssh 连接到本地网络上的某个地方,然后我会得到:

ssh: Could not resolve hostname pacman: No address associated with hostname

一旦我重新启动 DNS 解析器服务,sudo systemctl restart systemd-resolved.service一切就会恢复正常......但一段时间后它最终停止工作。


这仅发生在单个服务器上(zelda)。对于其余示例,我将使用它pacman作为尝试连接的服务器。

我正在运行两个本地 PiHole 服务器(192.168.1.2& 192.168.1.3),其中 dnsmasq 提供本地名称解析。运行时,systemd-resolve --status我可以看到列出了两个 DNS 服务器,包括一个有效的当前连接的服务器。

$ systemd-resolve --status
Global
       LLMNR setting: no
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
  Current DNS Server: 192.168.1.3
         DNS Servers: 192.168.1.2
                      192.168.1.3
          DNS Domain: fakedomainforquestion.com
          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 (ens18)
      Current Scopes: none
DefaultRoute setting: no
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

但是,当我尝试查找的pacmanDNS 条目时,却什么也没有找到。(这种情况发生在其他本地主机以及其他本地 FQDN 上)。

$ dig pacman

; <<>> DiG 9.16.1-Ubuntu <<>> pacman
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 13374
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;pacman.                IN  A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Wed Jun 01 12:10:28 AEST 2022
;; MSG SIZE  rcvd: 35

但是直接查询 DNS 服务器就可以解决。

$ dig pacman @192.168.1.3

; <<>> DiG 9.16.1-Ubuntu <<>> pacman @192.168.1.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27114
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pacman.                IN  A

;; ANSWER SECTION:
pacman.         0   IN  A   192.168.1.28

;; Query time: 0 msec
;; SERVER: 192.168.1.3#53(192.168.1.3)
;; WHEN: Wed Jun 01 12:10:12 AEST 2022
;; MSG SIZE  rcvd: 51

此外,这种情况只发生在zelda特定设备上。pacman从未出现过此问题,网络上的任何其他设备也没有。因此可以肯定地排除 DNS 服务器存在问题。

DNS 服务器不是为每个设备手动设置的,而是在整个网络的 DHCP 服务器上配置的。

据我所知,上的配置zelda与上的配置相同pacman。 这两个盒子都有大约 5 年的历史了,并且在它们的生命周期中经历了 LTS 升级,因此在升级过程中可能有些东西会导致zelda稍微偏离。

在排除故障时,我注意到即使我重新启动systemd-resolved,的输出dig pacman也与它不起作用时完全相同,但我现在可以pacman正常 ssh 进入。

相关内容