摘要
- 在“不返回任何响应”的条件下,APNIC Labs 对 116,050,253 个测试名观察到 9,685,775,212 次权威查询。按公开总数复算,每次测试为 83.46 次;正向对照为 3.43,NODATA 为 3.93,NXDOMAIN 为 4.40,REFUSED 为 11.47,SERVFAIL 为 51.73。
- 这张矩阵证明,在本实验中,响应状态与抵达权威端的负载高度相关;它没有证明重复查询来自终端、stub、转发层、递归引擎、resolver farm,还是多个层级共同作用。
- 原文正文与汇总表有两处平均值不一致。公开计数足以复算结果,却不足以替作者决定原意。任何运营判断都应保存分子、分母、公式、拓扑与“归因未知”状态。
精确的总数没有带来精确的责任人
APNIC 在 9 月 4 日发布的报告里给出 9,685,775,212 这个总数。它来自权威服务器保持沉默的实验条件。表一同时给出 116,050,253 次测试;两数相除是 83.4619。
算式到这里完全清楚,产生算式的路径却并不透明。
实验通过在线广告里的脚本,让终端解析一个随机且唯一的名字。这个请求可能先交给本机的 stub,再发往一个或多个已配置的递归服务;中间还可能有转发器、前端分发器和后端解析引擎。引擎会选择服务器地址和传输,也可能合并相同请求,或者再次发送。
APNIC 的日志位于这条链条末端。它知道哪些查询抵达自己,却不会随包收到一份经过签名的上游决策记录。因此,“一个解析器对每个名字问了 83 次”不是原始事实,而是一项额外推断。把所有额外查询叫作“重传”也不准确:现代终端可能分别查询 A、AAAA 与 HTTPS,这三项是不同类型,并非同一包重复三次。
实验单位是唯一测试名,不是一次人的点击、一次应用解析、一次 stub 事务或一次可识别的递归事务。新数据的价值正在于这个明确边界:它是一张权威端负载账,不是一张逐层问责账。
六种结果对应六档负载
随机名字排除了同名旧缓存直接回答的可能。测试区没有 DNSSEC 签名;一台双栈权威服务器同时支持 UDP 和 TCP,不提供 DoT 或 DoH。响应体很短,不涉及截断。一次广告触发后的 24 小时内,抵达服务器的查询都进入计数。
根据公开总数复算:
| 权威端状态 | 测试数 | 查询数 | 每次测试查询数 | 相对正向对照 |
|---|---|---|---|---|
正向 A/AAAA 对照 |
254,894,985 | 875,316,423 | 3.43 | 1.00× |
NOERROR/NODATA |
115,571,398 | 454,213,932 | 3.93 | 1.14× |
NXDOMAIN |
115,750,503 | 509,410,787 | 4.40 | 1.28× |
REFUSED |
115,415,259 | 1,324,355,211 | 11.47 | 3.34× |
SERVFAIL |
138,643,924 | 7,171,673,166 | 51.73 | 15.06× |
| 无响应 | 116,050,253 | 9,685,775,212 | 83.46 | 24.30× |
这不是简单的“肯定”和“否定”之差。正向回答与两种确定的否定回答都在每次测试约四次附近;REFUSED 明显升高;SERVFAIL 与沉默进入另一个数量级。
语义可以解释这种顺序为何合理。NXDOMAIN 表示名字不存在;NODATA 表示名字存在,但没有所问类型。REFUSED 表示服务器基于策略拒绝处理。SERVFAIL 只表示处理失败,仍留下换服务器、换地址、换传输或稍后重试的可能。沉默连这一层分类也没有,只能由计时器决定下一步。
然而,“这个结果可能诱发探索”不等于“已知谁进行了探索”。表格没有区分软件、配置、队列、请求合并方式,也没有给出均值背后的分位数。51.73 与 83.46 是这个实验的描述值,不是固定写进 DNS 协议的倍数。
合理的基线本来就不等于一次查询
在 NXDOMAIN 组里,48% 的终端同时问了 A 和 AAAA,51% 只问 A,1% 只问 AAAA;另有 39% 产生 HTTPS 查询。按这些类型组合,如果每种只问一次,APNIC 估算应有 2.18 亿次查询。
实际是 509,410,787 次,超出的 291,919,927 次被归为重复。115,750,503 次测试中,有 67,316,541 次对所用每个类型最多只发一次;剩余 48,433,962 次测试承载全部重复量,平均为 6.03 次。
分母若写得不清楚,会出现两种相反误判。把包数直接减去测试数,会把 A、AAAA、HTTPS 的并行需求算成重试;只看最终是否获得答案,则会抹掉近 2.92 亿次重复工作。
覆盖范围也属于分母。样本来自 Google Ads 能触达的区域,报告明确说俄罗斯是主要例外。它带来广泛视野,却不是全体互联网用户与解析器的概率抽样。单台双栈服务器是受控工具,不是常见的多 NS、多运营方权威服务。未签名、无加密、短响应的设置减少了变量,并不能代表加入 DNSSEC、TCP、加密或多服务器后一定得到什么结果。
原文自己的两个数字也需要凭据
SERVFAIL 段落把 51.29 写成每次测试的查询均值,把 51.59 写成发生重复时的均值。公开总数并不支持这个对应关系。7,171,673,166 除以 138,643,924 是 51.7273,表一将其写成 51.73。扣除 3,702,576 次“每种类型仅一次”的测试后,剩 134,941,348 次;6,920,490,780 次重复除以它是 51.2852,对应表中的 51.29。
无响应段落又把测试数排成 11,6050,253,并给出 82.6 的总均值。表一写 116,050,253 与 83.46。9,685,775,212 除以表中分母是 83.4619;重复数除以 113,531,062 个发生重复的测试,则是 83.3822,与表中 83.38 相符。
不应默默沿用正文数字,也不应据此宣布整个实验失效。公开的原始计数和公式可以把排字、标签错误与测量错误分开。只有作者能够说明本来想写哪一个数;读者能够确认的,是哪些数由现有总量推出。
这也映射了更大的问题:一个看似完成的平均值不能替代其来源。分子、分母、排除条件、公式和版本都是证据的一部分。
2019 年的线索不能自动继承为 2026 年的结论
APNIC 在 2019 年对 NXDOMAIN 重复现象做过更细的时间分析。报告看到了来自同一表面解析器地址的重复,也看到了共享地址前缀的一组来源轮流发问,并讨论 Happy Eyeballs、丢包、激进计时器、转发集中与 resolver farm。按 IPv4 /24 或 IPv6 /48 分组被明确称为近似方法。
这些机制都可能存在,却不能给 2026 年汇总数据补上一项确定归因。一个可见地址可能代表多个引擎,多个地址也可能属于同一服务。终端配置的两个递归地址可能最后汇入同一后端。上一项查询尚未结束时,重复任务可能已进入另一个队列。问题与回答任何一边都可能丢失。
新报告本身保留了疑问:它询问重复来自递归实现,还是来自前端分发与后端引擎构成的复杂系统。严谨的报道应保留这个问号,而不是替它填入一个熟悉的软件类别。
微软的官方文档只是一条有界示例。Windows 客户端在沉默时会按已配置 DNS 地址数量安排再次查询,而 Name Error 会停止该路径。但 APNIC 没有证明样本运行 Windows,也没有在终端内部观察这套时序。实现文档证明一种机制可存在,不能证明它解释了另一项实验的汇总值。
标准限制重试,却不能替权威日志补写来源
RFC 9520 要求:同一查询发往同一服务器地址、使用同一传输时,在首次发送后最多重试两次。解析失败还必须缓存至少一秒、至多五分钟,使匹配的新需求在这段时间内不再生成上游查询。
这是抑制故障风暴的明确规则,不是远端归因工具。解析器仍可尝试另一地址或兼容传输;多个客户端请求可以合并为一次递归过程,一次客户端动作也可能经多个系统扩散。权威端计数无法仅凭自身辨认这些边界。
RFC 2308 为 NXDOMAIN 与 NODATA 规定负缓存,也保留较早的服务器故障缓存边界。RFC 8914 允许 Extended DNS Error 携带诊断信息,但明确不得改变 RCODE 的处理。这些机制让失败更可解释,不会让未观测的因果层凭空出现。
响应语义更不能当作降流量旋钮。为了少收查询而故意返回错误的 NXDOMAIN 或 NODATA,会把负载控制变成错误的命名事实。合法的调整应发生在真正拥有计时器、路径选择、请求合并和失败缓存的层,并在本地验证用户成功率、时延与恢复。
下一份测量至少要保存什么
首先应保存实验起止、触发渠道、覆盖缺口与精确单位;列出预期查询类型,再定义何为超额重复。随后记录响应的线格式、服务器数量、地址族、anycast 状态、支持与实际观察到的传输、DNSSEC、响应尺寸和截断。
均值旁边要有原始总量、公式、舍入与分布。更重要的是,未观测字段应保持未知。如果没有分别观测 stub、转发与递归引擎,就不应把它们的贡献估成一个确定比例。
在受控且保护隐私的环境里,运营者可以分别计数客户端请求、已合并请求组、递归事务、同一地址/传输组合的重试,以及改走其他路径的尝试。若无法建立这种托管链,结论便应停在权威边界。
APNIC 已完成艰难的第一步:不同失败状态的成本差异不再可以忽略。下一步不是给“风暴”换一个更强烈的词,而是让测量真正指出哪一层行使了哪一种重试权。
来源
- APNIC Blog:What part of ‘No!’ is so hard for the DNS understand?
- APNIC Blog:No!(2019 年实验)
- Microsoft Learn:DNS client resolution timeouts
- RFC 1035:Domain names — implementation and specification
- RFC 2308:Negative Caching of DNS Queries
- RFC 8914:Extended DNS Errors
- RFC 9520:Negative Caching of DNS Resolution Failures
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

