Este documento describe las herramientas nativas incluidas en ACI que se pueden utilizar para depurar problemas de reenvío.
El material de este documento se extrajo de Troubleshooting de Cisco Application Centric Infrastructure, segunda edición libro, en concreto elReenvío dentro del fabric: herramientascapítulo.
Además, se pueden encontrar explicaciones más detalladas de ELAM y Ftriage en la biblioteca Cisco Live On-Demand en la sesión BRKDCN-3900b.
Para solucionar un problema de reenvío desde una perspectiva de ACI, debe entender:
ACI incluye varias herramientas que permiten al usuario obtener información detallada sobre lo que está sucediendo en un flujo específico. En las siguientes secciones se muestran estas herramientas en detalle, por lo que aquí solo se proporciona una introducción general.
SPAN y ERSPAN son herramientas que permiten replicar todo o parte del tráfico recibido en una ubicación específica en otra ubicación. Se espera que el dispositivo final al que se envía el tráfico replicado esté ejecutando algún tipo de aplicación de analizador/rastreador de paquetes. El SPAN tradicional implica replicar el tráfico que se recibe en un puerto y que se transmite a través de otro puerto. ACI permite hacerlo además de ERSPAN.
ERSPAN replica el tráfico fuera de un puerto local; el tráfico replicado se encapsula en GRE y se envía a un destino remoto. En ACI, este destino de ERSPAN solo se debe aprender como un punto final de Capa 3 y puede ser cualquier EPG en cualquier VRF.
Es una buena idea tener siempre los destinos SPAN conectados al fabric para minimizar el tiempo de preparación durante la resolución de problemas y permitir una rápida configuración y captura de sesiones ERSPAN.
Embedded Logic Analyzer Module (ELAM) es una herramienta que permite al usuario establecer condiciones en el hardware y capturar el primer paquete o trama que coincida con las condiciones establecidas. Una captura correcta hace que el estado de ELAM se muestre como "activado". Una vez que se activa, la ELAM se inhabilita y se puede recopilar un volcado para analizar el gran número de decisiones de reenvío que el ASIC del switch está tomando con ese paquete/trama. ELAM se implementa en el nivel ASIC y no afecta a la CPU ni a otros recursos del switch.
Los ejemplos de reenvío de este libro utilizan ELAM como medio para verificar lo que está sucediendo con el flujo. Ejemplos muestra la versión de la CLI de hoja y la aplicación ELAM Assistant.
Esta guía no cubre el uso de ELAM en switches de hoja de primera generación (switches sin sufijo EX, FX o FX2).
Antes de utilizar la herramienta, es importante comprender la estructura de la sintaxis del comando.
Ejemplo en la CLI de hoja:
vsh_lc [This command enters the line card shell where ELAMs are run]
debug platform internal <asic> elam asic 0 [refer to the ASICs table]
Establecer condiciones para desencadenar:
trigger reset [ensures no existing triggers are running]
trigger init in-select <number> out-select <number> [determines what information about a packet is displayed and which conditions can be set]
set outer/inner [sets conditions]
start [starts the trigger]
status [checks if a packet is captured]
Generar el volcado que contiene el análisis de paquetes
ereport [display detailed forwarding decision for the packet]
Continúe ingresando el comando status para ver el estado del disparador. Una vez que se detecta un paquete que coincide con las condiciones definidas en el ASIC, la salida del estado muestra desencadenado. Una vez que se ha activado la ELAM, los detalles de las decisiones de reenvío del switch se pueden mostrar con 'Report'. Antes de la versión 4.2 de ACI, se debe utilizar report.
Dentro de la sintaxis de ELAM, observe que se debe especificar el ASIC. Dado que el ASIC depende del modelo de switch, consulte esta tabla para determinar qué ASIC debe especificar:
| Familia de tarjetas de switch/línea |
Asic para Elam |
| -Switches EX/LC |
TAH |
| -Switches FX(P)/LC |
ROC |
| -Switches/LC FX2 |
ROC |
| Switches C (9364C, 9332C) |
ROC |
| -Switches GX |
APLICACIÓN |
| -Switches GX2 |
CHO |
| -Switches FX3 |
ROC |
El otro componente del ELAM que debe entenderse cuando se ejecuta desde la CLI es el in-select. El comando in-select define qué encabezados se espera que tenga el paquete/trama y cuáles coinciden.
Por ejemplo, un paquete proveniente de un puerto de enlace descendente que no esté encapsulado VXLAN sólo tendría encabezados de capa 2, capa 3 y capa 4 externos.
Un paquete procedente de un puerto de panel frontal (enlace descendente) encapsulado en VXLAN (como Cisco ACI Virtual Edge en modo VXLAN) o procedente de una columna ascendente tendría encapsulado VXLAN. Esto significa que tendría encabezados de capa 2, capa 3 y capa 4 tanto internos como externos.
Todas las opciones de desencadenador son:
leaf1# vsh_lc
module-1# debug platform internal tah elam asic 0
module-1(DBG-elam)# trigger reset
module-1(DBG-elam)# trigger init in-select ?
10 Outerl4-innerl4-ieth
13 Outer(l2|l3|l4)-inner(l2|l3|l4)-noieth
14 Outer(l2(vntag)|l3|l4)-inner(l2|l3|l4)-ieth
15 Outer(l2|l3|l4)-inner(l2|l3|l4)-ieth
6 Outerl2-outerl3-outerl4
7 Innerl2-innerl3-innerl4
8 Outerl2-innerl2-ieth
9 Outerl3-innerl3
Si se selecciona in-select 6, la única opción es establecer condiciones y mostrar encabezados de los encabezados externos de capa 2, 3 o 4. Si se selecciona in-select 14, la única opción es establecer condiciones para y ver los detalles de los encabezados de las capas 2, 3 y 4 interna y externa.
Nota de prácticas recomendadas:
El comando out-select permite cierta capacidad para controlar qué resultados de búsqueda se muestran en el informe ELAM. Para la mayoría de los propósitos prácticos, out-select 0 se puede utilizar ya que contiene la mayor parte de la información, incluido el vector de descarte, que indica si el resultado de la búsqueda es descartar el paquete/trama.
Tenga en cuenta que cuando el informe en lugar del informe o el detalle del informe se utiliza para obtener resultados de ELAM, el vector de descarte solo aparece en out-select 1. Sin embargo, siempre se puede realizar el informe o el detalle del informe con out-select 0.
ELAM soporta una gran cantidad de condiciones de Capa 2, 3 y 4 para buscar en un paquete. La especificación de inner vs. outer determina si la condición se puede verificar en el encabezado interno (paquete encapsulado VXLAN) o en el encabezado externo.
Ejemplo de ARP:
set outer arp source-ip-address 10.0.0.1 target-ip-address 10.0.0.2
Ejemplo de dirección MAC:
set outer l2 src_mac aaaa.bbbb.cccc dst_mac cccc.bbbb.aaaa
Ejemplo de dirección IP en el encabezado interno:
set inner ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2
Verifique que la ELAM se haya desencadenado con el estado:
module-1(DBG-elam-insel6)# status
ELAM STATUS
===========
Asic 0 Slice 0 Status Armed
Asic 0 Slice 1 Status Triggered
El informe se puede utilizar para mostrar el resultado de la ELAM en un formato fácil de entender. Observe que el informe ELAM se guarda en la carpeta /var/log/dme/log/ en el switch. Hay dos archivos para el ELAM debajo de la carpeta:
Este ejemplo capturaría un tráfico no encapsulado VXLAN (coincidente en el encabezado externo) proveniente de un puerto de link descendente en un switch -EX:
module-1# debug platform internal tah elam asic 0
module-1(DBG-elam)# trigger reset
module-1(DBG-elam)# trigger init in-select 6 out-select 0
module-1(DBG-elam-insel6)# set outer ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2
module-1(DBG-elam-insel6)# start
module-1(DBG-elam-insel6)# status
module-1(DBG-elam-insel6)# ereport
Los ejemplos de solución de problemas de este manual también muestran el uso del asistente de ELAM.
Anteriormente, se trataba de una aplicación que se puede descargar a través de Cisco DC App Center (https://dcappcenter.cisco.com). pero a partir de la versión 6.1(2)+ de ACI, ELAM Assistant se integra directamente en APIC y se accede a él a través de la ficha Operations (Operaciones) de la interfaz de usuario de APIC.

En el caso del asistente de ELAM integrado, solo los usuarios de APIC con privilegios de lectura y escritura pueden utilizar el asistente de ELAM, y la opción de menú no estará visible para los usuarios sin privilegios de lectura y escritura.
Esta herramienta automatiza la implementación y la interpretación de los ELAM a través de la GUI en el APIC.
Este ejemplo muestra la implementación de un ELAM que coincide con una IP de origen y destino específica en el puerto de enlace descendente del nodo 101:
Para comenzar a utilizarlo, es necesario hacer clic en Capture (Perform ELAM) en el panel del lado izquierdo, y luego en la pantalla principal, haga clic en Add node para comenzar a agregar nodos donde se debe configurar el ELAM. En este ejemplo, se agrega el nodo-101:

Una vez que se agregan los nodos de interés, es necesario configurar la dirección (enlace descendente/enlace descendente VXLAN/enlace ascendente).
También es posible especificar si debe observarse alguna interfaz en particular, el valor predeterminado es any.
Por último, se pueden configurar una serie de parámetros (de forma similar a la versión CLI):


Por último, haga clic en Set ELAM(s) para armar los ELAM en los nodos especificados.
Para confirmar si se activó el ELAM, se puede hacer clic en el botón Check Trigger y, si se activa el ELAM en un nodo, el estado cambia a Report Ready junto al nombre del nodo:

Este botón Report Ready se muestra en un formato bonito en el siguiente informe de ELAM:

La salida se muestra en tres tipos: Express, Detail y Raw.
ELAM Assistant también permite un uso sencillo de parámetros de correspondencia más complejos, como la interfaz de origen o los valores VXLAN.
El comando ping es una utilidad de red estándar utilizada en Linux para probar la disponibilidad de un host en una red de Protocolo Internet (IP). Envía paquetes de solicitud de eco ICMP a un destino especificado (una dirección IP o un nombre de dominio) y escucha una respuesta de eco.
La función principal de este comando es realizar lo siguiente:
· Pruebas de conectividad: Comprueba si un dispositivo remoto está activo y accesible.
· Medición de latencia: Calcula el tiempo de ida y vuelta (RTT) para que los paquetes viajen al destino y hacia atrás, medido en milisegundos (ms).
· Detección de pérdida de paquetes: Informa del porcentaje de paquetes que no se han devuelto, lo que ayuda a identificar la congestión de la red o los problemas de estabilidad.
Esta utilidad se puede utilizar cuando se identifican problemas de disponibilidad en el APIC.
Confirme la disponibilidad de un servidor externo SNMP (ejemplo 10.31.125.144) desde la dirección OOB APIC:
ping 10.31.125.144 -I oobmgmt
Como se puede ver, la opción -I es útil para especificar la interfaz de origen, en este ejemplo la dirección de administración OOB.
Se puede utilizar la opción -h para ver todas las opciones disponibles.
Por otro lado, el comando iping es una herramienta de diagnóstico especializada dentro del entorno Cisco Application Centric Infrastructure (ACI).
iping es una potente utilidad de diagnóstico de red que se utiliza en la CLI de Cisco ACI para verificar la conectividad desde un nodo o contexto específico dentro del fabric. Dado que ACI es un entorno de varios arrendatarios, iping permite a los administradores probar la conectividad al tiempo que tienen en cuenta el aislamiento lógico proporcionado por los VRF y los arrendatarios.
Cómo funciona: Inicia una solicitud de eco ICMP desde un nodo o contexto de origen especificado a una IP de destino. Garantiza que el paquete atraviesa el fabric correctamente de acuerdo con los EPG y los contratos configurados. Para ello, el switch de hoja debe encapsular el paquete ICMP de la misma manera que se encapsularía el tráfico de producción si entrara en el fabric. El encabezado iVXLAN contiene el VNID (identificador de red virtual) que asigna el tráfico al VRF o EPG correcto. Esto garantiza que el paquete esté sujeto a las mismas reglas de reenvío y políticas de seguridad que el tráfico de producción real.
Funciones principales:
Confirme la disponibilidad del terminal, haciendo ping desde la SVI implementada desde el asunto del dominio de puente (SVI)
iping 192.168.104.2 -V tenant_prod:VRF1
Es necesario seleccionar al menos el origen VRF, con el parámetro -V.
Cuando se proporciona el indicador -V <tenant>:<vrf>, el sistema identifica el VNID (identificador de red VXLAN) específico asociado a ese VRF. Este VNID es crítico para garantizar que el paquete se rutee dentro de la tabla de ruteo lógica correcta.
Se puede utilizar la opción -h para ver todas las opciones disponibles.
fTriage es una herramienta basada en APIC CLI que pretende proporcionar una automatización integral de la configuración e interpretación de ELAM. La premisa de la herramienta es que un usuario puede definir un flujo específico, así como la hoja donde se espera que comience el flujo. A continuación, la herramienta ejecuta ELAM en cada nodo, uno por uno, para examinar el flujo de reenvío. Es particularmente útil en topologías grandes donde no está claro qué trayectoria toma un paquete.
fTriage genera un archivo de registro grande que contiene la salida de cada comando ejecutado. El nombre de este archivo está visible en las primeras líneas de la salida fTriage.
La finalización del triaje puede tardar hasta 15 minutos.
Asigne el flujo para la comunicación enrutada entre 10.0.1.1 y 10.0.2.1 a partir de la hoja 104:
ftriage route -ii LEAF:104 -dip 10.0.2.1 -sip 10.0.1.1
Diseñe un flujo de capa 2 a partir de la hoja 104:
ftriage bridge -ii LEAF:104 -dmac 02:02:02:02:02:02
Se puede ver la ayuda completa de fTriage ejecutando ftriage —help en el APIC.
tcpdump se puede aprovechar en los switches ACI para capturar el tráfico desde y hacia el plano de control. Tenga en cuenta que sólo el tráfico del plano de control enviado a la CPU del switch se puede observar en una captura tcpdump. Algunos ejemplos son los siguientes: protocolos de ruteo, LLDP/CDP, LACP, ARP, etc. Para capturar el tráfico del plano de datos (y del plano de control), utilice SPAN o ELAM.
Para capturar en la CPU, especifique la interfaz kpm_inb. La mayoría de las opciones y filtros tcpdump tradicionales están disponibles.
Ejemplo para capturar el ICMP destinado a una SVI en el switch de hoja:
leaf205# tcpdump -ni kpm_inb icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on kpm_inb, link-type EN10MB (Ethernet), capture size 65535 bytes
20:24:12.921981 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4096, length 64
20:24:12.922059 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4096, length 64
20:24:13.922064 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4352, length 64
20:24:13.922157 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4352, length 64
20:24:14.922231 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4608, length 64
20:24:14.922303 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4608, length 64
Además, la opción -w permite que tcpdump escriba la captura de paquetes en un archivo PCAP para que se pueda abrir en herramientas como Wireshark.
Para utilizar tcpdump en la interfaz eth0, que es la interfaz fuera de banda en el switch. Esto es útil para resolver problemas de conectividad de cualquier tráfico que pase a través del puerto físico fuera de banda del switch. Esto sería principalmente tráfico basado en el plano de control como SSH, SNMP, etc.
Los contadores atómicos a demanda están diseñados para contar los paquetes dentro de un flujo específico cuando salen de un link ascendente de hoja y se reciben en otro puerto de fabric de hoja. Permiten cierta granularidad en cuanto a si los paquetes se perdieron o se recibieron en exceso.
| Revisión | Fecha de publicación | Comentarios |
|---|---|---|
3.0 |
01-Jul-2026
|
Llamada añadida de que ELAM Assistant se está integrando en los APIC en la versión 6.1(2)+ |
2.0 |
19-Aug-2024
|
Formato de comandos. |
1.0 |
10-Aug-2022
|
Versión inicial |