I소개
이 문서에서는 Cisco ACI(Application Centric Infrastructure)의 정책 클래스 태그(pcTag)/클래스 개념에 대해 설명합니다. 이 문서의 정보는 소프트웨어 버전 4.2(3n)를 기반으로 합니다.
사전 요구 사항
이 문서에 제시된 설계를 가장 잘 이해하려면 독자가 Cisco ACI에 대한 기본적인 실무 지식을 갖추고 있어야 합니다.
pcTag란 무엇입니까?
간단히 말해, pcTag는 ACI에서 epg(엔드포인트 정책 그룹)를 내부 표현하는 데 사용되는 숫자 ID이며 sclass(소스 클래스) 또는 dclass(대상 클래스)라고도 합니다. 트래픽 분류 및 정책 시행(Contract Enforcement)에 사용됩니다. 트래픽이 ACI Leaf를 인그레스(ingress)할 때, 구성된 정책 시행 방향(기본값 - 인그레스) 및 로컬에서 사용 가능한 접두사 정보에 따라 ACI Leaf는 pcTag 값을 할당하여 소스 및 목적지 트래픽을 EPG로 분류하고 표시합니다. 소스 EPG에 할당된 pcTag를 SCLASS라고 하고, 대상 EPG에 할당된 pcTag를 DCLASS라고 합니다.
pcTag 값의 범위는 1~65535입니다. 세 가지 범주로 더 세분화할 수 있습니다.
System - 1~15 범위의 내부 시스템 태그입니다. 예를 들어 13은 EPG 삭제를 위한 것이며 15는 EPG에서 0.0.0.0/0 서브넷이 있는 l3out에 사용됩니다.
Global(전역) - 기본적으로 pcTag의 범위는 VRF(Virtual Routing and Forwarding)에 로컬입니다. 그러나 VRF 간 계약의 경우 pcTag는 글로벌 범위를 가져야 하며 api 패브릭 전체에서 고유해야 합니다. 범위 16~16385은 전역 용도로 예약되어 있습니다.
Local(로컬) - pcTag의 기본 범위는 VRF에 로컬이며 VRF 전체에서 재사용될 수 있습니다. 값의 범위는 16386~65535입니다.
EPG의 pctag 값을 가져오는 방법?
-
APIC(Application Policy Infrastructure Controller) GUI(Graphical User Interface) 사용
APIC GUI에서 Policy(정책) -> General(일반)에서 pctag 및 pcTag를 가져올 EPG를 선택합니다
테넌트 —> 애플리케이션 프로파일(AP)(AP 선택) —> 애플리케이션 EPG(EPG 선택)—> 정책 —>일반

마찬가지로 L3Out(Layer 3 Out) EPG의 경우 L3Out EPG를 선택하면 Policy(정책) -> General(일반) 탭 바로 아래에 pcTag가 있습니다
테넌트 —> 네트워킹 —> L3Outs —> L3Out —> 외부 EPG 선택( EPG 선택) —> 정책 —> 일반

