一个域名 DNS 最多能返回多少条记录?

2023-04-24 11:04:21 +08:00
 renfei

突发奇想

一个域名 DNS 最多能返回多少条记录?全球 13 台根服务器,难道最多 13 条?

实践是检验真理的唯一标准

我给自己的域名添加了 100 条记录:

dig max-test.renfei.net

权威 DNS

不用说,权威 DNS 返回了 100 条,全部记录

dig @vip1.alidns.com max-test.renfei.net A

; <<>> DiG 9.10.6 <<>> @vip1.alidns.com max-test.renfei.net A
; (5 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64806
;; flags: qr aa rd; QUERY: 1, ANSWER: 100, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;max-test.renfei.net.		IN	A

;; ANSWER SECTION:

114DNS

114DNS 只给我返回了 3 条

dig @114.114.114.114 max-test.renfei.net A

; <<>> DiG 9.10.6 <<>> @114.114.114.114 max-test.renfei.net A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54210
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;max-test.renfei.net.		IN	A

;; ANSWER SECTION:
max-test.renfei.net.	588	IN	A	127.0.0.4
max-test.renfei.net.	588	IN	A	127.0.0.5
max-test.renfei.net.	588	IN	A	127.0.0.6

;; Query time: 50 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Mon Apr 24 10:58:37 CST 2023
;; MSG SIZE  rcvd: 96

AliDNS

阿里 DNS 给我返回了 51 条

dig @223.5.5.5 max-test.renfei.net A

; <<>> DiG 9.10.6 <<>> @223.5.5.5 max-test.renfei.net A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57120
;; flags: qr rd ra; QUERY: 1, ANSWER: 51, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1408
;; QUESTION SECTION:
;max-test.renfei.net.		IN	A

;; ANSWER SECTION:

这我就有点迷惑了,似乎不同的递归 DNS 返回的记录不同?

有大佬给解惑一下吗?

3501 次点击
所在节点    DNS
9 条回复
AoEiuV020CN
2023-04-24 11:11:44 +08:00
我只知道 txt 记录有长度限制 255 ,
至于 dns record 数量,搜了下好像是没有限制,但实际使用受到 udp 的限制,以及 dns 服务器缓存条数限制,
https://serverfault.com/a/652273
Xusually
2023-04-24 11:15:09 +08:00
一般使用 UDP 模式,此场景下,udp 的 dns 查询返回最大只有 512 字节,算上结构化数据没记错的话应该只够 ipv4 的地址 20-30 个。
所以可以想见 dns 服务器在处理返回的条目的时候会有自己的考虑。

如果使用 TCP 模式的话,理应可以返回全部,但是貌似也是有上限限制之前哪里看到说 TCP 模式最多也返回 1000 个,记忆不一定准确。
realpg
2023-04-24 11:15:10 +08:00
主要受限于 udp 包
0o0O0o0O0o
2023-04-24 11:16:21 +08:00
renfei
2023-04-24 11:19:21 +08:00
JensenQian
2023-04-24 11:34:30 +08:00
不知道
不过现在一般就算套 cdn 解析出来也几个 ip 吧
mohumohu
2023-04-24 11:48:20 +08:00
根据标准我记得是按 UDP 包大小限制来的,超过大小的使用 TCP 查询。而且 114 这种公共 DNS 没有统一的标准,为了性能优化节省成本什么的还有要屏蔽啥的,区别对待很正常。
lxcopenwrt
2023-04-24 23:07:01 +08:00
通过测试来看没有一个递归 dns (包括谷歌、cloudflare 等国外知名 dns )能完整返回 100 个记录,我这里阿里和百度都返回了 SERVFAIL ,结果不一样应该是阿里 dns 不同区域的后端采用了不一样处理的方式,除了 114 其他国内外正常应答的 dns 应答个数都在合理上限以上(一般都是 50 个左右,dnspod 应答了 27 个应该满足最低限度),值得注意的是 dnspod 返回的状态码不正常( status: BADVERS ),查了一下意思是 EDNS 版本的错误扩展机制应该没有多大的问题
mohumohu
2023-04-25 00:53:24 +08:00
@lxcopenwrt 应该是你网络问题,我用 1.1.1.1 都完整返回 100 个。
```cmd
nslookup max-test.renfei.net 1.1.1.1
服务器: one.one.one.one
Address: 1.1.1.1

非权威应答:
名称: max-test.renfei.net
Addresses: 127.0.0.1
127.0.0.2
127.0.0.3
127.0.0.4
127.0.0.5
127.0.0.6
127.0.0.7
127.0.0.8
127.0.0.9
127.0.0.10
127.0.0.11
127.0.0.12
127.0.0.13
127.0.0.14
127.0.0.15
127.0.0.16
127.0.0.17
127.0.0.18
127.0.0.19
127.0.0.20
127.0.0.21
127.0.0.22
127.0.0.23
127.0.0.24
127.0.0.25
127.0.0.26
127.0.0.27
127.0.0.28
127.0.0.29
127.0.0.30
127.0.0.31
127.0.0.32
127.0.0.33
127.0.0.34
127.0.0.35
127.0.0.36
127.0.0.37
127.0.0.38
127.0.0.39
127.0.0.40
127.0.0.41
127.0.0.42
127.0.0.43
127.0.0.44
127.0.0.45
127.0.0.65
127.0.0.66
127.0.0.67
127.0.0.68
127.0.0.69
127.0.0.70
127.0.0.71
127.0.0.72
127.0.0.73
127.0.0.74
127.0.0.75
127.0.0.76
127.0.0.77
127.0.0.78
127.0.0.79
127.0.0.80
127.0.0.81
127.0.0.82
127.0.0.83
127.0.0.84
127.0.0.85
127.0.0.86
127.0.0.87
127.0.0.88
127.0.0.89
127.0.0.90
127.0.0.91
127.0.0.92
127.0.0.93
127.0.0.94
127.0.0.95
127.0.0.96
127.0.0.97
127.0.0.98
127.0.0.99
127.0.0.100
```

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

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

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

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

© 2021 V2EX