Contenido

Introducción

Hardware aplicable

Procedimiento ELAM ASIC de Nexus Tahoe

Topología

Paso 1 - Verifique el ASIC, el Slice y el SrcId del puerto

Paso 2: Conexión al módulo

Paso 3 - Ingresar al modo de configuración de ELAM y especificar el ASIC apropiado del Paso 1

Paso 4: Configuración del disparador ELAM

Paso 5 - Establecer los disparadores de ELAM usando SRC & DEST IP

Paso 6 - Iniciar el ELAM

Paso 7 - Verifique si su ELAM se activó y luego revise los resultados

Visualización de los resultados de ELAM para las versiones de NX-OS anteriores a la 7.0(3)I5(2)

ELAM encapsulado VXLAN:

Configuración de ELAM tras NX-OS 7.0(3)I7(2)

Introducción

Este documento describe los pasos utilizados para realizarm a ELAM (lógica integrada Analyzer Module) en una serie de módulos ASIC de Cisco Nexus 9000 CloudScale, abarca las salidas más relevantes y describe cómo interpretar los resultados.

Consejo: Consulte el documento Descripción General de ELAM para obtener una descripción general de ELAM.

Hardware aplicable

El procedimiento descrito en este documento es aplicable únicamente al hardware siguiente:

N9K-C93180YC-EX

N9K-C92304QC

N9K-X9736C-EX

N9K-C92300YC

N9K-C93108TC-EX

N9K-X9788TC-FX

N9K-X9732C-EX

N9K-X97284YC-FX

N9K-X97160YC-EX

N9K-C93180YC-FX

N9K-C93180LC-EX

N9K-C93108TC-FX

N9K-C92160YC-X

N9K-C9348GC-FXP

N9K-C9272Q

N9K-X9732C-FX

N9K-C9236C

N9K-C9336C-FX2

N9K-C93240YC-FX2

N9K-C93300YC-FX2

N9K-C9364C

N9K-C9332C

Procedimiento ELAM ASIC de Nexus Tahoe

Topología

Paso 1 - Verifique el ASIC, el Slice y el SrcId del puerto

N9K-C92160YC-X-2# show hardware internal tah interface e1/49

IfIndex: 436232192

DstIndex: 5952

IfType: 26

Asic: 0 <<<<<<<<< Asic: 0

AsicPort: 56

SrcId: 48 <<<<<<<< Slice: 1 <<<<<<<<< PortOnSlice: 24

Precaución: ELAM se debe utilizar solamente en una ventana de terminal ya que mantiene contenido global para cada porción, lu-a2d, etc.

Por ejemplo, un canal de puerto (PO) puede tener dos links, Eth 1/53 que corresponde a la división 0 y Eth 1/54 que corresponde a la división 1. Configurar ELAM en dos ventanas de terminal separadas a la vez para las diferentes divisiones no ayudará ya que la última división (por ejemplo, la división 1) sobrescribirá la primera (la división 0), terminando obteniendo el mismo resultado en ambas ventanas de terminal.

Puede volver a comprobar esta información a través de:

N9K-C92160YC-X-2# show system internal ethpm info interface e1/49 | i i src

IF_STATIC_INFO: port_name=Ethernet1/49,if_index:0x1a006000,ltl=5952,slot=0, nxos_port=192,dmod=1,dpid=56,

unit=0,queue=65535,xbar_unitbmp=0x0,ns_pid=255,slice_num=1,port_on_slice=24,src_id=48

Paso 2: Conexión al módulo

N9K-C92160YC-X-2# attach mod 1

Paso 3 - Ingresar al modo de configuración de ELAM y especificar el ASIC apropiado del Paso 1

module-1# debug platform internal tah elam asic 0

Paso 4: Configuración del disparador ELAM

Nota: Hay muchas opciones que puede especificar aquí en función del paquete/flujo que se captura

module-1(TAH-elam)# trigger init asic 0 slice 1 lu-a2d 1 in-select 6 out-select 0 use-src-id 48

Consejo:

- Si los puertos de ingreso y egreso están en diferentes segmentos en el mismo ASIC, la ELAM en el segmento de egreso no capturará el paquete saliente porque el paquete no pasará a través de los bloques LUX en el segmento de egreso y, por lo tanto, omitirá la ELAM.

- lu-a2d 0 se utiliza para el ELAM inverso, donde el disparador se basa en el resultado y lu-a2d 1 se utiliza para el ELAM, donde el disparador se basa en atributos de paquete

- Utilice siempre 6 para selección interna y 0 para selección externa

Advertencia: No utilice 0 después de lu-a2d, ya que esto podría bloquear el switch; consulte CSCvd64106 para obtener más detalles

Paso 5 - Establecer los disparadores de ELAM usando SRC & DEST IP

En este ejemplo, nuestra IP de origen es 192.0.2.2 y la IP de destino es 192.0.2.1, como se muestra a continuación:

module-1(TAH-elam-insel6)# reset

