V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
renfei
V2EX  ›  DNS

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

  •  
  •   renfei · 2023-04-24 11:04:21 +08:00 · 3510 次点击
    这是一个创建于 581 天前的主题,其中的信息可能已经有所发展或是发生改变。

    突发奇想

    一个域名 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 返回的记录不同?

    有大佬给解惑一下吗?

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

    如果使用 TCP 模式的话,理应可以返回全部,但是貌似也是有上限限制之前哪里看到说 TCP 模式最多也返回 1000 个,记忆不一定准确。
    realpg
        3
    realpg  
       2023-04-24 11:15:10 +08:00
    主要受限于 udp 包
    renfei
        5
    renfei  
    OP
       2023-04-24 11:19:21 +08:00
    JensenQian
        6
    JensenQian  
       2023-04-24 11:34:30 +08:00
    不知道
    不过现在一般就算套 cdn 解析出来也几个 ip 吧
    mohumohu
        7
    mohumohu  
       2023-04-24 11:48:20 +08:00
    根据标准我记得是按 UDP 包大小限制来的,超过大小的使用 TCP 查询。而且 114 这种公共 DNS 没有统一的标准,为了性能优化节省成本什么的还有要屏蔽啥的,区别对待很正常。
    lxcopenwrt
        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 版本的错误扩展机制应该没有多大的问题
    mohumohu
        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
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:55 · PVG 04:55 · LAX 12:55 · JFK 15:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.