同时运行 DNS 或 WINS 的路由和远程访问服务器上的名称解析和连接问题

本文提供了同时运行 DNS 或 WINS 的路由和远程访问服务器上的名称解析和连接问题的解决方案。

适用于:Windows Server 2012 R2、Windows Server 2016
原始 KB 编号: 292822

症状

如果按以下方式配置服务器,则运行 Microsoft Windows 2000 Server 或 Microsoft Windows Server 2003 的计算机可能会出现连接问题:

  • 路由和远程访问服务配置为允许传入连接。
  • 域名系统 (DNS) 或 Windows Internet 名称服务器 (WINS) 服务在运行路由和远程访问的服务器上安装和配置。

远程计算机使用拨号或虚拟专用网络 (VPN) 连接连接到路由和远程访问服务器后,可能会间歇性地出现以下一个或多个症状:

  • 如果路由和远程访问服务器还运行 Microsoft Internet 安全和加速 (ISA) Server 2000,则无论计算机是配置为使用 Web 代理还是 Microsoft 防火墙客户端,都无法从本地网络上的客户端计算机浏览 Web。 例如,“无法显示页面”可能显示在 Web 浏览器中,并显示“找不到服务器或 DNS”错误消息。

  • 如果路由和远程访问服务器正在运行 ISA Server 2000,并且客户端计算机上的用户在“防火墙客户端选项”对话框中选择“立即更新”,则用户会收到以下错误消息:

    当客户端请求更新时,服务器不响应。
    可能的原因:
    -服务器不是 ISA 服务器。
    -服务器已关闭。

  • 尝试使用服务器的 NetBIOS 名称或完全限定的域名 (FQDN) 从本地计算机 ping 路由和远程访问服务器时,计算机会尝试 ping 错误的 IP 地址。

  • 如果路由和远程访问服务器是网络的主浏览器,则无法在“网络邻里”或“我的网络”Places中浏览计算机列表。

  • 无法连接到 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 专业版或 Microsoft Windows XP Professional 的计算机会收到类似于以下内容的错误消息:

    没有可用于为登录请求提供服务的登录服务器

此问题通常影响运行 Small Business Server 的计算机,因为此版本的 Windows Server 通常是网络上唯一的服务器。 但是,此问题可能会影响任何基于 Windows 2000 的服务器,或者运行 DNS 或 WINS 服务的任何基于 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 注册表值

  1. 依次选择“ 开始”、“ 运行”、“regedit”和“ 确定”。

  2. 找到并选择以下注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters

  3. “编辑 ”菜单上,指向“ 新建”,然后选择“ 字符串值 ”以添加以下注册表值:

    值名称:PublishAddresses
    数据类型:REG_SZ
    值数据:服务器的本地网络适配器的 IP 地址。 如果必须指定多个 IP 地址,请使用空格分隔地址。

  4. 找到并选择以下注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

  5. “编辑 ”菜单上,指向“ 新建”,然后选择“ DWORD 值 ”以添加以下注册表值:

    值名称:RegisterDnsARecords
    数据类型:REG_DWORD
    值数据:0

  6. 关闭注册表编辑器,然后重启 DNS 和 Netlogon 服务。 若要重启服务,请选择“ 开始”,指向 “程序 ”或“ 所有程序”,指向 “管理工具”,然后选择“ 服务”。 在“服务”控制台中,右键单击该服务,然后选择“ 重启”。

在 DNS 中添加 A 记录

仅当路由和远程访问服务器是域控制器时,才完成这些步骤。

  1. 选择 “开始”,指向 “程序 ”或 “所有程序”,指向 “管理工具”,然后选择“ DNS”。

  2. 在 DNS 控制台中,展开服务器对象,展开 “正向查找区域” 文件夹,然后选择本地域的文件夹。

  3. “操作 ”菜单上,选择“ 新建主机”。

  4. 在“ IP 地址 ”文本框中,键入服务器的本地网络适配器的 IP 地址。

  5. “名称 ”框留空,选择“ 创建关联的 PTR 记录”,然后选择“ 添加主机”。

  6. 收到“ (与父文件夹相同) 不是有效的主机名。 是否确实要添加此记录?“ 消息,选择” ”。

    注意

    如果服务器是全局编录服务器,请转到步骤 7。 如果服务器不是全局编录服务器,则无需完成步骤 7 到步骤 11。 若要确定服务器是否为全局编录服务器,请执行以下步骤:

    1. 选择 “开始”,指向 “程序 ”或 “所有程序”,指向 “管理工具”,然后选择“ Active Directory 站点和服务”。
    2. 在 Active Directory 站点和服务控制台中,展开 “站点” 文件夹,展开包含服务器的站点,然后展开服务器对象。
    3. 右键单击“ NTDS 设置”,然后选择“ 属性”。
    4. 在“常规”选项卡上,找到“全局编录检查”框。 如果选中此检查框,则服务器是全局编录服务器。
  7. 在 DNS 控制台的“ 转发查找区域” 文件夹下,展开本地域的文件夹,展开 MSDCS 文件夹,然后选择 GC 文件夹。

  8. “操作 ”菜单上,选择“ 新建主机”。

  9. 在“ IP 地址 ”框中,键入服务器的本地网络适配器的 IP 地址。

  10. “名称 ”框留空,选择“ 创建关联的 PTR 记录”,然后选择“ 添加主机”。

  11. 收到“ (与父文件夹相同) 不是有效的主机名。 是否确实要添加此记录?“ 消息,选择” ”。

