在多站点部署中部署多台远程访问服务器

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

Windows Server 2016 和 Windows Server 2012 将 DirectAccess 与远程访问服务 (RAS) VPN 合并到了单个远程访问角色中。 远程访问可在许多个企业方案中部署。 此概述介绍了用于在多站点配置中部署远程访问服务器的企业方案。

方案描述

在多站点部署中,两个或更多远程访问服务器或服务器群集被部署并配置为单个位置或分散的地理位置中的不同入口点。 在单个位置部署多个入口点可实现服务器冗余,或使远程访问服务器与现有网络体系结构保持一致。 按地理位置部署可确保资源的高效使用,因为远程客户端计算机可以使用离它们最近的入口点连接到内部网络资源。 可以通过外部全局负载均衡器来分发和平衡多站点部署中的流量。

多站点部署支持运行 Windows 10、Windows 8 或 Windows 7 的客户端计算机。 运行 Windows 10 或 Windows 8 的客户端计算机会自动识别入口点,用户也可以手动选择入口点。 自动分配按以下优先级顺序进行:

  1. 使用用户手动选择的入口点。

  2. 使用由外部全局负载均衡器识别的入口点(如果已部署了外部全局负载均衡器)。

  3. 使用由客户端计算机通过自动探测机制识别的最近入口点。

必须在每个入口点上手动启用对运行 Windows 7 的客户端的支持,由这些客户端选择入口点是不受支持的。

先决条件

在开始部署此方案之前,请查看此列表以了解重要要求:

本方案内容

多站点部署方案包含许多步骤:

  1. 部署带有高级设置的单个 DirectAccess 服务器。 在设置多站点部署之前,必须先部署带有高级设置的单个远程访问服务器。

  2. 规划多站点部署。 若要从单个服务器构建多站点部署,需要执行一些额外的规划步骤,包括符合多站点先决条件,以及规划 Active Directory 安全组、组策略对象 (GPO)、DNS 和客户端设置。

  3. 配置多站点部署。 这包括许多配置步骤,包括准备 Active Directory 基础结构、配置现有远程访问服务器,以及将多个远程访问服务器添加为多站点部署的入口点。

  4. 排查多站点部署问题。 此故障排除部分介绍了在多站点部署中部署远程访问时可能发生的一些最常见错误。

实际的应用程序

多站点部署有以下优势:

  • 改进的性能 - 多站点部署允许使用远程访问来访问内部资源的客户端计算机使用最近且最合适的入口点进行连接。 客户端有效地访问内部资源,并且通过 DirectAccess 路由的客户端 Internet 请求的速度会提高。 可以使用外部全局负载均衡器对入口点之间的流量进行均衡。

  • 多站点部署易于管理,可让管理员根据 Active Directory 站点部署来部署远程访问,从而简化体系结构。 可以轻松跨入口点服务器或群集设置共享设置。 可从部署中的任何服务器管理远程访问设置,也可远程使用远程服务器管理工具 (RSAT) 管理远程访问设置。 此外,可从单个远程访问管理控制台监视整个多站点部署。

本方案所包括的角色和功能

下表列出了本方案中使用的角色和功能。

角色/功能 如何支持本方案
远程访问角色 该角色可使用服务器管理器控制台加以安装和卸载。 它包括 DirectAccess(以前是 Windows Server 2008 R2 中的功能)以及路由和远程访问服务 (RRAS)(以前是网络策略和访问服务 (NPAS) 服务器角色项下的角色服务)。 远程访问角色由以下两个组件组成:

- DirectAccess 以及路由和远程访问服务 (RRAS) VPN - DirectAccess 与 VPN 是在远程访问管理控制台中一起受到管理的。
- RRAS 路由 - RRAS 路由功能是在旧式路由和远程访问控制台中受到管理的。

依赖关系如下所示:

- Internet 信息服务 (IIS) Web 服务器 - 在配置网络位置服务器和默认的 Web 探测时,需要此功能。
- Windows 内部数据库 - 用于远程访问服务器上的本地记帐。

远程访问管理工具功能 此功能的安装如下所述:

- 默认情况下,当安装远程访问角色时,此功能会安装在远程访问服务器上,并且此功能支持远程管理控制台用户界面。
- 此外,它还可以安装在不运行远程访问服务器角色的服务器上。 在这种情况下,它可用于远程管理运行 DirectAccess 和 VPN 的远程访问计算机。

远程访问管理工具功能包括以下各项:

- 远程访问 GUI 和命令行工具
- Windows PowerShell 的远程访问模块

依赖项包括:

- 组策略管理控制台
- RAS 连接管理器管理工具包 (CMAK)
- Windows PowerShell 3.0
- 图形管理工具和基础结构

硬件要求

本方案的硬件要求包括以下各项:

  • 至少要将两台远程访问计算机收集到多站点部署中。

  • 若要测试该方案,至少需要一台运行 Windows 8 且配置为 DirectAccess 客户端的计算机。 若要为运行 Windows 7 的客户端测试该方案,至少需要一台运行 Windows 7 的计算机。

  • 若要跨入口点服务器对流量进行负载均衡,需要一个第三方外部全局负载均衡器。

软件要求