-
APIC CLI(Command Line Interface) 사용
APIC CLI를 사용하면 EPG의 pcTag를 가져올 수 있습니다givenshow 명령을 사용하거나 MO 쿼리를 사용하여(MO 쿼리).
apic# show epg EPG1 detail
Application EPg Data:
Tenant : Prod
Application : AP01
AEPg : EPG1
BD : BD1
uSeg EPG : no
Intra EPG Isolation : unenforced
Proxy ARP : none
Policy Tag : 49155
Vlan Domains : prod-phy-dom
Consumed Contracts : default
Provided Contracts :
Denied Contracts :
Qos Class : unspecified
Tag List :
apic# moquery -c fvAEPg -f 'fv.AEPg.name=="EPG1"' | egrep "^name|^dn|^pcTag|^scope"
name : EPG1
dn : uni/tn-Prod/ap-AP01/epg-EPG1
nameAlias :
pcTag : 49155
scope : 2326533
L3Out epg의 pcTag 값을 얻기 위한 Moquery:
apic# moquery -c l3extInstP -f 'l3ext.InstP.name=="ext_EPG"' | egrep "^name|^dn|^pcTag"
name : ext_EPG
dn : uni/tn-Prod/out-L3out_BGP/instP-ext_EPG
nameAlias :
pcTag : 16386
-
리프 CLI 사용
- 엔드포인트를 학습한 경우:일반 EPG에서는 EPM(EndPoint Manager)에서 pcTag/SCLASS를 가져올 수 있습니다.
bgl-aci05-leaf5# show system internal epm endpoint ip 192.168.10.10
MAC : 002c.c80a.7ca9 ::: Num IPs : 1
IP# 0 : 192.168.10.10 ::: IP# 0 flags : ::: l3-sw-hit: No
Vlan id : 74 ::: Vlan vnid : 13894 ::: VRF name : Prod:vrfA
BD vnid : 15826927 ::: VRF vnid : 2326533
Phy If : 0x1a011000 ::: Tunnel If : 0
Interface : Ethernet1/18
Flags : 0x80000c04 ::: sclass : 49155 ::: Ref count : 5 <<<<<<<
수신getthepcTag가치L3Out EPG의 경우 정책 관리자(Policy-mgr) 접두사 테이블이 사용됩니다.
수신output,16386은 서브넷 10.20.20.0/24의 pcTag입니다.
bgl-aci05-leaf5# vsh -c 'show system internal policy-mgr prefix' | egrep "Vrf-Vni|==|2326533"
Vrf-Vni VRF-Id Table-Id Table-State VRF-Name Addr Class Shared Remote Complete
======= ====== =========== ======= ============================ ================================= ====== ====== ====== ========
2326533 5 0x5 Up Prod:vrfA 0.0.0.0/0 15 True True False
2326533 5 0x80000005 Up Prod:vrfA ::/0 15 True True False
2326533 5 0x5 Up Prod:vrfA 10.20.20.0/24 16386 True True False
pcTag 값을 알고 있는 경우 EPG 이름을 가져오는 방법
가장 간단한 방법은APIC CLI에서 EPG 이름 검색pcTagis를 알고 아래의 MO Query를 사용할 때.
일반 EPG의 경우
apic# moquery -c fvAEPg -f 'fv.AEPg.pcTag=="16387"' | egrep "name|^dn"
name : EPG1
dn : uni/tn-mgmt/ap-AP/epg-EPG1
nameAlias :
scope : 2621440
L3out EPG:
apic# moquery -c l3extInstP -f 'l3ext.InstP.pcTag=="16386"'| egrep "name|^dn|scope"
name : ext_EPG
dn : uni/tn-Prod/out-L3out_BGP/instP-ext_EPG
nameAlias :
scope : 2326533
참고: 로컬 pcTag의 범위가 VRF에 대해 로컬이므로 하나의 pcTag 값에 대해 여러 EPG를 얻을 가능성이 있습니다. VRF 세그먼트 ID가 있는 추가 필터를 사용하면 정확하게 일치하는 항목을 확인할 수 있습니다.
플로우의 소스 pcTag 및 목적지 pcTag SCLASS/DCLASS를 구동하는 규칙
다음규칙은 intra-VRFflow의 sclass 및 dclass를 결정하고 다음 작업을 수행하는 데 사용할 수 있습니다. zoning-rule 조회
스클라스 |
디클래스 |
SCLASS = Source Epg pctag(인그레스 EPG가 일반 EPG인 경우).
SCLASS = vrf pctag, L3Out EPG의 0.0.0.0/0 서브넷 아래에 있는 L3Out에 대한 인그레스(ingress)인 경우
SCLASS = 내선 EPG pcTag(L3Out 외부 EPG에서 기본이 아닌 다른 서브넷에 도달한 경우).
|
DCLASS= 대상 EPG pcTag, 대상 엔드포인트가 인그레스 리프에 대해 학습된 경우
DCLASS =1, 대상 엔드포인트가 학습되지 않은 경우 패킷을 패브릭(하드웨어 프록시 또는 플러드)으로 전송합니다. 정책 시행은 대상 Leaf에 있습니다.
DCLASS = 15, L3Out 외부 EPG 아래의 0.0.0.0/0 서브넷에서 적중된 경우
DCLASS = External EPG pcTag(더 구체적인 서브넷이나 기본값이 아닌 서브넷에 적중 횟수)입니다.
|
참고: 위에 언급된 서브넷은 라우팅 테이블의 서브넷이 아니라 외부 EPG에서 구성하는 서브넷입니다.
ELAM(Embedded Logic Analysis Module)을 사용하여 SCLASS/DCLASS 가져오기
ELAM은 플로우의 소스 및 대상 pcTag 값을 가져오는 데 사용하는 기본 도구 중 하나입니다. ELAM에서 "pkt rw vector" 아래에 지정된 필드를 사용하여 흐름의 SCLASS 및 DCLASS를 가져올 수 있습니다. 값은 16진수로 표시되며 EPG pcTag를 가져오려면 십진수로 변환해야 합니다.
sug_lurw_vec.info.nsh_special.dclass: <val>
sug_lurw_vec.info.nsh_special.sclass: <val>
예:
sug_lurw_vec.info.nsh_special.dclass: 0x8004 << dst epg pctag is 32772
sug_lurw_vec.info.nsh_special.sclass: 0x8002. << src epg pctag is 32769
소스 및 대상 pcTag 값을 사용하여 인그레스 및 이그레스 리프 스위치에 대한 조닝 규칙을 확인할 수 있습니다.
Zoning-Rules에 대한 자세한 내용을 보려면 여기를 클릭하십시오.