一个域名 DNS 最多能返回多少条记录?全球 13 台根服务器,难道最多 13 条?
我给自己的域名添加了 100 条记录:
dig max-test.renfei.net
不用说,权威 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 只给我返回了 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
阿里 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 返回的记录不同?
有大佬给解惑一下吗?
1
AoEiuV020CN 2023-04-24 11:11:44 +08:00
我只知道 txt 记录有长度限制 255 ,
至于 dns record 数量,搜了下好像是没有限制,但实际使用受到 udp 的限制,以及 dns 服务器缓存条数限制, https://serverfault.com/a/652273 |
2
Xusually 2023-04-24 11:15:09 +08:00
一般使用 UDP 模式,此场景下,udp 的 dns 查询返回最大只有 512 字节,算上结构化数据没记错的话应该只够 ipv4 的地址 20-30 个。
所以可以想见 dns 服务器在处理返回的条目的时候会有自己的考虑。 如果使用 TCP 模式的话,理应可以返回全部,但是貌似也是有上限限制之前哪里看到说 TCP 模式最多也返回 1000 个,记忆不一定准确。 |
3
realpg 2023-04-24 11:15:10 +08:00
主要受限于 udp 包
|
4
0o0O0o0O0o 2023-04-24 11:16:21 +08:00 via iPhone
|
5
renfei OP |
6
JensenQian 2023-04-24 11:34:30 +08:00
不知道
不过现在一般就算套 cdn 解析出来也几个 ip 吧 |
7
mohumohu 2023-04-24 11:48:20 +08:00
根据标准我记得是按 UDP 包大小限制来的,超过大小的使用 TCP 查询。而且 114 这种公共 DNS 没有统一的标准,为了性能优化节省成本什么的还有要屏蔽啥的,区别对待很正常。
|
8
lxcopenwrt 2023-04-24 23:07:01 +08:00
通过测试来看没有一个递归 dns (包括谷歌、cloudflare 等国外知名 dns )能完整返回 100 个记录,我这里阿里和百度都返回了 SERVFAIL ,结果不一样应该是阿里 dns 不同区域的后端采用了不一样处理的方式,除了 114 其他国内外正常应答的 dns 应答个数都在合理上限以上(一般都是 50 个左右,dnspod 应答了 27 个应该满足最低限度),值得注意的是 dnspod 返回的状态码不正常( status: BADVERS ),查了一下意思是 EDNS 版本的错误扩展机制应该没有多大的问题
|
9
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 ``` |