GCP的负载均衡,你需要了解一点Anycast技术

最近作者在阅读Google云平台的技术文档时,在与负载均衡相关的内容中,经常会遇到一个概念,Anycast。那什么是Anycast?它之于负载均衡又有何作用?本文通过对一篇英文文章的翻译和提炼来进行解释。

当我们在浏览器的地址栏里输入www.someplace.com并按下回车,该网站的网页通常在几秒中会被展示出来。而在这个场景的背后,为了把我们的网页请求路由到该网站地址以便让我们最终能够看到页面的内容,其实还发生了一系列的事情,其中的一个重要协议便是BGP协议。BGP协议保证了浏览器发出的请求报文经由最佳的路由转发到该网站的服务器。

在网络中,有多种方法可以对目标服务器进行寻址,而在本文中,我们重点讨论其中的一种,它就是Anycast。

什么是Anycast?

在Anycast技术中,一组服务器在网络中共享一个相同的IP地址。当一个客户端A想要访问后台服务时,它的请求会被路由到离A「逻辑上最近」的服务器上,这样可以降低时延并节约带宽,减少网页加载的时间,并能够提高可用性。值得注意的是,「逻辑上最近」并不等同于「地理上最近」,只不过在大多数情况下两者确实是等同的。

Anycast之所以与BGP协议联系紧密,是因为在BGP协议中,一个路由器的所有「邻居」都知道通过该路由器所能够到达的网络,以及到达这些网络所需要走的距离。(译者注:所谓的「距离」在路由器的世界中通常指「跳数」,报文每被路由器转发一次就代表一跳)。这其中的主要原理是:路由器之间的BGP报文会将其自身携带的IP地址范围信息在网络中传播开来,最终网络中的所有路由器都学习到通往某一个IP地址的最短距离。

其他的地址分配方式

这里列举一些其他常用的寻址方式,它们用于支持流量在网络中的转发

单播(Unicast Addressing)意味着一个IP地址只标识一台服务器的端点,在传统的DNS部署中会使用这种方式。


单播

组播(MulticastAddressing)表示一个报文可以通过组播组地址被路由到一组特定的服务器端点,是一种「一对『特定多』 的映射关系,多用于流媒体的场景。


组播

广播(Broadcast Addressing)广播报文使用广播地址,从发送者被路由到所有可达的服务器端点。在连接了服务器端点的网段中,网络会自动将报文进行复制和转发。


广播

DNS Anycast

在使用单播的方式时,DNS解析客户端可以配置一个包含多个DNS域名服务器的列表。假设列表中第一台域名服务器因某些原因挂掉,DNS解析客户端将不会收到它对解析请求的响应,通常在等待一段时间后(与操作系统相关,通常1到5秒),DNS解析客户端会转向列表中第二台域名服务器进行解析,以此类推。但是当DNS解析客户端再次需要解析域名时,它并没记住「第一台域名服务器已经不再正常工作」这件事情,而还是会从列表中第一台域名服务器开始轮询,而这显然会使最终域名解析的时间变慢。

而配置Anycast地址的DNS解析客户端,则可以减小这样的解析延迟,这背后其实是路由协议的功劳。下图中,三台DNS域名服务器共享一个IP地址 123.10.10.10,在DNS客户端中也配置这一个地址。


DNS Anycast

在这样的配置中,当三台 Server 对解析客户端都可达时,根据路径最近原则,三层路由会将DNS客户端的报文通过路由器 R1 转发给 ServerA,。如果 ServerA 不再可达,则报文会通过路由器R2和R3被转发给 ServerB,而且转发给A的路由将会从路由表中被清除,以便后续的报文都不再往ServerA转发,直到ServerA恢复正常后,它的路由才会重新加入网络。

举一个生活中的例子来帮助理解,如果Kane想喝星巴克,那他可以在百度地图上进行搜索。百度地图会给他导航到离他最近的星巴克。如果刚好离他最近的星巴克倒闭了(假设百度地图知道这件事),百度地图会给他导航到当前离他最近的其他星巴克门店。

何时使用Anycast技术?

很多网站访问量,并发量不大,只有一台服务器,这种情况下是不需要用到anycast技术的。Anycast更适合于那些访问量和并发量很大的网站,有多台服务器,分布在不同的地址位置,最典型的例子之一,我想就是谷歌,在全球不同的地方都有节点,不同地域的用户即使访问相同的域名,请求也会被路由到与之最近的服务器。


DNS Anycast


最后我们来总结一下Anycast技术的优势:

性能更优:因为流量总是被路由到就近的节点,因此时延更低

更高的可用性:通过多台服务器做到冗余备份,即使某台服务器挂掉,服务依然可用。

负载均衡:很显然,处于不同位置用户的流量根据就近原则转发到相应的服务器节点,这也是一种负载均衡

降低Dos攻击的影响:Dos攻击可以被限制在局部的服务器上,而非同时影响所有的服务。

本次的技术分享就是这样,感谢阅读。

英文原文链接:https://www.imperva.com/blog/how-anycast-works/

参考:https://www.cnblogs.com/zafu/p/9168617.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容