循环 DNS 是一种负载均衡技术,涉及对单个域名使用多个不同的 IP 地址。
阅读本文后,您将能够:
复制文章链接
循环 DNS 是一种负载均衡技术,这种均衡是通过称为权威性名称服务器的 DNS 服务器完成的,而不是使用专门的负载均衡硬件。当网站或服务的内容托管在多台冗余 Web 服务器上时,可以使用循环 DNS。向 DNS 权威性域名服务器查询 IP 地址时,服务器每次轮流发出一个不同的地址。如果冗余 Web 服务器在地理位置上分隔,使传统的负载均衡变得困难,这时循环 DNS 特别有用。循环因为易于实现而闻名,但它也有诸多缺点。
启用了循环的 DNS 服务器将具有多个不同的 A 记录,各自有相同的域名和不同的 IP 地址。每次查询 DNS 服务器时,它都会以循环方式将最近响应的 IP 地址发送到队列后面。循环 DNS 服务器中的 IP 地址就像击球队伍中的运动员一样:每个人都轮到一次,然后移到队伍的后面。
由于 DNS 缓存和客户端缓存的关系,循环方法并不总能提供均匀分布的负载均衡。如果用户向流量特别高的递归解析器发出对特定网站的 DNS 查询,则该解析器将缓存该网站的 IP,并可能会向该 IP 发送大量流量。
另一个缺点是无法依赖巡滦来提高站点可靠性;如果其中一台服务器出现故障,DNS 服务器仍会将该服务器的 IP 保留在循环中。因此,如果有 6 台服务器,其中一台已脱机,那么将有六分之一的用户会遭遇拒绝服务。此外,循环 DNS 不会考虑服务器负载、事务处理时间、地理位置距离,以及其他可以配置传统负载均衡的因素。
一些高级循环服务有办法克服其中一些缺点,例如能够检测无响应的服务器并将其从循环中剔除,但无法解决缓存问题。许多 DNS 提供商(如 Cloudflare DNS)支持循环 DNS。