GeoDNS
GeoDNS 让权威服务器根据查询来源(通常是递归解析器的 IP,而非最终用户 IP)返回不同答案,实现按地理就近的调度。
#type / concept
#status / growing
#tech / network
#protocol / dns
[!info] related notes
- 所属 MOC: DNS 知识地图
- 更精准定位: ECS
- 调度场景: CDN DNS 调度
- 同源分流: Split DNS
- 汇总: 为什么同一域名返回不同 IP
GeoDNS
一句话定义
GeoDNS(地理 DNS) 是权威服务器根据查询来源的拓扑位置返回不同答案的能力——常用作按地理就近调度流量。
核心机制 / 工作原理
亚洲的递归解析器 → 返回亚洲服务器 IP
欧洲的递归解析器 → 返回欧洲服务器 IP
美国的递归解析器 → 返回美国服务器 IP
关键事实(RFC 7871 也指出):权威服务器通常看到的是递归解析器的 IP,而不是最终用户 IP。所以:
你在 Oracle2 上得到某个答案,不一定意味着权威直接识别了 Oracle2 的
129.225.x.x——它可能识别的是 Oracle 云内部递归 DNS、或该区域公共 DNS 的 Anycast 节点。
最小例子 / 最小场景
anyrouter.top 在亚洲递归解析器前返回源站 155.102.x.x,在另一区域前可能返回某 CDN 边缘 104.17.x.x——同一域名、不同答案,根因在 GeoDNS。
边界与易混淆点
- 「来源」多为递归解析器 IP:你的真实位置被递归解析器位置代表,所以选不同公共 DNS 可能改变 GeoDNS 结果(见 recursive-resolver)。
- 想让权威看到真实客户端位置,要靠 ECS(见 edns-client-subnet-ecs),但有隐私/缓存代价。
- GeoDNS 是「答案层选择」;它与「路由层选择」的 Anycast 不同(见 anycast-vs-geodns)。
- GeoDNS 是「为什么同域名不同 IP」的最常见来源之一(见 why-same-domain-different-ip)。