CloudFlare 的 Anycast 是如何选择路线的?

2018-11-02 23:29:08 +08:00
 leavic
最近准备做一个网站,想在全球各地都有较好的访问速度,分别在欧洲,亚洲,北美放了三台服务器。
DNS 解析放在 CloudFlare,给域名添加了 3 个 A 记录,分别对应上述 3 地的服务器 IP。

我试了一下仅仅开启 DNS 功能不开启 CDN 加速,分别从不同地区解析域名,

但很奇怪的是,我从香港的 IP 解析域名会解析到欧洲,从加拿大解析域名会解析到亚洲,而且一直在变动,没什么规律可言。

那么 CF 的整个 Anycast 到底要如何使用呢?
必须开启这些 A 记录的 Http Proxy(CDN)功能才能开启 Anycast 吗?
如果不开启的话,CF 不会自动根据用户的 IP 解析到最近的 服务器上吗?还是随机的从 A 记录中选择一条?
4627 次点击
所在节点    问与答
10 条回复
xfspace
2018-11-03 00:11:36 +08:00
对 Anycast 有什么误解

你这是 A 记录轮询

CDN 也不完全是 Anycast

https://en.wikipedia.org/wiki/Anycast
oovveeaarr
2018-11-03 00:12:24 +08:00
Anycast 第一步,你要有 AS,或者所在 AS 的管理员愿意帮你配置。
CloudFlare 开启它的 CDN 功能后,会给你分配一个已经配好 Anycast 的 IP,而不是反过来。
多 A 记录大部分是随即取一个,但是概率不均等(忘记在哪看到的了),部分类库只会取返回的第一条 A 记录。
leavic
2018-11-03 00:16:04 +08:00
@xfspace 那到底 cf 上要如何设置呢?
leavic
2018-11-03 00:17:57 +08:00
@oovveeaarr 那请问,根据访客地址解析到不同的服务器上应该用什么方法呢?
oovveeaarr
2018-11-03 00:19:48 +08:00
@leavic #4 找支持 geodns 的,比如说 cloudxns,dnspod 之类的
收费的 route53 啥的
Cipool
2018-11-03 00:23:16 +08:00
@leavic 你直接用 cf 提供的 CDN 节点不就行了,你打开 CDN 开关后 cf 就会给你解析默认全球 anycast 的加速 IP (中国应该是减速)
msg7086
2018-11-03 02:38:18 +08:00
Anycast 就是一个 IP 对应多个物理地址,你什么都不用管,只要把单个记录解析到单个 Anycast 上就行了。

随便拿个 IP 举例:104.25.54.1

这个 IP 你在美国东部的话你会发现在纽约附近,西部的话会在湾区附近,欧洲的话则是到法国附近。
这就是 Anycast。

你说的这个要用 GeoDNS。
如果要做 Anycast 的话,也是「你」做 Anycast,而不是你去用 CF 的 Anycast。谁要建 Anycast 谁去架机器。不能你架机器然后让 CF 做 Anycast。(也不是不能做,只是可能要定制方案了。)

添加 3 个 A 记录就是轮流解析,当然是乱跳了。
kslr
2018-11-03 10:00:39 +08:00
没有必要多地域
kslr
2018-11-03 10:01:29 +08:00
如果你需要 gtd 那就需要第三方厂商
myhero
2019-09-29 03:08:38 +08:00
留着看看

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

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

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

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

© 2021 V2EX