Administración de redes y automatización : Cisco Application Policy Infrastructure Controller (APIC)

Verifique los contratos y las reglas en la tela ACI

18 Junio 2016 - Traducción Automática
Otras Versiones: PDFpdf | Comentarios

Introducción

Este documento describe cómo verificar que los contratos están configurados y comportarse correctamente en la tela céntrica de la infraestructura de la aplicación (ACI).

Nota: La verificación de los modelos lógicos y concretos, así como el hardware que programa, se describe en este documento.

Contribuido por Paul Raytick y Roberto Correiro, ingenieros de Cisco TAC.

Topología

En el ejemplo que se utiliza en este documento, la máquina-UNo virtual (VM) se asocia a Leaf1, y a un contrato existe que permite que comunique con VM-B, que se asocia a Leaf2. El contrato permite el Internet Control Message Protocol (ICMP) y el HTTP.

Esta imagen ilustra la topología:

Descripción de proceso

Éste es la interacción y el flujo de la directiva para los contratos y las reglas:

  1. El Administrador de directivas en el regulador de la infraestructura de la directiva de la aplicación (APIC) comunica con el Element Manager de la directiva en el Switch.

  2. El Element Manager de la directiva en el Switch programa el almacén del objeto en el Switch.

  3. El Administrador de directivas en el Switch comunica con el cliente de la calidad de servicio de la lista de control de acceso (ACLQOS) en el Switch.

  4. Los programas del cliente ACLQOS el hardware.

Identifique la regla del contrato/del Establecimiento de zonas usada

Aquí está una salida de comando de la Establecimiento de zonas-regla de la demostración del ejemplo de la hoja, antes de que el contrato se agregue para los dos grupos del punto extremo (EPGs).

fab1_leaf1# show zoning-rule

Rule ID  SrcEPG  DstEPG  FilterID  operSt   Scope     Action

=======  ======  ======  ========  ======   =====     ======

4096     0       0       implicit  enabled  16777200  deny,log

4097     0       0       implicit  enabled  3080192   deny,log

4098     0       0       implicit  enabled  2686976   deny,log

4099     0       49154   implicit  enabled  2686976   permit

4102     0       0       implicit enabled  2097152   deny,log

4103     0       32771   implicit  enabled  2097152   permit

4117     16387   16386   12        enabled  2097152   permit

4116     16386   16387   13        enabled  2097152   permit

4100     16386   49154   default   enabled  2097152   permit

4101     49154   16386   default   enabled  2097152   permit

4104     0       32770   implicit  enabled  2097152   permit

4105     49155   16387   13        enabled  2097152   permit

4112     16387   49155   13        enabled  2097152   permit

4113     49155   16387   12        enabled 2097152   permit

4114     16387   49155   12        enabled  2097152   permit

[snip]

Ésta es la misma salida de comando después de que se agregue el contrato de modo que los dos EPGs puedan comunicar con uno a:

fab1_leaf1# show zoning-rule

Rule ID  SrcEPG  DstEPG  FilterID  operSt   Scope   Action

=======  ======  ======  ========  ======   ========  ========

4096     0       0       implicit  enabled  16777200  deny,log

4097     0       0       implicit  enabled  3080192   deny,log

4098     0       0       implicit  enabled  2686976   deny,log

4099     0       49154   implicit  enabled  2686976   permit

4131     49155   32771   7         enabled  2686976   permit

4132     32771   49155   6         enabled  2686976   permit

4102     0       0       implicit  enabled  2097152   deny,log

4103     0       32771   implicit  enabled  2097152   permit

4117     16387   16386   12        enabled  2097152   permit

4116     16386   16387   13        enabled  2097152   permit

4100     16386   49154   default   enabled  2097152   permit

4101     49154   16386   default   enabled  2097152   permit

4104     0       32770   implicit  enabled  2097152   permit

4105     49155   16387   13        enabled  2097152   permit

4112     16387   49155   13        enabled  2097152   permit

4113     49155   16387   12        enabled  2097152   permit

4114     16387   49155   12        enabled  2097152   permit

[snip]

Nota: Note la nueva regla ID (4131 y 4132) que fue agregado, el filtro ID de 7 y 6, y el alcance de 2686976.

Precaución: Esta salida de comando permite que usted localice fácilmente las reglas que usted debe examinar en los sistemas de laboratorio; sin embargo, esto puede ser incómodo en un entorno de producción con los cambios dinámicos que ocurren.

Otro método que usted puede emplear para localizar las reglas de interés es utilizar Visore. Realice una búsqueda en el objeto administrado del contexto (MES) para el fvCtx. Usted puede entonces buscar en esa pantalla para su Nombre distintivo (DN) específico del contexto, como se muestra aquí:

