你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
目前,Nexus Network Fabric 资源要求您禁用父资源(例如 L3Isolation 域),然后使用更新的值重新配置该父资源或子资源,并执行管理操作以启用和配置设备。 使用 Network Fabric 的新资源更新流,在启用资源时,可以通过 commitConfiguration
POST 操作进行批量更新一组 Network Fabric 资源。 如果选择禁用 L3 隔离域、进行更改和启用 L3 隔离域的当前工作流,则不会更改。
Network Fabric 资源更新概述
链接到现有已启用父资源的子资源上的任何创建、更新、删除(CUD)操作,或更新已启用父资源属性的操作都被视为 更新 操作。 一些示例是新的内部网络,或者需要将新子网添加到现有的已启用第 3 层隔离域(内部网络是第 3 层隔离域的子资源)。 需要将新的路由策略应用到现有内部网络;这两种情况都符合 更新 操作的条件。
对下表中显示的受支持的 Network Fabric 资源执行的任何更新操作都会使 fabric 处于待提交状态(当前在配置状态 中接受),您必须启动 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
操作失败,服务会显示相应的错误消息,并通知操作员网络结构资源可能更新失败。
国家 | 定义 | 在 Azure 资源管理器资源更新之前 | 在执行 CommitConfiguration 之前和 Azure 资源管理器之后的更新 | 在执行 CommitConfiguration 之后 |
---|---|---|---|---|
管理状态 | 表示对资源执行的管理操作的状态 | 已启用(仅支持已启用) | 已启用(仅支持已启用) | 已启用(用户可以禁用) |
配置状态 | 表示操作员操作和服务驱动配置的状态 | 资源状态 - 已成功, 结构状态 已预配 |
资源状态 - 已接受(成功) - 拒绝(失败) 构造状态 -接受 |
资源状态 - 已接受(失败), - 已成功(成功) 构造状态 - 已预配 |
预配状态 | 表示资源的 Azure 资源管理器预配状态的状态 | 已预配 | 已预配 | 已预配 |
支持的网络架构资源和场景
Network Fabric 更新支持 Network Fabric 资源(Network Fabric 4.1、Nexus 2310.1)
Network Fabric 资源 | 类型 | 支持的方案 | 不支持的方案 | 注释 |
---|---|---|---|---|
第 2 层隔离域 | 家长 | - 属性更新 - MTU - 添加/更新标记 |
资源 Re-PUT | |
第 3 层隔离域 | 家长 | 属性更新 - 重新分发已连接。 - 重新分发静态路由。 - 聚合路由配置 - 连接的子网路由策略。 添加/更新标记 |
资源 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 仅支持一个外部网络。 |
路由策略 | 家长 | - 更新整个语句,包括 seq number、condition、action。 - 添加/更新标记 |
- 资源 Re-PUT。 - 更新关联到网络互连资源的路由策略。 |
若要删除资源, connectedResource (IsolationDomain 或 N 到 N 互连)不应保留任何引用。 |
IPCommunity | 家长 | 更新整个 ipCommunity 规则,包括 seq number、action、community members、known communities。 | 资源 Re-PUT | 若要删除资源,连接的 RoutePolicy 资源不应保留任何引用。 |
IPPrefixes | 家长 | - 更新整个 IP 前缀规则,包括序列号、网络前缀、条件、子网掩码长度。 - 添加/更新标记 |
资源 Re-PUT | 若要删除资源,连接的 RoutePolicy 资源不应保留任何引用。 |
IPExtendedCommunity | 家长 | - 更新整个 IPExtended 社区规则,包括序列号、操作、路由目标。 - 添加/更新标记 |
资源 Re-PUT | 若要删除资源,连接的 RoutePolicy 资源不应保留任何引用。 |
ACLs | 家长 | - 添加/更新以匹配配置和动态匹配配置。 - 更新到配置类型 - 添加/更新 ACL URL - 添加/更新标记 |
- 资源 Re-PUT。 - 更新关联到网络互连资源的 ACL。 |
若要删除资源, connectedResource (如 IsolationDomain 或 N 到 N 互连)不应保留任何引用。 |
行为说明和约束
如果父资源处于 禁用 管理状态,并且对父资源或子资源进行了更改,则
commitConfiguration
操作将不适用。 启用资源会推送配置。 仅当父资源处于 “已启用 ”管理状态时,才会触发此类资源的提交路径。如果
commitConfiguration
失败,则结构将保持“已接受”配置状态,直到用户解决问题并执行了成功的commitConfiguration
。 目前仅在发生故障时提供前滚机制。如果 Fabric 配置处于 “接受” 状态,并且已更新的 Azure 资源管理器资源尚未提交,则不允许对资源执行管理操作。
如果 Fabric 配置处于“接受”状态,并且有更新的 Azure Resource Manager 资源尚未提交,则无法触发对受支持资源的删除操作。
创建父资源是独立于
commitConfiguration
和更新流程的。 任何资源都不支持资源 Re-PUT。Greenfield 部署和 Brownfield 部署都支持 Network Fabric 资源更新,但存在一些限制。
在 Greenfield 部署中,一旦网络结构资源完成任何更新,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"