module-1(TAH-elam-insel6)# set outer ipv4 dst_ip 192.0.2.1 src_ip 192.0.2.2

Nota: Asegúrese de "restablecer", ya que el comando "establecer" prevalecerá en todos los ELAM y puede hacer que no se active o active en campos inesperados.

Paso 6 - Iniciar el ELAM

module-1(TAH-elam-insel6)# start

GBL_C++:  [MSG] tahusd_elam_wrapper_init:36:asic type 5 inst 0 slice 1 a_to_d 1 insel 6 outsel 0

GBL_C++:  [MSG] Inside tahusd_elam_wrapper_init

GBL_C++:  [MSG] tahusd_elam_wrapper_enable:7e:asic type 5 inst 0 slice 1 a_to_d 1

GBL_C++:  [MSG]   - writing data=0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FD901C4E2A0000000000000000000002000000000000000000000000000000000000000000000000000000030001

GBL_C++:  [MSG]   - writing mask=0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FFFFFFFFFFFE00000000000000000000038000000000000000000000000000000000000000000000000000001FF001

Paso 7 - Verifique si su ELAM se activó y luego revise los resultados

Nota: A partir de NX-OS 7.0(3)I5(2) y versiones posteriores, hay una versión breve del informe de ELAM, como se muestra a continuación. Si está ejecutando una versión anterior a la 7.0(3)I5(2); continúe con la sección "Visualización de los resultados de ELAM..." sección.

module-1(TAH-elam-insel6)# report

SUGARBOWL ELAM REPORT SUMMARY

slot - 1, asic - 1, slice - 1

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

Incoming Interface: Eth1/49

Src Idx : 0xd, Src BD : 10

Outgoing Interface Info: dmod 1, dpid 14

Dst Idx : 0x602, Dst BD : 10

Packet Type: IPv4

Dst MAC address: CC:46:D6:6E:28:DB Src MAC address: 00:FE:C8:0E:27:15

.1q Tag0 VLAN: 10,  cos = 0x0

Dst IPv4 address: 192.0.2.1 Src IPv4 address: 192.0.2.2

Ver     =  4, DSCP    =    0, Don't Fragment = 0

Proto   =  1, TTL     =   64, More Fragments = 0

Hdr len = 20, Pkt len =   84, Checksum       = 0x667f

L4 Protocol  : 1

ICMP type    : 0

ICMP code    : 0

Drop Info:

----------

LUA:

LUB:

LUC:

LUD:

Final Drops:

- La CLI "informe detallado" le proporcionará un resultado más detallado que se describe en la sección posterior. Este es también el resultado predeterminado en versiones anteriores.

- El Dst Idx es el niv_idx de la interfaz de salida. Esto se puede verificar y/o hacer referencia a esto con "show hardware internal tah interface ex/y | i niv"

- El dmod y el dpid corresponden a la interfaz de salida. Esto se puede comprobar con "show system internal ethpm info int ex/y | i dpid"

- Además, "show interface hardware-mapping" se puede utilizar para validar el dmod/dpid.

NOTAS:

1. Cuando se trata de confirmar si el paquete se está descartando realmente, el campo "Descartes finales" es el ÚNICO a considerar.  En otras palabras, si bien es posible que vea excepciones generadas en otros campos como LUA/B/C/D, esto no significa necesariamente que el paquete se esté descartando. Revise cuidadosamente esta salida (hable con el TAC si es necesario).

2. El tráfico dirigido a la CPU tendrá el indicador sup_hit establecido (detalles del informe) | grep sup_hit).

- Puede descodificar la razón usando 'show system internal access-list sup-redirect-stats all' y haciendo coincidir el índice sup

- Asegúrese de que el 'modo de ruteo del sistema' correcto esté configurado (show system routing mode)

- Según las directrices y limitaciones documentadas en Consideraciones para la implementación de VXLAN

- El "Modo de enrutamiento del sistema: template-vxlan-scale" no es aplicable a Cisco NX-OS versión 7.0(3)I5(2) y posteriores.

- Cuando se utiliza VXLAN BGP EVPN en combinación con Cisco NX-OS versión 7.0(3)I4(x) o NX-OS versión 7.0(3)I5(1), el "Modo de routing del sistema: template-vxlan-scale" se requiere en las siguientes plataformas de hardware:

- Switches Cisco Nexus 9300-EX

- Switches Cisco Nexus 9500 con tarjetas de línea X9700-EX

- Para cambiar el "Modo de enrutamiento del sistema" es necesario volver a cargar el switch.

Ejemplo de tráfico que experimenta punt de CPU:

module-1(TAH-elam-insel6)# report

SUGARBOWL ELAM REPORT SUMMARY

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

Incoming Interface: Eth1/3

Src Idx : 0x9, Src BD : 23

Outgoing Interface Info: dmod 1, dpid 72

Dst Idx : 0x601, Dst BD : 802

Packet Type: IPv4

Dst MAC address: B0:8B:CF:A3:D0:4B

Src MAC address: 00:10:DB:FF:10:00

