分地区解析是基于什么实现的啊?

283 天前
 Betterr

用户使用的 DNS ,IP 都不一样,是如何去实现分区解析的呢?

3048 次点击
所在节点    DNS
15 条回复
igeeky
283 天前
大概是这个协议: edns-client-subnet
https://blog.csdn.net/ai2000ai/article/details/98970374
就是一个 DNS 扩展协议, 让 DNS 服务器能拿到用户 IP. 根据用户 IP 的不同, 解析结果也不同.
Betterr
283 天前
@igeeky 我看有文章指出 ECS 的兼容性不是很好,不过这些文章都挺旧的了。在 2023 年的今天,ECS 的支持情况如何?运营商普遍支持了吗?

刚刚看了一篇文章: https://docs.varnish-software.com/tutorials/dns-based-gslb/
大概讲了如何通过 PowerDNS 实现 GSLB 。通过根据用户 IP 或用户所使用 DNS 的 IP 与节点列表选择最接近的子网的 IP 。

但是还有几处疑惑,如果节点列表包含 Anycast IP 怎么办?
DCjanus
283 天前
一般是基于一个假设:绝大部分用户不懂配 DNS ,都直接用运营商的 DNS 。
1423
283 天前
发起 DNS 递归解析的机器的 IP 并不是 114 8.8.8.8 1.1.1.1 这些
realpg
283 天前
@DCjanus #3
不是这样的
内部会议一般这么描述:
忽略那群自以为是瞎几把改 DNS 的傻逼 他们慢就慢吧
Jirajine
283 天前
更“现代”的做法是通过 ecs 发送一个客户端的 ip 段,根据这个 ip 段分区。
古老的做法是用户默认使用运营商提供的递归解析器,这个递归解析器的 ip 和最终用户比较近,以这个递归解析器的 ip 分区。
不标准的做法,如各种传统公共 DNS ,是用户通过 anycast 接入,在多地部署递归解析器,通过距离用户最近的递归解析器解析,然后以这个递归解析器的 ip 分区。
这三种方式准确性由高到低。
naminokoe
283 天前
@DCjanus 在国外用运营商 DNS 就是最优选择,自己瞎改反而不能用。
nrtEBH
283 天前
绝大部分应该是根据用户递归 dns 的 ip 来判断的 不确定现在国内运营商是否支持 ecs 这种协议 有内部人士知道么
picone
283 天前
以前百度的 GTC 就是根据用户设置的 DNS 来的,所以很不准,会出现跨区域调度。所以这就是为什么设置运营商的 DNS 速度会更快。

后来有了 HTTPDNS ,直接拿到用户 IP ,所以就更准确调度了。
thetbw
283 天前
cloudflare 有类似服务,配置多个服务器 ip ,然后 dns 查询就近返回
Betterr
283 天前
@thetbw 这我倒是没用过,愿闻其详。我只用过 Cloudflare 的“橙色云” CDN 。不过如果使用 CF 的话,和其他国内的服务商(例如 DNSPOD )比起来的话,在查询方面是否有更高的延迟呢?
Betterr
283 天前
@thetbw 刚刚去了解了一下,这是一个付费功能。https://developers.cloudflare.com/load-balancing/
thetbw
283 天前
@Betterr 是的,付费,不知道国内厂商有没有类似的功能
l4ever
283 天前
@thetbw 阿里云智能 DNS 解析, 早就用上了.
mohumohu
282 天前
6 楼讲的很清楚了。要查看自己的 DNS 的实际出口可以用 nslookup whoami.03k.org

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961037

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX