可以配置名称解析以使用级联名称服务器吗?

可以配置名称解析以使用级联名称服务器吗?

我专门在 Linux 上(Mint 和运行 systemd 解析器的 Ubuntu 衍生产品,但 dnsmaq 也随时可用)并且有以下令人费解的情况:

我的 PC 位于 LAN 上,其 IP 和名称服务器通过 DHCP 配置。DHCP 服务器(在此特定 LAN 上)又是一个 DNS(运行 Knot 解析器),并为客户端配置只有一个 DNS,即其本身(恰好位于 192.168.0.1)

该本地 DNS 也是 LAN 网关,它会根据需要执行 NAT 解析,但最重要的是,Knot 解析器可以通过名称了解所有 LAN 设备,因此它将解析任何缺少 TLD(顶级域名)或 TLD 为 .lan 的名称到具有该名称的 LAN 节点(通常是 192.168.0 子网上的另一个设备,所有其他设备都使用其 DHCP 服务器为其配置的 DNS(我的 ISP 的 DNS),该 DNS 提供全局名称解析。

一切都很顺利。直到我连接到 VPN。然后发生的事情是,vpn 客户端(无论哪个都无所谓,我使用过 vpnc、Cisco 客户端和 fortigate 客户端,它们都执行相同的操作)重新配置名称服务器。

在大多数用例中,这都是理所应当的,也是理想的。我现在使用 VPN,VPN 名称服务器提供的实用性与我的 Knot 解析器在我的本地 LAN 上提供的相同,即它尽可能地解析所有本地 LAN 名称,然后将其交给上游 DNS 进行全局解析。现在我使用 VPN,我拥有 VPN 名称解析。太棒了。

但是,由于我的 Knot 解析器不再被查询,我的本地 LAN 名称不再解析。因此,突然间,我无法打印,也无法访问我的 NAS 等等。

我可以看到 /etc/resolv.conf 中的变化。VPN 客户端会更改它,当它关闭时,链接会恢复原状。

在我的情况下,VPN 位于 192.169.1 子网上,它为我配置了两个名称服务器 192.168.1.11 和 192.168.1.12。一切顺利。

但是,VPN 客户端连接后,我可以做些什么来配置我的电脑以级联方式解析名称吗,即使用这个特定示例:

尝试 192.168.1.11,如果解析名称失败,则尝试 192.168.1.12,如果解析名称失败,则尝试 192.168.0.1。

我从文档和在线搜索中遇到了真正的问题,无法找到这个问题的答案。如果可以配置 systemd 解析器或 dnsmasq 来执行此操作,或者其他可安装的解析器,我会很高兴。

这似乎是一个相当普通的需求?能够通过名称服务器的级联列表解析名称。这让我怀疑存在一些普通的解决方案,而我只是对它们视而不见,在我的阅读中没有找到它们。

相关内容