ECS
ECS(EDNS Client Subnet,RFC 7871)让递归解析器向权威携带一部分客户端网段,使 CDN 能做更精准的地理调度,但代价是隐私暴露与缓存复用率下降。
#type / concept
#status / growing
#tech / network
#protocol / dns
[!info] related notes
- 所属 MOC: DNS 知识地图
- 地理调度: GeoDNS
- 扩展机制: 经典 DNS 传输
- 汇总: 为什么同一域名返回不同 IP
ECS
一句话定义
ECS(EDNS Client Subnet,RFC 7871) 是 EDNS 的一个选项,让递归解析器向权威服务器携带一部分客户端网络前缀(如 /24),使 CDN/权威能据此做更精准的地理调度。
核心机制 / 工作原理
客户端 129.225.x.x
可能携带 129.225.x.x/24
递归解析器在查询里附带这个子网段,权威据此返回「离该子网最近」的边缘节点 IP。
最小例子 / 最小场景
没有 ECS 时,权威只知道递归解析器在法兰克福;有 ECS 时,它知道客户端子网在柏林,从而返回柏林边缘而非法兰克福边缘。
边界与易混淆点
- 隐私代价:ECS 把客户端网段暴露给权威(及链路旁观者),是 GeoDNS 精准度与隐私的权衡。
- 缓存复用率下降:同一公共 DNS 对不同客户端子网要缓存不同答案,命中率降低、查询量上升。
- 是否启用、携带多长前缀,由递归解析器与权威协商;许多解析器默认只对自己网络内的用户启用,或只对支持 ECS 的权威发送。
- ECS 不改变「递归解析器 IP 仍是最常看到的来源」这一事实(见 geodns)——它只是补充了一层客户端位置提示。
- 它是「为什么不同客户端拿到不同 CDN 节点」的机制之一(见 why-same-domain-different-ip)。