用户使用的 DNS ,IP 都不一样,是如何去实现分区解析的呢?
1
igeeky 2023-07-30 22:06:14 +08:00
大概是这个协议: edns-client-subnet
https://blog.csdn.net/ai2000ai/article/details/98970374 就是一个 DNS 扩展协议, 让 DNS 服务器能拿到用户 IP. 根据用户 IP 的不同, 解析结果也不同. |
2
Betterr OP @igeeky 我看有文章指出 ECS 的兼容性不是很好,不过这些文章都挺旧的了。在 2023 年的今天,ECS 的支持情况如何?运营商普遍支持了吗?
刚刚看了一篇文章: https://docs.varnish-software.com/tutorials/dns-based-gslb/ 大概讲了如何通过 PowerDNS 实现 GSLB 。通过根据用户 IP 或用户所使用 DNS 的 IP 与节点列表选择最接近的子网的 IP 。 但是还有几处疑惑,如果节点列表包含 Anycast IP 怎么办? |
3
DCjanus 2023-07-30 22:23:06 +08:00
一般是基于一个假设:绝大部分用户不懂配 DNS ,都直接用运营商的 DNS 。
|
4
1423 2023-07-30 23:54:00 +08:00
发起 DNS 递归解析的机器的 IP 并不是 114 8.8.8.8 1.1.1.1 这些
|
6
Jirajine 2023-07-31 01:22:28 +08:00
更“现代”的做法是通过 ecs 发送一个客户端的 ip 段,根据这个 ip 段分区。
古老的做法是用户默认使用运营商提供的递归解析器,这个递归解析器的 ip 和最终用户比较近,以这个递归解析器的 ip 分区。 不标准的做法,如各种传统公共 DNS ,是用户通过 anycast 接入,在多地部署递归解析器,通过距离用户最近的递归解析器解析,然后以这个递归解析器的 ip 分区。 这三种方式准确性由高到低。 |
8
nrtEBH 2023-07-31 08:45:10 +08:00
绝大部分应该是根据用户递归 dns 的 ip 来判断的 不确定现在国内运营商是否支持 ecs 这种协议 有内部人士知道么
|
9
picone 2023-07-31 10:44:00 +08:00
以前百度的 GTC 就是根据用户设置的 DNS 来的,所以很不准,会出现跨区域调度。所以这就是为什么设置运营商的 DNS 速度会更快。
后来有了 HTTPDNS ,直接拿到用户 IP ,所以就更准确调度了。 |
10
thetbw 2023-07-31 11:39:34 +08:00
cloudflare 有类似服务,配置多个服务器 ip ,然后 dns 查询就近返回
|
11
Betterr OP @thetbw 这我倒是没用过,愿闻其详。我只用过 Cloudflare 的“橙色云” CDN 。不过如果使用 CF 的话,和其他国内的服务商(例如 DNSPOD )比起来的话,在查询方面是否有更高的延迟呢?
|
12
Betterr OP @thetbw 刚刚去了解了一下,这是一个付费功能。https://developers.cloudflare.com/load-balancing/
|
15
mohumohu 2023-07-31 20:55:38 +08:00 1
6 楼讲的很清楚了。要查看自己的 DNS 的实际出口可以用 nslookup whoami.03k.org
|