Chromium 对 root DNS 流量的影响
Chromium 对 root DNS 流量的影响
2020年08月22日 11时28分基于 Chromium 的浏览器如今占据了七成以上的浏览器市场份额,它的某些行为可能会产生意想不到的巨大影响,比如 DNS 域名查询。Chromium 有一项功能叫 omnibox,用户可以在里面输入网站名字、网址和搜索查询词。但如何区分用户输入的一个单词是域名(企业内联网域名可以是一个单词)还是查询词?Chromium 采取的方法是在后台进行域名 DNS 查询,检查是否会返回有效的 IP 地址。毫无疑问,这种关键字 DNS 查询在很多情况下是返回域名不存在的错误消息。这种域名错误信息叫 NXDOMAIN,有些 ISP 会在这上面打主意,对于无效域名它们会进行拦截重定向到广告页挣些广告费。Chromium 在 DNS 查询的的时候需要识别某个网络是否存在 NXDOMAIN 拦截。根据 Chromium 的源代码(intranet_redirect_detector.c),它使用的方法是在每次启动、每次 IP 地址变化、每次设备 DNS 配置变更时对 3 个随机的 7-15 字符长(现在固定为 10 个字符长)的字符串进行 DNS 查询,如果至少 2 个随机域名查询到的 IP 地址是相同的(即被重定向了),那么 Chromium 会认为存在 NXDOMAIN 拦截,如果用户输入的词查询结果匹配了被重定向的 IP,那么 Chromium 将不会有任何操作,否则会提示是否是本地域名。Chromium 的这种行为会在 root DNS 服务器留下记录。根据亚太互联网络信息中心的统计,root 服务器一半的查询流量来自于 Chromium 的检查。这相当于每天在 root 服务器系统查询 600 亿次。