什么是循环 DNS?

循环 DNS 是一种负载均衡技术,涉及对单个域名使用多个不同的 IP 地址。

学习目标

阅读本文后,您将能够:

  • 描述循环 DNS
  • 概述使用循环 DNS 进行负载均衡的利弊

相关内容


想要继续学习吗?

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

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

复制文章链接

所有 Cloudflare 计划中均包含免费 DNS

什么是循环 DNS?

循环 DNS 是一种负载均衡技术,这种均衡是通过称为权威性名称服务器的 DNS 服务器完成的,而不是使用专门的负载均衡硬件。当网站或服务的内容托管在多台冗余 Web 服务器上时,可以使用循环 DNS。向 DNS 权威性域名服务器查询 IP 地址时,服务器每次轮流发出一个不同的地址。如果冗余 Web 服务器在地理位置上分隔,使传统的负载均衡变得困难,这时循环 DNS 特别有用。循环因为易于实现而闻名,但它也有诸多缺点。

启用了循环的 DNS 服务器将具有多个不同的 A 记录,各自有相同的域名和不同的 IP 地址。每次查询 DNS 服务器时,它都会以循环方式将最近响应的 IP 地址发送到队列后面。循环 DNS 服务器中的 IP 地址就像击球队伍中的运动员一样:每个人都轮到一次,然后移到队伍的后面。

循环 DNS 有什么缺点?

由于 DNS 缓存客户端缓存的关系,循环方法并不总能提供均匀分布的负载均衡。如果用户向流量特别高的递归解析器发出对特定网站的 DNS 查询,则该解析器将缓存该网站的 IP,并可能会向该 IP 发送大量流量。

另一个缺点是无法依赖巡滦来提高站点可靠性;如果其中一台服务器出现故障,DNS 服务器仍会将该服务器的 IP 保留在循环中。因此,如果有 6 台服务器,其中一台已脱机,那么将有六分之一的用户会遭遇拒绝服务。此外,循环 DNS 不会考虑服务器负载、事务处理时间、地理位置距离,以及其他可以配置传统负载均衡的因素。

一些高级循环服务有办法克服其中一些缺点,例如能够检测无响应的服务器并将其从循环中剔除,但无法解决缓存问题。许多 DNS 提供商(如 Cloudflare DNS)支持循环 DNS。