当DNS服务器查找客户端的IP地址,并且它收到要查询的多个DNS服务器的列表时,它如何选择一个?同样,当DNS客户端收到FQDN的多个IP地址列表时,它如何选择一个?它是特定于实现的,还是在RFC中涵盖?
解决方法
解析查询的DNS服务器可以根据历史响应时间数据优先考虑它使用列出的服务器的顺序(RFC1035第7.2节).它也可以通过更接近的子网划分优先级(我在RFC中已经看过这个但不记得哪个).如果没有可用的历史记录或子网优先级,则可以随机选择,或者只选择第一个.我已经看到DNS服务器实现做了上面的各种组合.
从列表(A / AAAA记录)中挑选IP地址的客户端程序通常将按DNS服务器返回的顺序(循环)尝试地址.如果客户端无法连接到返回的第一个IP地址,则应尝试第二个,依此类推.例如,所有主流浏览器都这样做,但是许多其他Internet客户端程序“忘记”此步骤并且如果它们无法连接到第一个IP地址则会失败.