Tome la nota del alcance para ese contexto. Usted puede utilizar esto para asociar a la salida de comando de la demostración-Establecimiento de zonas-regla de modo que usted pueda localizar las reglas que usted debe preguntar:

Usted puede también identificar el segmento ID/scope para el contexto de la interfaz de usuario (UI), como se muestra aquí:

Este alcance hace juego eso mostrada en la salida de comando de las Establecimiento de zonas-reglas de la demostración:

Una vez que usted tiene la información ID y le del alcance identificar la regla y el filtro ID, usted puede utilizar el comando siguiente para verificar que usted golpea los nuevos filtros (y no el implícito niegue los mensajes entre el EPGs). El implícitos niegan el mensaje son incluidos de modo que por abandono, el EPGs no pueda comunicar.

Aviso en esta salida de comando que Leaf1, Filter-6 (f-6) está incrementando:

fab1_leaf1# show system internal policy-mgr stats | grep 2686976

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)
Ingress: 0, Egress: 81553

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49154-f-implicit)
Ingress: 0, Egress: 0

Rule (4131) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)
Ingress: 0, Egress: 0

Rule (4132) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)
Ingress: 1440, Egress: 0
fab1_leaf1# show system internal policy-mgr stats | grep 2686976

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)
Ingress: 0, Egress: 81553

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49154-f-implicit)
Ingress: 0, Egress: 0

Rule (4131) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)
Ingress: 0, Egress: 0

Rule (4132) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)
Ingress: 1470, Egress: 0

Aviso en esta salida de comando que Leaf2, Filter-7 (f-7) está incrementando:

fab1_leaf2# show system internal policy-mgr stats | grep 268697

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)
Ingress: 0, Egress: 80257

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49153-f-implicit)
Ingress: 0, Egress: 0

Rule (4117) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)
Ingress: 0, Egress: 0

Rule (4118) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)
Ingress: 2481, Egress: 0
fab1_leaf2# show system internal policy-mgr stats | grep 268697

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)
Ingress: 0, Egress: 80257

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49153-f-implicit)
Ingress: 0, Egress: 0

Rule (4117) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)
Ingress: 0, Egress: 0

Rule (4118) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)
Ingress: 2511, Egress: 0

Consejo: El conocimiento del alcance, la regla ID, los pcTags del destino y de la fuente, y el filtro es importante con las tentativas de resolver problemas este problema más lejos. Es también útil tener conocimiento del EPGs entre el cual la regla ID existe.

Usted puede realizar una búsqueda en el MES con el fvAEPg y el grep del nombre DN para el pcTag determinado vía el comando del moquery, como se muestra aquí:

admin@RTP_Apic1:~> moquery -c fvAEPg | grep 49155 -B 5

dn : uni/tn-Prod/ap-commerceworkspace/epg-Web
lcOwn : local
matchT : AtleastOne
modTs : 2014-10-16T01:27:35.355-04:00
monPolDn : uni/tn-common/monepg-default
pcTag : 49155

Usted puede también utilizar la opción de filtro con el comando del moquery, como se muestra aquí:

admin@RTP_Apic1:~> moquery -c fvAEPg -f 'fv.AEPg.pcTag=="49155"'
Total Objects shown: 1

# fv.AEPg
name : Web
childAction :
configIssues :
configSt : applied
descr :
dn : uni/tn-Prod/ap-commerceworkspace/epg-Web
lcOwn : local
matchT : AtleastOne
modTs : 2014-10-16T01:27:35.355-04:00
monPolDn : uni/tn-common/monepg-default
pcTag : 49155
prio : unspecified
rn : epg-Web
scope : 2523136
status :
triggerSt : triggerable
uid : 15374

Verifique la programación del hardware

Ahora usted puede verificar la entrada del hardware para la regla. Para ver la información de hardware, ingrese el comando interno del ingreso del mth_lux_slvz_DHS_SecurityGroupStatTable_memif_data de la tabla ns de la plataforma de la demostración (esto es un comando del vsh_lc):

En este ejemplo, la entrada del hardware 41 (ENTRADA [000041]) está incrementando.

Nota: El uso de este comando no es práctico en un entorno de producción, pero usted puede utilizar los otros comandos que se describen en esta sección en lugar de otro.

Recuerde la regla (4132) y el alcance (268976):

Ingrese este comando para determinar la regla ID a asociar de la entrada de índice del hardware del Ternary Content Addressable Memory (TCAM), y al filtro basado en la regla ID y/o al filtro ID:

module-1# show system internal aclqos zoning-rules

[snip]

===========================================
Rule ID: 4131 Scope 4 Src EPG: 49155 Dst EPG: 32771 Filter 7

Curr TCAM resource:
=============================
   unit_id: 0
   === Region priority: 771 (rule prio: 3 entry: 3)===
       sw_index = 62 | hw_index = 40
   === Region priority: 772 (rule prio: 3 entry: 4)===
       sw_index = 63 | hw_index = 45

