Anycast网络

Anycast是一种网络寻址和路由方法,一个IP地址对应多个服务器。路由器根据跳数、距离、成本、延迟、拥挤程序选择路径。

在CDN中Anycast通常将传入的流量路由到最近的数据中心,以便能将请求快速送达服务器。选择性路由的特性使Anycast网络,在面对高流量、网络拥塞和DDoS攻击时具有很好的弹性。

2002年10月21日,整个Internet核心根服务器遭受重大攻击。一种协作式分布式DoS攻击,旨在使13个域名根服务器脱机。

由于根服务器运营商早已预见此类攻击,DDoS无法聚集足够的流量攻陷根服务器。

这次攻击让DNS社区意识到,必须采取更多的措施阻止未来的攻击。

之后得出的一个关键结论,使用一种称为Anycast的技术,对根服务器进行更加广泛的镜像,将攻击的风险分散到更广泛的区域。

在根服务器遭受攻击的五年后,2007年2月,第二次大规模DDoS再次出现,仍以攻陷域名根服务器为目标。

这次攻击的流量持续的时间,是2002年的十倍。这次攻击损害了13台根服务器中的两台,两个受影响的服务器,是当时唯一未实施Anycast的服务器。

路由方案

单播(unicast)、组播(multicast)、广播(broadcast)、anycast(任播)。

组播和广播是所谓的一对多路由方案。使用广播,一个节点发送的数据包会到达所有接收者节点。广播不再被广泛使用,实际在IPv6中就没有实现。

单播和anycast是一对一的路由方案。数据包都有一个发送者和一个接收者。

两者之间的区别在于,通过单播发送的数据包只有一个可能的目的地,对于Anycast,则存在多个可能的目的地,网络本身会选择最优先的路由。

在广域网上。Internet选择从发送方到接收方的最短路径。在局域网中,使用路由器指定的权重设置首选项。

Anycast

在anycast中,一组服务器共享相同的IP地址,并将数据从源计算机发送到拓扑上最接近的服务器。以此减少延迟和带宽成本,缩短用户的加载时间,提高可用性。

Anycast与BGP协议相连,边界网关协议确保路由器的所有邻居都知道,通过该路由器能到达的网络,以及网络距离。

Anycast主要原理是在多个路由器的BGP消息中声明一个IP地址范围。当它在互联网上传播时,路由器就会知道哪个邻居提供了最短的IP地址路径。