Network Fabric リソースの更新とコミット

現在、Nexus Network Fabric リソースでは、親リソース (L3Isolation ドメインなど) を無効にし、親または子リソースを更新された値に入れ替えて、管理事後アクションを実行し、デバイスを有効にして構成する必要があります。 Network Fabric の新しいリソース更新フローを使用すると、リソースが有効なときに POST アクションの commitConfiguration を使用して一連の Network Fabric リソースをバッチ処理して更新できます。 L3 分離ドメインを無効にし、変更を加えて、L3 分離ドメインを有効にする現在のワークフローを選択する場合、変更はありません。

Network Fabric リソースの更新の概要

既存の有効になっている親リソースにリンクされている子リソースに対する作成、更新、削除 (CUD) 操作、または有効になっている親リソースのプロパティの更新はすべて、更新操作と見なされます。 いくつかの例としては、新しい内部ネットワークまたは新しいサブネットを既存の有効になっているレイヤー 3 分離ドメインに追加する必要がある場合 (内部ネットワークはレイヤー 3 分離ドメインの子リソースです) や、 新しいルート ポリシーを既存の内部ネットワークにアタッチする必要がある場合などがあります。これらのシナリオはどちらも更新操作の対象となります。

次の表に示すサポートされる Network Fabric リソースに対して更新操作が実行されると、ファブリックはコミット保留状態 (現在は、構成状態の Accepted) になり、必要な変更を適用するにはファブリックのコミット構成アクションを開始する必要があります。 ファブリック内の Network Fabric リソース (子リソースを含む) に対するすべての更新は、同じワークフローに従います。

リソースに対するコミット アクションまたは更新は、ファブリックが Provisioned 状態で、Network Fabric リソースが **Enabled 管理状態にある場合のみ、有効であり、適用することができます。 親および子リソースの更新は (さまざまな Network Fabric リソース間で) バッチ処理でき、commitConfiguration アクションを実行すると、1 つの POST アクションですべての変更を実行できます。

管理アクションによる親リソースの作成と有効化は、更新またはコミット アクションのワークフローとは関係ありません。 また、有効または無効にするすべての管理アクションは独立しており、実行するために commitConfiguration アクションをトリガーする必要はありません。 commitConfiguration アクションは、オペレーターが既存の Azure Resource Manager リソースとファブリックを更新する必要があり、親リソースが有効な状態にあるシナリオにのみ適用されます。 オペレーターが Network Fabric リソースを作成して有効にするために使用した自動化スクリプトまたは bicep テンプレートの変更は必要ありません。

ユーザー ワークフロー

リソースの更新を正常に実行するには、ファブリックが Provisioned 状態である必要があります。 Network Fabric リソースの更新には、次の手順が含まれます。

  1. オペレーターは、AzCli、Azure Resource Manager、ポータル経由で 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'}]
    
  2. Azure Resource Manager の更新呼び出しが成功すると、特定のリソースの ConfigurationStateAccepted に設定され、失敗すると Rejected に設定されます。 ファブリック ConfigurationState は、PATCH 呼び出しの成功または失敗に関係なく Accepted に設定されます。

    ファブリック上の Azure Resource Manager リソース (内部ネットワークや RoutePolicy など) が Rejected 状態である場合、オペレーターは、構成を修正し、特定のリソースの ConfigurationState が Accepted に設定されていることを確認してから先に進む必要があります。

  3. オペレーターは、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"
    
  4. サービスによって、すべてのリソースの更新が成功したかどうかが検証され、入力が検証されます。 また、動作と構成の一貫性を確保するために、接続された論理リソースも検証されます。 すべての検証が成功すると、新しい構成が生成され、デバイスにプッシュされます。

  5. 特定のリソース configurationState は、Succeeded にリセットされ、ファブリック configurationStateProvisioned に設定されます。

  6. commitConfiguration アクションが失敗した場合、サービスによって適切なエラー メッセージが表示され、Network Fabric リソースの更新が失敗した可能性があることがオペレーターに通知されます。

都道府県 Definition Azure Resource Manager リソースの更新前 Azure Resource Manager の更新後から CommitConfiguration の前まで CommitConfiguration 後
管理状態 リソースに対して実行された管理アクションを表す状態 有効 (有効のみサポート) 有効 (有効のみサポート) 有効 (ユーザーは無効にすることができます)
構成状態 オペレーター アクションまたはサービス駆動型の構成を表す状態 リソース状態 - 成功、
ファブリック状態 Provisioned
リソースの状態
- Accepted (成功)
- Rejected (失敗)
ファブリック状態
- Accepted
リソースの状態
- Accepted (失敗)、
- Succeeded (成功)
ファブリック状態
- Provisioned
プロビジョニングの状態 リソースの Azure Resource Manager プロビジョニング状態を表す状態 プロビジョニング済み プロビジョニング済み プロビジョニング済み

サポートされる Network Fabric リソースとシナリオ

Network Fabric 更新でサポートされる Network Fabric リソース (Network Fabric 4.1、Nexus 2310.1)

