国内主要公共 DNS 支持 ECS 情况测试 – 20210315

本次测试仅通过黑盒测试分析不同公共 DNS 当前(20210315)是否支持 ECS,及方案上的一些差异,相关方案的优劣不进行额外说明。

结论

厂商IP是否支持ECS
腾讯云/DNSPod119.29.29.29、119.28.28.28
阿里223.5.5.5、223.6.6.6
DNS派101.226.4.6、123.125.81.6等
OneDNS117.50.11.11、52.80.66.66
114114.114.114.114、114.114.115.115
CNNIC1.2.4.8、210.2.4.8
百度180.76.76.76

细节差异简析

腾讯云/DNSPod

  1. 绝大部分后端递归节点是支持 ECS 的节点,少部分递归节点为不支持 ECS 的节点;其中不支持 ECS 的节点仅会对本省本运营商的请求进行递归, 支持 ECS 的递归节点可为所有线路进行递归。
  2. 支持 ECS 的递归节点携带用户的实际 IP 作为 ECS IP 向权威 DNS 进行请求,为防源 IP 泄漏,统一格式化为 x.x.x.1/32。
  3. 缓存层按照省份运营商线路(如广东电信)进行缓存,减少缓存量。

阿里

  1. 部分后端递归节点是支持 ECS 的节点,部分递归节点为不支持 ECS 的节点;;其中不支持 ECS 的节点仅会对本省本运营商的请求进行递归, 支持 ECS 的递归节点为未部署后端递归节点的线路进行递归。
  2. 支持 ECS 的递归节点不会携带实际用户的 IP 向权威 DNS 请求,而是携带相关线路固定的 IP 作为 ECS IP 向权威 DNS 进行请求,并格式化为 x.x.x.0/24,目的可能是为了减少递归 DNS 节点的缓存量。
  3. 中国移动线路在未选择到后端递归节点的省份中,似乎都选择了相同的一个移动 IP 作为 ECS IP,没有为不同省份选择不同的 ECS IP。
  4. 缓存层按照省份运营商线路(如广东电信)进行缓存,减少缓存量。

DNS 派

  1. 绝大部分后端递归节点是支持 ECS 的节点,少部分递归节点为不支持 ECS 的节点。
  2. 支持 ECS 的递归节点携带用户的实际 IP 作为 ECS IP 向权威 DNS 进行请求,为防源 IP 泄漏,统一格式化为 x.x.x.0/24。
  3. 无缓存的应答结果可能返回多个 ECS 段。
  4. 缓存层按照省份运营商线路(如广东电信)进行缓存,减少缓存量。
  5. 海外转发至其他公共 DNS,如 CloudFlare 的 1.1.1.1。

OneDNS

  1. 本身的后端递归节点不支持 ECS,部分省份运营商会转发至腾讯云/DNSPod 的公共 DNS 进行解析。
  2. 海外请求全部转发至腾讯云/DNSPod 的公共 DNS 进行解析。

其他

  1. 测试的114、CNNIC、百度等公共 DNS 暂不支持 ECS。
  2. 支持 ECS 的公共 DNS 部分不支持 ECS 的递归节点不一定是真的不支持,不排除 DNS 请求被重定向的可能。