本文提供了一种解决方案,用于解决路由和远程访问服务器上也运行 DNS 或 WINS 的连接问题。
原始 KB 数: 292822
现象
运行Microsoft Windows 2000 Server 或 Microsoft Windows Server 2003 的计算机在配置服务器时可能会出现连接问题:
- 路由和远程访问服务配置为允许传入连接。
- 在运行路由和远程访问的服务器上安装并配置域名系统(DNS)或 Windows Internet 名称服务器(WINS)服务。
远程计算机使用拨号或虚拟专用网络(VPN)连接连接到路由和远程访问服务器后,可能会间歇性地出现以下一个或多个症状:
如果路由和远程访问服务器也在Microsoft Internet 安全性和加速(ISA)服务器 2000 运行,则无论计算机是配置为使用 Web 代理还是Microsoft防火墙客户端,都无法从本地网络上的客户端计算机浏览 Web。 例如,“无法显示页面”可能显示在 Web 浏览器中,并显示“找不到服务器或 DNS”错误消息。
如果路由和远程访问服务器正在运行 ISA Server 2000,并且客户端计算机上的用户会在“防火墙客户端选项”对话框中选择“立即更新”,则用户会收到以下错误消息:
客户端请求更新时,服务器不会响应。
可能的原因:
-服务器不是 ISA 服务器。
-服务器已关闭。尝试使用服务器的 NetBIOS 名称或完全限定的域名(FQDN)从本地计算机 ping 路由和远程访问服务器时,计算机会尝试 ping 错误的 IP 地址。
如果路由和远程访问服务器是网络的主浏览器,则无法在“网络邻里”或“我的网络位置”中浏览计算机列表。
无法连接到 http:// server_name/myconsole
位于 Small Business Server 2000 计算机上的站点。在路由和远程访问服务器上,你会收到类似于以下内容的事件消息:
Event ID: 4319 Source: Netbt Description: A duplicate name has been detected on the tcp network. The IP address of the machine that sent the message is in the data. Use NBTSTAT with a switch of N in a command window to see which name is in a conflict state.
尝试打开文件共享或将网络驱动器映射到路由和远程访问服务器时,会收到错误消息。
如果路由和远程访问服务器也是域控制器,则尝试登录网络时会收到错误消息。
如果路由和远程访问服务器是域控制器,则尝试打开文件共享或将网络驱动器映射到网络上的任何共享资源时,会收到错误消息。 例如,运行 Microsoft Windows 2000 Professional 或 Microsoft Windows XP Professional 的计算机会收到类似于以下内容的错误消息:
没有可用于服务登录请求的登录服务器
此问题通常影响运行 Small Business Server 的计算机,因为此版本的 Windows Server 通常是网络上唯一的服务器。 但是,此问题可能会影响运行 DNS 或 WINS 服务的任何基于 Windows 2000 的服务器或任何基于 Windows Server 2003 的路由和远程访问服务器。
原因
当远程计算机使用拨号或 VPN 连接连接到路由和远程访问服务器时,服务器会创建一个点到点协议 (PPP) 适配器来与远程计算机通信。 然后,服务器可以在 DNS 或 WINS 数据库中注册此 PPP 适配器的 IP 地址。
当路由和远程访问服务器在 DNS 或 WINS 中注册其 PPP 适配器的 IP 地址时,尝试连接到服务器时,可能会在本地计算机上收到错误。 你会收到这些错误,因为 DNS 或 WINS 服务器可能会将 PPP 适配器的 IP 地址返回到查询 DNS 或 WINS 的服务器 IP 地址的计算机。 然后,计算机尝试连接到 PPP 适配器的 IP 地址。 由于本地计算机无法访问 PPP 适配器,因此连接会失败。
解决方法
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关详细信息,请参阅 如何在 Windows 中备份和还原注册表
若要解决此问题,请配置路由和远程访问服务器,以防止其在 DNS 或 WINS 数据库中注册其 PPP 适配器的 IP 地址。 要执行此操作,请执行以下步骤:
配置路由和远程访问服务器,以仅发布 DNS 中本地网络适配器的 IP 地址
仅当路由和远程访问服务器正在运行 DNS 服务时,才完成本部分中的步骤。 如果服务器未运行 DNS 服务,请转到 “配置路由和远程访问”服务器,仅注册 WINS 部分中本地网络适配器的 IP 地址。
为 DNS 和 Netlogon 服务添加 PublishAddresses 和 RegisterDnsARecords 注册表值
选择“开始”,选择“运行”,键入 regedit,然后选择“确定”。
找到并选择以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
在“编辑”菜单上,指向“新建”,然后选择“字符串值”以添加以下注册表值:
值名称:PublishAddresses
数据类型:REG_SZ
值数据:服务器的本地网络适配器的 IP 地址。 如果必须指定多个 IP 地址,请使用空格分隔地址。找到并选择以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
在“编辑”菜单上,指向“新建”,然后选择“DWORD 值”以添加以下注册表值:
值名称:RegisterDnsARecords
数据类型:REG_DWORD
值数据:0关闭注册表编辑器,然后重启 DNS 和 Netlogon 服务。 若要重启服务,请选择“开始”,指向“程序”或“所有程序”,指向“管理工具”,然后选择“服务”。 在服务控制台中,右键单击该服务,然后选择“ 重启”。
在 DNS 中添加 A 记录
仅当路由和远程访问服务器是域控制器时,才完成这些步骤。
选择“开始”,指向“程序”或“所有程序”,指向“管理工具”,然后选择“DNS”。
在 DNS 控制台中,展开服务器对象,展开 “转发查找区域 ”文件夹,然后选择本地域的文件夹。
在 “操作 ”菜单上,选择“ 新建主机”。
在 “IP 地址 ”文本框中,键入服务器的本地网络适配器的 IP 地址。
将 “名称 ”框留空,选择“ 创建关联的 PTR 记录”,然后选择“ 添加主机”。
收到“(与父文件夹相同)不是有效的主机名。 是否确实要添加此记录?“消息,选择” 是”。
注意
如果服务器是全局编录服务器,请转到步骤 7。 如果服务器不是全局编录服务器,则无需完成步骤 7 到 11。 若要确定服务器是否为全局编录服务器,请执行以下步骤:
- 选择“开始”,指向“程序”或“所有程序”,指向“管理工具”,然后选择“Active Directory 站点和服务”。
- 在 Active Directory 站点和服务控制台中 ,展开“站点” 文件夹,展开包含服务器的站点,然后展开服务器对象。
- 右键单击“NTDS 设置”,再选择“属性”。
- 在 “常规 ”选项卡上,找到“ 全局目录 ”复选框。 如果选中此复选框,则服务器是全局编录服务器。
在 DNS 控制台中的“转发查找区域 ”文件夹下,展开本地域的文件夹,展开 MSDCS 文件夹,然后选择 GC 文件夹。
在 “操作 ”菜单上,选择“ 新建主机”。
在 IP 地址 框中,键入服务器的本地网络适配器的 IP 地址。
将 “名称 ”框留空,选择“ 创建关联的 PTR 记录”,然后选择“ 添加主机”。
收到“(与父文件夹相同)不是有效的主机名。 是否确实要添加此记录?“消息,选择” 是”。
将路由和远程访问服务器配置为仅在 WINS 中注册本地网络适配器的 IP 地址
仅当路由和远程访问服务器正在运行 WINS 服务时,才完成本部分中的步骤。 此外,如果服务器运行的是 Small Business Server 2000 SP1、Small Business Server 2000 SP1a 或 Windows Small Business Server 2003,则无需完成本部分中的步骤。 默认情况下,这些版本的 Windows 服务器配置为阻止服务器在 WINS 数据库中注册 PPP 适配器的 IP 地址。
为路由和远程访问服务添加 DisableNetbiosOverTcpip 注册表值
DisableNetbiosOverTcpip 注册表值禁用通过 TCP/IP (NetBT) 协议进行远程访问连接的 NetBIOS。 因此,服务器不会在 WINS 数据库中注册 PPP 适配器。 知道,通过添加此值,你将阻止远程访问客户端通过“我的网络位置”或“网络邻里”浏览本地网络。 有时,它还可能导致在运行较旧版本的 Windows 的计算机上远程访问连接失败。 例如,Microsoft Windows 98 计算机和 Microsoft Windows NT 4.0 工作站计算机上,远程访问连接可能失败。 有关使用 DisableNetbiosOverTcpip 注册表的替代方法,请参阅 “解决方法 ”部分。
重要
如果服务器运行的是 Windows 2000 Server SP2 或更低版本,则必须使用 SP3 或 SP4 更新服务器才能使 DisableNetbiosOverTcpip 注册表值正常工作。 如果未更新服务器,路由和远程访问服务将不会使用此注册表值,并且无法解决问题。
选择“开始”,选择“运行”,键入 regedit,然后选择“确定”。
找到并选择以下注册表子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\RemoteAccess\Parameters\IP
在“编辑”菜单上,指向“新建”,然后选择“DWORD 值”以添加以下注册表值:
值名称:DisableNetbiosOverTcpip
数据类型:REG_DWORD
值数据:1关闭注册表编辑器,然后重启路由和远程访问服务。 若要重启服务,请选择“开始”,指向“程序”或“所有程序”,指向“管理工具”,然后选择“服务”。 在服务控制台中,右键单击该服务,然后选择“ 重启”。
清除 WINS 数据库
- 选择“开始”,指向“程序”或“所有程序”,指向“管理工具”,然后选择“WINS”。
- 展开服务器对象,右键单击“ 活动注册”,然后选择“ 删除所有者”。
- 在 “删除所有者 ”对话框中,选择服务器的 IP 地址。
- 如果 WINS 服务器没有任何复制合作伙伴,请选择 “仅从此服务器中删除”,然后选择“ 确定”。 如果 WINS 服务器具有一个或多个复制合作伙伴,请选择“ 将删除复制到其他服务器”(逻辑删除),然后选择“ 确定”。
当网络上的计算机注册其 NetBIOS 名称时,WINS 服务器将自动重新生成数据库。 可以通过运行以下命令 nbtstat -RR
,强制网络上的基于 Windows 的计算机立即注册其 NetBIOS 名称。
解决方法
作为此问题的解决方法,可以将远程访问连接配置为使用与本地计算机不同的 IP 子网上的 IP 地址静态池。 在这种情况下,如果本地计算机在 DNS 或 WINS 中注册,则本地计算机不会尝试连接到 PPP 适配器,因为 PPP 适配器位于不同的 IP 子网上。
若要在路由和远程访问控制台中指定静态地址池,请右键单击“ServerName”,选择“属性”,选择“IP”选项卡,选择“静态地址池”,然后选择“添加”。 添加一个范围,该范围不使用与本地计算机相同的 IP 子网。 例如,如果本地计算机使用的是 10.0.0.0 子网,请添加使用 172.168.0.0 子网的静态池。 如果路由和远程访问服务器正在运行 ISA Server 2000,则必须将此子网添加到本地地址表。 此方案在 Small Business Server 2000 上最为常见。