Network Fabric リソース Type サポートされるシナリオ サポートされていないシナリオ メモ
レイヤー 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 分離ドメインが有効になっているときの外部ネットワークの削除。
リソースを削除するには、親リソースを無効にする必要があります。

 注: 1 つの ISD でサポートされる外部ネットワークは 1 つのみです。
ルート ポリシー Parent - sequenceNumber、condition、action など、ステートメント全体の更新。
- タグの追加または更新
リソースの - Re-PUT。 
- ネットワーク間相互接続リソースにリンクされているルート ポリシーの更新。
リソースを削除するには、connectedResource (IsolationDomain またはネットワーク間相互接続) に参照を保持しないようにする必要があります。
IPCommunity Parent sequenceNumber、action、communityMembers、well KnownCommunities など、ipCommunity ルール全体の更新。 リソースの Re-PUT リソースを削除するには、接続されているRoutePolicy リソースに参照を保持しないようにする必要があります。
IPPrefixes Parent sequenceNumber、networkPrefix、condition、subnetMaskLength など、IPPrefix ルール全体の更新。 
- タグの追加または更新
リソースの Re-PUT リソースを削除するには、接続されているRoutePolicy リソースに参照を保持しないようにする必要があります。
IPExtendedCommunity Parent sequenceNumber、action、routeTargets など、IPExtendedCommunity ルール全体の更新。 
- タグの追加または更新
リソースの Re-PUT リソースを削除するには、接続されているRoutePolicy リソースに参照を保持しないようにする必要があります。
ACL Parent - 一致構成と動的一致構成の追加または更新。
- 構成の種類の更新
- ACL の URL の追加または更新
- タグの追加または更新
リソースの - Re-PUT。 
- ネットワーク間相互接続リソースにリンクされている ACL の更新。
リソースを削除するには、connectedResource (IsolationDomain またはネットワーク間相互接続など) に参照を保持しないようにする必要があります。

動作に関する注意事項と制約

  • 親リソースが Disabled 管理状態にあり、親リソースまたは子リソースのいずれかに変更が加えられた場合、commitConfiguration アクションは適用されません。 リソースを有効にすると、構成がプッシュされます。 このようなリソースのコミット パスは、親リソースが Enabled 管理状態にある場合にのみトリガーされます。

  • commitConfiguration が失敗した場合、ファブリックの構成状態は、ユーザーが問題に対処し、正常な commitConfiguration を実行するまで、Accepted のままです。 現在、エラーが発生した場合に提供されるのは、ロールフォワード メカニズムのみです。

  • ファブリック構成が Accepted 状態で、Azure Resource Manager リソースの更新がまだコミットされていない場合、そのリソースに対して管理アクションは許可されません。

  • ファブリック構成が Accepted 状態で、Azure Resource Manager リソースの更新がまだコミットされていない場合、サポートされているリソースに対する削除操作をトリガーすることはできません。

  • 親リソースの作成は、commitConfiguration および更新フローとは関係ありません。 リソースの Re-PUT は、どのリソースでもサポートされていません。

  • Network Fabric リソースの更新は、グリーンフィールド デプロイとブラウンフィールド デプロイの両方でサポートされていますが、いくつかの制約があります。

    • グリーンフィールド デプロイでは、Network Fabric リソースに対して何らかの更新が行われると、ファブリックの構成状態は Accepted になります。 commitConfiguration アクションがトリガーされると、そのアクションの成功または失敗に応じて、Provisioned または Accepted のいずれかの状態に移ります。

    • ブラウンフィールド デプロイでは、commitConfiguration アクションはサポートされていますが、サポートされる Network Fabric リソース (分離ドメイン、内部ネットワーク、RoutePolicy と ACL など) は、一般提供バージョンの API (2023-06-15) を使用して作成する必要があります。 この一時的な制約は、すべてのリソースが最新バージョンに移行された後に緩和されます。

    • ブラウンフィールド デプロイでは、サポートされている Network Fabric リソースに変更がある場合、または commitConfiguration アクションがトリガーされた場合、ファブリックの構成状態は Provisioned 状態のままです。 この動作は、すべてのファブリックが最新バージョンに移行されるまでの一時的なものです。

  • ルート ポリシーおよびその他の関連リソース (IP コミュニティ、IP 拡張コミュニティ、IP PrefixList) の更新は、リストの置換操作と見なされます。 既存のステートメントはすべて削除され、新しく更新されたステートメントのみが構成されます。

  • 内部ネットワークまたは外部ネットワーク構成の既存のサブネット、ルート、BGP 構成、およびその他の関連ネットワーク パラメーターを更新または削除すると、トラフィックの中断が発生する可能性があるため、オペレーターの判断で実行する必要があります。

  • 新しいルート ポリシーと ACL を更新すると、適用されるルールによってはトラフィックの中断が発生する可能性があります。

  • 特定のリソースの種類に対して list コマンドを使用 (内部ネットワークの種類のすべてのリソースを一覧表示) して、更新され、デバイスにコミットされていないリソースを確認します。 構成状態が Accepted または Rejected であるリソースをフィルター処理して、まだコミットされていないリソース、またはデバイスへのコミットが失敗したリソースとして識別することができます。

次に例を示します。

az networkfabric internalnetwork list --resource-group "example-rg" --l3domain  "example-l3domain"