今天看到一则新闻

由于一个斐济 (.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%。 谷歌CloudflareQuad9OpenDNS 等公共DNS均开启了 DNSSEC 解析验证。

/images/2022/dnssec-in-china/apnic.thumbnail.png

APNIC 历史监测数据

/images/2022/dnssec-in-china/apnic_detail.png

APNIC 统计数据细则

但是,在中国情况有些不一样。

虽然 DNSPOD阿里云 这样的DNS服务商支持为域名配置 DNSSEC,但是中国大陆的递归DNS普遍未开启DNSSEC解析验证。

(前文提及的 APNIC 统计数据结果显示:中国大陆完全验证 1.23%,部分验证 3.88%,合计 5.11%)


首先,对各大公共DNS进行测试。

测试方法:

dig sigfail.verteiltesysteme.net @target_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工具17CEsigfail.verteiltesysteme.net 进行检测,可以发现,绝大多数监测点均正常得到了目标IP,而非解析失败。 这也从另一个侧面证明了,中国大陆的递归DNS普遍未开启 DNSSEC 解析验证。

/images/2022/dnssec-in-china/chinaz.thumbnail.png

站长之家测试结果

/images/2022/dnssec-in-china/17ce.thumbnail.png

17CE 测试结果


文章最后,附上两个测试 DNS 解析器是否验证 DNSSEC 的测试网站:

读者可以自行测试。