Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

¿Qué es ELAM?

Topología

Identificación del Motor de reenvío de entrada

Ejemplo: Captura de ARP ELAM

Configuración del desencadenador

Interpretación del resultado

Ejemplo: captura de ELAM IPv4

Configuración del desencadenador

Interpretación del resultado

Verificación adicional (F3 ltl-region)

errores de ELAM

Introducción

Este documento describe los pasos utilizados para realizar un ELAM (Embedded Logic Analyzer Module) en un módulo F3 Cisco Nexus 7000/7700.

Prerequisites

Requirements

Cisco recomienda que esté familiarizado con el sistema operativo Cisco Nexus (NX-OS) y la arquitectura básica de Nexus antes de continuar con la información que se describe en este documento.

ELAM sólo puede realizarlo el rol de administrador de red. Asegúrese de iniciar sesión como un usuario con privilegios de administrador de red.

Componentes Utilizados

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Switches de la serie Cisco Nexus 7700

- Módulos de la serie Cisco N7700 F3 (N77-F324FQ-25, módulos de 24 puertos 10/40 Gigabit Ethernet)

- Cisco NX-OS, versiones 8.4.9

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

¿Qué es ELAM?

La ELAM ayuda a resolver problemas de reenvío de red mediante la captura de paquetes en tiempo real sin interrupciones, y no afecta al rendimiento ni a los recursos del plano de control. La ELAM es una herramienta potente, granular y no intrusiva que utilizan habitualmente los ingenieros del Cisco Technical Assistance Center (TAC). Sin embargo, es crucial saber que la herramienta ELAM captura solo un paquete a la vez - el primer paquete recibido después de que se inicia ELAM. Si necesita capturar todos los paquetes de un flujo, utilice SPAN o ERSPAN.

La ELAM puede responder preguntas como:

- ¿Entra en el switch la trama de interés?

- ¿Desde qué puerto y VLAN se recibe el paquete?

- ¿Cuáles son las direcciones MAC de origen y destino del paquete entrante?

- ¿Cómo se reescribe el paquete y a qué puerto se envía?

Topología

En este artículo, el Host1 conectado al puerto N77-F3 E5/23, envía el tráfico al Host2. ELAM se utiliza para capturar la trama individual del Host1 al Host2.

Para ejecutar un ELAM en el N7K, primero debe iniciar sesión como un usuario con network-admin y luego debe conectarse al módulo.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0

Identificación del Motor de Reenvío de Ingreso

Nexus 7000 funciona como un switch totalmente distribuido, con decisiones de reenvío tomadas por el motor de reenvío de la tarjeta de línea de entrada.

En este artículo, se espera que el tráfico de interés ingrese al switch a través del puerto 5/23. En el ejemplo del N7K, la mMódulo 5 es un módulo F3.

N77-F3# show module 5

Mod Ports            Module-Type                     Model         Status

--- ----- ----------------------------------- ------------------ ----------

5     24      10/40 Gbps Ethernet Module        N77-F324FQ-25       ok

Mod Sw Hw

--- --------------- ------

5 8.4(9) 1.3

Para los módulos F3, realice el ELAM en el Motor de reenvío (FE) de capa 2 (L2) con el nombre de código interno Flanker.

module-5# show hardware internal dev-port-map

--------------------------------------------------------------

CARD_TYPE: 24 port 40G

>Front Panel ports:24

--------------------------------------------------------------

Device name                  Dev role           Abbr num_inst:

--------------------------------------------------------------

> Flanker Fwd Driver     DEV_LAYER_2_LOOKUP      L2LKP 12

FP port | PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF

22                 10     10      10      10      0,1

23                 11     11      11      11      0,1        >>>Port 23 belongs to FE instance 11

24                 11     11      11      11      0,1

+-----------------------------------------------------------------------+

En esta salida, es evidente que el puerto E5/23 pertenece a la instancia FE 11.

El bus de datos FE (DBUS) de capa 2 transporta la información de encabezado original antes de las búsquedas de capa 2 (L2) y capa 3 (L3), mientras que el bus de resultados (RBUS) contiene los resultados de las búsquedas L3 y L2. Para la mayoría de los escenarios de troubleshooting, una captura de ELAM de Capa 2 es suficiente.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0

module-5# elam asic flanker instance 11

module-5(fln-elam)# ?

layer2 ELAMs for layer 2

layer3 ELAMs for layer 3

module-5(fln-elam)# layer2

