| 关键词: Anycast 地址 报文 路由 主机 服务 攻击 节点 成员 组成员 |
之前的文章提到过Anycast技术,现在我们来分析下何为Anycast? 任播(Anycast)提供的是一种无状态的、尽力而为的服务,目前对于 Anycast 的中文译称主要有任播、泛潘、选播等。最初是在 RFC1546 中提出并定义的,根据 RFC1546 的说明 IPv4 的任播地址不同于 IPv4 的单播地址,它建议从 IPv4 的地址空间分配出一块独立的地址空间作为任播地址空间。任播的基本概念是从物理主机设备中分离出的逻辑服务标识符,任播地址可以根据服务类型来分配,使得网络服务担当一个逻辑主机的角色。 在应用中,任播 (Anycast) 是一种网络寻址和路由的策略。Anycast 采用将一个单播地址分配到处于 Internet 中多个不同物理位置的主机上,发送到这个主机的报文被网络路由到路由协议度量的最近的目标主机上。 在这里我们分析下Anycast与Unicast和Multicast的区别。 Unicast是点对点传输,如我们的TCP请求,而Multicast是一对多的传输,如即时通信技术上的应用。对于Anycast技术,则是集Multicast和Unicast特性于一身的。 从宏观上来说,Anycast类似于Multicast,同一种类型的数据流同时存在多个接收者。 而从微观上来说,Anycast又有着Unicast的唯一性。每一个单独的IP会话都能够找到唯一的源主机和目标主机。 Anycast有如下优点: a.不同客户端将访问不同目的主机,此过程对客户端透明,从而实现了目的主机的负载均衡。 b.减弱了DDoS攻击对用户带来的影响。当 Anycast 组中某一个成员或者几个成员受到攻击时,负责报文转发的路由器可以根据各个组成员的响应时间来决定报文应该转发到哪个成员上,这样受到攻击的成员由于没有响应,所以报文就不会被转发到那里,同时,由于 Anycast 提供的服务访问透明性,组成员也相对较难受到DDoS攻击。 c.减弱了网络拥塞给用户带来的影响。同上面的道理,当 Anycast 的某些组成员处在拥塞的网段时,它的响应时间就较长,报文可以被转发到响应较好的成员那里。 d.部署Anycast可以获得设备的高冗余性和可用性。 当然,Anycast也有部分缺点,如下: a.使用任播中的共享单播地址不能作为客户端发起请求,因为请求的响应不一定能返回到发起的任播单播地址。因此,目前任播仅适合一些特定的上层协议。如大范围的DNS部署,CDN数据缓存,数据中心。 b.Anycast严重依赖于BGP的选路原则,在整个Internet网络拓扑复杂的情况下,会导致次优路由选择。 这里要提下Anycast在减弱DDOS攻击方面,由于Anycast在DNS部署方面的优越性,同时Anycast对系统作了冗余,因此,即使受到DDOS攻击,只有部分节点断服,只是对DNS系统的吞吐有些许影响,不影响整个DNS系统的可用性。即分布式系统中CAP理论的权衡,三者只能满足其二。 BGP Anycast是Anycast应用的典型实例,通过配置多个Anycast组,对每组服务器采用相同的IP,这样,通过BGP路由选择算法就可以找到可提供DNS服务的最近节点,而具体由个节点来服务,这对客户端是透明的。目前,著名的公共DNS服务,如cloudflare的1.1.1.1和google的8.8.8.8等都采用了BGP Anycast部署。 上面提到了相同的 IP,不会冲突吗???其实,当然不会了,Anycast实现的是多地部署,IP地址在不同的广播域中,因此,并不会冲突呀。 这里谈一下全球最快的公共DNS-cloudflare。它们在全球部署了194个数据中心,部署了广泛的 Anycast服务。 ![]() Cloudflare提供了web界面查看各节点的状态,当为Operational为正常工作状态,Re-routed则在之前的某一时刻,进行了路由选择。 ![]() 上面是我对Anycast的认识,如果大家对Anycast技术有新的认识,欢迎在评论区留言,我们共同交流技术! |
| 本文出处: https://www.toutiao.com/i6757131495900447240/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|