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


17

我的公司网络上有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

这是连接了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

路由表

网络目标Netmask网关接口指标

          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

接口的绑定顺序如下:

在此处输入图片说明

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

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


编辑:

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


进一步编辑:

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

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


您从未提到正在使用哪个防火墙?这是IMO相当重要的因素,因为我认为这是您潜在找到该问题答案的地方。
汉妮2012年

@hanny防火墙由两个站点上ADSL调制解调器上的网络地址转换提供。如果确实需要,我可能会提供型号,但它们只是标准的ADSL NATing调制解调器。鉴于我们正在谈论带有集成DNS的AD,因此我认为这些设备无关紧要,因为问题完全是DNS。
Bryan 2012年

如果VPN不是由防火墙处理,而是由Windows处理,那么它将呈现不同的发送参数供您使用,因为根据我的经验,Windows VPN相当有限。例如,对于ASA 5505,拆分隧道确实很容易解决问题,并且可以完成很多配置,特别是在DNS问题和DNS分配方面。这就是为什么我问,谢谢您的澄清。
汉妮2012年

route print可以在帖子中添加(来自vpn连接)吗?
florianb 2012年

路由没有什么问题,因为他能够连接低谷的IP,但不能低谷的DNS
MichelZ 2012年

Answers:


12

好的,在这里找到了很多资源: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。由于GUID位于底部,因此DNS解析将在客户端本地完成。断开连接后,将删除一个GUID条目。在20个VPN连接之后,可以使用导出的注册表文件重新导入密钥。

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

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


好发现。效果很好,再加上一个计算机启动脚本,可以在每次启动时重置注册表项的值,这对于解决最初不应该出现的问题应该是一个很好的解决方法。非常感谢。我会做一些进一步的测试。
Bryan 2012年

3
我建议创建一个计划任务。监视事件ID 20226,该事件ID与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之前,您还要运行一次此脚本。
史蒂夫·B

4

在我看来,VPN隧道以某种方式优先于将DNS流量定向到VPN DNS服务器的局域网接口(如果您可以访问这些服务器,则可以检查这些服务器上的请求以验证此行为,或者可以通过以下方法验证此行为:您)。

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

希望这可以帮助!


有趣的是,从上面的路由表中可以看出,LAN接口上的度量值最低(20),VPN连接的度量值是21。话虽如此,这个问题可能是断断续续的,并且使用上面显示的路由表,目前一切正常。我将尝试重新创建问题并重新检查路由表。
布赖恩

更新,只是重新打开了隧道,并且我与驱动器的所有连接都已断开,但是路由表与上面没有什么不同。例如,度量标准20用于LAN,度量标准21用于VPN。
Bryan 2012年

1
@Bryan,这篇Microsoft文章(support.microsoft.com/kb/299540)某种程度上验证了我上面所说的内容。如果有空,按照上面我写的过程进行操作会很有趣。其他人则报告了您看到的确切间歇性问题,并通过硬性连接度量标准(serverfault.com/questions/70792/…)解决了该问题。不幸的是,我目前没有类似的设置来进行一些测试。
进出口银行

非常感谢@ank,下周晚些时候我回到办公室时,我一定会给它一个机会。有趣的文章BTW。谢谢。
布赖恩2012年

1
它对我有用!NIC的IPv4设置中的metrix似乎与路由表中的metrix没有任何关系!ZnArK写道,在HKLM \ System \ CurrentControlSet \ Services \ Tcpip \ Linkage \ Bind中更改GUID顺序不会改变使用NIC / DNS的方式。这是在Windows 10测试
MrCalvin

4

如前所述,这是一个拆分隧道问题。

三个修复程序,建议使用第二项修复程序,因为它很容易,并且如果与VMware Workstation 8搭配使用,则很容易获得良好的性能

1-启用拆分隧道-不安全,可能需要在客户端进行工作。不太可能发生,IT安全gestapo将关闭您。

2-虚拟桌面方法-P2V现有桌面并将其转变为VM。使用VM将VPN连接到客户端。您保留桌面,并可以根据需要切换到桌面。

3-虚拟服务器方法-P2V现有桌面并将其转变为VM,然后将其置于免费版本的ESXi上。您保留桌面,并可以根据需要通过控制台切换到VM。这可能很慢...


+1; 我喜欢为任务执行专用的虚拟化系统的想法,但是由于种种原因,我目前认为在这里无法很好地工作。不过,这绝对是将来的好解决方案。谢谢。
布赖恩2012年

3

不幸的是,Windows VPN无法执行“ Split-DNS”。但是,连接到远程站点后,可以从VPN连接中删除DNS服务器。

您可以通过发出以下命令来执行此操作:

netsh接口ipv4删除dnsservers name =“ VPN的名称 ” address = all validate = no

每次连接到VPN网络时,您都必须执行此操作。


仅供参考...这使您无法使用远程(VPN)DNS。
MichelZ 2012年

问题是,一旦隧道建立起来,我已经在问题中描述了问题,因此命令将为时已晚。同样,在对此进行了试验之后,该命令实际上似乎没有任何区别(nslookup仍然使用远程DNS服务器,并且ipconfig仍然列出了远程DNS服务器)。我还编辑了VPN隧道连接的DNS设置,以使用自己的内部DNS设置,但是此设置被忽略了,我的所有DNS流量似乎仍在朝向远程DNS服务器。
Bryan 2012年

1
我曾经尝试过,因为我遇到了同样的问题,并且在这里有效。您是否调整了“ VPN名称 ”?此外,如果您最关心驱动器连接到的一台服务器,请将其添加到主机文件中,而没有任何内容可以覆盖它
MichelZ 2012年

