什么是 Anycast DNS?| Anycast 如何与 DNS 配合

Anycast 有助于加快用户的 DNS 解析过程,并确保 DNS 的可靠性。

学习目标

阅读本文后,您将能够:

  • 理解 Anycast 的工作方式
  • 了解 Anycast 如何提高 DNS 解析的速度和效率
  • 说明为什么 Anycast 有助于缓解 DNS 洪水 DDoS 攻击

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是 Anycast DNS?

在 Anycast 中,一个 IP 地址可以应用于许多服务器。Anycast DNS 意味着一组 DNS 服务器中的任何一台都可以响应 DNS 查询,通常由地理位置最接近的一台提供响应。这可减少延迟,提高 DNS 解析服务的正常运行时间,并提供针对 DNS 洪水 DDoS 攻击的防护。

什么是 Anycast?

通常,任何直接连入 Internet 的设备或服务器都具有唯一的 IP 地址。联网设备之间的通信是一对一的;每个通信都从一个特定设备传到通信另一端的目标设备。相比之下,Anycast 网络允许网络上的多台服务器使用相同的 IP 地址或一组 IP 地址。与 Anycast 网络的通信是一对多的。

Anycast DNS

通常,IP 地址的功能类似于街道地址:指定消息前往的一个特定位置。不过,假设一个朋友在全国各地有多个住所。想象一下,寄往其中一所房子的信件能够寄到任何一栋与发送方最接近的房子,即便这封信原本发给另一城市中的房子。这类似于 Anycast 路由的工作方式:一个 IP 地址可以跟多个位置相关联。

例如,对 Cloudflare CDN 中某个 IP 地址的请求可以由 Cloudflare 运营的任何数据中心响应,而不是一台特定的服务器。有关 Anycast 以及 CDN 如何使用它的更多信息,请参阅“什么是 Anycast?”。

Anycast DNS 如何工作?

DNS 代表域名系统,它是将域名(网站名称)转换为机器可读取的字母数字 IP 地址的系统。这称为“解析”域名,DNS 解析器则是管理解析的服务器。当用户想要加载某个网站时,客户端设备需要向 DNS 解析器查询该网站的 IP 地址。

Anycast 能提高 DNS 解析速度。使用 Anycast DNS 时,DNS 查询将转到 DNS 解析器网络,而不是一个特定的解析器,并将路由到最接近的可用解析器。DNS 查询和响应将沿着优化的路径传送,以便尽快答复查询。

Anycast 还有助于保持 DNS 解析服务的高度可用性。如果一个 DNS 解析器离线,网络中的其他解析器仍可以答复查询。

Cloudflare 在 320 个城市建有数据中心,可以在我们的分布式 CDN 上提供 DNS 解析。由于 CDN 属于 Anycast,因此可以从网络中的任何数据中心解析 DNS 查询。网络中的任何 DNS 解析器都可以响应任何 DNS 查询。

若不使用 Anycast,DNS 解析如何工作?

如果 DNS 解析服务不使用 Anycast,则有可能使用单播路由。在单播路由中,每一 DNS 服务器都有一个 IP 地址,每个 DNS 查询都转到特定的服务器。如果该解析器关闭或不可用,则客户端将不得不查询其他 DNS 解析器,从而增加了 DNS 解析过程所需的时间。

Anycast DNS 如何提供抵御 DDoS 攻击的弹性?

DDoS 攻击可以通过 DNS 洪水攻击来针对 DNS 解析器。这些攻击通常利用由 IoT 设备组成的大型僵尸网络,通过大量 DNS 查询来压垮或“冲击”DNS 解析器。(DNS 洪水攻击不同于 DNS 放大攻击,后者使用开放的 DNS 解析器放大 DDoS 攻击。在那种攻击中,解析器本身不是目标。)

Anycast 与 Unicast

Anycast 网络可以提供 DDoS 防护,因为流量可以分散到整个网络。换而言之,对一个 IP 地址的请求可以由许多服务器答复,因此数千个可能会压垮一台服务器的请求会分散到许多服务器。所以,Anycast DNS 不受大多数 DNS 洪水攻击的影响, Cloudflare DNS 服务也因此而能抵御 DDoS 攻击。