I介绍
本文档介绍思科以应用为中心的基础设施(ACI)中的策略类标记(pcTag)/类的概念。 本文档中的信息基于软件版本4.2(3n)。
先决条件
为了充分理解本文档中介绍的设计,读者必须具备思科ACI的基本工作知识。
什么是pcTag?
简而言之,pcTag是一个数字ID,用于在ACI中内部表示终端策略组(epg),也称为源类(sclass)或目标类(dclass)。 它用于流量分类以及策略实施(合同实施)。 当流量进入ACI枝叶时,ACI枝叶会根据配置的策略实施方向(默认 — 入口)和本地可用的前缀信息,通过为ACI枝叶分配pcTag值,对源和目标流量进行分类并将其标记为EPG。分配给源EPG的pcTag称为SCLASS,而分配给目标EPG的pcTag称为DCLASS。
pcTag值的范围介于1和65535之间。可以进一步将其细分为三类。
System — 这些是范围为1-15的内部系统标记。例如,13用于丢弃EPG,15用于EPG中带有0.0.0.0/0子网的l3out。
全局 — 默认情况下,pcTag的范围是VRF(虚拟路由和转发)的本地范围。 但是,在VRF间合同的情况下,pcTag必须具有全局范围,并且在API交换矩阵中应是唯一的。 范围16-16385保留供全球使用。
本地 - pcTag的默认范围是VRF的本地范围,可以跨VRF重复使用。其值范围为16386-65535。
如何获取EPG的pctag值?
-
使用应用策略基础设施控制器(APIC)图形用户界面(GUI)
在APIC GUI上,选择要为其获取pctag的EPG,并且可在Policy -> General下查看pcTag
租户 — >应用配置文件(AP)(选择AP) — >应用EPG(选择EPG) — >策略 — >常规

同样,对于第3层Out(L3Out)EPG,请选择L3out EPG,pcTag位于Policy -> General选项卡下
租户 — >网络 — > L3Outs—>选择L3out —>外部EPG(选择EPG) — >策略 — >常规

使用APIC CLI,可以获取EPG的pcTagbyetherusing givenshow命令或使用托管对象查询(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
-
使用枝叶CLI
- 当终端已学习到中通过EPG,可以从EndPoint Manager(EPM)获取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,使用策略管理器(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名称?
最简单的方法当您知道pcTagis要使用以下MO查询时,从APIC CLI检索EPG名称
对于常规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的规则
这些规则可用于确定VRFflow内部的类和dclass,并执行以下操作 zoning-rule lookup
Sclass |
Dclass |
SCLASS =源Epg pctag(如果入口EPG是常规EPG)。
SCLASS = vrf pctag,如果入口进入L3Out EPG中0.0.0.0/0子网下的L3Out。
SCLASS =外部EPG pcTag,如果在L3Out外部EPG中遇到了任何其他非默认子网。
|
DCLASS=目标EPG pcTag(如果目标终端已在入口枝叶上获知)。
DCLASS =1,如果未获知目标终端,则我们将数据包发送到交换矩阵(硬件代理或泛洪)。 策略实施将位于目标枝叶上。
DCLASS = 15,如果命中位于0.0.0.0/0子网上的L3Out外部EPG。
DCLASS =外部EPG pcTag,当命中位于更具体或非默认子网时。
|
注意:上述子网是您在外部EPG下配置的子网,而不是路由表中的子网。
使用嵌入式逻辑分析模块(ELAM)获取SCLASS/DCLASS
ELAM是获取流的源和目标pcTag值的首选工具之一。在ELAM中,在“pkt rw vector”下,我们可以使用给定的字段得到流的SCLASS和DCLASS。这些值将以十六进制形式显示,需要转换为十进制形式才能获取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的详细信息,请点击此处。