将路由和远程访问服务器配置为仅在 WINS 中注册本地网络适配器的 IP 地址

仅当路由和远程访问服务器正在运行 WINS 服务时,才完成本部分中的步骤。 此外,如果服务器正在运行 Small Business Server 2000 SP1、Small Business Server 2000 SP1a 或 Windows Small Business Server 2003,则无需完成本部分中的步骤。 默认情况下,这些版本的 Windows 服务器配置为阻止服务器在 WINS 数据库中注册 PPP 适配器的 IP 地址。

为路由和远程访问服务添加 DisableNetbiosOverTcpip 注册表值

DisableNetbiosOverTcpip 注册表值针对远程访问连接禁用 NetBIOS over TCP/IP (NetBT) 协议。 因此,服务器不会在 WINS 数据库中注册 PPP 适配器。 请注意,通过添加此值,你将阻止远程访问客户端通过“我的网络Places”或“网络邻里”浏览本地网络。 有时,它还可能导致远程访问连接在运行旧版 Windows 的计算机上失败。 例如,在 Microsoft Windows 98 计算机和 Microsoft Windows NT 4.0 工作站计算机上,远程访问连接可能会失败。 有关使用 DisableNetbiosOverTcpip 注册表的替代方法,请参阅 解决方法 部分。

重要

如果服务器正在运行 Windows 2000 Server SP2 或更早版本,则必须使用 SP3 或 SP4 更新服务器,以便 DisableNetbiosOverTcpip 注册表值正常工作。 如果不更新服务器,路由和远程访问服务将不会使用此注册表值,并且问题不会得到解决。

  1. 依次选择“ 开始”、“ 运行”、“regedit”和“ 确定”。

  2. 找到并选择以下注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\RemoteAccess\Parameters\IP

  3. “编辑 ”菜单上,指向“ 新建”,然后选择“ DWORD 值 ”以添加以下注册表值:

    值名称:DisableNetbiosOverTcpip
    数据类型:REG_DWORD
    值数据:1

  4. 关闭注册表编辑器,然后重启路由和远程访问服务。 若要重启服务,请选择“ 开始”,指向 “程序 ”或“ 所有程序”,指向 “管理工具”,然后选择“ 服务”。 在“服务”控制台中,右键单击该服务,然后选择“ 重启”。

清除 WINS 数据库

  1. 选择 “开始”,指向 “程序 ”或“ 所有程序”,指向 “管理工具”,然后选择“ WINS”。
  2. 展开服务器对象,右键单击“ 活动注册”,然后选择“ 删除所有者”。
  3. 在“ 删除所有者 ”对话框中,选择服务器的 IP 地址。
  4. 如果 WINS 服务器没有任何复制伙伴,请选择“ 仅从此服务器中删除”,然后选择“ 确定”。 如果 WINS 服务器具有一个或多个复制伙伴,请选择“ 将删除复制到其他服务器 (逻辑删除) ”,然后选择“ 确定”。

当网络上的计算机注册其 NetBIOS 名称时,WINS 服务器将自动重新生成数据库。 可以通过运行 nbtstat -RR 命令,强制网络上基于 Windows 的计算机立即注册其 NetBIOS 名称。

解决方法

作为此问题的解决方法,可以将远程访问连接配置为使用与本地计算机不同的 IP 子网上的静态 IP 地址池。 在这种情况下,如果 PPP 适配器在 DNS 或 WINS 中注册,则本地计算机不会尝试连接到 PPP 适配器,因为 PPP 适配器位于不同的 IP 子网上。

若要在路由和远程访问控制台中指定静态地址池,请右键单击“ 服务器名称”,选择“ 属性”,选择“ IP ”选项卡,选择“ 静态地址池”,然后选择“ 添加”。 添加一个区域,该范围不使用与本地计算机相同的 IP 子网。 例如,如果本地计算机使用 10.0.0.0 子网,请添加使用 172.168.0.0 子网的静态池。 如果路由和远程访问服务器正在运行 ISA Server 2000,则必须将此子网添加到本地地址表。 此方案在 Small Business Server 2000 上最为常见。