.1q Tag0 VLAN: 23,  cos = 0x0

Dst IPv4 address: 192.0.2.1

Src IPv4 address: 192.0.2.2

Ver     =  4, DSCP    =    2, Don't Fragment = 1

Proto   =  6, TTL     =   49, More Fragments = 0

Hdr len = 20, Pkt len =   60, Checksum       = 0x63c3

L4 Protocol  : 6

TCP Dst Port : 80

TCP Src Port : 46340

Sup hit: 1, Sup Idx : 2720  <<---- CPU punt, use below CLI to resolve the meaning of Sup Idx

Drop Info:

----------

LUA:

LUB:

LUC:

LUD:

Final Drops:

# show system internal access-list sup-redirect-stats all | grep 2720 2720  copp-system-p-acl-http 63

Visualización de los resultados de ELAM para las versiones de NX-OS anteriores a la 7.0(3)I5(2)

+ ¿Tiene un encabezado dot1q?

module-1(TAH-elam-insel6)# report | grep pr_lu_vec_l2v.qtag0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_vld: 0x1 << dot1q yes? 0x1 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_cos: 0x0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_de: 0x0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_vlan: 0xA << VL 10

+ Comprobar VLAN:

module-1(TAH-elam-insel6)# report | grep -1 fpx_lookup_vec.lkup.macsakey.key.fid

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.vld: 0x1

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.fid_type: 0x0

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.fid_vld: 0x0

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.fid: 0xA << dec 0xa = VL 10

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

+ Comprobar SRC MAC (puede ver esto también en el paso anterior):

module-1(TAH-elam-insel6)# report | grep -i fpx_lookup_vec.lkup.macsakey.key.mac

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715 << 00fe.c80e.2715

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715

+ ¿Es un nuevo aprendizaje?

module-1(TAH-elam-insel6)# report | grep -1 fpx_lookup_vec.sa_notify_info

GBL_C++:  [MSG]         fpx_lookup_vec.lkup.ptvec.misc1.tcp_flags: 0x0

GBL_C++:  [MSG]   fpx_lookup_vec.sa_notify_info: 0x5200000C060

GBL_C++: [MSG] fpx_lookup_vec.sa_notify_info.enable: 0x0 << This will be set to 0x1 for learning to happen

GBL_C++:  [MSG]     fpx_lookup_vec.sa_notify_info.conv_learn_only: 0x0

+ Comprobar IP SRC y DST:

module-1(TAH-elam-insel6)# report | grep vec_l3v.ip.*a

GBL_C++:  [MSG]     pr_lu_vec_l3v.ip.da: 0x00000000000000000c0000201 << DST IP: 192.0.2.1

GBL_C++:  [MSG]     pr_lu_vec_l3v.ip.sa: 0x00000000000000000c0000202 << SRC IP: 192.0.2.2

+ Compruebe su SRC_ID de entrada:

module-1(TAH-elam-insel6)# report | egrep SRC

GBL_C++:  [MSG]    SRCID: 0x30

module-1(TAH-elam-insel6)# report | grep vec.ihdr.ieth.hdr.src_idx

GBL_C++: [MSG] lurw_vec.ihdr.ieth.hdr.src_idx: 0xA9 << sh hardware internal tah int e1/49 | i i niv_idx

+ Si la ELAM no se activa, tendrá el siguiente aspecto:

module-1(TAH-elam-insel6)# report

GBL_C++:  [MSG] tahusd_elam_wrapper_report:27d:asic type 5 inst 0 slice 1 a_to_d 1 insel 6 outsel 0

GBL_C++:  [MSG] Inside tahusd_elam_wrapper_dav_report

GBL_C++: [MSG] ELAM not yet triggered <<<<<<

ELAM encapsulado VXLAN:

Dado que los paquetes VXLAN se encapsularían, la ELAM debe activarse en el encabezado INNER en lugar del encabezado OUTER - Vea el ejemplo a continuación para una trama ARP:

module-1# debug platform internal tah elam asic 0

module-1(TAH-elam)# trigger init asic 0 slice 1 in-select 7 out-select 0 use-src-id 48

module-1(TAH-elam-insel7)# reset

module-1(TAH-elam-insel7)# set inner arp source-ip-addr 192.0.2.2 target-ip-addr 192.0.2.1

module-1(TAH-elam-insel7)# start

module-1(TAH-elam-insel7)# report

Configuración de ELAM tras NX-OS 7.0(3)I7(2)

Tras NX-OS 7.0(3)I7(2), ELAM ahora se puede activar globalmente sin especificar el número ASIC o Slice para mayor facilidad. Consulte el ejemplo siguiente:

Nexus-9K# debug platform internal tah elam

Nexus-9K(TAH-elam)# trigger init

Nexus-9K(TAH-elam-insel6)# reset

Nexus-9K(TAH-elam-insel6)# set outer ipv4 dst_ip 192.0.2.1 src_ip 192.0.2.2

Nexus-9K(TAH-elam-insel6)# start

Nexus-9K(TAH-elam-insel6)# report