本次测试仅通过黑盒测试分析不同公共 DNS 当前(20210315)是否支持 ECS,及方案上的一些差异,相关方案的优劣不进行额外说明。
结论
厂商 | IP | 是否支持ECS |
---|---|---|
腾讯云/DNSPod | 119.29.29.29、119.28.28.28 | 是 |
阿里 | 223.5.5.5、223.6.6.6 | 是 |
DNS派 | 101.226.4.6、123.125.81.6等 | 是 |
OneDNS | 117.50.11.11、52.80.66.66 | 否 |
114 | 114.114.114.114、114.114.115.115 | 否 |
CNNIC | 1.2.4.8、210.2.4.8 | 否 |
百度 | 180.76.76.76 | 否 |
细节差异简析
腾讯云/DNSPod
- 绝大部分后端递归节点是支持 ECS 的节点,少部分递归节点为不支持 ECS 的节点;其中不支持 ECS 的节点仅会对本省本运营商的请求进行递归, 支持 ECS 的递归节点可为所有线路进行递归。
- 支持 ECS 的递归节点携带用户的实际 IP 作为 ECS IP 向权威 DNS 进行请求,为防源 IP 泄漏,统一格式化为 x.x.x.1/32。
- 缓存层按照省份运营商线路(如广东电信)进行缓存,减少缓存量。
阿里
- 部分后端递归节点是支持 ECS 的节点,部分递归节点为不支持 ECS 的节点;;其中不支持 ECS 的节点仅会对本省本运营商的请求进行递归, 支持 ECS 的递归节点为未部署后端递归节点的线路进行递归。
- 支持 ECS 的递归节点不会携带实际用户的 IP 向权威 DNS 请求,而是携带相关线路固定的 IP 作为 ECS IP 向权威 DNS 进行请求,并格式化为 x.x.x.0/24,目的可能是为了减少递归 DNS 节点的缓存量。
- 中国移动线路在未选择到后端递归节点的省份中,似乎都选择了相同的一个移动 IP 作为 ECS IP,没有为不同省份选择不同的 ECS IP。
- 缓存层按照省份运营商线路(如广东电信)进行缓存,减少缓存量。
DNS 派
- 绝大部分后端递归节点是支持 ECS 的节点,少部分递归节点为不支持 ECS 的节点。
- 支持 ECS 的递归节点携带用户的实际 IP 作为 ECS IP 向权威 DNS 进行请求,为防源 IP 泄漏,统一格式化为 x.x.x.0/24。
- 无缓存的应答结果可能返回多个 ECS 段。
- 缓存层按照省份运营商线路(如广东电信)进行缓存,减少缓存量。
- 海外转发至其他公共 DNS,如 CloudFlare 的 1.1.1.1。
OneDNS
- 本身的后端递归节点不支持 ECS,部分省份运营商会转发至腾讯云/DNSPod 的公共 DNS 进行解析。
- 海外请求全部转发至腾讯云/DNSPod 的公共 DNS 进行解析。
其他
- 测试的114、CNNIC、百度等公共 DNS 暂不支持 ECS。
- 支持 ECS 的公共 DNS 部分不支持 ECS 的递归节点不一定是真的不支持,不排除 DNS 请求被重定向的可能。