什么是循环 DNS?

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

Share facebook icon linkedin icon twitter icon email icon

循环 DNS

学习目标

阅读本文后,您将能够:

  • 描述循环 DNS
  • 概述使用循环 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。