나소개
이 문서에서는 Cisco ACI(Application Centric Infrastructure)의 정책 클래스 태그(pcTag)/클래스 개념에 대해 설명합니다. 이 문서의 정보는 소프트웨어 버전 4.2(3n)를 기반으로 합니다.
사전 요구 사항
이 문서에 제시된 설계를 최대한 이해하려면 Cisco ACI에 대한 기본적인 실무 지식을 갖추고 있어야 합니다.
pcTag란?
간단히 말해, pcTag는 ACI에서 엔드포인트 정책 그룹(epg)의 내부 표시에 사용되는 숫자 ID로, 소스 클래스(sclass) 또는 대상 클래스(dclass)라고도 합니다. 트래픽 분류 및 정책 시행(계약 시행)에 사용됩니다. 구성된 정책 시행 방향(기본값 - 인그레스) 및 로컬에서 사용 가능한 접두사 정보에 따라 트래픽이 ACI Leaf를 인그레스(ingress)하는 경우 ACI Leaf는 pcTag 값을 할당하여 소스 및 목적지 트래픽을 EPG로 분류하고 표시합니다.소스 epg에 할당된 pcTag는 SCLASS이며, 대상 EPG에 할당된 pcTag는 DCLASS라고 합니다.
pcTag 값의 범위는 1~65535입니다. 3개의 범주로 나눌 수 있습니다.
시스템 - 1~15 범위의 내부 시스템 태그입니다. 예를 들어, 13은 EPG용, 15는 EPG의 0.0.0.0/0 서브넷을 사용하는 l3out에 사용됩니다.
전역 - 기본적으로 pcTag의 범위는 VRF(Virtual Routing and Forwarding)에 로컬입니다. 그러나 VRF 간 계약의 경우 pcTag는 전역 범위를 가져야 하며 api 패브릭 전체에서 고유해야 합니다. 범위 16~16385는 전 세계적으로 사용하도록 예약되어 있습니다.
로컬 - pcTag의 기본 범위는 VRF에 로컬이며 VRF에서 재사용할 수 있습니다.값의 범위는 16386-65535입니다.
EPG의 pctag 값을 가져오는 방법
-
APIC(Application Policy Infrastructure Controller) 그래픽 사용자 인터페이스(GUI) 사용
APIC GUI에서 pctag 및 pcTag를 가져올 EPG를 Policy(정책) -> General(일반)에서 선택합니다.
테넌트 —> 애플리케이션 프로파일(AP)(AP 선택) —> 애플리케이션 EPG(EPG 선택)—> 정책 —> 일반
마찬가지로 L3Out(L3Out) EPG의 경우 L3out EPG를 선택하면 Policy(정책) -> General(일반) 탭 바로 아래에서 pcTag를 찾을 수 있습니다.
테넌트 —> 네트워킹 —> L3Outs—>L3out —> 외부 EPG를 선택합니다( EPG 선택) —>정책 —>일반
-
APIC CLI(Command Line Interface) 사용
APIC CLI, pcTag 사용 EPG는획득기준둘 중 하나사용 이(가) 제공show 명령 또는사용관리되는 개체 쿼리(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
Moquery를 사용하여 L3Out epg의 pcTag 값을 가져옵니다.
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
-
Leaf 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 <<<<<<<
받는 사람가져오기이(가)pcTag가치대상L3Out EPG,정책 관리자(P)policy-mgr) 접두사 테이블이 사용됩니다.:
수신출력,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 이름을 가져오는 방법
가장 간단한 방법검색EPG 이름APIC CLI에서언제알고 있음pcTag사용이(가)MO Q 아래쿼리
일반 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 = Source Epg pctag(인그레스 EPG가 일반 EPG인 경우) SCLASS = vrf pctag, L3Out EPG의 0.0.0.0/0 서브넷 아래에 있는 L3Out에 인그레스(ingress)가 있는 경우. SCLASS = 내선EPG pcTag - L3Out 외부 EPG에서 기본이 아닌 다른 서브넷을 누르는 경우 |
DCLASS= 대상 엔드포인트가 인그레스 leaf에서 학습한 경우 대상 EPG pcTag. DCLASS = 1, 대상 엔드포인트가 학습되지 않은 경우 패킷을 패브릭에 보냅니다(하드웨어 프록시 또는 플러드). 정책 시행은 대상 Leaf에 있습니다. DCLASS = 15, hit가 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.ns클래스:<간격>
sug_lurw_vec.info.ns클래스:<간격>
예:
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를 확인할 수 있습니다.
Zoning-Rules에 대한 자세한 내용을 보려면 여기를 클릭하십시오.