I生产
本文档介绍思科以应用为中心的基础设施(ACI)中的策略类标记(pcTag)/类的概念。 本文档中的信息基于软件版本4.2(3n)。
先决条件
为了最好地理解本文档中介绍的设计,读者必须具备Cisco ACI的基本工作知识。
什么是pcTag?
简言之,pcTag是用于ACI中终端策略组(epg)的内部表示的数字ID,也称为源类(sclass)或目标类(dclass)。 它用于流量分类和策略实施(合同实施)。 当流量进入ACI枝叶时,ACI枝叶将根据配置的策略实施方向(默认 — 入口)和本地可用的前缀信息,通过为其分配pcTag值,将源流量和目标流量分类并标记到EPG中。分配给源epg的pcTag称为SCLASS,而分配给目标EPG的pcTag称为DCLASS。
pcTag值范围在1到65535之间。它可进一步分为三类。
系统 — 这些是范围为1-15的内部系统标记。例如,13用于丢弃EPG,15用于EPG中0.0.0.0/0子网的l3out。
Global — 默认情况下,pcTag的范围是VRF(虚拟路由和转发)的本地范围。 但是,在VRF间合同的情况下,pcTag必须具有全局范围,并且应在整个API交换矩阵中是唯一的。 范围16-16385保留供全球使用。
Local - pcTag的默认范围是VRF的本地范围,可在VRF中重复使用。其值范围为16386-65535。
如何获取EPG的pctag值?
-
使用应用策略基础设施控制器(APIC)图形用户界面(GUI)
在APIC GUI上,选择要获取pctag的EPG,在Policy -> General(策略 — >常规)下可以看到pcTag
租户 — >应用配置文件(AP)(选择AP) — >应用EPG(选择EPG) — >策略 — >常规
同样,对于第3层输出(L3Out)EPG,选择L3out EPG,pcTag可在Policy -> General(常规)选项卡下找到
租户 — >网络 — > L3Outs—>选择L3out —>外部EPG(选择EPG) — >策略 — >常规
使用APIC CLI、的pcTag。 EPG可以获得按或使用 在 已show command or 通过使用 托管对象查询(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,您可以从终端管理器(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 <<<<<<<
至get 在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名称?
最简单的方法检索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值获得多个EPG,因为本地pcTag具有VRF本地范围。带VRF网段ID的额外过滤器可为您提供完全匹配。
驱动源pcTag和目的pcTag流的SCLASS/DCLASS的规则
这些规则可用于确定VRFflow内的类和类并执行 分区规则查找
类 |
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,如果命中位于L3Out外部EPG下的0.0.0.0/0子网上。 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的详细信息,请单击此处。