你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
更新和提交 Network Fabric 资源
目前,Nexus Network Fabric 资源要求禁用父资源(如 L3Isolation 域),用更新的值重新设置父资源或子资源,并执行管理后操作来启用和配置设备。 Network Fabric 的新资源更新流让你可以在资源启用时通过 commitConfiguration
POST 操作批处理和更新一组 Network Fabric 资源。 如果选择禁用 L3 隔离域、进行更改和启用 L3 隔离域的当前工作流,则没有更改。
Network Fabric 资源更新概览
链接到现有已启用的父资源的子资源上的任何创建、更新、删除 (CUD) 操作或对已启用的父资源属性的更新都被视为更新操作。 一些例子包括新的内部网络,或者需要被添加到现有已启用的第 3 层隔离域的新子网(内部网络是第 3 层隔离域的子资源)。 需要将新的路由策略附加到现有的内部网络,这两种方案都符合更新操作的条件。
对下表中显示的受支持的 Network Fabric 资源执行的任何更新操作都会使结构处于挂起的提交状态(目前在配置状态中为“已接受”),此时必须发起结构提交-配置操作以应用所需的更改。 对结构中 Network Fabric 资源(包括子资源)的所有更新都遵循相同的工作流。
对资源的提交操作/更新应仅在结构处于已预配状态且 Network Fabric 资源处于“**已启用”管理状态时有效且适用。 可以批处理对父资源和子资源的更新(跨各种 Network Fabric 资源),并且可以执行 commitConfiguration
操作以在单个 POST 操作中执行所有更改。
通过管理操作创建父资源和启用与更新/提交操作工作流无关。 此外,启用/禁用的所有管理操作都是独立的,不应需要 commitConfiguration 操作触发器来执行。 CommitConfiguration 操作仅适用于操作员想要更新任何现有 Azure 资源管理器资源和结构且父资源处于已启用状态的情况。 操作员用于创建 Network Fabric 资源并启用的任何自动化脚本或 bicep 模板都无需进行任何更改。
用户工作流
若要成功执行更新资源,结构必须处于已预配状态。 更新 Network Fabric 资源涉及以下步骤。
操作员通过 AzCli、Azure 资源管理器、门户对 Network Fabric 资源进行更新调用,从而更新已启用(配置已应用于设备)的所需 Network Fabric 资源(可以批处理多个资源更新)。 (请参阅下表中支持的方案、资源和参数的详细信息)。
在以下示例中,新的
internalnetwork
被添加到现有的 L3Isolation l3domain101523-sm。az networkfabric internalnetwork create --subscription 5ffad143-8f31-4e1e-b171-fa1738b14748 --resource-group "Fab3Lab-4-1-PROD" --l3-isolation-domain-name "l3domain101523-sm" --resource-name "internalnetwork101523" --vlan-id 789 --mtu 1432 --connected-ipv4-subnets "[{prefix:'10.252.11.0/24'},{prefix:'10.252.12.0/24'}]
Azure 资源管理器的更新调用成功后,特定资源的
ConfigurationState
设置为“已接受”;失败时,它将设置为“已拒绝”。 无论 PATCH 调用成功/失败,FabricConfigurationState
都设置为“已接受”。如果结构上的任何 Azure 资源管理器资源(如内部网络或
RoutePolicy
)处于“已拒绝”状态,操作员必须更正配置,并确保特定资源的 ConfigurationState 设置为“已接受”,然后再继续操作。操作员对 Fabric 资源执行 commitConfiguration POST 操作。
az networkfabric fabric commit-configuration --subscription 5ffad143-8f31-4e1e-b171-fa1738b14748 --resource-group "FabLAB-4-1-PROD" --resource-name "nffab3-4-1-prod"
服务验证是否所有资源更新都成功并验证输入。 它还会验证连接的逻辑资源,以确保一致的行为和配置。 所有验证都成功后,将生成新配置并将其推送到设备。
特定资源
configurationState
重置为“已成功”,FabricconfigurationState
设置为“已预配”。如果
commitConfiguration
操作失败,则服务会显示相应的错误消息,并通知操作员潜在的 Network Fabric 资源更新失败。
State | 定义 | 在 Azure 资源管理器资源更新之前 | 在 CommitConfiguration 和后 Azure 资源管理器更新之前 | 后 CommitConfiguration |
---|---|---|---|---|
管理状态 | 表示对资源执行的操作的状态 | 已启用(仅支持已启用) | 已启用(仅支持已启用) | 已启用(用户可以禁用) |
配置状态 | 表示操作员操作/服务驱动配置的状态 | 资源状态 - 已成功, 结构状态 已预配 |
资源状态 - 已接受(成功) - 已拒绝(失败) 结构状态 - 已接受 |
资源状态 - 已接受(失败), - 已成功(成功) 结构状态 - 已预配 |
预配状态 | 表示资源的 Azure 资源管理器预配状态的状态 | 已预配 | 已预配 | 已预配 |
支持的 Network Fabric 资源和方案
Network Fabric 更新支持 Network Fabric 资源(Network Fabric 4.1、Nexus 2310.1)
Network Fabric 资源 | 类型 | 支持的方案 | 不支持的方案 | 说明 |
---|---|---|---|---|
第 2 层隔离域 | Parent | - 更新到属性 - MTU - 添加/更新标记 |
资源 Re-PUT | |
第 3 层隔离域 | Parent | 更新到属性 - 重新分发已连接。 - 重新分发静态路由。 - 聚合路由配置 - 连接的子网路由策略。 添加/更新标记 |
资源 Re-PUT | |
内部网络 | 子级(L3 ISD 的) | 添加新的内部网络 更新到属性 - MTU - 添加/更新连接的 IPv4/IPv6 子网 - IPv4/IPv6 RoutePolicy 的添加/更新 - 添加/更新出口/入口 ACL - 更新 isMonitoringEnabled 标志 - 向静态路由添加/更新 - BGP 配置 添加/更新标记 |
资源 - Re-PUT。 - 启用父第 3 层隔离域时删除内部网络。 |
若要删除资源,必须禁用父资源 |
外部网络 | 子级(L3 ISD 的) | 更新到属性 - IPv4/IPv6 RoutePolicy 的添加/更新 - 选项 A 属性 MTU、入口和出口 ACL 的添加/更新, - 选项 A 属性 - BFD 配置 - 选项 B 属性 - 路由目标 添加/更新标记 |
资源 - Re-PUT。 - 创建新的外部网络 - 启用父第 3 层隔离域时删除外部网络。 |
若要删除资源,必须禁用父资源。 注意:每个 ISD 仅支持一个外部网络。 |
路由策略 | Parent | - 更新整个语句,包括 seq number、condition、action。 - 添加/更新标记 |
资源 - Re-PUT。 - 更新到链接到网络到网络互连资源的路由策略。 |
若要删除资源,connectedResource (IsolationDomain 或 N 到 N 互连)不应保留任何引用。 |
IPCommunity | Parent | 更新整个 ipCommunity 规则,包括 seq number、action、community members、known communities。 | 资源 Re-PUT | 若要删除资源,连接的 RoutePolicy 资源不应保留任何引用。 |
IPPrefixes | Parent | - 更新整个 IPPrefix 规则,包括 seq number、networkPrefix、condition、subnetMask Length。 - 添加/更新标记 |
资源 Re-PUT | 若要删除资源,连接的 RoutePolicy 资源不应保留任何引用。 |
IPExtendedCommunity | Parent | - 更新整个 IPExtended 社区规则,包括 seq number、action、route targets。 - 添加/更新标记 |
资源 Re-PUT | 若要删除资源,连接的 RoutePolicy 资源不应保留任何引用。 |
ACL | Parent | - 添加/更新以匹配配置和动态匹配配置。 - 更新到配置类型 - 添加/更新 ACL URL - 添加/更新标记 |
资源 - Re-PUT。 - 更新到链接到网络到网络互连资源的 ACL。 |
若要删除资源,connectedResource (如 IsolationDomain 或 N 到 N 互连)不应保留任何引用。 |
行为说明和约束
如果父资源处于“已禁用”管理状态,并且对父资源或子资源进行了更改,则
commitConfiguration
操作不适用。 启用资源会推送配置。 仅当父资源处于“已启用”管理状态时,才会触发此类资源的提交路径。如果
commitConfiguration
失败,则结构将保持“已接受”配置状态,直到用户解决问题并执行了成功的commitConfiguration
。 目前仅在发生故障时提供前滚机制。如果 Fabric 配置处于“已接受”状态,并且具有尚未提交的 Azure 资源管理器资源更新,则不允许对资源执行管理操作。
如果 Fabric 配置处于“已接受”状态,并且具有尚未提交的 Azure 资源管理器资源更新,则无法触发对支持的资源的删除操作。
父资源的创建独立于
commitConfiguration
和更新流。 任何资源都不支持资源 Re-PUT。Greenfield 部署和 Brownfield 部署都支持 Network Fabric 资源更新,但存在一些限制。
在 Greenfield 部署中,一旦 Network Fabric 资源完成任何更新,Fabric 配置状态就会变为“已接受”。 触发
commitConfiguration
操作后,它会根据操作的成功或失败转变为“已预配”或“已接受”状态。在 Brownfield 部署中,支持
commitConfiguration
操作,但受支持的 Network Fabric 资源(如隔离域、内部网络、RoutePolicy 和 ACL)必须使用 API 的正式发布版本创建 (2023-06-15)。 将所有资源迁移到最新版本后,将放宽此临时限制。在 Brownfield 部署中,当触发对任何受支持的 Network Fabric 资源或 commitConfiguration 操作的更改时,Fabric 配置状态将保持“已预配”状态。 此行为是暂时的,到将所有结构迁移到最新版本为止。
路由策略和其他相关的资源(IP 社区、IP 扩展社区、IP 前缀列表)更新被视为列表替换操作。 所有现有语句会被移除,仅配置新更新的语句。
更新或移除内部网络或外部网络配置中的现有子网、路由、BGP 配置和其他相关网络参数可能会导致流量中断,应由操作员自行决定是否执行。
更新新的路由策略和 ACL 可能会导致流量中断,具体取决于应用的规则。
对特定资源类型使用列出命令(列出内部网络类型的所有资源)以验证资源是否已更新且未提交到设备。 具有“已接受”或“已拒绝”配置状态的资源可被筛选并标识为尚未提交的资源,或者提交到设备失败的资源。
例如:
az networkfabric internalnetwork list --resource-group "example-rg" --l3domain "example-l3domain"