前两天好奇,ping 了一下 8.8.8.8,发现延迟一直在 40ms 出头,8.8.8.8 是美国的 IP,理论上来说中美之间的网络通讯是不可能这么快的,我 trace 了一下这个 IP,目的地居然是香港。
https://i.imgur.com/JcOyAf9.png
我之前认为只有域名可以通过 CDN 加速的形式来实现不同地区不同地理位置服务器,这种同一 IP 不同地区不同地理位置服务器技术是如何实现的?
1
Love4Taylor 2019-09-28 13:04:14 +08:00
Anycast
|
2
xiri 2019-09-28 13:06:51 +08:00 via Android
anycast,中文一般叫任播,你去了解一下 ip 的广播等相关知识就能找到原理了
|
3
xiri 2019-09-28 13:15:10 +08:00 via Android 10
@xiri 简单来说就是在广播 ip 的时候将一整组服务器同时广播出去,用户访问的时候被路由到任一台服务器上都能获得服务,而路由过程中一般会自动选择最近的节点作为下一跳,这样就达到了就近选择服务器的目的。
不过这种技术一般只能应用于 dns 这种无状态服务,因为互联网上的路由随时都在变,你可能上一秒还在跟 hk 的服务器通信,下一秒就给你连到美国去了,没法用作一般服务 |
4
skyeycirno 2019-09-28 13:27:40 +08:00
任播,全球各地都有,和 cloudflare 的 cdn 一样
|
5
huiyifyj 2019-09-28 13:29:06 +08:00 via Android 1
兄弟,好好学点专业知识吧。(除非你大一)
|
7
Raynard 2019-09-28 13:45:09 +08:00
又学习了。。感谢前排众大佬
|
8
ruixue 2019-09-28 14:09:42 +08:00 1
@xiri BGP 路由没那么容易变的,Anycast 都是默认就近访问,不存在上一秒连香港下一秒连美国的情况。Cloudflare 的 CDN 用的就是 Anycast 技术,全球各地的边缘节点都用相同的 2 个 ipv4 地址和 2 个 ipv6 地址提供一般的网页加速服务
|
9
kangzai50136 2019-09-28 14:11:03 +08:00 via Android
牛逼
|
11
ruixue 2019-09-28 17:43:27 +08:00
@txydhr 嗯对,说不存在太绝对了,线路出问题 ISP 调路由再正常不过,应该说在一般的访问情景中路由变动的概率很低,不至于在单次会话中频繁访问到不同地区的服务器,通常不会影响 Anycast IP 提供所谓的一般服务
|
12
flyfishcn 2019-09-28 19:18:51 +08:00
@ruixue #8 如果不人工干预,并不是就近,而是 as-path 最短。as-path 短的不一定就近,长的不一定就远。
|
13
caola 2019-09-28 19:59:31 +08:00
anycast 建议你了解一下,
还有 cloudflare CDN 也是使用这技术 |
14
CernetBoom 2019-09-28 20:19:24 +08:00 via Android
|
15
ruixue 2019-09-28 21:41:14 +08:00
@flyfishcn 人工干预还可能特意舍近求远以降低成本,这个就近的形容只是为了方便描述
@CernetBoom 中间路由时刻动态变化,但是一般不会出现短时间内 Anycast 多个最终目的地来回跳,Cloudflare 这种 CDN 单个访客的访问请求回源的时候一般还是那一个地理位置的边缘节点在帮忙回源 |
16
CernetBoom 2019-09-28 21:44:53 +08:00 via Android
@ruixue 是这样
|
17
mason961125 2019-09-28 21:56:59 +08:00
@ruixue #14 宁好,宁知道 Argo 吗?
|
18
ruixue 2019-09-28 22:05:42 +08:00
@mason961125 Cloudflare 的 Argo 是动态路由优化的很好例子,前帖说的路由不变动其实主要指的是短期访问情景下路由到的 Anycast 目标终点的地理位置固定,不会短时间内跨国来回跳动,而非强调中间路由始终保持不变
|
19
mason961125 2019-09-28 22:07:56 +08:00
@ruixue #16 宁好,我针对的是宁「 Cloudflare 这种 CDN 单个访客的访问请求回源的时候一般还是那一个地理位置的边缘节点在帮忙回源」。
|
20
ruixue 2019-09-28 22:23:55 +08:00
@mason961125 好吧
|
21
Tenlp 2019-09-28 22:34:34 +08:00 via Android
学到了,看来计网没学好
|
22
collery 2019-09-28 22:45:02 +08:00
哈哈,网工专业毕业的我,表示学到了
|
23
zagfai 2019-09-28 23:14:25 +08:00
Google Cloud 的 Load Balance 就是自带这种,贼牛。
|
24
fengyueheng 2019-09-28 23:18:20 +08:00
@mason961125 能正常说话吗?
|
25
flyfishcn 2019-09-29 01:50:51 +08:00
@ruixue 人工干预不全是降低成本啊,不然为什么还需要调优。一个短的 as-path 可能要绕半个地球,一个长的 as-path 可能就在本地。
|
26
myhero 2019-09-29 03:04:32 +08:00
学到了
|
27
ruixue 2019-09-29 08:37:10 +08:00
|
28
deorth 2019-09-29 09:06:14 +08:00
通信专业的我一直以为组播和任播是同一种东西
|
29
j4fun 2019-09-29 11:03:19 +08:00
这个其实你自己都可以实现,只要你买得起很多机房——有钱,就是可以为所欲为啊哈哈哈
|
30
flyfishcn 2019-09-29 14:11:56 +08:00 1
@ruixue 我只是想表达,不加人工干预,默认的选路未必是最好,就近也不是多数人说理解的就近。不加说明,无意中很容易就误导了别人。
在自己没接触 BGP 之前,也是听别人说,BGP 会选择“最佳”路由,ANYCAST 会“就近”选择节点接入,直到自己用了,才知道并不像是说的那样。 |
32
rizon 2019-09-30 12:20:28 +08:00
头一次听说这个东西啊,很有意思啊,虽然不是很懂细节了。
想问下可以借助这个去做劫持吗?比如黑客或者一些阻止可以通过伪装来劫持 |
33
CernetBoom 2019-09-30 20:49:25 +08:00 via Android
@rizon BGP Hijack 的范畴
|