DNS轮循

DNS轮循（）是一种用于同一個域名配置多个网际协议（IP）（例如網頁伺服器、 ）的技术，通过适当的方法响应客户端计算机对IP地址的请求。"Round-Robin DNS" . Cloudflare. Cloudflare, Inc. Retrieved 16 August 2019.

在其最简单的实现中，DNS轮循响应DNS请求的返回结果是多个服务器对应的潜在IP地址列表，而不是单个潜在IP地址Feenberg, Daniel (July 25, 2016). "DNS round robin for web server failover" . Retrieved January 10, 2020.。返回列表中IP地址的顺序是术语轮循（）的基础。对于每次DNS响应，列表中的IP地址的顺序都会被置换。 Liska, A.; Stowe, G. (2016). "Understanding DNS". DNS Security. p. 19.传统上，IP客户端最初尝试使用从DNS查询返回的第一个地址进行连接， Pan, Jianping; Hou, Y. Thomas; Li, Bo (2003). "An overview of DNS-based server selections in content distribution networks". Computer Networks. 43 (6): 695–711. doi:10.1016/S1389-1286(03)00293-7.这样在不同的连接尝试中，客户端将接收来自不同服务器的服务，从而将整体负载分配到不同服务器之间。

一些DNS解析器在实现上尝试重新排序列表，以优先考虑IP地址在数字上“更接近”的网络。这种行为在IPv6的定义过程中被标准化，但也被指责会破坏基于轮循的负载均衡。一些桌面客户端会在连接超时30秒后尝试备用地址。

DNS轮循通常用于在多个Web服务器之间对请求进行负载平衡。例如，一家公司拥有一个域名和相同网页但部署在三个IP地址的三台服务器。这时，设置DNS服务使域名有多个A记录，每个IP地址对应一个。当第一个用户访问网页时，请求将被发送到第一个IP地址。第二个访问主页的用户将被发送到下一个IP地址，第三个用户将被发送到第三个IP地址。在每种情况下，一旦给出IP地址，它就会进入列表的末尾。因此，第四个用户将被发送到第一个IP地址，依此类推。

 缺点 
尽管易于实现，但DNS轮循有许多缺点，例如DNS的分层结构中的缓存记录，以及客户端地址的缓存和重用，这些缺点的组合可能难以管理。同时，不应仅依赖DNS轮循来保障服务的可用性。如果列表中某个地址的服务故障，DNS仍然会继续分发该地址，客户端仍将尝试连接无法访问的服务。

DNS轮循本身可能不是负载均衡的最佳选择，因为只是在每次查询名称服务器时交替地址记录的顺序。由于DNS轮循不考虑业务时常、服务器负载和网络拥塞，所以它最适将大量连接均匀分配到相同容量的服务器上。在其他情况下，它只会进行负载分配，而不是负载均衡。Brisco, Thomas P. (April 1995). [rfc:1794 "RFC 1794 - DNS Support for Load Balancing"]. Retrieved 24 August 2019.

存在克服这些限制的方法。例如，修改过的DNS服务器（例如 lbnamedlbnamed , a load-balanced DNS server implemented in the Perl programming language）可以定期轮循镜像服务器的可用性和负载因素。如果服务器的回复不符合预设参数，则可以暂时从DNS池中移除该服务器，直到下次报告符合参数。

 参见 
任播

 参考 

Category:負載均衡
Category:容错计算机系统
Category:網路術語
Category:域名