Ejemplo: Captura de ARP ELAM

En este ejemplo, el Host1 en la VLAN 100 (con una dirección IP de 192.168.1.1 y una dirección MAC de 8c60.4fc7.c5bc), vinculado al puerto E5/23, envía una solicitud de protocolo de resolución de direcciones (ARP). Esta solicitud está pensada para resolver la dirección MAC de otro host en la misma VLAN 100, que tiene una dirección IP de 192.168.1.2.

Configuración del desencadenador

El ASIC de Flanker soporta disparadores ELAM para varios tipos de tramas. El disparador ELAM debe corresponderse con el tipo de trama. Si la trama es una trama ARP, el disparador también debe configurarse en la opción ARP. Una trama ARP no puede ser capturada por el disparador Otro L2. Si utiliza ELAM para capturar una trama MPLS, seleccione IPv4 o IPv6 en lugar de MPLS. Para obtener más detalles, consulte la sección de errores.

module-5(fln-l2-elam)# trigger dbus ?

arp ARP Frame Format              >>>capture ARP packet. Other L2 does not work for ARP

fc Fc hdr Frame Format

ipv4 IPV4 Frame Format            >>>capture IPv4 frame

ipv6 IPV6 Frame Format            >>>capture IPv6 frame

mpls MPLS

other L2 hdr Frame Format         >>>capture non-ip l2 frame

rarp RARP Frame Format

En este ejemplo, la trama se captura basándose en el campo de dirección IP de destino de la trama ARP, por lo que sólo se especifica este valor.

Flanker necesita que los disparadores estén configurados tanto para el DBUS como para el RBUS. El disparador RBUS se simplifica,trig coincide con los mismos criterios que el disparador DBUS.

module-5(fln-l2-elam)# trigger dbus arp ingress if target-ip-address 192.168.1.2

module-5(fln-l2-elam)# trigger rbus ingress if trig

Ahora que ha configurado el disparador, puede iniciar la captura.

module-5(fln-l2-elam)# start

Para verificar si ELAM ha capturado algún paquete, puede ejecutar elstatuscomando. El término Armado indica que aún no se ha capturado ningún paquete coincidente.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2

L2 DBUS: Armed                  >>>no matched packet

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed                  >>>no matched packet

Ping desde Host1 (192.168.1.1) a 192.168.1.2. Dado que no hay ninguna entrada ARP en Host1, Host1 envía la solicitud ARP en un paquete de difusión. Una vez que el FE recibe la trama ARP, verifica el disparador. Si hay una coincidencia, la ELAM captura la decisión de reenvío de esta trama y el estado de la ELAM se muestra como Desencadenado.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2

L2 DBUS: Triggered              >>Packet hit

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered              >>Packet hit

Interpretación del resultado

El resultado es válido sólo si el DBUS y el RBUS han capturado el mismo paquete. Por lo tanto, es necesario verificar el número de secuencia en los resultados de DBUS y RBUS. Si no coinciden, puede reiniciarlos y capturarlos de nuevo hasta que se alineen.

module-5(fln-l2-elam)# show dbus | in seq

sequence-number : 0x7 vl : 0x0

