Anycast的实现方式一般是在服务器上起相同地址的环回口,通过等价路由的方式来实现,问题来了:
1.对网元需要怎样的需求?
2.路由协议上是否只是简单地宣告?
3.对不同协议(ospf,bgp)是否有差别?
4.路由收敛对服务的影响不吝赐教?
泛播技术在以前的文章也有介绍,有兴趣的读者可以前去阅读。
什么是泛播Anycast?
先举一个生活中的例子,最早某大型超市开在古北水城路上,只此一家,做为亚洲年销售额第一的超市,常常被挤的水泄不通,连浦东的人也慕名远道而来。没多久时间,某大型超市就在全市各个区开了十多家,顾客通常去最近的一家,这样客户分流,就没有那么拥挤,用户满意度提高,销售额也大幅增长。但如果附近的门店关门歇业,顾客则需要到稍远的门店购物。
泛播也是采用以上的思路,将相同的IP地址配置在不同地理位置的服务器上,每台服务器提供相同的服务,甚至数据都是同步的,服务器服务范围为以自己为原点,半径在几十到几千公里不等的辐射圈,用户则依据路由表最近原则,选择最靠近自己的服务器来服务,一旦附近的服务器罢工,客户的访问流量会切换到稍远一些的服务器。
泛播,我们每天都在使用,但很多人没有意识到,比如DNS域名解析,全球13个根域名服务器几乎都使用泛播,在各个大洲同时部署相同IP的服务器,各个洲的用户会自动选择自己洲的服务器,距离近,访问延迟最小,用户体验会好得多。
但如果一个洲只有一台服务器,一旦挂了,会切换到其它洲的服务器,如果希望切换永不发生,则需要在一个场点部署多台服务器,组成一个Cluster,不光可以负载均衡,还可以冗余备份。
如果泛播IP面向全球用户,IP地址需要通过IGP/BGP、或直接BGP通告出去,最终都会以一条BGP路由呈现在路由表里,如果一个运营商泛播服务器只给本运营商提供服务,则需要使用BGP No_Export 属性。
如果泛播面向企业网内用户,使用IGP通告,用户则认为Cost值小的,距离自己最近,所以需要把跨越遥远距离(不同城市)的WAN链路Cost值修改的很巨大,比如1000,使得用户会优先选择相同城市的泛播服务器。
如何防止流量黑洞?
一直没有谈一个问题,假定一个场点只有一台泛播服务器,突然崩溃了,而路由协议没有意识到它挂了,依然把路由广播出去,那附近的用户依然会选择它来服务,于是流量全部被丢(流量黑洞),这不是我们希望看到的,最好服务器上运行IGP/BGP,一旦挂了,其它路由器能很快检测到超时,然后撤销路由通告,附近的用户就不会再访问它。
但以上只能检测到链路失效(Down)、服务器死机,但无法检测到服务进程停止工作,所以最好还能有一种监控进程健康工作的机制,一旦进程停止工作,则停止泛播IP的通告。
环回口绑定泛播IP最大的好处
只要服务器处于运行状态,这个环回口就是UP状态,如果有多个物理接口可以网络,则任何一个接口Down,都不妨碍泛播IP的可达,此外环回口可以配置/32位掩码,不会有任何的浪费。
路由收敛对泛播的影响
至于路由收敛对泛播的影响,泛播IP与其它IP没有本质区别,所以路由收敛期间可能会引起访问中断,一旦路由可达,访问立马恢复。
以上基本回答了题主的问题,至于泛播对网元的要求,泛播IP仅仅指把普通的IP配置在多个地方,所以它还是IP,对网元没有特殊要求。
泛播IP不适应的场景
泛播适合DNS域名解析、在线视频CDN、门户网站,但却不适合Long-Lived TCP-Based 应用程序,由于TCP状态信息不在泛播服务器之间同步,一旦切换到其它服务器,则连接状态全部丢失。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处: