当我通过 PPTP vpn 将 Windows XP 笔记本电脑连接到我们的 Windows 2003 服务器时,DNS 服务器顺序是正确的:
192.168.8.3
208.67.222.222
208.67.220.220
但是,当我通过 PPTP VPN 将 Windows 7 笔记本电脑连接到我们的 Windows 2003 Server 时,DNS 顺序不正确:
208.67.222.222
208.67.220.220
192.168.8.3
我需要在我们的 Windows 2003 Server 上做什么来修复此问题,以便当我执行 ping 时它能够正常工作?
答案1
多个 DNS 服务器通常是为了冗余而提供的,而不是为了“链式”请求。如果你想这样做,有一个更有效的解决方案。
208.67.x.x
- 我假设这些是您的 ISP 的 DNS 服务器?如果您只想在请求192.168.8.3
无法解析任何内容时查询这些,那么您可以使用 DNS 转发器来执行此操作,但更好的方法是完全跳过它并在您的 DNS 服务器中使用根提示(这样它就可以获得自己的 DNS 记录,而不是通过另一个 DNS 代理它们)。
但是,对于这个例子,我假设你出于某种原因想要继续使用 DNS 转发器,并且你的 DNS 服务器也是 Windows 2003 机器(归功于http://www.petri.co.il/install_and_configure_windows_2003_dns_server.htm):
- 单击“开始”,指向“程序”,指向“管理工具”,然后单击“DNS”以启动 DNS 管理控制台。
- 在控制台左侧窗格中右键单击您服务器的 DNS 服务器对象,然后单击“属性”。
- 单击转发器选项卡。
- 选中启用转发器复选框。
- 在 IP 地址框中输入您要将查询转发到的 DNS 服务器的 IP 地址 - 通常是您的 ISP 的 DNS 服务器。您也可以将它们上移或下移。列表中排名最高的服务器将获得第一次尝试,如果它在给定的时间限制内没有响应 - 查询将被转发到列表中的下一个服务器。
- 单击“确定”。
这样,您只需要为 PPTP 连接设置一个 DNS 条目,但最终结果是相同的。
答案2
我在 XP 机器上也遇到过同样的问题,解决方法如下:
http://support.microsoft.com/default.aspx?scid=kb;en-us;311218
但是它在我的 Win7 机器上不起作用;我最终在 HOSTS 文件中创建了一个条目 - 虽然不是最好的解决方案,但它使我的客户端启动并运行。
答案3
我假设当从 Windows 7 连接到 VPN 时,由于 DNS 服务器列出的顺序,您无法解析内部资源。DNS 服务器设置应用于 VPN 客户端的方式如下:如果 VPN 服务器配置为从内部 DHCP 服务器向 VPN 客户端分配 IP 地址,则客户端将接收在 DHCP 范围中配置的 DNS 服务器,VPN 客户端从该范围获取其 IP 地址。如果 VPN 服务器配置为从静态池向 VPN 客户端分配 IP 地址,则 VPN 客户端将接收 VPN 服务器配置为使用的 DNS 服务器(来自 VPN 服务器本身的 TCP\IP 属性)。
我的建议是验证 VPN 服务器和 DHCP 范围内配置的 DNS 服务器并确保它们正确无误。
此外,除了 Farseeker 所发布的内容之外,我还建议在内部 DNS 服务器上使用根提示而不是转发器。所有内部主机(包括 DNS 服务器)都应配置为仅使用内部 DNS 服务器。DNS 服务器应配置为使用自身进行 DNS,DNS 服务应配置为使用根提示(或转发器,如果您选择)进行外部(非权威)解析。
答案4
我首先使用 SBS 服务器的 DNS 设置系统,如果 SBS 盒离线,则回退到 Internet 路由器的 DNS,这在本地工作正常,但是当 VPN 连接进入时,顺序会被逆转并导致这些问题,所以我想出了一个不需要任何注册表黑客攻击的可行解决方案:
要修复 Windows 7 VPN 客户端的此问题,请执行以下操作:
1/ 在 DNS 服务器上创建附加(辅助)IP 地址
2/ 在 DHCP 中设置范围选项,将新 IP 地址列为第一个 DNS 条目(条目将是 SBS 辅助 IP、SBS 主 IP,然后是路由器 IP),
现在,DHCP 将提供 SBS DNS 服务器作为 LAN DHCP 租约的前两个 IP 地址,并提供路由器 DNS 作为最后一个 IP 地址;对于 VPN 连接,DHCP 列表将变为 SBS、路由器、SBS,因此尽管存在此错误,本地 DNS 查找现在仍能正常工作。
该解决方案还假设您在 RRAS 设置中对 LAN 使用 DHCP 中继,并对 Localhost 使用 DHCP 中继。