DNS服务器返回超过1条logging的目的是什么?

如何使用二级地址? 它是应用程序特定的?

注意:我没有问关于循环的dns。 这可以通过一次只返回1个地址来完成。

我相信是循环的DNS。 DNS服务器返回所有匹配该Alogging的服务的IP。 客户端/浏览器决定使用哪个IP。

如果客户端无法连接到第一个IP地址,则可以尝试连接到列表中的下一个IP地址(如果提供了多个IP地址)。 您可以将其视为“便宜”的容错解决scheme。 地址的顺序被改变(循环),所以它也可以作为一个“廉价”的负载平衡。

首先,DNS协议被devise成独立于实际存储在其中的数据。 有很多loggingtypes需要多个答案,如MX(邮件服务器)和NS(名称服务器)logging。 一般来说,如果你正在运行一个体面的冗余站点,你应该总是有多个这样的。

但是,对于地址,有时候人们喜欢返回多个logging。 DNS规范规定,如果你得到多个,你应该“随机select一个”。 这对于跨多台机器传输负载非常有帮助,但实际上并不像您想的那样理想,这就是为什么基于IP的负载平衡器更常见的做法,而不是使用多个答案。 因此,多A或多AAAA(IPv6)比以前使用得less。

但请记住:DNS,协议,被devise成不关心它携带的数据。 即使对最终应用程序无用,它也会乐意提供特定types的多个logging。

我知道这是一个古老的问题,但我偶然发现,并认为我会把我的2美分。 请反驳,因为我喜欢听别人的观点。

使用多个DNS条目是容错的一种forms,但我并不总是认为它是一个“便宜”的forms。 这只是便宜的,如果这是您的高可用性(HA)的总体计划。 如果要构build高度可用的体系结构,则还需要其他机制,例如跨区域和区域的集群。 一旦开始对基础架构进行集群pipe理,您将需要某种位于集群前面的负载均衡设备。 为了使您的负载平衡器高度可用,并防止单点故障(SPF),您还需要对负载平衡器进行群集。 这就是问题所在,而多个DNSlogging解决了一个非常现实的问题。 一旦对负载均衡器进行了集群化,没有任何真正的方法可以让您的系统高度可用,而无需引入另一种机制,远离纯粹的TCP / IP和路由。 这是多个DNSlogging解决问题的地方。

如果您拥有一个域名(www.example.com),而且您正试图使其高度可用,并且您已经将您的所有基础架构聚集在多个区域和可用区域,并花时间实施一个负载均衡集群,您将需要将您的域指向负载均衡器集群中的所有负载平衡端点。 (即返回多个DNS Alogging)

这样,每次客户端请求www.example.com,他们将获得2个或更多的IP地址作为回报。 如果第一个成功,将被使用,但是如果不成功,则会使用第二个IP地址(或第三或第四等)。 这些初始IP地址是您的负载均衡器的IP地址。 然后将相应的请求路由到群集。