Contenido

Introducción

Antecedentes

¿En Qué Pueden Ayudar Estas Herramientas?

SPAN y ERSPAN

ELAM

Overview

ASIC

tabla ASICs

ELAM trigger in-select

Selección de desencadenador ELAM

ELAM establece condiciones

Visualización del informe ELAM

Ejemplo completo de ELAM

aplicación ELAM Assistant

ElamAssistant

ElamAssistant - Detalle

fTriage

Examples

Tcpdump

Contadores atómicos a demanda

Introducción

Este documento describe las herramientas nativas incluidas en ACI que se pueden utilizar para depurar problemas de reenvío.

Antecedentes

El material de este documento se ha extraído de la Solución de problemas de Cisco Application Centric Infrastructure, segunda edición libro, específicamente el Reenvío dentro del fabric: herramientas capí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.

¿En Qué Pueden Ayudar Estas Herramientas?

Para solucionar un problema de reenvío desde una perspectiva de ACI, debe entender:

1. ¿Qué switch recibe un flujo?

2. ¿Qué decisión de reenvío toma ese switch?

3. ¿El switch lo está descartando?

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 solo se proporciona una introducción general.

SPAN y ERSPAN

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 sigue el mismo concepto excepto replicar 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.

ELAM

Overview

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 exitosa hará 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 afectará a la CPU ni a otros recursos del switch.

Los ejemplos de reenvío en este libro utilizarán ELAM como medio para verificar lo que está sucediendo con el flujo. Los ejemplos mostrarán 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 de 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 en desencadenador

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 de 'status' mostrará 'triggered'. 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'.

ASIC

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:

tabla ASICs

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

ELAM trigger in-select

El otro componente de la ELAM que debe entenderse cuando se ejecuta desde la CLI es el "in-select". El '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 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 las siguientes:

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:

Para capturar un paquete que viene con encapsulación VLAN en un puerto de link descendente, utilice 'in-select 6'

Para capturar un paquete con encapsulación VXLAN (ya sea desde una columna o desde una hoja con encapsulación VXLAN), utilice 'in-select 14'

Selección de desencadenador ELAM

El '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 incluyendo el 'drop vector' que dirá si el resultado de la búsqueda es descartar el paquete/trama.

Tenga en cuenta que cuando se utiliza 'report' en lugar de 'report' o 'report detail' para obtener resultados de ELAM, 'drop vector' solo aparece en 'out-select 1'. Sin embargo, siempre se puede realizar 'report' o 'report detail' con 'out-select 0'.

ELAM establece condiciones

ELAM soporta una gran cantidad de condiciones de Capa 2, 3 y 4 para buscar en un paquete. Especificación de 'inner' frente a 'router' 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

Dirección IP en ejemplo de encabezado interno:

set inner ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2

Visualización del informe ELAM

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 de ELAM se guarda en la carpeta '/var/log/dme/log/' en el switch. Debajo de la carpeta habrá dos archivos para el ELAM.

- elam_<timestamp>.txt

- Pretty_Elam_<timestamp>.txt

Ejemplo completo de ELAM

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

aplicación ELAM Assistant

Los ejemplos de solución de problemas de este manual también mostrarán el uso de la aplicación ELAM Assistant, que se puede descargar a través del Cisco DC App Center (https://dcappcenter.cisco.com). 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

ElamAssistant

ElamAssistant - Detalle

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.

fTriage

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 ejecutará 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 tomará 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 de fTriage.

La finalización del triaje puede tardar hasta 15 minutos.

Examples

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

Puede ver la ayuda completa de fTriage ejecutando 'ftriage —help' en el APIC.

Tcpdump

Tcpdump se puede aprovechar en 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 routing, 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.

Contadores atómicos a demanda

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 sobre si los paquetes se perdieron o se recibieron en exceso.