今天看到一则新闻。
由于一个斐济 (.fj) TLD 的域名服务器 (NS) 配置错误,所有对 .fj 域名的 DNSSEC 验证均会失败;DNS 服务器可能不会接受 .fj 域名的任何解析结果,进而导致相关网站无法访问。
然后,便在群中提及了这对中国没有什么影响,位于中国大陆的递归DNS好像都没有开 DNSSEC 解析验证。
本文是此话题的详细说明。
域名系统安全扩展,英文:Domain Name System Security Extensions,缩写为:DNSSEC,是Internet工程任务组 (IETF)为保护 IP 协议网络中传输的 DNS 数据而提出的一套扩展套件。 DNSSEC 为 DNS 数据提供了加密认证、数据完整性检验、不存在证明,但并不提供保密性以及额外的可用性。
DNSSEC最初的RFC提案(RFC 2065)在1997年提出。
2007年部分国别域(.br
、.bg
、.cz
、.na
、.pr
、.se
)尝试部署 DNSSEC 。
2010年根域进行了 DNSSEC 部署,自此构建了一个完整的信任链。
.org
、.com
、.net
、.edu
等主要域名分别在 2010 及 2011 年完成了 DNSSEC 的部署。
截止目前(2022年),绝大多数顶级域均完成了DNSSEC 的部署。
根据 APNIC 的监测数据 ,全球验证或部分验证DNSSEC的递归DNS所占比例已达43.5%。 谷歌 、Cloudflare 、Quad9 、OpenDNS 等公共DNS均开启了 DNSSEC 解析验证。
但是,在中国情况有些不一样。
虽然 DNSPOD 、 阿里云 这样的DNS服务商支持为域名配置 DNSSEC,但是中国大陆的递归DNS普遍未开启DNSSEC解析验证。
(前文提及的 APNIC 统计数据结果显示:中国大陆完全验证 1.23%,部分验证 3.88%,合计 5.11%)
首先,对各大公共DNS进行测试。
测试方法:
如果该递归DNS开启了DNSSEC解析验证,应当得到 SERVFAIL
响应;
而如果该递归DNS未开启了DNSSEC解析验证,则将得到带有解析结果的 NOERROR
响应。
下面是对于国内一些公共DNS的测试结果:
名称 |
IP |
测试结果 |
114 DNS |
114.114.114.114 / 114.114.115.115 |
❌ |
阿里 AliDNS |
223.5.5.5 / 223.6.6.6 |
❌ |
百度 BaiduDNS |
180.76.76.76 |
不一致* |
DNSPod DNS+ |
119.29.29.29 / 182.254.116.116 |
❌ |
CNNIC SDNS |
1.2.4.8 / 210.2.4.8 |
❌ |
oneDNS |
117.50.11.11 / 52.80.66.66 |
❌ |
DNS 派 |
101.226.4.6 / 218.30.118.6 / 123.125.81.6 / 140.207.198.6 |
❌ |
使用站长之家的ping工具和 17CE 对 sigfail.verteiltesysteme.net
进行检测,可以发现,绝大多数监测点均正常得到了目标IP,而非解析失败。
这也从另一个侧面证明了,中国大陆的递归DNS普遍未开启 DNSSEC 解析验证。
文章最后,附上两个测试 DNS 解析器是否验证 DNSSEC 的测试网站:
读者可以自行测试。