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

2023-07-30 21:53:02 +08:00
 Betterr

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

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

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

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

后来有了 HTTPDNS ,直接拿到用户 IP ,所以就更准确调度了。
thetbw
2023-07-31 11:39:34 +08:00
cloudflare 有类似服务,配置多个服务器 ip ,然后 dns 查询就近返回
Betterr
2023-07-31 12:20:15 +08:00
@thetbw 这我倒是没用过,愿闻其详。我只用过 Cloudflare 的“橙色云” CDN 。不过如果使用 CF 的话,和其他国内的服务商(例如 DNSPOD )比起来的话,在查询方面是否有更高的延迟呢?
Betterr
2023-07-31 13:15:15 +08:00
@thetbw 刚刚去了解了一下,这是一个付费功能。https://developers.cloudflare.com/load-balancing/
thetbw
2023-07-31 13:41:02 +08:00
@Betterr 是的,付费,不知道国内厂商有没有类似的功能
l4ever
2023-07-31 14:05:30 +08:00
@thetbw 阿里云智能 DNS 解析, 早就用上了.
mohumohu
2023-07-31 20:55:38 +08:00
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