存在多个网络连接时的“主”DNS

存在多个网络连接时的“主”DNS

我有一台具有 LAN 网络连接的机器,用于访问互联网。这台机器还必须连接到 VPN 连接。当 VPN 连接时,Windows 似乎会询问 VPN 连接的 DNS 服务器第一的,然后是为 LAN 连接配置的 DNS 服务器。由于 VPN 速度很慢,我需要反过来解决性能问题。

那么,如何配置哪个连接的 DNS 服务器应为 Windows 计算机上的主服务器?远程 VPN DNS 提供了一些非公开的名称解析,因此我仍然需要它。

我已经取消选中 TCP/IP 设置中的“在远程网络上使用默认网关”选项。

编辑

我正在 Windows 7 机器上进行实验,但我确实需要能够在 Windows Server 2003 和 Windows 7 上进行此操作。

我认为我的路由表没问题。10.0.0.1 是我的本地网关,而 192.168.0.82 是 VPN 连接的网关。

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0         10.0.0.1         10.0.0.3     20
         10.0.0.0    255.255.255.0         On-link          10.0.0.3    276
         10.0.0.3  255.255.255.255         On-link          10.0.0.3    276
       10.0.0.255  255.255.255.255         On-link          10.0.0.3    276
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.0.0    255.255.255.0     192.168.0.82     192.168.0.89     21
     192.168.0.89  255.255.255.255         On-link      192.168.0.89    276
   217.157.12.231  255.255.255.255         10.0.0.1         10.0.0.3     21
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link          10.0.0.3    276
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link          10.0.0.3    276
  255.255.255.255  255.255.255.255         On-link      192.168.0.89    276
===========================================================================
Persistent Routes:
  None

当我进入网络连接 -> 高级设置来更改网络绑定顺序时,我只能查看以下连接:本地连接和 [远程访问连接],其中本地连接列在第一位。我正在使用的 VPN 连接未列出(但它确实存在于“网络连接”窗口中)。

答案1

从您问题的表述方式来看,您的预期似乎是当 Windows 需要解析名称时,它会询问主 DNS 服务器。如果主 DNS 服务器不知道答案,它就会询问辅助 DNS 服务器。

我希望以上内容不是您所期望的,但如果是的话,那么让我告诉您为什么这是一个错误。

DNS 不是这样工作的。解析器唯一会故障转移到辅助 DNS 服务器的情况是当主服务器根本没有响应时举个例子可以说明:

假设您的主 DNS 服务器位于 1.1.1.1,辅助 DNS 服务器位于 2.2.2.2。您的客户端按此顺序配置它们。2.2.2.2 托管私有区域 foocompany.local;1.1.1.1 不托管自己的区域,并且对互联网主机进行根查找。

如果您的客户端尝试查找 someserver.foocompany.local,1.1.1.1 将返回 NXDOMAIN(例如“我查询了根服务器,他们说该域不存在”)。您的解析器将不是然后询问 2.2.2.2 它知道什么,除非 1.1.1.1 未能在超时期限内(通常为 2 秒)回复。它将停止查找。此外,您的客户端将缓存NXDOMAIN 结果,按照RFC2308。即使你更改 NIC 设置,使 2.2.2.2 成为主服务器,你仍会获得 NXDOMAIN 结果,直到本地 NXDOMAIN 缓存过期。你可以通过发出以下命令来验证这一点ipconfig /displaydns在命令提示符下。

据我所知,Windows 的 DNS 解析器会将 NXDOMAIN 缓存很短的时间 - 5 分钟。但这仍然很烦人。

无论如何。我意识到这与您的问题有点无关,但澄清这一点可能会让您对计划的设计有所领悟。例如:您可能希望 VPN 的 DNS 服务器首先进行解析。虽然它有点慢,但它知道的更多,因为它可以解析 VPN 私有的域公共互联网域;而本地 LAN DNS 解析器对 VPN 私有的域一无所知。

干杯!

答案2

听起来你想设置分裂隧道。首先,验证您的 VPN 软件是否正确设置了客户端 PC 上的路由。命令:

route print

将显示客户端主机的路由表。您应该有一个指向 VPN 接口默认网关的办公室网络条目。最重要的是您的默认路由具有最低度量值的地址指向您的 LAN 接口的默认网关。

确认路由配置正确后,下一步要检查的是网络接口的绑定顺序。这是各种网络服务尝试每个网络适配器的顺序。有关如何在 Windows XP 上更改它的说明,请参见这里

我找不到针对 Vista 的类似 KB 文章,但总结如下:

从‘网络连接’窗口:

Organize -> Layout -> Menubar

菜单栏将会出现。从那里:

Advanced -> Advanced Settings

将进入所需的选项对话框。对于您而言,您的 VPN 适配器应列在您的 LAN 接口下方。

注意:更改绑定顺序以便首先使用本地互联网连接可能会导致与 VPN 网络上的主机名称解析相关的不同问题。如果没有更多信息,很难确定。

编辑:再考虑一下,我不确定你怎么能不是连接到 VPN 时使用 VPN DNS。如果您使用互联网 DNS 服务器,那么您将无法解析 VPN 上不在公共 DNS 中的任何内容。我能想到的唯一方法是配置本地 DNS 服务器,并让它将对 VPN DNS 区域(*.local,来自您的示例)的查询转发到 192.168.0.3,并将其他所有内容转发到您的 ISP DNS 服务器。

使用公司 DNS 服务器真的会造成如此大的性能损失吗?每个解析都将被缓存,您的实际数据流量将直接进入互联网,绕过 VPN。

答案3

当 VPN 连接时,Windows 似乎首先询问 VPN 连接的 DNS 服务器,然后再询问为 LAN 连接配置的 DNS 服务器。

这个是正常的。

大多数 VPN 支持分屏模式和/或私密模式,您可以在其中首先请求内部 DNS,否则公共 DNS 将返回外部地址或NXDOMAIN

由于 VPN 很慢,为了解决性能问题,我需要反过来做。

可能可以解决这个问题,但前提是您的内网 DNS 区域是完全私密的(即使用虚假 TLD,例如“.local”)。根据 Murali 的回答,您需要运行本地 DNS 服务器,根据后缀将查询转发到 VPN 或公共 DNS。

答案4

这是一个老问题,但我在处理类似的事情时遇到了它,并且有一些额外的信息需要添加:

  1. 虽然 quux 在技术上是正确的,但实际上 Windows 确实允许这种行为。“使用远程网络上的默认网关”选项正是这样做的;选中后,如果本地 DNS 返回 NXDOMAIN,Windows 就会尝试 VPN DNS。这在这里不起作用,因为 Windows 首先尝试 VPN。但如果他可以改变该顺序,那么选中该选项就会给他带来他想要的行为。

  2. 有一种方法可以实现你想要的,因为我刚刚做到了。我的家庭网络过去依赖于路由器的内置 DHCP 服务器,设置为通告 OpenDNS 服务器。我最近在网络上的一台单独机器上设置了一个 DHCP+DNS 服务器,设置为将非本地地址转发到 OpenDNS。

    由于某种原因,这改变了 Windows 优先使用 DNS 服务器的方式。以前,它会首先使用 VPN DNS(我希望的行为),现在它首先使用本地 DNS(您希望的行为)。如果我关闭本地 DHCP+DNS 并重新使用路由器,VPN 会再次优先使用。

这些信息可能有助于您识别问题...如果您确实解决了问题,请告诉我,因为我正在尝试找出如何做相反的事情。

注意:我知道这也许应该是一条评论,但有一个代表要求......

相关内容