===========================================
Rule ID: 4132 Scope 4 Src EPG: 32771 Dst EPG: 49155 Filter 6

Curr TCAM resource:
=============================
   unit_id: 0
   === Region priority: 771 (rule prio: 3 entry: 3)===
       sw_index = 66 | hw_index = 41
   === Region priority: 771 (rule prio: 3 entry: 3)===
       sw_index = 67 | hw_index = 42

[snip]

Por este ejemplo, la fuente y la combinación del destino EPG de interés es 32771=0x8003, 49155=0xC003. Por lo tanto, usted debe considerar todas las entradas TCAM para estos las clases de la fuente y del destino que hacen juego la regla ID (4131 y 4132) y el filtro ID (6 y 7).

En este ejemplo, algunas de estas entradas TCAM se vacian. Para la referencia, aquí está la configuración del contrato que permite los ping y el tráfico de la Web para estos EPGs:

module-1# show platform internal ns table mth_lux_slvz_DHS_SecurityGroupKeyTable0
_memif_data 41


=======================================================================
                         TABLE INSTANCE : 0
=======================================================================
ENTRY[000041] =
               sg_label=0x4           

               sclass=0x8003           

               dclass=0xc003           

               prot=0x1 (IP Protocol 0x01 = ICMP)

Nota: El comando anterior mostrado en el azul se utiliza para el Northstar ASIC. El comando que se utiliza para Donner o Donner+ es la tabla interna mth_luxh_slvq_DHS_SecurityGroupKeyTable0_memif_data ns de la plataforma de la demostración.

sup_tx_mask=0x1            
               src_policy_incomplete_mask=0x1          

               dst_policy_incomplete_mask=0x1           

               class_eq_mask=0x1

               aclass_mask=0x1ff

               port_dir_mask=0x1           

               dport_mask=0xffff           

               sport_mask=0xffff          

               tcpflags_mask=0xff
           
               ip_opt_mask=0x1
           
               ipv6_route_mask=0x1
           
               ip_fragment_mask=0x1
           
               ip_frag_offset0_mask=0x1           

               ip_frag_offset1_mask=0x1           

               ip_mf_mask=0x1
           
               l4_partial_mask=0x1           

               dst_local_mask=0x1           

               routeable_mask=0x1           

               spare_mask=0x7ff           

               v4addr_key_mask=0x1           

               v6addr_key_mask=0x1           

               valid=0x1


module-1# show platform internal ns table mth_lux_slvz_DHS_SecurityGroupKeyTable0
_memif_data 42


=======================================================================
                         TABLE INSTANCE : 0
=======================================================================
ENTRY[000042] =

               sg_label=0x4           

               sclass=0x8003           

               dclass=0xc003           

               prot=0x6 <--           

               dport=0x50 <--

sup_tx_mask=0x1
           
               src_policy_incomplete_mask=0x1           

               dst_policy_incomplete_mask=0x1           

               class_eq_mask=0x1           

               aclass_mask=0x1ff           

               port_dir_mask=0x1           

               sport_mask=0xffff           

               tcpflags_mask=0xff           

               ip_opt_mask=0x1           

               ipv6_route_mask=0x1           

               ip_fragment_mask=0x1           

               ip_frag_offset0_mask=0x1           

               ip_frag_offset1_mask=0x1           

               ip_mf_mask=0x1           

               l4_partial_mask=0x1           

               dst_local_mask=0x1

Consejo: Usted puede verificar cada uno de las entradas TCAM con el mismo método.

Problemas programados del hardware del Troubleshooting

Esta sección proporciona algunos comandos de Troubleshooting y extremidades útiles.

Comandos de Troubleshooting útiles

Aquí están algunos comandos útiles que usted puede utilizar para localizar los errores del Administrador de directivas de la hoja cuando se encuentran los problemas:

fab1_leaf1# show system internal policy-mgr event-history errors


1) Event:E_DEBUG, length:84, at 6132 usecs after Mon Sep 8 13:15:56 2014

   [103] policy_mgr_handle_ctx_mrules(779): ERROR: Failed to process prio(1537):
(null)


2) Event:E_DEBUG, length:141, at 6105 usecs after Mon Sep 8 13:15:56 2014

   [103] policy_mgr_process_mrule_prio_aces(646): ERROR: Failed to insert iptables
rule for rule(4120) , fentry(5_0) with priority(1537): (null)


[snip]


fab1_leaf1# show system internal policy-mgr event-histor trace

[1409945922.23737] policy_mgr_ppf_hdl_close_state:562: Got close state callback

[1409945922.23696] policy_mgr_ppf_rdy_ntf_fun:239: StatStoreEnd returned: 0x0(SU

CCESS)

[1409945922.23502] policy_mgr_ppf_rdy_ntf_fun:208: ppf ready notification: sess_