本方案的软件要求包括以下各项:

  • 对单台服务器部署的软件要求。

  • 除对单个服务器的软件要求外,还存在许多特定于多站点的要求:

    • IPsec 身份验证要求 - 在多站点部署中,必须使用 IPsec 计算机证书身份验证部署 DirectAccess。 使用远程访问服务器作为 Kerberos 代理来执行 IPsec 身份验证的选项不受支持。 部署 IPsec 证书需要一个内部 CA。

    • IP-HTTPS 和网络位置服务器要求 - IP-HTTPS 和网络位置服务器所需的证书必须由 CA 颁发。 使用由远程访问服务器自动颁发且自签名的证书的选项不受支持。 证书可由内部 CA 或第三方外部 CA 颁发。

    • Active Directory 要求 - 至少需要一个 Active Directory 站点。 远程访问服务器应位于该站点中。 为了加快更新速度,建议每个站点都有一个可写域控制器,但这不是必需的。

    • 安全组要求 - 要求如下:

      • 来自所有域的所有 Windows 8 客户端计算机需要一个安全组。 建议为每个域创建这些客户端的唯一安全组。

      • 对于配置为支持 Windows 7 客户端的每个入口点,都需要一个包含 Windows 7 计算机的唯一安全组。 建议每个域中的每个入口点都有一个唯一的安全组。

      • 计算机不应该包括在多个包括 DirectAccess 客户端的安全组中。 如果客户端包括在多个组中,客户端请求的名称解析不会按预期方式工作。

    • GPO 要求 - GPO 可以在配置远程访问之前手动创建,也可以在远程访问部署期间自动创建。 要求如下:

      • 每个域都需要一个唯一的客户端 GPO。

      • 每个入口点在该入口点所在域中都需要一个服务器 GPO。 因此,如果多个入口点位于同一域中,则该域中将有多个服务器 GPO(每个入口点一个)。

      • 对于每个域,为 Windows 7 客户端支持启用的每个入口点都需要一个唯一的 Windows 7 客户端 GPO。

已知问题

下面是配置多站点方案时的已知问题:

  • 同一 IPv4 子网中有多个入口点。 在同一 IPv4 子网中添加多个入口点将导致出现 IP 地址冲突消息,并且不会按预期为入口点配置 DNS64 地址。 如果尚未在企业网络的服务器的内部接口上部署 IPv6,则会出现此问题。 若要防止此问题,请在所有当前和将来的远程访问服务器上运行以下 Windows PowerShell 命令:

    Set-NetIPInterface -InterfaceAlias <InternalInterfaceName> -AddressFamily IPv6 -DadTransmits 0
    
  • 如果为要连接到远程访问服务器的 DirectAccess 客户端指定的公用地址在 NRPT 中包含后缀,则 DirectAccess 可能无法按预期工作。 请确保 NRPT 对该公共名称有豁免。 在多站点部署中,应为所有入口点的公共名称添加豁免。 请注意,如果启用了强制隧道,则会自动添加这些豁免。 如果禁用强制隧道,则会删除这些豁免。

  • 使用 Windows PowerShell cmdlet Disable-DAMultiSite 时,WhatIf 和 Confirm 参数不起作用,多站点将被禁用,Windows 7 GPO 将被删除。

  • 当多站点部署中使用 DCA 的 Windows 7 客户端升级到 Windows 8 时,网络连接助手将不起作用。 可以通过使用以下 Windows PowerShell cmdlet 修改 Windows 7 GPO,在客户端升级之前解决此问题:

    Set-GPRegistryValue -Name <Windows7GpoName> -Domain <DomainName> -Key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkConnectivityAssistant" -ValueName "TemporaryValue" -Type Dword -Value 1
    Remove-GPRegistryValue -Name <Windows7GpoName> -Domain <DomainName> -Key "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkConnectivityAssistant"
    

    如果客户端已升级,请将客户端计算机移动到 Windows 8 安全组。

  • 使用 Windows PowerShell cmdlet Set-DAEntryPointDC 修改域控制器设置时,如果指定的 ComputerName 参数是某个入口点中的远程访问服务器,而该入口点不是最后一个添加到多站点部署的入口点,则会显示一条警告,指示指定的服务器在下一次策略刷新前不会更新。 使用“远程访问管理控制台”的“仪表板”中的“配置状态”,可以查看未更新的实际服务器。 这不会引发任何功能性问题;然而,你可以在任何未更新的服务器上运行 gpupdate /force,以立即更新配置状态。

  • 在纯 IPv4 的企业网络中进行多站点部署时,更改内部网络 IPv6 前缀也会更改 DNS64 地址,但不会更新允许对 DNS64 服务进行 DNS 查询的防火墙规则上的地址。 若要解决此问题,请在更改内部网络 IPv6 前缀后运行以下 Windows PowerShell 命令:

    $dns64Address = (Get-DAClientDnsConfiguration).NrptEntry | ?{ $_.DirectAccessDnsServers -match ':3333::1' } | Select-Object -First 1 -ExpandProperty DirectAccessDnsServers
    
    $serverGpoName = (Get-RemoteAccess).ServerGpoName
    
    $serverGpoDc = (Get-DAEntryPointDC).DomainControllerName
    
    $gpoSession = Open-NetGPO -PolicyStore $serverGpoName -DomainController $serverGpoDc
    
    Get-NetFirewallRule -GPOSession $gpoSession | ? {$_.Name -in @('0FDEEC95-1EA6-4042-8BA6-6EF5336DE91A', '24FD98AA-178E-4B01-9220-D0DADA9C8503')} |  Set-NetFirewallRule -LocalAddress $dns64Address
    
    Save-NetGPO -GPOSession $gpoSession
    
  • 如果在存在现有 ISATAP 基础结构时部署了 DirectAccess,则在删除作为 ISATAP 主机的入口点时,DNS64 服务的 IPv6 地址将从 NRPT 中所有 DNS 后缀的 DNS 服务器地址中删除。

    若要解决此问题,请在“基础结构服务器安装”向导的“DNS”页上,通过单击“DNS 服务器地址”对话框中的“检测”,删除修改后的 DNS 后缀,并使用正确的 DNS 服务器地址再次添加它们。