Network Fabric 리소스 업데이트 및 커밋

현재 Nexus Network Fabric 리소스는 L3Isolation 도메인 등과 같은 부모 리소스를 사용하지 않도록 설정하도록 해야 하며, 업데이트된 값을 부모 리소스 또는 자식 리소스에 재투입한 뒤 후관리 작업을 실행하여 디바이스를 사용하도록 설정하고 구성해야 합니다. Network Fabric의 새 리소스 업데이트 흐름을 사용하면 리소스를 사용할 때 commitConfiguration 후작업을 통해 Network Fabric 리소스 집합을 일괄 처리하고 업데이트할 수 있습니다. L3 격리 도메인을 사용하지 않도록 설정하고, 변경한 다음, L3 격리 도메인을 사용하도록 설정하는 현재 워크플로를 선택하면 변경되지 않습니다.

Network Fabric 리소스 업데이트 개요

기존에 활성화된 부모 리소스에 연결된 자식 리소스를 CUD(만들기, 업데이트, 삭제) 작업하거나, 활성화된 부모 리소스 속성을 업데이트하는 작업은 업데이트 작업으로 간주됩니다. 새로운 내부 네트워크나 새로운 서브넷을 기존에 활성화된 L3 격리 도메인에 추가하는 경우(내부 네트워크는 L3 격리 도메인의 자식 리소스)가 이러한 예에 해당합니다. 새 경로 정책을 기존 내부 네트워크에 연결해야 하며, 두 시나리오 모두 업데이트 작업에 적합합니다.

다음 표에 나와 있는, 지원되는 Network Fabric 리소스에서 수행되는 모든 업데이트 작업은 패브릭을 커밋 보류 중인 상태(현재 구성 상태에서 수락됨)로 전환하며, 여기서 원하는 변경 내용을 적용하기 위해 패브릭 커밋 구성 작업을 시작해야 합니다. 패브릭의 Network Fabric 리소스(자식 리소스 포함)에 대한 모든 업데이트는 동일한 워크플로를 따릅니다.

리소스의 커밋 작업/업데이트는 패브릭이 프로비전된 상태이고 Network Fabric 리소스가 **사용 가능한 관리 상태인 경우에만 유효하며 적용할 수 있습니다. 부모 리소스와 자식 리소스에 대한 업데이트는 다양한 Network Fabric 리소스에서 일괄 처리할 수 있으며 단일 후작업에서 모든 변경 내용을 실행하기 위한 commitConfiguration 작업을 수행할 수 있습니다.

관리 작업을 통한 부모 리소스 만들기 및 활성화는 업데이트/커밋 작업 워크플로와는 별개입니다. 또한 사용 여부를 설정하는 모든 관리 작업은 독립적이며 실행을 위해 commitConfiguration 작업 트리거가 필요하지 않습니다. CommitConfiguration 작업은 운영자가 기존 Azure Resource Manager 리소스 및 패브릭을 업데이트하려는 경우 부모 리소스가 활성화된 상태인 시나리오에만 적용됩니다. 운영자가 Network Fabric 리소스를 만들어 사용하도록 설정하는 데 사용한 자동화 스크립트 또는 bicep 템플릿은 변경할 필요가 없습니다.

사용자 워크플로

리소스 업데이트를 성공적으로 실행하려면 패브릭이 프로비전된 상태여야 합니다. 다음 단계는 Network Fabric 리소스 업데이트와 관련 있습니다.

  1. 운영자는 AzCli, Azure Resource Manager, Portal을 통해 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 업데이트 호출이 성공하면 측정 리소스의 ConfigurationState수락됨으로 설정되며, 실패 시에는 거부됨으로 설정됩니다. 패브릭의 ConfigurationState는 패치 호출의 성공 여부와 무관하게 수락됨으로 설정됩니다.

    내부 네트워크나 RoutePolicy 등 패브릭의 Azure Resource Manager 리소스가 거부됨 상태인 경우 운영자는 더 이상 진행하기 전에 해당 구성을 수정하여 해당 리소스의 ConfigurationState가 수락됨으로 설정되는지를 확인해야 합니다.

  3. 운영자는 Fabric 리소스에서 commitConfiguration 후작업을 실행합니다.

    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성공으로 재설정되고 패브릭 configurationState프로비전됨으로 설정됩니다.

  6. commitConfiguration 작업이 실패하면 서비스에서 적절한 오류 메시지를 표시하여 운영자에게 잠재적인 Network Fabric 리소스 업데이트 실패를 알립니다.

시스템 상태 정의 Azure Resource Manager 리소스 업데이트 전 CommitConfiguration 전, Azure Resource Manager 업데이트 후 CommitConfiguration 후
관리 상태 리소스에 대해 수행된 관리 작업을 나타내는 상태 사용(사용만 지원됨) 사용(사용만 지원됨) 사용(사용자가 비활성화할 수 있음)
구성 상태 운영자 작업/서비스 기반 구성을 나타내는 상태 리소스 상태 - 성공,
패브릭 상태 프로비전됨
리소스 상태
- 수락됨(성공)
- 거부됨(실패)
패브릭 상태
- 수락됨
리소스 상태
- 수락됨(실패),
- 성공(성공)
패브릭 상태
- 프로비전됨
프로비전 상태 리소스의 Azure Resource Manager 프로비전 상태를 나타내는 상태 프로비전됨 프로비전됨 프로비전됨

지원되는 Network Fabric 리소스 및 시나리오

Network Fabric 업데이트 지원 Network Fabric 리소스(Network Fabric 4.1, Nexus 2310.1)

Network Fabric 리소스 Type 지원되는 시나리오 지원되지 않는 시나리오 주의
L2 격리 도메인 부모 - 속성 업데이트 - MTU
- 태그 추가/업데이트
리소스 Re-PUT
L3 격리 도메인 부모 속성 업데이트
- 연결 재배포.
- 고정 경로 재배포.
- 경로 구성 집계.
- 서브넷 경로 정책을 연결했습니다. 
태그 추가/업데이트
리소스 Re-PUT
내부 네트워크 자식(L3 ISD의 자식) 새 내부 네트워크 추가
속성 업데이트
- MTU
- 연결된 IPv4 서브넷/IPv6 서브넷의 추가/업데이트
- IPv4/IPv6 RoutePolicy을 추가/업데이트
- 송신 ACL/수신 ACL의 추가/업데이트
- isMonitoringEnabled 업데이트 플래그
- 고정 경로에 추가/업데이트
- BGP 구성
태그 추가/업데이트
- 리소스 Re-PUT.
- 부모 L3 격리 도메인을 사용하는 경우 내부 네트워크를 삭제.
리소스를 삭제하려면 부모 리소스를 사용하지 않도록 설정해야 합니다.
외부 네트워크 자식(L3 ISD의 자식) 속성 업데이트
- IPv4/IPv6 RoutePolicy을 추가/업데이트
- 옵션 A 속성 MTU, 수신 및 송신 ACL의 추가/업데이트,
- 옵션 A 속성 – BFD 구성
- 옵션 B 속성 – 경로 대상
태그 추가/업데이트
- 리소스 Re-PUT
- 새 외부 네트워크 만들기
- 부모 L3 격리 도메인을 사용하는 경우 외부 네트워크를 삭제.
리소스를 삭제하려면 부모 리소스를 사용하지 않도록 설정해야 합니다.

 참고: ISD당 하나의 외부 네트워크만 지원됩니다.
경로 정책 부모 - seq 번호, 조건, 작업을 비롯한 전체 문을 업데이트.
- 태그 추가/업데이트
- 리소스 Re-PUT
- 네트워크 간 상호 연결 리소스에 연결된 경로 정책으로 업데이트.
리소스를 삭제하려면 connectedResource(IsolationDomain 또는 네트워크 간 상호 연결)에 참조가 없어야 합니다.
IPCommunity 부모 seq 번호, 작업, 커뮤니티 구성원, 잘 알려진 커뮤니티를 비롯한 전체 ipCommunity 규칙을 업데이트합니다. 리소스 Re-PUT 리소스를 삭제하려면 연결된 RoutePolicy 리소스에 참조가 없어야 합니다.
IPPrefixes 부모 - seq 번호, networkPrefix, 조건, subnetMask 길이를 비롯한 전체 IPPrefix 규칙을 업데이트. 
- 태그 추가/업데이트
리소스 Re-PUT 리소스를 삭제하려면 연결된 RoutePolicy 리소스에 참조가 없어야 합니다.
IPExtendedCommunity 부모 - seq 번호, 작업, 경로 대상을 비롯한 전체 IPExtended 커뮤니티 규칙을 업데이트. 
- 태그 추가/업데이트
리소스 Re-PUT 리소스를 삭제하려면 연결된 RoutePolicy 리소스에 참조가 없어야 합니다.
ACL 부모 - 구성 및 동적 일치 구성과 일치하도록 추가/업데이트
- 구성 유형으로 업데이트
- ACL URL 추가/업데이트
- 태그 추가/업데이트
- 리소스 Re-PUT
- 네트워크 간 상호 연결 리소스에 연결된 ACL로 업데이트.
리소스를 삭제하려면 connectedResource(IsolationDomain 또는 네트워크 간 상호 연결 등)에 참조가 없어야 합니다.

