VPN 连接导致 DNS 使用错误的 DNS 服务器

Bry*_*yan 20 domain-name-system vpn active-directory windows-7

我在我们公司的网络上有一台 Windows 7 PC(它是我们 Active Directory 的成员)。一切正常,直到我打开与客户站点的 VPN 连接。

当我连接时,我失去了对网络共享的网络访问权限,包括我们有文件夹重定向策略的“应用程序数据”等目录。可以想象,这使得在 PC 上工作变得非常困难,因为桌面快捷方式停止工作,软件由于从其下方拉出“应用程序数据”而停止正常工作。

我们的网络路由 (10.58.5.0/24),其他本地子网存在于 10.58.0.0/16 的范围内。远程网络位于 192.168.0.0/24。

我已经将问题归结为与 DNS 相关的问题。一旦我打开 VPN 隧道,我所有的DNS 流量都会通过远程网络,这解释了本地资源的丢失,但我的问题是,我如何强制本地 DNS 查询转到我们的本地 DNS 服务器而不是我们的客户?

ipconfig /all未连接到 VPN 时的输出如下:

Windows IP Configuration

   Host Name . . . . . . . . . . . . : 7k5xy4j
   Primary Dns Suffix  . . . . . . . : mydomain.local
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : mydomain.local

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : mydomain.local
   Description . . . . . . . . . . . : Broadcom NetLink (TM) Gigabit Ethernet
   Physical Address. . . . . . . . . : F0-4D-A2-DB-3B-CA
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::9457:c5e0:6f10:b298%10(Preferred)
   IPv4 Address. . . . . . . . . . . : 10.58.5.89(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : 31 January 2012 15:55:47
   Lease Expires . . . . . . . . . . : 10 February 2012 10:11:30
   Default Gateway . . . . . . . . . : 10.58.5.1
   DHCP Server . . . . . . . . . . . : 10.58.3.32
   DHCPv6 IAID . . . . . . . . . . . : 250629538
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-14-AC-76-2D-F0-4D-A2-DB-3B-CA

   DNS Servers . . . . . . . . . . . : 10.58.3.32
                                       10.58.3.33
   NetBIOS over Tcpip. . . . . . . . : Enabled
Run Code Online (Sandbox Code Playgroud)

这是连接 VPN 隧道的相同命令的输出:

Windows IP Configuration

   Host Name . . . . . . . . . . . . : 7k5xy4j
   Primary Dns Suffix  . . . . . . . : mydomain.local
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : mydomain.local

PPP adapter Customer Domain:

   Connection-specific DNS Suffix  . : customerdomain.com
   Description . . . . . . . . . . . : CustomerDomain
   Physical Address. . . . . . . . . :
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 192.168.0.85(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . :
   DNS Servers . . . . . . . . . . . : 192.168.0.16
                                       192.168.0.17
   Primary WINS Server . . . . . . . : 192.168.0.17
   NetBIOS over Tcpip. . . . . . . . : Disabled

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : mydomain.local
   Description . . . . . . . . . . . : Broadcom NetLink (TM) Gigabit Ethernet
   Physical Address. . . . . . . . . : F0-4D-A2-DB-3B-CA
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::9457:c5e0:6f10:b298%10(Preferred)
   IPv4 Address. . . . . . . . . . . : 10.58.5.89(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : 31 January 2012 15:55:47
   Lease Expires . . . . . . . . . . : 10 February 2012 10:11:30
   Default Gateway . . . . . . . . . : 10.58.5.1
   DHCP Server . . . . . . . . . . . : 10.58.3.32
   DHCPv6 IAID . . . . . . . . . . . : 250629538
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-14-AC-76-2D-F0-4D-A2-DB-3B-CA

   DNS Servers . . . . . . . . . . . : 10.58.3.32
                                       10.58.3.33
   NetBIOS over Tcpip. . . . . . . . : Enabled
Run Code Online (Sandbox Code Playgroud)

路由表

网络目标网络掩码网关接口指标

          0.0.0.0          0.0.0.0        10.58.5.1       10.58.5.89     20
        10.58.5.0    255.255.255.0         On-link        10.58.5.89    276
       10.58.5.89  255.255.255.255         On-link        10.58.5.89    276
      10.58.5.255  255.255.255.255         On-link        10.58.5.89    276
    91.194.153.42  255.255.255.255        10.58.5.1       10.58.5.89     21
        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.95     192.168.0.85     21
     192.168.0.85  255.255.255.255         On-link      192.168.0.85    276
        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.58.5.89    276
        224.0.0.0        240.0.0.0         On-link      192.168.0.85    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.58.5.89    276
  255.255.255.255  255.255.255.255         On-link      192.168.0.85    276
Run Code Online (Sandbox Code Playgroud)

接口的绑定顺序如下:

在此处输入图片说明

我没有将 VPN 隧道配置为在远程端使用默认网关,并且到两个网络上的节点的网络通信都很好。(即我可以 ping 我们网络或远程网络上的任何节点)。

我修改了 PPTP 连接属性以使用10.58.3.32后跟的 DNS 服务器192.168.0.16,但查询仍然转到 192.168.0.16。


编辑:

消失的本地资源托管在域 DFS 根上,这可能(也可能不相关)相关。


进一步编辑:

这似乎只影响域 DFS 根。如果我通过服务器名称(即\\server\share而不是\\dfsroot\share)引用共享,我可以访问共享。

根据我对这个答案的评论,我发现我可以将域的 DNS 名称添加到我的主机文件中,这会阻止我的(DFS)网络驱动器消失,但我仍然喜欢我的问题的粗体部分(上面) 回答是否有人有任何想法。

ZnA*_*ArK 13

好的,在这里找到了一个很好的资源:http : //rdpfiles.com/2011/08/25/windows-vpn-client-and-local-dns-resolution/

这并不完美,但可能会奏效。

绑定顺序存储在注册表中的以下位置: HKLM\System\CurrentControlSet\Services\Tcpip\Linkage\Bind. 该列表按绑定优先级顺序包括网络适配器和活动连接的所有设备 GUID。

使用注册表项时,会出现以下事实:

更改注册表中 GUID 的顺序确实会影响绑定顺序,包括 VPN 连接

  • 对密钥的任何更改都会立即生效
  • 当 VPN 连接完成时,如果连接的 GUID 尚不存在,则会将其添加到绑定顺序的顶部
  • 当 VPN 连接关闭时,连接的 GUID 条目将被删除
  • 如果连接有多个 GUID 条目,则在连接关闭时只删除一个

这种机制创造了以下解决方法的可能性:

  1. 检查绑定注册表项
  2. 连接到您的 VPN 连接
  3. 再次检查 Bind 键并复制添加到列表顶部的 GUID
  4. 将 GUID 条目粘贴到列表底部 20 次
  5. 导出密钥并清理导出的文件以仅包含绑定密钥

结果是将支持所需行为的密钥。每次建立 VPN 连接时,由于存在 GUID,因此不会添加它。由于 GUID 在底部,DNS 解析将在客户端本地完成。当连接断开时,将删除一个 GUID 条目。20 个 VPN 连接后,导出的注册表文件可用于重新导入密钥。

当然,您可以多次粘贴 GUID 以减少必须重新导入密钥的频率。

如果网络适配器有任何更改,请记住重做此过程也很重要。

  • 我建议创建一个计划任务。监视事件 ID 20226,它对应于 VPN 断开连接事件。然后启动一个小的 powershell 脚本(`powershell -File c:\scripts\fixdnsbind.ps1`),其中包含: `$val = Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\services\Tcpip\Linkage -Name Bind; $val.Bind += "\Device\{D7D0BD5E-B65C-4239-BA4D-D309186E9524}"; Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\services\Tcpip\Linkage -Name Bind -Value $val.Bind`。(不要忘记调整适配器 ID)。您还可以在连接到 VPN 之前运行此脚本一次。 (3认同)

ank*_*ank 5

在我看来,VPN 隧道以某种方式优先于将 DNS 流量定向到 VPN DNS 服务器的本地接口(如果您有权访问它们,您可以检查这些服务器上的请求以验证此行为,或者有人可以验证此行为)你)。

我无法完全解释,因为绑定顺序指示不同。根据此处的这篇文章(请参阅得分较高的答案),Windows 对此有不同的看法,根据连接速度而不是适配器绑定顺序选择更高优先级的通道。因此,为了测试,请尝试以下操作来更改此自动行为:1) 转到网络连接并为每个连接执行 2) IP v4 属性 3) 高级 4) 禁用“自动度量” 5) 手动为本地设置 1 度量连接和 VPN 连接 (PPP) 上的度量为 2。这样,它会将路径硬连接到本地 DNS 服务器,而不是远程 DNS。

希望这可以帮助!