本文介绍如何在现有 Azure 本地实例上启用和集成软件定义的网络(SDN)。 使用 PowerShell 操作计划启用 SDN。
关于 Azure Local 中的 SDN 集成
对于通过 Arc 启用的 SDN,网络控制器(NC)被部署为故障转移群集服务,并由编排器(也称为生命周期管理器)进行管理。 运行将 NC 集成到 Azure 本地平台中的协调器命令。
集成 NC 后,将启用 SDN。 可以使用 Azure 门户、Azure CLI 或 Azure 资源管理器模板创建和管理以下 SDN 功能:
逻辑网络:可以创建投影物理网络的 SDN 静态逻辑网络。 有关详细信息,请参阅 创建逻辑网络。
网络接口:可以创建网络接口并将其附加到虚拟机,并从逻辑网络分配 IP 地址。 有关详细信息,请参阅 “创建网络接口”。
网络安全组(NSG):可以创建 NSG 并将其应用于网络接口或逻辑网络以筛选网络流量。 还可以创建默认网络访问策略和网络安全规则,以允许或拒绝进出网络接口和逻辑网络的流量。
关于 Azure 本地上的网络控制器体系结构
NC 是一个关键组件,用于管理和配置 Azure 本地实例上的虚拟网络基础结构。 NC 现在使用故障转移群集与主机集成,而不是托管在 VM 中。 NC 负责管理虚拟交换机、逻辑网络和网络接口。 它还提供 REST API,用于以编程方式访问网络基础结构。
这是一个架构图,展示了在由 Arc 启用的 SDN 上运行的 2 节点 Azure 本地实例中的网络控制器。
在此示例中,网络拓扑包括两台 Azure 本地计算机,这些计算机与两个机架顶部(ToR)交换机一起群集。 网络控制器组件及其服务被设置为实例中所有 Azure Local 计算机上的故障转移群集组。 每个网络控制器微服务都作为故障转移群集资源组高度可用。
- Azure Local 实例上的 MGMT VLAN 负责配置和部署从 NC 到 NC 主机代理的网络策略。
- NC 主机代理会接收策略并将其配置到您的虚拟交换机。
- 租户 VM 驻留在 NC 管理的逻辑网络上。 来自这些 VM 的所有流量都通过启用了虚拟筛选平台(VFP)的虚拟交换机进行路由。
Arc 启用的 SDN 注意事项
重要
- 一旦启用 SDN,就无法回滚或禁用。
- 如果已在使用本地工具部署的 Azure 本地群集上运行网络控制器,则不得尝试运行此方法。
- 此功能中可使用 NSG 的唯一 VM 是 Azure Local VM。 这些 VM 是从 Azure 客户端接口(Azure CLI、Azure 门户、Azure 资源管理器)部署的 VM。 不要将 Azure 本地 VM 与从本地工具管理和应用的 NSG 结合使用。
对于现有的 Azure 本地实例:
- 支持使用现有 Azure 本地 VM 和逻辑网络启用 SDN。
- 逻辑网络和网络接口会自动加载到网络控制器中。
- 如果在生产环境中运行,请确保规划维护时段。 应用 SDN Azure 虚拟筛选平台策略时,工作负荷遇到短暂的网络中断。
先决条件
有权访问运行 2506 及更高版本的 Azure 本地实例。 OS 版本必须是 26100.xxxx 或更高版本。 通过 Azure 门户或 PowerShell 检查 OS 版本:
在 Azure 门户中,转到 Azure 本地实例并选择“ 概述”。 OS 版本显示在“实例详细信息”部分中。
连接到 Azure 本地实例上的计算机,并运行以下 PowerShell 命令来验证 OS 版本:
systeminfo.exe下面是示例输出:
[v-host1]: PS C:\DeploymentUser> systeminfo.exe Host Name: V-HOST1 OS Name: Microsoft Azure Stack HCI OS Version: 10.0.26100 N/A Build 26100 OS Manufacturer: Microsoft Corporation OS Configuration: Member Server OS Build Type: Multiprocessor Free ====SNIPPED========SNIPPED========SNIPPED========SNIPPED==== Security Features Enabled: Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.- 验证输出中的
OS Version是否为 10.0.26100。
- 验证输出中的
可以使用 Azure Stack HCI 管理员角色访问 Azure 本地实例的节点。 要运行 cmdlet,需要具备此角色。
有权访问用于连接到 Azure 本地实例的客户端。
可以使用 Azure Stack HCI 管理员基于角色的访问控制 (RBAC) 角色访问 Azure 订阅。 此角色授予对 Azure 本地实例及其资源的完全访问权限。
Azure Stack HCI 管理员可以注册 Azure 本地实例,并将 Azure Stack HCI VM 参与者和 Azure Stack HCI VM 读取者角色分配给其他用户。 有关详细信息,请参阅 使用基于角色的访问控制来管理 Azure Arc 启用的 Azure 本地 VM。
选择 SDN 前缀
启用 SDN 时,需要提供 SDN 前缀。 确保 SDN 前缀满足以下要求:
- 不能为 null 或空。
- 字符必须为 8 或更少。
- 必须仅包含小写字母、大写字母和数字字符。
- 可以包含连字符,但不能包含两个连续连字符或以连字符结尾。
如果前缀不符合这些要求,SDN 启用会失败。
准备 DNS 环境
在启用 SDN 之前准备 DNS 环境。 SDN 集成需要为网络控制器 REST URL 创建一个 DNS 记录,该记录用于访问网络控制器 REST API。
静态 DNS 环境:为网络控制器 REST URL 预创建 DNS 记录。 有关详细信息,请参阅 预创建 DNS 记录。
- DNS 记录的名称派生自 SDN 前缀。 A DNS 记录必须是
<SDNPrefix>-NC。 - DNS 记录必须解析为保留 IP。
- 将 IP 地址范围中的第 5 个 IP 地址分配给 A DNS 记录。 在 部署 Azure 本地实例期间配置网络设置时,你提供了此 IP 范围。
- 链接不应解析为现有的 DNS 记录。
- DNS 记录的名称派生自 SDN 前缀。 A DNS 记录必须是
动态 DNS 环境:如果你有 Active Directory 集成的动态 DNS 环境,则无需执行任何作。 该行动计划会自动创建 A DNS 记录。
如果未为动态 DNS 环境启用更新,可以选择为注册网络控制器 REST URL 的 DNS 区域启用动态 DNS 更新。
- 在 DNS 服务器上,打开“DNS 管理器”控制台。
- 在左侧窗格中选择“正向查找区域”。
- 右键单击托管网络控制器名称记录的区域,然后选择“属性”。
- 在“常规”选项卡上的“动态更新”旁边,选择“仅限安全更新” 。
有关详细信息,请参阅 在 DNS 区域中启用动态 DNS 更新。
查看 cmdlet 参数
SDN 启用 cmdlet 使用以下参数:
| 参数 | DESCRIPTION |
|---|---|
| 名称 | 以 NC 形式传递名称。 不允许其他用户输入。 |
| SDNPrefix | 此参数用于指定网络控制器的 REST URL,以区分 Azure 本地实例中的网络控制器。 例如,<SDNPrefix> 将 https://<SDNPrefix>-NC.domainname/ 作为 Azure 本地实例的 NC REST URL。 确保 SDN 前缀满足 “选择 SDN 前缀”中包含的要求。 |
运行 cmdlet 以启用 SDN
重要
如果在生产环境中运行,请确保规划维护时段。
按照以下步骤在 Azure 本地实例上启用 SDN:
验证是否已使用 Azure Stack HCI 管理员角色连接到 Azure Local 实例的节点。
运行 cmdlet 以将网络控制器部署为故障转移群集服务。 打开 PowerShell 命令提示符并运行以下命令。
#Run the LCM action plan to install Network Controller as Failover Cluster Service. Replace <SDNPrefix> with your SDN prefix. Add-EceFeature -Name NC -SDNPrefix <SDNPrefix>在请求确认时继续提供确认。
小窍门
若要跳过确认提示以确认维护时段,请使用
-AcknowledgeMaintenanceWindow参数,然后使用-AcknowledgeDNSRecordCreation该参数确认你已准备好 DNS 环境(如果未使用动态 DNS)。此步骤最多可能需要 20 分钟。
验证是否已成功将网络控制器添加到实例。 添加网络控制器后,该
Add-EceFeature命令会显示行动计划结果。展开此部分以查看示例输出。
VERBOSE: Adding ECE feature NC; transcript started at C:\MASLogs\Add-EceFeature.2025-04-17.20-52-14 Disclaimer: Network Controller installation will cause network connectivity interruptions. Before proceeding with the NC enablement operation, please ensure a maintenance window is properly arranged for running on a production environment. Proceeding? [Yes/NO] : Yes Start End Duration Type Status Name ----- --- -------- ---- ------ ---- 03/11/2025 10:29:52 PM 03/11/2025 10:31:13 PM 00.00:01:20 Action Success └─(A)CleanNCSecret 03/11/2025 10:29:52 PM 03/11/2025 10:31:13 PM 00.00:01:20 Step Success └─(S)1 Parallel per-node operation top step ==========SNIPPED======SNIPPED==========SNIPPED=========SNIPPED======== 03/11/2025 10:29:52 PM 03/11/2025 10:31:12 PM 00.00:01:20 Step Success └─(S)1.1 Clean up NC secrets 03/11/2025 10:29:52 PM 03/11/2025 10:31:12 PM 00.00:01:20 Task Success └─(T)[RemoteNode=Machine2>] Role=Cloud\Fabric\NC Interface=CleanNCRestSecret InstanceID : <Instance1 ID> ActionTypeName : CleanNCSecret Status : Completed StartDateTime : 3/11/2025 10:29:51 PM EndDateTime : 3/11/2025 10:31:18 PM Start End Duration Type Status Name ----- --- -------- ---- ------ ---- 03/11/2025 10:31:52 PM 03/11/2025 10:31:57 PM 00.00:00:04 Action Success └─(A)GenerateCertificates 03/11/2025 10:31:52 PM 03/11/2025 10:31:57 PM 00.00:00:04 Step Success └─(S)1 Generate NC Rest certificate 03/11/2025 10:31:52 PM 03/11/2025 10:31:57 PM 00.00:00:04 Task Success └─(T)Role=Cloud\Infrastructure\ASCA Interface=GenerateSSLCertificatesForNCDeployment InstanceID : <Instance2 ID> ActionTypeName : GenerateCertificates Status : Completed StartDateTime : 3/11/2025 10:31:52 PM EndDateTime : 3/11/2025 10:32:02 PM Start End Duration Type Status Name ----- --- -------- ---- ------ ---- 03/11/2025 10:32:53 PM 03/11/2025 10:41:50 PM 00.00:08:57 Action Success └─(A)EnableMOCSDN 03/11/2025 10:32:53 PM 03/11/2025 10:41:50 PM 00.00:08:57 Step Success └─(S)1 FCNC deployment and MOC hydration. 03/11/2025 10:32:53 PM 03/11/2025 10:41:50 PM 00.00:08:57 Task Success └─(T)Role=Cloud\Fabric\NC Action=DeployFCNCHydrateMOC ======SNIPPED=========SNIPPED============SNIPPED ==========SNIPPED======== 03/11/2025 10:40:19 PM 03/11/2025 10:40:25 PM 00.00:00:06 Step Success │ │ ├─(S)1 Check Firewall Rules 03/11/2025 10:40:19 PM 03/11/2025 10:40:25 PM 00.00:00:06 Task Success │ │ │ └─(T)Role=Cloud\Fabric\NC Interface=VerifyNCFirewallRulesEnabled 03/11/2025 10:40:25 PM 03/11/2025 10:40:32 PM 00.00:00:06 Step Success │ │ └─(S)2 Check VM switch extension is enabled 03/11/2025 10:40:25 PM 03/11/2025 10:40:32 PM 00.00:00:06 Task Success │ │ └─(T)Role=Cloud\Fabric\NC Interface=VerifyNCVMSwitchExtensionEnabled 03/11/2025 10:41:13 PM 03/11/2025 10:41:21 PM 00.00:00:07 Step Success │ └─(S)1.1.0.9.2 VerifyNCResources 03/11/2025 10:41:13 PM 03/11/2025 10:41:21 PM 00.00:00:07 Task Success │ └─(T)Role=Cloud\Fabric\NC Interface=VerifyNCResources 03/11/2025 10:41:21 PM 03/11/2025 10:41:50 PM 00.00:00:29 Step Success └─(S)1.2 Enable FCNC SDN for MOC 03/11/2025 10:41:21 PM 03/11/2025 10:41:50 PM 00.00:00:29 Task Success └─(T)Role=Cloud\Fabric\NC Action=SetMOCSDNEnabled 03/11/2025 10:41:21 PM 03/11/2025 10:41:50 PM 00.00:00:29 Action Success └─(A)SetMOCSDNEnabled 03/11/2025 10:41:21 PM 03/11/2025 10:41:43 PM 00.00:00:22 Step Success ├─(S)1.2.1 Enable FCNC SDN for MOC 03/11/2025 10:41:21 PM 03/11/2025 10:41:43 PM 00.00:00:22 Task Success │ └─(T)Role=Cloud\Fabric\NC Interface=EnableSDNForMOC 03/11/2025 10:41:43 PM 03/11/2025 10:41:50 PM 00.00:00:07 Step Success └─(S)1.2.2 Flag FCNC deployed 03/11/2025 10:41:43 PM 03/11/2025 10:41:50 PM 00.00:00:07 Task Success └─(T)Role=Cloud\Fabric\NC Interface=SetFCNCCompleteMOCHydrated InstanceID : <Instance ID> ActionTypeName : EnableMOCSDN Status : Completed StartDateTime : 3/11/2025 10:32:52 PM EndDateTime : 3/11/2025 10:41:55 PM VERBOSE: Full XML progress log file located at: C:\MASLogs\EnableMOCSDN.2025-03-11.22-32-52 WARNING: Unable to find volume with label Deployment VERBOSE: SDN Network Controller URL is https://v-NC.domainname/ VERBOSE: Enabling SDN for MOC completed. 0 VERBOSE: Transcript stopped at C:\MASLogs\Add-EceFeature.2025-03-11.22-29-49
后续步骤
- 了解如何 创建网络安全组、网络安全规则和默认网络访问策略。
此功能在 OS 内部版本 26100.xxxx 的 Azure Local 2506 或更高版本中提供。