id: (0xFF0104B400005B51)

[1409945922.23475] policy_mgr_ppf_rdy_ntf_fun:205: Got ready notification callba

ck with statustype (4)

[1409945921.983476] policy_mgr_gwrap_handler:992: Dropped...now purging it...

[1409945921.982882] policy_mgr_ppf_goto_state_fun:481: Sess id (0xFF0104B400005B


[snip]


module-1# show system internal aclqos event-history trace

T [Fri Sep 5 13:18:24.863283] ============= Session End ============

T [Fri Sep 5 13:18:24.862924] Commit phase: Time taken 0.62 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.862302] ppf session [0xff0104b410000087] commit ... npi

nst 1

T [Fri Sep 5 13:18:24.861421] Verify phase: Time taken 0.77 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.860615] ============= Session Begin ============

T [Fri Sep 5 13:18:24.830472] ============= Session End ============

T [Fri Sep 5 13:18:24.830062] Commit phase: Time taken 0.98 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.829085] ppf session [0xff0104b410000086] commit ... npi

nst 1

T [Fri Sep 5 13:18:24.827685] Verify phase: Time taken 2.04 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.825388] ============= Session Begin ============

T [Fri Sep 5 12:32:51.364225] ============= Session End ============

T [Fri Sep 5 12:32:51.363748] Commit phase: Time taken 0.64 ms, usr 0.00 ms,


[snip]

Consejo: Algunos de los archivos son grandes, así que es más fácil enviarlos al bootflash y examinarlos en un editor.

module-1# show system internal aclqos ?

asic           Asic information

brcm           Broadcam information

database       Database

event-history   Show various event logs of ACLQOS

mem-stats       Show memory allocation statistics of ACLQOS

prefix         External EPG prefixes

qos             QoS related information

range-resource Zoning rules L4 destination port range resources

regions         Security TCAM priority regions

span           SPAN related information

zoning-rules   Show zoning rules


module-1# show system internal aclqos event-history ?

errors       Show error logs of ACLQOS

msgs         Show various message logs of ACLQOS

ppf          Show ppf logs of ACLQOS

ppf-parse    Show ppf-parse logs of ACLQOS

prefix       Show prefix logs of ACLQOS

qos          Show qos logs of ACLQOS

qos-detail   Show detailed qos logs of ACLQOS

span         Show span logs of ACLQOS

span-detail  Show detailed span logs of ACLQOS

trace        Show trace logs of ACLQOS

trace-detail Show detailed trace logs of ACLQOS

zoning-rules Show detailed logs of ACLQOS

Consejos de Troubleshooting

Aquí están algunos consejos de Troubleshooting útiles:

  • Si usted usted parece experimentar un problema del agotamiento de TCAM, marque el UI o el CLI para los incidentes que se asocian a la regla en la pregunta. Este incidente pudo ser señalado:
    Fault F1203 - Rule failed due to hardware programming error.
    Una regla pudo tomar más de una entrada TCAM en el circuito específico de la aplicación (ASIC). Para ver el número de entradas en el ASIC, ingrese estos comandos:
    fab1-leaf1# vsh_lc

    module-1# show platform internal ns table-health
    VLAN STATE curr usage: 0 - size: 4096
    QQ curr usage: 0 - size: 16384
    SEG STATE curr usage: 0 - size: 4096
    SRC TEP curr usage: 0 - size: 4096
    POLICY KEY curr usage: 0 - size: 1
    SRC VP curr usage: 0 - size: 4096
    SEC GRP curr usage: 43 - size: 4096

    Nota: En este ejemplo, hay 43 entradas presentes. Este uso también está señalado al APIC en la clase del eqptCapacity.

  • Cuando hay coincidencias múltiples, la búsqueda TCAM vuelve el hw-índice más bajo. Para verificar el índice, ingrese este comando:
    show system internal aclqos zoning-rule
    Al resolver problemas, usted puede ser que observe el descenso que es causado por la cualquier-cualquier-implict regla. Esta regla está siempre en la parte inferior, así que significa que el paquete está caído porque no existe una regla. Esto es o debido a un misconfiguration, o el Element Manager de la directiva no lo programa como se esperaba.

  • Los pcTags pueden tener un local o ámbito global:

    • Global pcTag del scoped – Este pcTag tiene generalmente un valor inferior (menos de cuatro dígitos en el formato decimal).

    • Localmente pcTag del scoped – Este pcTag utiliza un valor más grande (cinco dígitos en el formato decimal).

  • Cuando usted Troubleshooting, un panorama general en la longitud del valor indica su alcance.

Discusiones relacionadas de la comunidad de soporte de Cisco

La Comunidad de Soporte de Cisco es un foro donde usted puede preguntar y responder, ofrecer sugerencias y colaborar con colegas.