DNS轮询
目录
DNS轮询
DNS轮询是一种负载分配、负载平衡或容错技术,通过管理域名系统(DNS)对来自客户计算机的地址请求的响应,按照适当的统计模型,提供多个冗余的互联网协议服务主机,例如,Web服务器、FTP服务器。
在其最简单的实现中,轮回DNS的工作方式是,不仅用一个潜在的IP地址来响应DNS请求,而且用一个潜在的IP地址列表来响应承载相同服务的几个服务器。列表中的IP地址被返回的顺序是轮回这一术语的基础。每次DNS响应,列表中的IP地址顺序都会被改变。传统上,IP客户最初尝试与DNS查询返回的xxx个地址连接,因此在不同的连接尝试中,客户将从不同的供应商那里获得服务,从而在服务器之间分配整体负载。
一些解析器试图对列表重新排序,以优先考虑数字上较近的网络。这种行为在 IPv6 的定义过程中被标准化,并被指责为破坏了循环负载平衡。一些桌面客户端在连接超时达30秒后确实会尝试其他地址。
DNS轮询经常被用来在一些网络服务器之间进行负载平衡。例如,一家公司有一个域名和三个相同的网站副本,分别驻留在三个服务器上,有三个IP地址。DNS服务器将被设置为使该域名有多个A记录,每个IP地址一个。当一个用户访问主页时,它将被发送到xxx个IP地址。第二个访问主页的用户将被发送到下一个IP地址,而第三个用户将被发送到第三个IP地址。在每一种情况下,一旦IP地址被送出,它就会被送到列表的最后。因此,第四个用户将被发送到xxx个IP地址,以此类推。
在少数情况下,一个轮回的DNS名称被称为转子,因为它在备选的A记录中轮流使用。
缺点
虽然容易实现,但轮询DNS也有一些缺点,如DNS层次结构本身的记录缓存,以及客户端地址缓存和重用所产生的缺点,它们的组合可能难以管理。不应仅仅依靠DNS轮询来获得服务的可用性。如果列表中某个地址的服务出现故障,DNS将继续发放该地址,客户仍将试图到达无法运行的服务。

DNS轮询本身可能不是负载平衡的最佳选择,因为它只是在每次查询名称服务器时交替使用地址记录的顺序。因为它不考虑交易时间、服务器负载和网络拥堵,它对有大量均匀分布的连接到同等能力的服务器的服务效果xxx。否则,它只是做负载分配。
有一些方法可以克服这种限制。例如,修改过的DNS服务器(如lbnamed)可以定期轮询镜像服务器的可用性和负载系数。如果一个服务器没有按要求回答,该服务器可以暂时从DNS池中删除,直到它报告说它再次在规格范围内运行。