我如何确定实际上使用的“活动” DNS 服务器是什么?
如果我这样做,nslookup
Windows 会主动连接到(一个)特定的 dns 服务器。
我的猜测是,它是为具有当前默认网关的网络接口配置的名称服务器,但这是一种非常模糊的说法。
如果我配置了多个网络接口,全部启动,并且都配置了不同的名称服务器,该怎么办?Windows 如何确定要查询哪些 DNS 服务器?
答案1
它由您的绑定顺序决定,该顺序在此处设置:
Control Panel>Network and Internet>Network Connections>Advanced>Advanced Settings
它使用的 DNS 服务器将从绑定顺序中的最高连接开始,并从那里向下排列。
您可以对此进行测试,但是我不得不多次更改这一点,将 [远程访问连接] 置于顶部,以便 Microsoft PPTP VPN 使用域控制器的 DNS 来解析域的内部 DNS 服务器。
答案2
如果你有多个接口和多个 DNS 服务器,那么你不会问要使用哪个 DNS 服务器。从技术上讲,你是在问哪个接口您将使用。这取决于您的路由表。
阅读路由表是了解 Windows 或任何操作系统如何选择接口的关键。
http://technet.microsoft.com/en-us/library/cc779122(WS.10).aspx
如果您熟悉 TCP/IP,那么阅读路由表很容易。如果不熟悉,我建议您使用 Google。基本上,您获取网络目标和子网掩码并遍历列表,直到找到第一个匹配项。然后将数据包发送出去。
Windows 将使用哪个 DNS 服务器取决于多种因素。但为了简单起见,它将始终使用界面上列出的主 DNS 服务器。然后它将依次选择列表。
答案3
我相信答案可能取决于 Windows 的版本。
您可以为控制面板/网络连接中显示的每个网络连接配置一个 DNS 名称服务器列表。
从上文可以看出,对于静态配置的名称服务器,一个 DNS 名称服务器被视为首选名称服务器,另一个被视为备用名称服务器。由此我们可以推断,首选名称服务器通常用于所有查询,只有当主名称服务器不可用时才会使用辅助名称服务器。
我们可以假设动态提供的 DNS 服务器列表(例如由 DHCP 服务器提供)将以类似的方式处理。
如果名称服务器持续无法响应,操作系统可能会将其标记为关闭。否则,它必须将所有名称服务器视为活动状态 - 假设相应的网络接口处于活动状态(“启动”状态)。
如果您想要一个经验答案,请使用类似 wireshark 的工具来捕获 DNS 流量并生成一些有关所用服务器的统计数据。