IIntrodução
Este documento descreve o conceito de Policy Class Tag(pcTag) / Class na Cisco Application Centric Infrastructure (ACI). As informações neste documento são baseadas na versão de software 4.2(3n).
Pré-requisitos
Para entender melhor o design apresentado neste documento, o leitor deve ter um conhecimento básico de funcionamento da Cisco ACI.
O que é o pcTag?
Em palavras simples, pcTag é uma ID numérica usada para representação interna do Endpoint Policy Group (epg) na ACI, também conhecida como Source Class (class) ou Destination Class (dclass). Ele é usado para a classificação do tráfego e para a execução de políticas (execução de contratos). Quando o tráfego entra em uma folha da ACI, com base na direção configurada de aplicação da política (padrão - ingresso) e nas informações de prefixo disponíveis localmente, a folha da ACI classifica e marca o tráfego de origem e destino em EPGs atribuindo um valor de pcTag a ela. O pcTag atribuído ao epg de origem é chamado de SCLASS, enquanto o pcTag atribuído ao EPG de destino é chamado de DCLASS.
O valor de pcTag varia entre 1 e 65535. Além disso, pode ser subdividido em três categorias.
Sistema - Essas são marcas de sistema internas do intervalo de 1 a 15. Por exemplo, 13 é para EPG de queda e 15 é usado para l3out com sub-rede 0.0.0.0/0 no EPG.
Global - Por padrão, o escopo do pcTag é local para o VRF (Virtual Routing and Forwarding, Roteamento e encaminhamento virtual). No entanto, no caso de contratos inter VRF, o pcTag deve ter um escopo global e deve ser exclusivo em toda a malha da api. O intervalo de 16 a 16385 é reservado para uso global.
Local - O escopo padrão do pcTag é local para VRF e pode ser reutilizado em VRFs. Seu valor varia de 16386 a 65535.
Como obter o valor de pctag de um EPG?
-
Uso da interface gráfica do usuário (GUI) do APIC (Application Policy Infrastructure Controller)
Na GUI do APIC, selecione o EPG para o qual deseja obter o pctag e o pcTag pode ser visto em Policy -> General (Política -> Geral)
Locatários —> Perfis de aplicativo(AP) (Selecione o AP) —> EPGs de aplicativo (selecione o EPG)—> Política —>Geral

Da mesma forma, para EPG de saída de camada 3 (L3Out), selecione EPG de saída L3e o pcTag pode ser encontrado na guia Política -> Geral
Locatários —> Rede —> L3Outs—>Selecione o L3out —> EPGs externos ( Selecione o EPG) —>Política —>Geral

-
Uso da interface de linha de comando (CLI) do APIC
Usando o APIC CLI, o pcTag de um EPG pode ser obtidoao usar o comando show fornecido ouao usar uma Consulta de Objeto Gerenciado(Consulta 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 para obter o valor pcTag de um epg L3Out:
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
-
Usando a CLI Leaf
- Quando o endpoint tiver sido aprendido em umEPG regular, você pode obter o pcTag/SCLASS no EndPoint Manager(EPM).
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 <<<<<<<
ParagetthepcTagvalorparaL3Out EPG,a tabela de prefixo do Policy Manager (Policy-mgr) é usada:
INoutput,16386 é o pcTag para a sub-rede 10.20.20.0/24.
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
Como obter o nome EPG quando você sabe o valor do pcTag?
A maneira mais simples derecupere o nome do EPG da CLI do APIC quando souber que o pcTagé para usara consulta MO abaixo
Para um EPG regular,
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
Para um EPG L3out:
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
Note: Há chances de que você possa obter vários EPGs contra um valor de pcTag, pois o pcTag local tem um escopo local para o VRF. Um filtro adicional com ID de segmento VRF pode fornecer a correspondência exata.
Regras para determinar o pcTag de origem e o pcTag de destino CLASSE/DCLASS de um fluxo
Estespodem ser usadas paradeterminar a classe e a dclass de um fluxo intraVRF e fazer um zoning-rule lookup
Classe |
Dclass |
SCLASS = Source Epg pctag, se o EPG de entrada for um EPG regular.
SCLASS = vrf pctag, se entrar em uma L3Out sob a sub-rede 0.0.0.0/0 no EPG L3Out.
SCLASS = Ext. EPG pcTag, se você pressionar qualquer outra sub-rede não padrão em L3Out EPG externo.
|
DCLASS= EPG de destino pcTag, se o ponto de extremidade de destino tiver aprendido na folha de ingresso.
DCLASS =1, se o endpoint de destino não for aprendido e enviarmos o pacote para a estrutura (proxy de hardware ou inundação). A aplicação da política estaria no destino Leaf.
DCLASS = 15, se o acerto estiver na sub-rede 0.0.0.0/0 em L3Out external EPG.
DCLASS = External EPG pcTag, quando um acerto ocorre em uma sub-rede mais específica ou não padrão.
|
Note: A sub-rede mencionada acima é a sub-rede que você configura no EPG externo e não a sub-rede em uma tabela de roteamento.
Obtendo SCLASS/DCLASS usando o ELAM (Embedded Logic Analysis Module)
O ELAM é uma das ferramentas preferidas para obter os valores de pcTag de origem e destino de um fluxo. No ELAM, em "pkt rw vetor", podemos obter o SCLASS e o DCLASS de um fluxo usando os campos fornecidos. Os valores serão em hexadecimal e precisam ser convertidos em decimal para obter o EPG pcTag.
sug_lurw_vec.info.nsh_special.dclass: <val>
sug_lurw_vec.info.nsh_special.class: <val>
Exemplo:
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
Com os valores de pcTag origem e destino, podemos verificar as regras de zoneamento em Switches Leaf de entrada e saída.
Para obter mais informações sobre regras de zoneamento, clique aqui.