Microsoft Entra 域服务的虚拟网络设计注意事项和配置选项
Microsoft Entra 域服务为其他应用程序和工作负载提供身份验证和管理服务。 网络连接是关键。 如果未正确配置虚拟网络资源,应用程序和工作负载将无法与域服务提供的功能进行通信并使用它们。 计划虚拟网络要求,确保域服务可以根据需要为应用程序和工作负载提供服务。
本文概述了为域服务提供支持的 Azure 虚拟网络设计注意事项和要求。
Azure 虚拟网络设计
若要提供网络连接并允许应用程序和服务向域服务托管域进行身份验证,请使用 Azure 虚拟网络和子网。 理论上,应将托管域部署到其专属虚拟网络。
可以在同一虚拟网络中加入独立的应用程序子网,用于承载管理 VM 或轻量级应用程序工作负载。 为较大型或复杂应用程序工作负载设计单独的虚拟网络,并使其与域服务虚拟网络对等互连,通常是最合适的设计。
如果其他设计满足以下各部分概述的对虚拟网络和子网的要求,则其同样有效。
为域服务设计虚拟网络时,应考虑以下注意事项:
- 域服务必须部署到虚拟网络所在的 Azure 区域。
- 目前,每个 Microsoft Entra 租户只能部署一个托管域。 托管域将部署到单个区域。 请确保在支持域服务的区域中创建或选择虚拟网络。
- 请考虑其他 Azure 区域与承载应用程序工作负载的虚拟网络的邻近程度。
- 为最大程度地降低延迟,请使核心应用程序接近或处于托管域的虚拟网络子网所在区域。 可以在 Azure 虚拟网络之间使用虚拟网络对等互连或虚拟专用网络 (VPN) 连接。 以下部分讨论这些连接选项。
- 除了托管域提供的那些服务外,虚拟网络不能依赖 DNS 服务。
- 域服务提供自己的 DNS 服务。 必须将虚拟网络配置为使用这些 DNS 服务地址。 可以使用条件转发器完成其他命名空间的名称解析。
- 不能使用自定义 DNS 服务器设置来引导来自其他 DNS 服务器(包括 VM 上的 DNS 服务器)的查询。 虚拟网络中的资源必须使用托管域提供的 DNS 服务。
重要
启用域服务之后,无法将其转移到其他虚拟网络。
托管域连接到 Azure 虚拟网络中的子网。 为域服务设计该子网,考虑以下注意事项:
托管域必须部署在其专属子网中。 不支持在虚拟网络对等互连中使用现有子网、网关子网或远程网关设置。
部署托管域期间创建了一个网络安全组。 此网络安全组包含正确进行服务通信所需的规则。
- 请勿创建或使用拥有自定义规则的网络安全组。
托管域需要 3-5 个 IP 地址。 请确保子网 IP 地址范围可以提供这么多地址。
- 限制可用 IP 地址可能会阻止托管域维护两个域控制器。
注意
由于以下问题,不应对虚拟网络及其子网使用公共 IP 地址:
IP 地址稀缺:IPv4 公共 IP 地址有限,其需求通常超出可用供应量。 此外,还可能存在与公共终结点重叠的 IP。
安全风险:将公共 IP 用于虚拟网络会直接向 Internet 公开设备,从而增加未经授权的访问和潜在攻击的风险。 如果没有适当的安全措施,你的设备可能会受到各种威胁的攻击。
复杂性:使用公共 IP 管理虚拟网络可能比使用专用 IP 更复杂,因为它需要处理外部 IP 范围并确保适当的网络分段和安全性。
强烈建议使用专用 IP 地址。 如果使用公共 IP,请确保你是所选公共范围内所选 IP 的所有者/专用用户。
在以下示例图大致描绘了一种有效设计,其中,托管域有自己的子网,存在用于外部连接的网关子网,应用程序工作负载位于虚拟网络内的已连接子网中:
与域服务虚拟网络的连接
如上一部分所述,只能在 Azure 中的单个虚拟网络中创建托管域,并且每个 Microsoft Entra 租户只能创建一个托管域。 基于此体系结构,可能需要将承载应用程序工作负载的一个或多个虚拟网络连接到托管域的虚拟网络。
可以使用以下方法之一连接其他 Azure 虚拟网络中承载的应用程序工作负载:
- 虚拟网络对等互连
- 虚拟专用网络 (VPN)
虚拟网络对等互连
虚拟网络对等互连是一种机制,通过 Azure 主干网络连接两个虚拟网络,允许虚拟机(VM)等资源使用专用 IP 地址直接相互通信。 虚拟网络对等互连支持区域对等互连,这些对等互连连接同一 Azure 区域中的 VNet,以及跨不同 Azure 区域连接 VNet 的全局虚拟网络对等互连。 这种灵活性允许跨多个虚拟网络部署具有应用程序工作负荷的托管域,而不考虑其区域位置。
有关详细信息,请参阅 Azure 虚拟网络对等互连概述。
虚拟专用网络 (VPN)
可以以将虚拟网络配置到本地站点位置的方式,将虚拟网络连接到另一个虚拟网络(VNet 到 VNet)。 这两种连接都使用 VPN 网关来创建使用 IPsec/IKE 的安全隧道。 通过此连接模型,可以将托管域部署到 Azure 虚拟网络,然后连接本地位置或其他云。
若要详细了解如何使用虚拟专用网络,请参阅使用 Microsoft Entra 管理中心配置 VNet 到 VNet 的 VPN 网关连接。
连接虚拟网络时的名称解析
连接到托管域虚拟网络的虚拟网络通常有自己的 DNS 设置。 连接虚拟网络时,它不会自动配置名称解析,让连接的虚拟网络能够解析托管域提供的服务。 必须配置正在连接的虚拟网络上的名称解析,使应用程序工作负载能够找到托管域。
可以在为连接的虚拟网络提供支持的 DNS 服务器上使用条件 DNS 转发器,或者从托管域的虚拟网络使用相同的 DNS IP 地址,来启用名称解析。
域服务使用的网络资源
托管域在部署期间会创建一些网络资源。 这些资源是有效运行和管理托管域所必需的,不应手动配置。
不要锁定域服务使用的网络资源。 如果网络资源被锁定,则无法删除。 在这种情况下,如果需要重新生成域控制器时,需要创建拥有不同 IP 地址的新网络资源。
Azure 资源 | 说明 |
---|---|
网络接口卡 | 域服务将托管域托管在 Windows Server 中作为 Azure VM 运行的两个域控制器 (DC) 上。 每个 VM 都有一个连接到虚拟网络子网的虚拟网络接口。 |
动态标准公共 IP 地址 | 域服务使用标准 SKU 公共 IP 地址与同步和管理服务进行通信。 有关公共 IP 地址的详细信息,请参阅 Azure 中的 IP 地址类型和分配方法。 |
Azure 标准负载均衡器 | 域服务使用标准 SKU 负载均衡器进行网络地址转换 (NAT) 和负载均衡(与安全 LDAP 一起使用时)。 有关 Azure 负载均衡器的详细信息,请参阅什么是 Azure 负载均衡器? |
网络地址转换 (NAT) 规则 | 域服务在负载均衡器上创建和使用两个入站 NAT 规则,以实现安全的 PowerShell 远程处理。 如果使用标准 SKU 负载均衡器,则它还会具有出站 NAT 规则。 对于基本 SKU 负载均衡器,不需要出站 NAT 规则。 |
负载均衡器规则 | 在 TCP 端口 636 上为安全 LDAP 配置托管域时,将在负载均衡器上创建并使用三项规则来分配流量。 |
警告
请勿删除或修改域服务创建的任何网络资源,例如手动配置负载均衡器或规则。 如果删除或修改任何网络资源,可能会导致域服务服务中断。
网络安全组和必需端口
网络安全组 (NSG) 包含一系列规则,这些规则可以允许或拒绝 Azure 虚拟网络中的网络流量。 部署托管域时会创建网络安全组,其中包含一系列规则,服务按照这些规则提供身份验证和管理功能。 此默认网络安全组与托管域部署到的虚拟网络子网相关联。
以下部分介绍网络安全组以及入站和出站端口要求。
入站连接
需要以下网络安全组入站规则,托管域才能提供身份验证服务和管理服务。 请勿编辑或删除托管域的虚拟网络子网的这些网络安全组规则。
源 | 源服务标记 | 源端口范围 | 目标 | 服务 | 目标端口范围 | 协议 | 操作 | 必须 | 目的 |
---|---|---|---|---|---|---|---|---|---|
服务标记 | AzureActiveDirectoryDomainServices | * | 任意 | WinRM | 5986 | TCP | 允许 | 是 | 用于管理域。 |
服务标记 | CorpNetSaw | * | 任意 | RDP | 3389 | TCP | 允许 | 可选 | 调试以获得支持 |
请注意,使用 Microsoft Entra 管理中心无法使用 CorpNetSaw 服务标记,必须使用 PowerShell 添加 CorpNetSaw 的网络安全组规则。
域服务还依赖于默认安全规则 AllowVnetInBound 和 AllowAzureLoadBalancerInBound。
AllowVnetInBound 规则允许 VNet 中的所有流量,因此 DC 可以正常进行通信和复制,并且可以将任何其他域服务以域加入形式加入到域成员中。 有关 Windows 所需端口的详细信息,请参阅 Windows 的服务概述和网络端口要求。
还需要 AllowAzureLoadBalancerInBound 规则,以便服务可以通过负载均衡器进行正常通信以管理 DC。 此网络安全组会保护域服务,是托管域正常运行所需的。 请勿删除此网络安全组。 如果没有此网络安全组,负载均衡器将无法正常工作。
如有需要,可使用 Azure PowerShell 创建所需的网络安全组和规则。
警告
将配置错误的网络安全组或用户定义的路由表与部署了托管域的子网相关联时,Microsoft 可能无法为域提供服务和对其进行管理。 Microsoft Entra 租户与托管域之间的同步也会中断。 遵循列出的所有要求,以避免可能中断同步、修补或管理的不受支持配置。
如果使用安全 LDAP,可以添加所需的 TCP 端口 636 规则,以便在需要时允许外部流量。 添加此规则不会导致网络安全组规则不受支持。 有关详细信息,请参阅通过 Internet 锁定安全 LDAP 访问
如果配置不当的网络安全组或用户定义的路由表阻止部署进行更新或管理,那么 Azure SLA 不适用于该部署。 损坏的网络配置还可能阻止应用安全修补程序。
出站连接
对于出站连接,可以保留 AllowVnetOutbound 和 AllowInternetOutBound,也可以使用下表中列出的 ServiceTag 限制出站流量 。 必须通过 PowerShell 添加 AzureUpdateDelivery 的 ServiceTag。 如果使用 Log Analytics,请将 EventHub 添加到出站目标。
确保没有优先级较高的其他 NSG 拒绝出站连接。 如果出站连接被拒绝,则副本集之间的复制不起作用。
出站端口号 | 协议 | 源 | 目标 | 操作 | 必须 | 目的 |
---|---|---|---|---|---|---|
443 | TCP | 任意 | AzureActiveDirectoryDomainServices | 允许 | 是 | 与 Microsoft Entra 域服务管理服务通信。 |
443 | TCP | 任意 | AzureMonitor | Allow | 是 | 监视虚拟机。 |
443 | TCP | 任意 | 存储 | Allow | 是 | 与 Azure 存储通信。 |
443 | TCP | 任意 | Microsoft Entra ID | Allow | 是 | 与 Microsoft Entra ID 通信。 |
443 | TCP | 任意 | GuestAndHybridManagement | 允许 | 是 | 自动管理安全修补程序。 |
注意
自 2024 年 7 月 1 日起,AzureUpdateDelivery 和 AzureFrontDoor.FirstParty 标记已弃用。 如果使用默认 AllowInternetOutBound 规则(priority 65001),则无需进行任何更改(无论是否使用 AzureUpdateDelivery 和 AzureFrontDoor.FirstParty 标记)。 了解更多信息,请参阅 AzureUpdateDelivery 服务标记的更改。
端口 5986 - 使用 PowerShell 远程处理进行管理
- 用于通过托管域上的 PowerShell 远程处理来执行管理任务。
- 如果不允许访问此端口,则无法更新、配置、备份或监视托管域。
- 可以将对此端口的入站访问限制为 AzureActiveDirectoryDomainServices 服务标记。
端口 3389 - 使用远程桌面进行管理
- 用于与托管域中域控制器的远程桌面连接,此端口不能更改或封装到另一个端口。
- 默认网络安全组规则使用 CorpNetSaw 服务标记进一步限制流量。
- 该服务标记仅允许 Microsoft 企业网络中的安全访问工作站使用远程桌面访问托管域。
- 只能基于业务理由允许访问,例如管理方案或对其进行故障排除。
- 可将此规则设置为“拒绝”,仅在需要时才设置为“允许” 。 大多数管理和监视任务都使用 PowerShell 远程处理执行。 只有在极少数情况下,当 Microsoft 需要远程连接到你的托管域来进行高级故障排除时,才会使用 RDP。
如果尝试编辑此网络安全组规则,则不能从门户中手动选择 CorpNetSaw 服务标记。 必须使用 Azure PowerShell 或 Azure CLI 手动配置使用 CorpNetSaw 服务标记的规则。
例如,可以使用以下脚本创建允许 RDP 的规则:
Get-AzNetworkSecurityGroup -Name "nsg-name" -ResourceGroupName "resource-group-name" | Add-AzNetworkSecurityRuleConfig -Name "new-rule-name" -Access "Allow" -Protocol "TCP" -Direction "Inbound" -Priority "priority-number" -SourceAddressPrefix "CorpNetSaw" -SourcePortRange "*" -DestinationPortRange "3389" -DestinationAddressPrefix "*" | Set-AzNetworkSecurityGroup
用户定义路由
默认不会创建用户定义的路由,并且域服务无需使用用户定义的路由即可正常运行。 如果需要使用路由表,请避免对 0.0.0.0 路由进行任何更改。 对此路由进行更改会中断域服务,并导致托管域不受支持。
此外,必须将来自相应 Azure 服务标记所包含 IP 地址的入站流量路由到托管域的子网。 有关服务标记及其关联的 IP 地址的详细信息,请参阅 Azure IP 范围和服务标记 - 公有云。
注意
这些 Azure 数据中心 IP 范围可能会发生更改,恕不另行通知。 请务必准备好用于验证自己是否具有最新 IP 地址的流程。
后续步骤
若要详细了解域服务使用的某些网络资源和连接选项,请参阅以下文章: