首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows如何决定解析名称时使用哪个DNS服务器?

Windows如何决定解析名称时使用哪个DNS服务器?
EN

Server Fault用户
提问于 2009-11-13 02:46:45
回答 6查看 180.2K关注 0票数 74

Windows使用什么算法来决定它将查询哪个DNS服务器以解析名称?

假设我有几个接口,它们都是活动的,有些没有指定dns服务器,有些被告知自动确定,还有一些是手动指定的(在接口ipv4和接口ipv6中)。

我要求回答这个一般性问题,希望我知道如何在Windows中解决一个更具体的问题--我有两个接口,一个是较低的度量,另一个是手动指定的DNS服务器。nslookup使用此DNS服务器并正确解析名称。但是,除非我手动为其他接口指定DNS服务器,否则所有其他应用程序都无法解析该名称,然后应用程序将使用该服务器。nslookup还使用为此另一个接口指定的DNS服务器。

谢谢

EN

回答 6

Server Fault用户

回答已采纳

发布于 2009-11-13 04:08:38

如果我没有弄错,它是由网络连接文件夹中的高级设置中的NIC绑定顺序决定的。您可以通过更改各种NIC的绑定顺序并作为测试运行nslookup来验证它。

为了详述我的回答,引用埃文联系的那篇文章埃文联系的那篇文章的话,以下是上述文章的摘录:

DNS客户端服务按以下顺序查询DNS服务器:

  1. DNS客户端服务将名称查询发送到首选适配器的DNS服务器列表上的第一个DNS服务器,并等待一秒钟的响应。
  2. 如果DNS客户端服务在1秒内没有从第一个DNS服务器接收响应,则它将名称查询发送到所有仍在考虑中并等待响应的适配器上的第一个DNS服务器。
  3. 如果DNS客户端服务在两秒钟内没有收到来自任何DNS服务器的响应,则DNS客户端服务将查询发送到所有仍在考虑中的适配器上的所有DNS服务器,并等待另两秒钟的响应。
  4. 如果DNS客户端服务仍未收到来自任何DNS服务器的响应,则会将名称查询发送到所有仍在考虑中的适配器上的所有DNS服务器,等待响应时间为4秒。
  5. 如果DNS客户端服务没有从任何DNS服务器接收响应,则DNS客户端将查询发送到所有仍在考虑中并等待响应的适配器上的所有DNS服务器。

步骤1中的首选适配器是先按绑定顺序列出的适配器。

票数 44
EN

Server Fault用户

发布于 2016-09-26 20:06:32

在Windows 10中,必须按所需顺序更新每个接口的度量。

  1. Goto控制面板>网络和Internet >网络连接
  2. 右击所需连接(高优先级连接)
  3. 单击“属性”>“Internet协议”版本4
  4. 单击“属性”>高级
  5. 取消“自动度量”
  6. 在“接口度量”中输入10
  7. 单击OK

参考文献:

我使用了10用于我的局域网,20用于WLAN,100用于VPN接口(我更喜欢本地DNS工作,这可能是对其他人相反)。记住较低公制=较高优先权

请参阅MicrosoftSupportforIPv4 4路由自动度量特征的一种解释中的本文。

我怀疑这是因为路由选择的一部分是以最高的度量优先级(最低数量)设置接口的源IP,因为您没有对所有连接使用相同的IP地址,而双主BGP连接将使用相同的源IP,但选择不同的下一跳网关等待目的地IP。

对于Server,安装DNS服务并做一些有目的/智能的事情,我不同意在Server上这样做。

票数 37
EN

Server Fault用户

发布于 2020-04-02 21:27:32

为了具体回答这个问题,Windows使用与最高级别的网络接口相关联的第一个DNS记录(值较低的InterfaceMetric具有更高的级别)。下面的示例显示了如何获取和更改该接口的排序值。当没有在接口上配置手动DNS服务器时,Windows依赖任何与网络接口关联的DHCP服务器提供的DNS服务器。

出现此问题的一个常见场景是,当您有一个或多个VPN为为该虚拟网络定义的资源提供DNS服务器时。

但是,由WiFi路由器分配的公共DNS服务器具有先例,或者声称主机不存在,或者使用意外的IP地址进行响应。

要解决这个问题,我们需要通过指定相关的“度量”来明确规定哪个网络接口应该优先。(目前,此指标似乎只能通过PowerShell .(见下文)

网络接口(如虚拟专用网)

变化度量

首先,列出本地接口及其度量标准

代码语言:javascript
运行
复制
C:\> Get-NetIPInterface | Select-Object -Property InterfaceAlias, InterfaceMetric | Sort-Object -Property InterfaceMetric

InterfaceAlias               InterfaceMetric
--------------               ---------------
vEthernet (DockerNAT)                     15
Npcap Loopback Adapter                    25
Ethernet 11                               25
Local Area Connection* 1                  25
Local Area Connection* 2                  25
Npcap Loopback Adapter                    25
Ethernet 2                                35
Wi-Fi                                     55
Bluetooth Network Connection              65
Loopback Pseudo-Interface 1               75
MY VPN                                   200   <--- There's my NIC with my fave DNS
vEthernet (Default Switch)              5000

然后,设置网络接口

的度量

(注意:确保从管理PowerShell控制台执行此操作)

代码语言:javascript
运行
复制
C:\>  Set-NetIPInterface -InterfaceAlias "MY VPN" -InterfaceMetric 10
代码语言:javascript
运行
复制
C:\> Get-NetIPInterface | Select-Object -Property InterfaceAlias, InterfaceMetric | Sort-Object -Property InterfaceMetric

InterfaceAlias               InterfaceMetric
--------------               ---------------
MY VPN                                    10   <--- Awesome!!! My fave DNS is now on top!!
vEthernet (DockerNAT)                     15
Npcap Loopback Adapter                    25
Ethernet 11                               25
Local Area Connection* 1                  25
Local Area Connection* 2                  25
Npcap Loopback Adapter                    25
Ethernet 2                                35
Wi-Fi                                     55
Bluetooth Network Connection              65
Loopback Pseudo-Interface 1               75
vEthernet (Default Switch)              5000

界面计量

测试效果

在本例中,在更改度量值之前,单击具有公共定义IP的本地资源将返回其公共IP (而不是我的VPN的DNS服务器返回的内部IP )。

示例: Bad!:(

代码语言:javascript
运行
复制
> ping 10640-TEST

Pinging 10640-TEST.example.com [XX.163.171.155] with 32 bytes of data:
Reply from XX.163.171.155: bytes=32 time=80ms TTL=45
Reply from XX.163.171.155: bytes=32 time=76ms TTL=45

示例好的时候!:)

在更改网络接口上的度量之后,我现在看到从与我的VPN关联的DNS服务器返回的预期内部IP地址:

代码语言:javascript
运行
复制
> ping 10640-TEST

Pinging 10640-TEST.example.com [192.168.100.44] with 32 bytes of data:
Reply from 192.168.100.44: bytes=32 time=42ms TTL=127
Reply from 192.168.100.44: bytes=32 time=52ms TTL=127
票数 24
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/84291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档