自建 DNS,不打开递归解析,无法正常使用。

98 天前
 sikeer

请教大家一个问题:

  1. 我在家里用群晖搭建了一个 DNS (地址为:192.168.1.2 ),这个 DNS 只用来解析一个域名:123.test.com 解析为自身( 192.168.1.2 ),并且这个解析只对家里的 LAN 上的设备有效

  2. 我在家里的手机上和电脑上,配置 DNS 为:192.168.1.2 ,223.5.5.5

  3. 我的想法是:任何 DNS 查询,首先到 192.168.1.2 ,如果是查询 123.test.com ,则应答,如果是其它域名,则不应答,由下一个 223.5.5.5 去应答。因此我在 192.168.1.2 上不启用剃归解析

4.结果是:nslookup 123.test.com 192.168.1.2 时,正常应答,但是,nslookup 123.test.com 时,无法正常解析 123.test.com. ping 123.test.com 也不行。

5.但是如果将递归解析打开,则一切正常。

请问大家,为什么?

2300 次点击
所在节点    DNS
16 条回复
Internet0User
98 天前
递归解析 顾名思义嘛
要是不太了解的话可以看看递归解析的原理,相信你应该就明白了
szlytlyt
98 天前
用户:如果主 dns 没有查到记录,会自动去备用 dns 查询吗

ChatGPT 说:
通常情况下,如果主 DNS 服务器响应了查询请求但没有找到对应的记录,Windows 系统不会自动切换到备 DNS 服务器进行查询。这是因为从技术上讲,主 DNS 已经正确地响应了请求,只是没有对应的记录。

换句话说,只有在主 DNS 服务器无法响应(如超时或连接失败)时,系统才会自动切换到备 DNS 。如果主 DNS 成功响应但没有找到记录,系统不会去备 DNS 再次查询。
yshtcn
98 天前
因为递归解析才是你需要的功能。
nuk
98 天前
因为 nslookup 不是递归查询,但是 windows 系统的 dns 客户端是递归查询,另外主 dns 只解析一个域名不会导致网络很慢吗。
Kobayashi
98 天前
这什么和什么,你用的什么 DNS 服务软件、配置都没说啊,就一句群晖。
yinmin
98 天前
nslookup 123.test.com 能看到具体使用了哪个 dns 服务器的。另外,windows 配置里的主 dns 、副 dns 不是依次使用,而是随机使用的。
flynaj
98 天前
用 smartDNS ,DNS 填几个进去,会自动解析最快的
ho121
98 天前
> 我的想法是:任何 DNS 查询,首先到 192.168.1.2 ,如果是查询 123.test.com ,则应答,如果是其它域名,则不应答,由下一个 223.5.5.5 去应答。

建议楼主确认一下您所用的系统,DNS 查询是不是这个逻辑,很可能不是您所想的逻辑。

> 但是如果将递归解析打开,则一切正常。

如果递归解析打开了,您自建的 DNS 服务器变成了全功能 DNS 服务器了,当然能解析任意域名。
cleanery
98 天前
递归解析才是大多数 dns 的工作状态啊
你 dns 里没有该网站的缓存, 它自然要递归请求上级的 dns, 最后找到权威 dns
ShinichiYao
98 天前
主 DNS 不响应才会转到备用 DNS ,主 DNS 活着的不会去备用 DNS 查
FengMubai
98 天前
你这种情况没必要自建, 直接 dnsmasq 追加 host
mainjzb
98 天前
我估计是 windows 会定期检测一些域名,比如 www.msftconnecttest.com:80
根据 windows 的内部判断,你的第一个 DNS 完全不可用。所以默认启用了第二个 DNS 。
如果你开了递归解析。第一个 DNS 就能访问到检测域名了,就使用了第一个 DNS 。
bingoup886
98 天前
你的 dns 服务器解决了缓存穿透的问题:如果没有 value ,则缓存一个空值(有效),所以才不会走其他服务器了啊
sikeer
97 天前
谢谢大家回复!
我用的是群晖自带的 DNS 服务套件。
当我把递归解析关闭时:

$nslookup 123.test.com 的回复是:

;; Got recursion not available from 192.168.1.2, trying next server
Server: 223.5.5.5
Address: 223.5.5.5#53

** server can't find 123.test.com: NXDOMAIN


但是用下面的命令:
$nslookup 123.test.com 192.168.1.2
Server: 192.168.1.2
Address: 192.168.1.2#53

Name: 123.test.com
Address: 192.168.1.2

我是在 macOS 上测试,并且在测试之前已经清空了 DNS 缓存
sudo dscacheutil -flushcache;
sudo killall -HUP mDNSResponder
sikeer
97 天前
我在群晖 DNS 套件上的 ZONE 配置是:

123.test.com A 192.168.1.2
123.test.com NS ns.123.test.com
ns.123.test.com A. 192.168.1.2
sikeer
97 天前
我的 MACOS 的系统 DNS 设置为:
192.168.1.2
223.5.5.5

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1065947

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX