什么是 Anycast?Anycast 如何工作?

Anycast 是一种网络寻址和路由方法,其中传入的请求可以路由到最多不同的位置。浏览 Anycast 常见问题解答。

Share facebook icon linkedin icon twitter icon email icon

Anycast Network

学习目标

阅读本文后,您将能够:

  • 说明 Anycast 网路路由
  • 区分 Anycast 和单播
  • 了解 Anycast 如何缓解 DDoS 攻击

什么是 Anycast?

Anycast 是一种网络寻址和路由方法,可以将传入请求路由到各种不同的位置或“节点”。在 CDN 的上下文中,Anycast 通常会将传入的流量路由到距离最近并且能够有效处理请求的数据中心。选择性路由使 Anycast 网络能够应对高流量、网络拥塞和 DDoS 攻击

Anycast CDN diagram

Anycast 如何工作?

Anycast 网络路由能够跨多个数据中心路由传入的连接请求。当请求进入与 Anycast 网络关联的单个 IP 地址时,网络将根据某种优先级排序方法分发数据。通常,通过选择与请求方距离最短的数据中心来优化选择特定数据中心的选择过程,从而缩短延迟。Anycast 的特征是许多关联中的一对一,并且是 Internet 协议中使用的 5 种主要网络协议方法之一。

为什么使用 Anycast 网络?

如果同时向同一源站服务器发出许多请求,该服务器可能会不堪重负,无法有效响应其他传入请求。在 Anycast 网络中,主要流量不是由一台源站服务器来承担,其负载可以分散到其他可用的数据中心,每个数据中心都具有能够处理和响应传入请求的服务器。这种路由方法可以预防源站服务器扩充容量,而且能避免向源站服务器请求内容的客户端遭遇服务中断。

Anycast 和单播有什么区别?

大多数 Internet 通过称为“单播”的路由方案工作。在单播下,网络上的每个节点都有一个唯一的 IP 地址。家庭和办公室网络使用单播;如果一台计算机连接到无线网络并收到一条消息,指出 IP 地址已被使用,这时发生了 IP 地址冲突,因为同一单播网络上的另一台计算机已在使用同一个 IP。在大多数情况下,这是不允许的。

Unicast CDN diagram

如果 CDN 使用单播地址,流量会直接路由到特定的节点。当网络遇到异常流量时(例如在 DDoS 攻击期间),这会造成漏洞。由于流量直接路由到特定的数据中心,该位置或其周围的基础设施可能会被流量所压垮,进而可能导致合法请求遭受拒绝服务


使用 Anycast 意味着网络可以极有弹性。由于流量会找到最佳路径,因此整个数据中心脱机也没有关系,流量会自动流向邻近的数据中心。

Anycast 网络如何缓解 DDoS 攻击?

在其他 DDoS 缓解工具过滤掉一些攻击流量后,Anycast 会将剩余的攻击流量分散到多个数据中心,以防止任何一个位置被请求压垮。如果 Anycast 网络的容量大于攻击流量,就可以有效缓解攻击。在大多数 DDoS 攻击中,许多受损的“僵尸”或“机器人”计算机被用来组建成所谓的僵尸网络。这些计算机可以在网络上四处分散,产生大量流量,以致压垮典型的单播连接机器。

Anycast/Unicast under attack

正确实施 Anycast 的 CDN 可以扩大接收网络的表面积,使得来自分布式僵尸网络的未过滤拒绝服务流量能被 CDN 的各个数据中心吸收掉。因此,随着网络规模和容量的不断扩大,针对使用 CDN 的任何人发起有效 DDoS 的难度也越来越高。


设置一个真正的 Anycast 网络并不容易。正确实现需要 CDN 提供商维护自己的网络硬件,建立与上游运营商的直接关系,并调优他们的网络路由,以确保流量不会在多个位置之间“交替”。这篇 Cloudflare 博客文章阐述了 Cloudflare 如何在没有负载均衡器的情况下使用 Anycast 来进行负载均衡。