我有一个机器,有一个LANnetworking连接,用于互联网访问。 此机器也必须连接到VPN连接。 当连接VPN时,Windows似乎首先询问VPN连接的DNS服务器,然后询问为LAN连接configuration的DNS服务器。 我需要这个来解决性能问题,因为VPN速度很慢。
那么,如何configuration哪个连接的DNS服务器应该是Windows机器上的主服务器呢? 远程VPN DNS提供了一些不公开的名称parsing,所以我仍然需要它。
我已经取消选中TCP / IP设置中的“在远程networking上使用默认网关”选项。
编辑 :
我正在试验一个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
当我进入networking连接 – >高级设置来更改networking绑定顺序时,我只能查看以下连接:本地连接和[远程访问连接],其中首先列出本地连接。 我正在使用的VPN连接没有列出(虽然它存在于“networking连接”窗口中)。
从你的问题措辞的方式来看,你的期望是,当Windows需要parsing一个名字,它会问主要的DNS服务器。 如果主DNS服务器不知道答案,它会问辅助。
我希望以上不是你所期望的,但如果是这样,那么让我告诉你为什么这是一个错误。
DNS不能这样工作。 parsing器唯一一次故障切换到辅助DNS服务器的时间是主服务器根本没有响应 。 一个例子将阐明:
假设您有一个1.1.1.1的主DNS服务器和一个2.2.2.2的辅助DNS服务器。 您的客户端按此顺序进行configuration。 2.2.2.2主机一个私人区域foocompany.local; 1.1.1.1主机没有自己的区域,并为互联网主机进行根查找。
如果你的客户端试图查找一些server.foocompany.local,1.1.1.1将返回NXDOMAIN(例如“我查询了根服务器,他们说这个域不存在”)。 你的parsing器不会问2.2.2.2它知道什么,除非1.1.1.1在超时期限(通常2秒)内没有回复。 它只是放弃寻找。 此外,根据RFC2308 ,您的客户端将caching NXDOMAIN结果。 即使您更改了NIC设置(2.2.2.2是主服务器),您仍然可以获得NXDOMAIN结果,直到本地NXDOMAINcaching过期。 您可以通过在命令提示符下发出ipconfig / displaydns来validation。
IIRC,Windows的DNSparsing器cachingNXDOMAIN很短的时间 – 5分钟。 但是,这仍然可能是烦人的。
无论如何。 我意识到这与你的问题有点相似,但澄清这一点可能会为你的计划devise带来顿悟。 EG:您可能首先需要VPN的DNS服务器来parsing。 虽然慢一些,但它知道更多,因为它可以解决私有的域和公共互联网域; 而本地局域网DNSparsing器则对VPN专用的这些域一无所知。
干杯!
这听起来像你想build立拆分隧道 。 首先,validation您的VPN软件是否正确设置了客户端PC上的路由。 命令:
route print
将显示您的客户端主机的路由表。 您的办公室(?)networking应该有一个条目,指向您的VPN接口的默认网关。 最主要的是你的具有最低指标的默认路由指向LAN接口的默认网关。
一旦确认路由configuration正确,接下来要检查的是networking接口的绑定顺序。 这是各种networking服务尝试每个networking适配器的顺序。 有关如何在Windows XP上更改它的说明可以在这里find。
我无法find一个类似的知识库文章的Vista,但总结:
从“networking连接”窗口中:
Organize -> Layout -> Menubar
菜单栏将出现。 从那里:
Advanced -> Advanced Settings
会让你进入你需要的选项对话。 在你的情况下,你的VPN适配器应该列在你的LAN接口下面。
注意:更改绑定顺序以便首先使用本地Internet连接可能会导致您的VPNnetworking上主机的名称parsing相关的不同问题。 没有更多的信息很难确定。
编辑:多想了一下,我不知道如何连接到您的VPN时不能使用您的VPN DNS。 如果您使用互联网DNS服务器,那么您将无法解决不在公共DNS中的任何VPN。 唯一的办法就是configuration一个本地的DNS服务器,让它将你的VPN DNS区域(* .local,从你的例子)的查询转发到192.168.0.3,其他所有的东西到你的ISP的DNS服务器。
是否正在使用公司的DNS服务器真的让你的性能遭受重创? 每一个解决scheme都将被caching,并且您的实际数据stream量将直接进入互联网,绕过您的VPN。
当连接VPN时,Windows似乎首先询问VPN连接的DNS服务器,然后询问为LAN连接configuration的DNS服务器。
这个是正常的。
大多数VPN都支持分割视图和/或私有视图模式,在这种模式下,您必须首先请求内部DNS,否则公共DNS会返回外部地址或NXDOMAIN 。
我需要这个来解决性能问题,因为VPN速度很慢。
只有当您的内部DNS区域是完全私人的(即使用假冒TLD,如“.local”)时,才有可能解决这个问题。 根据Murali的回答,您需要运行一个本地DNS服务器,根据后缀将查询转发到VPN或公共DNS。
这是一个古老的问题,但是我在处理类似问题时遇到了这个问题,并添加了一些额外的信息:
虽然quux在技术上是正确的,但实际上Windows确实允许这种行为。 “在远程networking上使用默认网关”选项就是这样做的; 当选中时,如果本地DNS返回NXDOMAIN,则Windows会尝试VPN DNS。 这不会在这里发挥作用,因为Windows首先尝试VPN。 但是,如果他能改变这个顺序,那么检查这个选项就会给他正确的行为。
有办法做你想做的事情,因为我刚刚做到了。 我的家庭networking过去依赖我的路由器的内置DHCP服务器,设置为通告OpenDNS服务器。 我最近在networking上的另一台机器上设置了DHCP + DNS服务器,设置为转发到非本地地址的OpenDNS。
出于某种原因,这改变了Windows如何优先考虑DNS服务器。 之前,它会首先使用VPN DNS(我想要的行为),现在它首先使用本地DNS(您期望的行为)。 如果我closures本地DHCP + DNS并返回使用我的路由器,则VPN将再次进入。
这个信息可能会帮助你找出问题所在,如果你弄清楚了,让我知道,因为我正在试图弄清楚如何做相反的事情。
注:我知道这也许应该是一个评论,但有一个代表要求…