在基于 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)
值得注意的是,如果需要的话,这一切都可以在单个服务器内完成。