동작 정보 및 제약 조건

  • 부모 리소스가 사용 안함 관리 상태이고 부모 리소스나 자식 리소스가 변경되는 경우 commitConfiguration 작업을 적용할 수 없습니다. 리소스를 사용하도록 설정하면 구성을 푸시합니다. 이러한 리소스에 대한 커밋 경로는 부모 리소스 관리 상태가 사용인 경우에만 트리거됩니다.

  • commitConfiguration 실패 시에는 패브릭이 구성 상태에서 수락됨으로 유지되어 사용자가 해당 문제를 해결하고 성공적으로 commitConfiguration을 수행할 때까지 변하지 않습니다. 현재는 오류가 발생할 경우 롤 포워드 메커니즘만 제공됩니다.

  • 패브릭 구성이 수락됨 상태이고 Azure Resource Manager 리소스에 대한 업데이트가 있지만 아직 커밋되지 않은 경우 해당 리소스에 대한 관리 작업이 허용되지 않습니다.

  • 패브릭 구성이 수락됨 상태이고 Azure Resource Manager 리소스에 대한 업데이트가 있지만 아직 커밋되지 않은 경우 지원하는 리소스에 대한 삭제 작업이 트리거되지 않습니다.

  • 부모 리소스의 생성은 commitConfiguration이나 업데이트 흐름과는 무관합니다. 리소스의 Re-PUT은 모든 리소스에서 지원되지 않습니다.

  • Network Fabric 리소스 업데이트는 Greenfield 배포와 Brownfield 배포에서 모두 지원하지만 몇 가지 제약 조건이 있습니다.

    • Greenfield 배포에서는 Network Fabric 리소스 업데이트 완료 이후의 Fabric 구성 상태가 수락됨입니다. commitConfiguration 작업이 트리거되면 해당 작업의 성공 여부에 따라 프로비전됨이나 수락됨 상태로 변경됩니다.

    • Brownfield 배포에서는 commitConfiguration 작업이 지원되지만 격리 도메인, 내부 네트워크, RoutePolicy, ACL 등 지원되는 Network Fabric 리소스는 API(2023-06-15) 일반 공급 버전을 사용해 만든 것이어야 합니다. 이 임시 제한은 모든 리소스를 최신 버전으로 마이그레이션한 후 완화됩니다.

    • Brownfield 배포에서는 지원되는 Network Fabric 리소스가 변경되거나 commitConfiguration 작업이 트리거되는 경우 Fabric 구성 상태가 프로비전됨 상태로 유지됩니다. 이 동작은 일시적이며 모든 패브릭이 최신 버전으로 마이그레이션될 때까지 유지됩니다.

  • 경로 정책 및 기타 관련 리소스(IP 커뮤니티, IP 확장 커뮤니티, IP PrefixList) 업데이트는 목록 교체 작업으로 간주됩니다. 기존 문이 모두 삭제되며 새로 업데이트된 문만 구성됩니다.

  • 내부 네트워크 또는 외부 네트워크 구성에서 기존 서브넷, 경로, BGP 구성, 기타 관련 네트워크 매개 변수를 업데이트하거나 제거하면 트래픽이 중단될 수 있으므로, 해당 작업은 운영자의 재량에 따라 수행해야 합니다.

  • 새 경로 정책과 ACL을 업데이트하면 적용된 규칙에 따라 트래픽이 중단될 수 있습니다.

  • 특정 리소스 형식(내부 네트워크 유형의 모든 리소스 나열)에 대한 목록 명령을 사용하여 업데이트되었지만 디바이스에 커밋되지 않은 리소스를 확인합니다. 구성 상태가 수락됨이나 거부됨인 리소스는 필터링하여 아직 커밋되지 않았거나 디바이스에 대한 커밋이 실패한 리소스로 식별할 수 있습니다.

예시:

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