查询两个不同的 DNS 名称服务器 - 一个仅用于 LAN,一个用于其他所有

查询两个不同的 DNS 名称服务器 - 一个仅用于 LAN,一个用于其他所有

在基于 Debian 的 Linux 设备上,我需要在两个不同的 DNS 名称服务器上设置 DNS 查找 - 一个用于本地域查找,一个用于其他所有域查找。

我的 /etc/resolv.conf 当前是:

# Generated by resolvconf
domain delta
search delta
nameserver 127.0.0.1
nameserver 192.168.200.1

lo 上的第一个名称服务器几乎可以解析所有东西,只是不能解析 LAN 上的本地设备(“delta”),这些设备由 192.168.200.1 上的 dnsmasq 解析。我手动添加了第二个名称服务器进行测试(resolvconf 仅添加 127.0.0.1)。lo 上的 DNS 请求由 iptable 规则重定向到 WAN。

我在 /etc/resolv.conf 中看到的是

> host cnn.com
cnn.com has address 151.101.65.67

> host alpha.delta
Host alpha.delta not found: 3(NXDOMAIN)

> host alpha.delta 192.168.200.1
Using domain server:
Name: 192.168.200.1
Address: 192.168.200.1#53
Aliases: 

alpha.delta has address 192.168.200.99

目前主要有两个问题:

  • 为什么查找不尝试第二个(本地)DNS服务器?如果我在主机命令中指定它,它就可以工作。
  • 配置它的最佳方法是什么,以便本地域查找由单独的本地服务器(除标准外部服务器外)提供。显然 /etc/resolv.conf 可以被覆盖;我尝试更改 /etc/resolvconf.conf,但在 resolvconf -u 之后没有更新 /etc/resolv.conf。

我希望这不是一个愚蠢的问题;我仍在努力理解和学习名称解析。所以欢迎提供一些提示!

答案1

回答你的第一个问题

为什么查找不尝试第二个(本地)DNS服务器?如果我在主机命令中指定它,它就可以工作。

仅当未收到响应时才会尝试其他 DNS 服务器。“我找不到它”是一个完全有效的响应。

实现您想要的目标的最佳方法总是有点主观,但是做您想做的事情的方法如下。

第一个 DNS 服务器(我们称之为Alpha
第二个 DNS 服务器(我们称之为Beta

配置Alpha为转发 DNS 服务器,您可以使用以下方式配置前锋区您将指定内部域名,转发器将是Beta

配置Beta您本地域所需的任何记录。

对内部域的请求将被转发到 Beta,所有其他请求将被发送到您定义的转发器(例如 Google)

值得注意的是,如果需要的话,这一切都可以在单个服务器内完成。

相关内容