Answers:
解析查询的DNS服务器可以根据历史响应时间数据确定其使用列出的服务器的顺序(RFC1035第7.2节)。它还可以通过更接近的子网来确定优先级(我已经在RFC中看到了这一点,但不记得是哪一个)。如果没有历史记录或子网优先级可用,它可以随机选择,也可以简单地选择第一个。我已经看到DNS服务器实现可以进行以上各种组合。
从(A / AAAA记录)列表中选择IP地址的客户端程序通常会按DNS服务器返回的地址顺序尝试这些地址(轮询)。如果客户端无法连接到返回的第一个IP地址,则应尝试第二个,依此类推。例如,所有主要的浏览器都执行此操作,但是许多其他Internet客户端程序“忘记”了此步骤,如果它们无法连接到第一个IP地址,则将失败。
它取决于客户端-与运行Windows商店的所有人特别相关的是,Vista \ Windows Server 2008将使用与早期Windows版本不同的机制(如果已安装ipv6堆栈)来选择地址,该机制将选择第一个地址。 。在许多情况下,这意味着他们将始终选择相同的请求,即,他们不会以与早期版本相同的方式“认可” DNS轮询响应。在此technet博客文章中对此有详细说明。
链接的文章表明Windows 7和Server 2008 R2再次更改了此默认行为,但我找不到任何支持的方法。
值得指出的是,据我所知,这是ipv6的标准兼容行为,尽管我很高兴发现自己错了。