谢谢,我确实尝试过更改名称(从ipconfig输出剪切并粘贴,当输入错误时,提示错误The filename, directory name, or volume label syntax is incorrect),因此,我确定命令正确。可能是远程PPTP服务器上的某个东西不允许我覆盖DNS设置。我将进行调查,但我确实喜欢hosts文件输入的想法。我会去的。另请参阅我对问题的编辑。
布赖恩2012年

我只是再次尝试了该命令,它的确从PPP连接中删除了DNS服务器。您可以验证ipconfig /all吗?我认为,对于您来说,主机条目应该是最简单的解决方法。
MichelZ 2012年

2

您的VPN隧道位于客户端和客户端网络之间。听起来好像没有在使用拆分隧道,这将阻止您在隧道启动时访问自己网络上的资源。

因此,您(或您的客户端)需要启用拆分隧道,或者需要额外的网络连接和自定义的路由表才能同时访问两个网络。


有关信息,我可以在隧道启动时访问网络资源,这似乎只是DNS解析中断了。我split tunnelling对诚实这个词并不熟悉,但是据我所知,这仅涉及确保我不在远程站点上使用默认网关,尽管我没有指定,但我已经在做。感谢您的答复,我将编辑问题以反映这一点。
布赖恩

1
在这种情况下,听起来好像没有为拆分DNS设置客户的VPN。使用拆分的DNS,VPN集中器为您的VPN客户端提供DNS服务器列表(如当前所做的那样),以及一个域列表,这些域是那些DNS服务器应使用的唯一域。其他所有都将使用系统的默认DNS。
James Sneeringer 2012年

0

尽管很久以前就问过这个问题,但发布此答案可能会帮助其他人。我对VPN有同样的问题,当用户用来连接远程VPN时,他们的外部dns用于停止。google.com在上列出的仅用于工作的公司域split-dns

问题是,当使用的本地计算机执行dns查询流量到vpn隧道时,如果在隧道中允许dns,则回退。当回退时,它通常会先选择ipv6作为分辨率,然后再不返回ipv4。

因此,为了测试结果,我们首先在开始工作的本地计算机上禁用了ipv6。要为所有用户永久修复此问题,我们client-bypass-protocol在ASA防火墙上启用了命令,如果IPv6未在vpn池上配置,则会忽略IPv6。

因此,如果您无法控制防火墙并且知道拆分隧道和拆分dns到位,但是它失败了,您可以尝试ipv6在本地计算机上禁用,并且如果可以控制它,那么只要您不使用ipv6,就可以启用上述命令在您的远程网络中。

这对我有所帮助,希望对其他人有所帮助:)


0

是的,我有经验!

设置与本地DNS服务器的VPN连接,然后连接到使用nslookup来查询VPN域名的VPN。您应该使用VPN LAN本地IP来获得响应。这意味着您使用VPN DNS服务器来解决查询。

现在打开您的LAN连接,并将DNS手动设置为本地或ISP DNS。一个Volia!使用箭头键并重复nslookup查询。您将收到一个公共IP,这意味着您使用本地/ ISP DNS服务器来解析VPN域的查询。am !!!!


0

我只是从客户端VPN配置中删除此选项

setenv opt阻止外部DNS

它解决了问题


0

几年前我遇到了这个问题,并通过编辑VPN连接文件来解决,只需制作一个vpn.pbk文件(您可以在google中找到它)即可通过文本编辑器(如记事本)打开该文件,并将UseRasCredentials值更改为零,这样就可以解决问题。但是唯一的问题是您的局域网连接DNS优先级高于VPN DNS,并且名称解析花费更多时间(如果使用VPN连接到Internet)。


-1

您为什么认为它的DNS?

如果在连接到VPN时失去对网络共享的访问权限-几乎可以肯定,您的计算机在使用WINS / NETBIOS时会遇到困难。

定义一个WINS服务器并再次测试。


我不确定这是造成问题的原因,但我知道的是,AD客户端应该使用用于承载AD的DNS服务器,而事实并非如此。由于仅当我建立VPN连接时问题才浮出水面,而我的DNS解析同时出现问题,因此看来DNS很可能是候选者。无论如何,当我使用VPN连接到另一个网络时,我都不想使用远程DNS服务器。
布赖恩2012年

您是否按照我的建议定义了WINS服务器?Windows通常在VPN上使用DNS服务器,除非定义了使用DNS服务器或“使用远程网关已设置”(您说已禁用)。另外,您在VPN隧道上使用的是静态IP,那么为什么还要设置DNS条目呢?删除那些DNS服务器(192.168.0.16-17)或设置WINS服务器。
Ben Lessani-Sonassi 2012年

不,我没有尝试过,因为我们没有将客户端指向的WINS服务器。我不相信WINS会帮助您说实话,所以我不热衷于在网络上安装WINS服务器,因为它可能会有所帮助。我当然会记住这个主意,所以谢谢。IP由VPN服务器分配,并且是动态的。如果我没有为VPN连接分配DNS服务器,则它是由服务器动态分配的。我什至在VPN连接属性中对自己的DNS服务器进行了硬编码,但仍使用远程站点上的DNS服务器。
Bryan 2012年

我既不需要也不想使用远程DNS服务器,我一直希望在本地服务器上执行DNS解析,这可以解决我的问题,因此我的问题集中在DNS上。我可能可以使用防火墙规则来阻止对远程DNS服务器的访问,但这不能解决潜在的配置错误问题。
布赖恩

1
您对此的解释不正确。IP地址是由PPTP服务器分配的,该服务器实际上并不使用DHCP。PPTP服务器有一个可以分配的池,但这不是 DHCP。但是,每次连接时,我都会获得不同的IP。此外,正如您从路由表中可以清楚地看到的那样,我也没有勾选使用远程网关的框。
布赖恩2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.