![ISP 和计算机是否按顺序使用域名的名称服务器?](https://linux22.com/image/607341/ISP%20%E5%92%8C%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%98%AF%E5%90%A6%E6%8C%89%E9%A1%BA%E5%BA%8F%E4%BD%BF%E7%94%A8%E5%9F%9F%E5%90%8D%E7%9A%84%E5%90%8D%E7%A7%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
向我的域名注册商提供名称服务器时,即名称服务器 1 dns1.example.com 名称服务器 2 dns2.example.com 名称服务器 3 dns3.example.com 名称服务器 4 dns4.example.com
ISP 和计算机是否总是按顺序使用名称服务器?即,当名称服务器 1 启动时,将使用它,如果没有启动,将尝试使用名称服务器 2
或者 ISP 和计算机可以使用不同的顺序吗?
答案1
您无法保证并且不应依赖 DNS 解析器使用的顺序。DNS 缓存会使此类预测更加复杂。
答案2
一般来说,客户端解析器返回的 RR 顺序未定义. 某些 RR 类型允许指定优先级或优先权 - 尤其是 MX 和 SRV 资源类型。
如果您的实现不使用其中之一(并且您要求的 NS RR 是无序的),则应该将所有 RR 响应视为无序的,这是一个保守的假设。
话虽如此,大多数 DNS 服务器实现都会按照您在区域文件中定义的顺序提供 RR,除非您启用 DNS-roundrobin。缓存解析器可能已启用循环调度但通常不会。
IPv4 的客户端缓存通常也不会进行太多的重新排序。不过 IPv6 的情况就不同了。RFC3484 IPv6 的默认地址选择在第 6 节中定义了重新排序,该重新排序至少在 Microsoft DNS 客户端中实现。
DNS 服务器递归到您的区域时最终将使用什么 NS RR,很大程度上取决于其实现。请记住,(缓存)DNS 服务器不会依赖操作系统的实现来解析 DNS 查询,而是自带一个,可能包括同时查询多个服务器并选择响应速度最快的服务器来处理后续请求的能力。