本地 DNS 5 分钟后停止工作

本地 DNS 5 分钟后停止工作

我花了几个小时试图理解这一点,我全新安装了 POP OS 19.10,看看这是否可以解决问题,但没有。

这似乎在我的 Mac Book、Windows 机器和我家里的 ubuntu 服务器机器上运行良好,但由于某些奇怪的原因,在我的流行操作系统安装中,内部名称解析只能在启动后运行大约 10 分钟,然后停止。

我删除了交换机配置中的最小 dns 4 条目...在 resolv.conf 上乱七八糟,但无济于事。大约十分钟后,它就停止工作了。

我有一个 mikrotik 路由器,我在其中为本地环境设置了一些静态 dns 条目。

mikrotik 通过 DHCP 分发所有三个解析器地址。经过一番研究后,我查看了systemd-resolve --statuscmd 的结果,发现有时主 DNS 会被辅助 DNS 替换。这似乎导致内部决议被忽略

Current DNS Server: 154.0.1.10
DNS Servers: 192.168.88.1
             154.0.1.1
             154.0.1.10

似乎 mikrotik DNS 查找间歇性超时导致此问题。超时后,systemd-resolved 会切换到后备 dns 条目之一,并且不再尝试主条目。

不知道如何解决这个问题。任何帮助将不胜感激

答案1

一切都按照您的定义进行。您误解的是 DNS 解析器如何用于解析地址,因此配置未按您的预期工作。

所有三个 DNS 解析器地址 ( 192.168.88.1154.0.1.1154.0.1.10) 均通过 DHCP 从 Mikrotik 路由器分发。这告诉每个客户端任何(响应)解析器都能够处理任何 DNS 查找。

当您尝试查找仅知道如何解析的内部 LAN 地址时192.168.88.1,理论上您只有三分之一的机会获得该解析;其余服务器将响应NXDOMAIN

将客户端查询分配给 DNS 服务器的具体过程是特定于实现的。某些实现可能会采用“第一个”DNS 服务器,并且更喜欢使用它。其他实现可能会采用任何一个可用的集合并使用它。其他实现可能会随机或循环分配查询。

这里的解决方案只是提供192.168.88.1LAN DNS 服务器,并确保它知道如何在本地无法解析查询时将查询转发到上游。

如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器解析本地域并使用远程 DNS 服务器解析远程域可能对实际配置有帮助systemd-resolved

答案2

resolv.conf 是否被覆盖?

如果 POP 操作系统使用 systemd-networkd,您将需要编辑网络配置/etc/systemd/network/*.network并指定静态 DNS 条目。

  [Match]
  Name=eth0

  [Network]
  DHCP=yes
  DNS=1.1.1.1

如果 POP OS 未使用 systemd-networkd 并且 DHCPD 正在覆盖它,您可以编辑 dhcpd.conf 并添加nohook resolv.conf以防止其被覆盖。

相关内容