传统 DNS 仅靠响应码难以定位解析失败根因,RFC 8914 引入 EDE 在 OPT 记录携带 30 种细粒度错误码。格勒诺布尔大学实测确认主流解析软件与公共解析器已部署,63 个测试域名覆盖 DNSSEC 错配、不可达权威等场景,证明 EDE 能将 SERVFAIL 细化为“签名过期”“算法不支持”等可操作诊断信息。
机制与编码体系:
EDE 依赖 EDNS(0)(RFC 6721)在 OPT 资源记录的选项码 15 中承载错误信息,与传统 RCODE 正交,任意组合均合规。截至 2023 年 9 月 IANA 注册表含 30 个代码,RFC 8914 发布后新增 5 个。编码覆盖 DNSSEC 验证(1、2、5-12、25、27)、缓存行为(3、13、19、29)、解析器策略(4、15-18、20)、软件运行态(14、21-23)等类别。任意 DNS 系统——递归解析器、转发器或权威服务器——均可生成、转发与解析 EDE,形成端到端的错误透传链路。
部署现状与实测方法:
2023 年 5 月实验时,BIND9、Unbound、Knot Resolver、PowerDNS Recursor 四大递归软件均已实现 EDE;公共解析器 Cloudflare、Quad9、OpenDNS 已开启,Google DNS 于 2023 年 7 月宣布支持。研究团队搭建 63 个测试域名,涵盖错误 DNSSEC 配置(密钥、签名、摘要算法新旧不匹配)、不可达权威服务器、限制性 ACL 等误配与边界情况,完整域名列表公开于 extended-dns-errors.com 供复现。实验旨在触发递归解析器返回不同 EDE 代码,验证规范在真实部署中的表达能力。
典型触发场景与代码映射:
实测中,DNSSEC 相关错误最易触发 EDE:签名过期返回代码 7,签名生效时间未到返回 8,缺失 DNSKEY 返回 9,缺失 RRSIG 返回 10,不支持的 DNSKEY 算法返回 1,不支持的 DS 摘要类型返回 2。策略拦截场景下,代码 15(Blocked)、16(Censored)、17(Filtered)、18(Prohibited)分别对应不同阻断语义;缓存陈旧答案
原文: APNIC Blog(2023-09-28)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog