在DNS中,国际互联网与国内网络有没有互通
在DNS中,国际互联网与国内网络有没有互通
一个CTFer的小窝

在DNS中,国际互联网与国内网络有没有互通

W1lsp0
2024-03-24 / 0 评论 / 23 阅读 / 正在检测是否收录...

@木村·星辰的观点是和根服务器(及镜像污染)有关,国际互联网不再信任中国的 DNS 服务器。但这个说法实际上是很荒谬的,也可以通过实验快速验证。本回答就旨在说明这一问题。

​ 首先从DNS的解析过程入手。不考虑 DNSSEC 等因素,仅讨论最简单的情况,一个典型的解析过程如下:用户请求本地 DNS,本地 DNS 从根开始一步步解析,其中每一步都是获取 NS 记录 和 A(或者 AAAA)记录,最终查询到用户请求的记录。

​ 根服务器中存储了什么?存储了各个 TLD 的 NS 记录和 A/AAAA 记录。具体的记录由 ICANN 旗下的 IANA 保管,内容见 Root Files。全世界所有的根服务器及其镜像的内容都是一致的。

.cn的信息也不例外。在任何一个根服务器的 中,都可以查询到 .cn 正确的 delegation 信息。这一结论可以通过 'dig cn NS 任意一个根' 来快速验证。那么,只要授权 DNS 工作正常,没有理由认为 .cn 会被整个屏蔽。

​ 历史上有没有发生过整个 TLD 被屏蔽的事件?有。早年间曾经发生过伊拉克的 .iq TLD 被整个从根服务器中删除的例子。然而这个例子在今天不适用:.cn 仍在根服务器中活得好好的。

​ 说到底,互联网是一个分布式的系统,“国际互联网”本身就是一个伪概念。互联网有许多组成部分,哪些部分是“国际互联网”呢?事实上,并没有一个部分能完全担得起这个概念。因此,“不被国际互联网信任”本身从逻辑上就无法成立。

​ 我们可以试想一下,假如“[国际互联网]”中的某个部分想屏蔽 .cn 该怎么做。某个运营商可以控制旗下的 DNS,拒绝解析 .cn。或者某个国家的政府可以如此规定。然而,这种做法终究只是某个或某些特定运营商的,很难具有普遍性,更不可能扩散到整个”国际互联网“。

​ 如果上述分析还不足以令人信服,我们通过实验来核实一下就行了。实验利用 RIPE Atlas,这是一个包含了成千上万的家宽、商宽、服务器甚至是卫星连接的巨大监控网络,而我恰好有节点在其中,有资源可以发起全球规模的测试。话不多说,直接上测试结果:Atlas Console

​ 上面的链接无需登录就能打开。测试目标是新华网。新华网的 DNS 全部位于境内。测试节点选用了全世界内 1000 个随机节点(但只有 994 个实际参与)。这个样本量已经足够大了。结果表明,绝大多数的测试节点都能够正常完成解析,而剩下不能完成解析的节点中很有可能也是因网络延迟问题(因为众所周知的原因,跨境网络连接不佳)。至少,绝对不存在 @木村·星辰所说的”国际互联网不信任中国 DNS“这件事。

以上,如有不严谨之处欢迎评论区指点。


行了,前几天的评论又给我吞了,今天才发现。原样贴过来算了。纯技术问题知乎怎么还吞评论这么严重的。本来是回复@木村·星辰的。

​ 经过查询,我确认了 .cn的确有两个授权 DNS 在境外,不知是不是就是你所说的“镜像”。30s 这个限制实际上是有些不合理的。不考虑缓存因素,当 DNS 记录被修改时(增删改都算),master 会通知 slave 变更,slave 则会在收到通知后发起 AXFR。这个过程即使不考虑众所周知的那个因素,也常常需要一定时间来完成。例如,HE 运营的免费 slave 就常常需要数分钟时间来响应更新请求。可以认为,DNS 记录的更新本就不是实时的,是需要一定时间传播的。不考虑缓存的情况下,存在数十秒延迟是很正常的事,并不能认为是被“阻断”了。实际上我也完成了一项小测试,使用我自己的 .cn 域名测试了伦敦的授权 DNS 的反应速度。我采用了设置 Glue Record 的方法,经过我的测试,设置完成后 20 秒之内信息就同步了,至少我的实验无法支持“境外镜像包含错误信息”这一结论。至于 8.8.8.8 怎么选取 .cn 的授权 DNS,这个我没有找到互联网上的公开信息。如果你有更多信息的话也欢迎提供下,咱们一起分析。

0

评论 (0)

取消