module-5(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger : 0x1 sequence-number : 0x7

Es recomendable comprobar primero la salida DBUS, ya que contiene datos antes de cualquier reescritura. Este es un ejemplo de una captura ARP ELAM. Tenga en cuenta que se han omitido algunos resultados.

module-5(fln-l2-elam)# show dbus

cp = 0x20c6ad1c, buf = 0x20c6ad1c, end = 0x20c7706c

--------------------------------------------------------------------

Flanker Instance 11 - Capture Buffer On L2 DBUS:

<snip>

--------------------------------------------------------------------

L2 DBUS PRS MLH ARP/RARP

--------------------------------------------------------------------

valid : 0x1                                    requst-response : 0x1    >>>ARP request

(1:for ARP request,2: for ARP reply, 3:for RARP request, 4:for RARP reply)

port-id : 0x0                                 last-ethertype : 0x806    >>>Ethernet type, 0x0806 means ARP

packet-type : 0x0                              l2-length-check : 0x0    >>>0 for ingress, 1 for egress

vqi : 0x0                                       packet-length : 0x40    >>>L2 ethernet frame totally length 64 byte

vlan : 0x64                                  destination-index : 0x0    >>>VLAN100

source-index : 0xb79                               bundle-port : 0x0    >>>source port ltl index

status-is-1q : 0x0                                 trill-encap : 0x0    >>>0 means frame without vlan tag

sender-ip-address: 192.168.1.1                                          >>>sender-ip-address in ARP header

target-ip-address: 192.168.1.2                                          >>>target-ip-address in ARP header

sender-mac-address : 8c60.4fc7.c5bc                                     >>>sender-mac-address in ARP header

target-mac-address : ffff.ffff.ffff                                     >>>target-mac-address in ARP header

destination-mac-address : ffff.ffff.ffff                                >>>sestination mac in ethernet header

source-mac-address : 8c60.4fc7.c5bc                                     >>>source mac in ethernet header

Con los datos DBUS, puede confirmar que la trama se recibe en VLAN100 (vlan:0x64) con una dirección MAC de origen de 8c60.4fc7.c5bc y una dirección MAC de destino de ffff.ffff.ffff. También puede identificar que ésta es una trama de solicitud ARP que se origina en IP 192.168.1.1.

Para verificar el puerto en el que se recibe la trama, utilice elPIXMcomando (Administrador de índices de puertos). Este comando muestra la asignación de una lógica de destino local (LTL) a un puerto frontal o a un grupo de puertos frontales.

N77-F3# show system internal pixm info ltl 0xb79

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc031

El resultado revela que un source-index de 0xb79 se asigna al puerto E5/23. Esto verifica que la trama se reciba en el puerto E5/23.

Después de confirmar que ELAM ha capturado la trama de interés, puede verificar el resultado de la decisión de reenvío usando los datos de RBUS (observe que se omitieron algunos resultados).

module-5(fln-l2-elam)# show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

di-ltl-index : 0xc031                        l3-multicast-di : 0xc00    >>> destination ltl index

source-index : 0xb79                         vlan : 0x64                >>> vlan id after rewritten

vqi : 0x0                                    di2-valid : 0x0            >>> use l3-multicast-di as di if this is 1

routed-frame : 0x0                           copy-cause : 0x0           >>> 0x0 means N7K performs layer 2 switching

Con los datos de RBUS, puede confirmar que la trama está conmutada en VLAN 100 (0x64). Para determinar los puertos de salida del índice di-ltl, utilice el comando pixm nuevamente.

N77-F3# show system internal pixm info ltl 0xc031

Member info

------------------

IFIDX LTL

---------------------------------

Eth5/24 0x0b78

Eth5/23 0x0b79

El resultado muestra que los puertos E5/23 y E5/24 pertenecen a LTL 0xc031. El paquete ARP conmuta a ambos puertos. Como se recibe de E5/23, sólo se envía desde E5/24.

Ejemplo: captura de ELAM IPv4

elam ipv4 l3

En este ejemplo, el Host1 en la VLAN 100 (con una dirección IP de 192.168.1.1/24 y una dirección MAC de 8c60.4fc7.c5bc), está conectado al puerto E5/23 y envía una solicitud de protocolo de mensajes de control de Internet (ICMP) al Host2. Host2 tiene una dirección IP de 192.168.2.2/24 y se encuentra en una VLAN diferente, VLAN200.

Configuración del desencadenador

En este ejemplo, dado que Host1 y Host2 están en VLAN diferentes, el paquete ICMP del Host1 al Host2 se rutea a través de la Capa 3 en N77-F3. Se utiliza un ELAM de Capa 2 para capturar el paquete de solicitud ICMP.

Tanto la IP de origen (192.168.1.2) como la IP de destino (192.168.2.2) se combinan como disparadores DBUS. ELAM solo captura el paquete que coincide con todos los disparadores.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 11:19:46 pst 2024 from 127.1.1.3 on pts/0

module-5# elam asic flanker instance 11

module-5(fln-elam)# layer2

module-5(fln-l2-elam)# trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

module-5(fln-l2-elam)# trigger rbus ingress if trig

module-5(fln-l2-elam)# start

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

L2 DBUS: Armed

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed

Inicie un ping desde el Host1 (192.168.1.2) al Host2 (192.168.2.2). Una vez que la instancia FE 11 recibe el paquete que coincide con los desencadenadores, el estado de ELAM se muestra como Desencadenado.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

L2 DBUS: Triggered

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered

Interpretación del resultado

Asegúrese de que RBUS y DBUS tengan el mismo número de secuencia. Este paso es necesario para cada captura.

module-5(fln-l2-elam)# show dbus | in seq

sequence-number : 0x74 vl : 0x0

module-5(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger : 0x1 sequence-number : 0x74      >>same sequence number, valid elam result

Este es un ejemplo de una captura de ELAM ICMP IPv4. Tenga en cuenta que se han omitido algunos resultados.

module-5(fln-l2-elam)# show dbus

--------------------------------------------------------------------

L2 DBUS PRS MLH IPV4

--------------------------------------------------------------------

l4-protocol : 0x1                                           df : 0x0    >>>L4 protocol id, 1 means icmp packet

ttl : 0xff                                   l3-packet-length : 0x54    >>>ip total length is 84 in this packet, ttl is 255

port-id : 0x0                                 last-ethertype : 0x800    >>>Ethernet type, 0x0800 means IPv4

vqi : 0x0                                       packet-length : 0x66    >>>L2 frame length field

vlan : 0x64                                  destination-index : 0x0    >>>vlan id 100

source-index : 0xb79                               bundle-port : 0x0    >>>source port ltl index

status-is-1q : 0x1                                 trill-encap : 0x0    >>>1 means frame with vlan tag

source-ipv4-address: 192.168.1.2                                        >>>Packet source IP

destination-ipv4-address: 192.168.2.2                                   >>>Packet destination IP

destination-mac-address : 003a.9c40.8ac3                                >>>Packet destination mac

source-mac-address : 8c60.4fc7.c5bc                                     >>>Packet source mac

Con los datos DBUS, puede confirmar que el paquete se recibe en VLAN100 (vlan:0x64) con una IP de origen de 192.168.1.2 y una IP de destino de 192.168.2.2. También puede identificar que se trata de un paquete ICMP IPv4.

Para verificar el puerto en el que se recibe la trama, ejecute elPIXMcomando (Administrador de índices de puertos). Este comando muestra la asignación de una lógica de destino local (LTL) a un puerto frontal o a un grupo de puertos frontales.

N77-F3# show system internal pixm info ltl 0xb79

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc032

FLOOD_W_FPOE 0xc031

FLOOD_W_FPOE 0xc029

El resultado muestra que un source-index de 0xb79 se asigna al puerto E5/23. Esto confirma que la trama se recibe en el puerto E5/23.

Después de confirmar que ELAM ha capturado el paquete de ICMP de interés, puede verificar el resultado de la decisión de reenvío usando los datos RBUS (observe que se omitieron algunos resultados). A partir de los datos de RBUS, puede ver que la trama se enruta de VLAN 100 (0x64) a VLAN200.

module-5(fln-l2-elam)# show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

segment-id-valid : 0x0                                 ttl-out : 0xfe      >>>TTL is 254

di-ltl-index : 0xb78                            l3-multicast-di : 0x0      >>>destination port ltl

source-index : 0xb79                                      vlan : 0xc8      >>>vlan id is 200

routed-frame : 0x1                                   copy-cause : 0x0      >>>routed on N7K

Para determinar los puertos de salida del índice di-ltl, ejecute elPIXMcomando. El resultado muestra que el puerto de salida es E5/24.

N77-F3# show system internal pixm info ltl 0xb78

Member info

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/24

FLOOD_W_FPOE 0xc032

FLOOD_W_FPOE 0xc031

FLOOD_W_FPOE 0xc029

Verificación adicional (F3 ltl-region)

El resultado de este comando es útil para entender el propósito de una LTL si no coincide con un puerto físico. Algunos ejemplos son Drop LTL y Inband LTL:

N77-F3# show system internal pixm info ltl-region

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

PIXM VDC 1 LTL MAP Version: 3

Description: LTL Map for Crossbow

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

LTL_TYPE SIZE START END

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

LIBLTLMAP_LTL_TYPE_SUP_ETH_INBAND 64 0xc00 0xc3f

-------------------------------------------------------------------

LIBLTLMAP_LTL_TYPE_DROP_DI_WO_HW_BITSET 0xcae

LIBLTLMAP_LTL_TYPE_DROP_DI 0xcad

errores de ELAM

ID de falla de funcionamiento de Cisco

Título del error

Versión de corrección

ID de bug de Cisco CSCux73273

El disparador Mpls para ELAM en F3 no funciona

No hay versión fija, utilice la solución alternativa

ID de bug de Cisco CSCvm65736

N7k: desencadenador de liberación de ELAM clp_elam crash/LC reload

7.3(3)D1(1) u 8.2(3) u 8.3(2)