Este documento describe los pasos utilizados para realizar un ELAM en los módulos M-Series de Cisco Nexus 7000 (N7K), explica las salidas más relevantes y describe cómo interpretar los resultados.
En este ejemplo, un host en VLAN 2500 (10.0.5.101), el puerto Eth4/1 envía una solicitud de protocolo de mensajes de control de Internet (ICMP) a un host en VLAN 55 (10.0.3.101), puerto Eth3/5. ELAM se utiliza para capturar este paquete único de 10.0.5.101 a 10.0.3.101. Es importante recordar que ELAM le permite capturar una sola trama.
Para realizar un ELAM en el N7K, primero debe conectarse al módulo apropiado (esto requiere el privilegio network-admin):
N7K# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
module-4#
Se espera que el tráfico ingrese al switch en el puerto Eth4/1. Cuando verifique los módulos en el sistema, verá que el Módulo 4 es un módulo de la serie M. Es importante recordar que el N7K está completamente distribuido y que los módulos, no el supervisor, toman las decisiones de reenvío para el tráfico del plano de datos.
N7K# show module
Mod Ports Module-Type Model Status
--- ----- ----------------------------------- ------------------ ----------
3 32 10 Gbps Ethernet Module N7K-M132XP-12 ok
4 48 10/100/1000 Mbps Ethernet Module N7K-M148GT-11 ok
5 0 Supervisor module-1X N7K-SUP1 active *
6 0 Supervisor module-1X N7K-SUP1 ha-standby
Para los módulos de la serie M, realice el ELAM en el Motor de reenvío (FE) de capa 2 (L2) con el nombre de código interno Eureka. Tenga en cuenta que el bus de datos (DBUS) FE de capa 2 contiene la información de encabezado original antes de las búsquedas de capa 2 y 3 (L3), y que el bus de resultados (RBUS) contiene los resultados después de las búsquedas L3 y L2. La búsqueda de L3 la realiza el FE de L3/Capa 4 (L4) con el nombre de código interno Lamira, que es el mismo proceso utilizado en la plataforma de switches Catalyst de Cisco serie 6500 que ejecuta el Supervisor Engine 2T.
Los módulos N7K M-Series pueden utilizar varios FE para cada módulo, por lo que debe determinar el ASIC de Eureka que se utiliza para el FE en el puerto Eth4/1. Ingrese este comando para verificar esto:
module-4# show hardware internal dev-port-map
(some output omitted)
--------------------------------------------------------------
CARD_TYPE: 48 port 1G
>Front Panel ports:48
--------------------------------------------------------------
Device name Dev role Abbr num_inst:
--------------------------------------------------------------
> Eureka DEV_LAYER_2_LOOKUP L2LKP 1
+--------------------------------------------------------------+
+-----------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++--------+
+--------------------------------------------------------------+
FP port|PHYS |SECUR |MAC_0 |RWR_0 |L2LKP |L3LKP |QUEUE |SWICHF
1 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0
En la salida, puede ver que el puerto Eth4/1 está en la instancia 0 de Eureka (L2LKP).
module-4# elam asic eureka instance 1
module-4(eureka-elam)#
El Eureka ASIC soporta activadores de ELAM para IPv4, IPv6 y otros. El disparador ELAM debe alinearse con el tipo de trama. Si la trama es una trama IPv4, el desencadenador también debe ser IPv4. Una trama IPv4 no se captura con otro desencadenador. La misma lógica se aplica a IPv6.
Con los sistemas operativos Nexus (NX-OS), puede utilizar el carácter de signo de interrogación para separar el desencadenador ELAM:
module-4(eureka-elam)# trigger dbus dbi ingress ipv4 if ?
(some output omitted)
destination-flood Destination Flood
destination-index Destination Index
destination-ipv4-address Destination IP Address
destination-mac-address Destination MAC Address
ip-tos IP TOS
ip-total-len IP Total Length
ip-ttl IP TTL
source-mac-address Source MAC Address
vlan-id Vlan ID Number
En este ejemplo, la trama se captura de acuerdo con las direcciones IPv4 de origen y destino, por lo que sólo se especifican esos valores.
Eureka requiere que los disparadores estén configurados para el DBUS y el RBUS. Hay dos memorias intermedias de paquetes (PB) diferentes en las que pueden residir los datos RBUS. La determinación de la instancia PB correcta depende del tipo de módulo exacto y del puerto de ingreso. Normalmente, se recomienda configurar PB1 y, si la RBUS no se activa, repetir la configuración con PB2.
Aquí está el disparador DBUS:
module-4(eureka-elam)# trigger dbus dbi ingress ipv4 if source-ipv4-address
10.0.5.101 destination-ipv4-address 10.0.3.101 rbi-corelate
Aquí está el disparador RBUS:
module-4(eureka-elam)# trigger rbus rbi pb1 ip if cap2 1
Ahora que el FE de ingreso está seleccionado y configuró el disparador, puede iniciar la captura:
module-4(eureka-elam)# start
Para verificar el estado del ELAM, ingrese el comando status:
module-4(eureka-elam)# status
Instance: 1
EU-DBUS: Armed
trigger dbus dbi ingress ipv4 if source-ipv4-address 10.0.5.101
destination-ipv4-address 10.0.3.101 rbi-corelate
EU-RBUS: Armed
trigger rbus rbi pb1 ip if cap2 1
LM-DBUS: Dis-Armed
No configuration
LM-RBUS: Dis-Armed
No configuration
Una vez que el FE recibe la trama que coincide con el disparador, el estado de ELAM se muestra como Desencadenado:
module-4(eureka-elam)# status
Instance: 1
EU-DBUS: Triggered
trigger dbus dbi ingress ipv4 if source-ipv4-address 10.0.5.101
destination-ipv4-address 10.0.3.101 rbi-corelate
EU-RBUS: Triggered
trigger rbus rbi pb1 ip if cap2 1
LM-DBUS: Dis-Armed
No configuration
LM-RBUS: Dis-Armed
No configuration
Para mostrar los resultados de ELAM, ingrese los comandos show dbus y show rbus. Si hay un gran volumen de tráfico que coincide con los mismos activadores, el DBUS y el RBUS pueden activarse en tramas diferentes. Por lo tanto, es importante verificar los números de secuencia internos en los datos DBUS y RBUS para asegurarse de que coinciden:
module-4(eureka-elam)# show dbus | i seq
seq = 0x05
module-4(eureka-elam)# show rbus | i seq
seq = 0x05
Este es el extracto de los datos de ELAM que es más relevante para este ejemplo (se omiten algunos resultados):
module-4(eureka-elam)# show dbus
seq = 0x05
vlan = 2500
source_index = 0x00a21
l3_protocol = 0x0 (0:IPv4, 6:IPv6)
l3_protocol_type = 0x01, (1:ICMP, 2:IGMP, 4:IP, 6:TCP, 17:UDP)
dmac = 00.00.0c.07.ac.65
smac = d0.d0.fd.b7.3d.c2
ip_ttl = 0xff
ip_source = 010.000.005.101
ip_destination = 010.000.003.101
module-4(eureka-elam)# show rbus
seq = 0x05
flood = 0x0
dest_index = 0x009ed
vlan = 55
ttl = 0xfe
data(rit/dmac/recir) = 00.05.73.a9.55.41
data(rit/smac/recir) = 84.78.ac.0e.47.41
Con los datos de DBUS, puede verificar que la trama se reciba en la VLAN 2500 con una dirección MAC de origen de d0d0.fdb7.3dc2 y una dirección MAC de destino de 000.0c07.ac65. También puede ver que esta es una trama IPv4 que se origina en 10.0.5.101, y está destinada a 10.0.3.101.
Para verificar en qué puerto se recibe la trama, ingrese el comando SRC_INDEX (la lógica de destino local (LTL) de origen). Ingrese este comando para mapear un LTL a un puerto o grupo de puertos para el N7K:
N7K# show system internal pixm info ltl 0xa21
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth4/1
FLOOD_W_FPOE 0x8014
El resultado muestra que el SRC_INDEX de 0xa21 se mapea al puerto Eth4/1. Esto confirma que la trama se recibe en el puerto Eth4/1.
Con los datos de RBUS, puede verificar que la trama se rutea a la VLAN 55 y que el TTL se reduce de 0xff en los datos de DBUS a 0xfe en los datos de RBUS. Puede ver que las direcciones MAC de origen y destino se reescriben en 8478.ac0e.4741 y 0005.73a9.5541, respectivamente. Además, puede confirmar el puerto de salida desde DEST_INDEX (LTL de destino):
N7K# show system internal pixm info ltl 0x9ed
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth3/5
FLOOD_W_FPOE 0x8017
FLOOD_W_FPOE 0x8016
El resultado muestra que el DEST_INDEX de 0x9ed se asigna al puerto Eth3/5. Esto confirma que la trama se envía desde el puerto Eth3/5.
Para verificar cómo el switch asigna el conjunto LTL, ingrese el comando show system internal pixm info ltl-region. El resultado de este comando es útil para comprender el propósito de una LTL si no coincide con un puerto físico. Un buen ejemplo de esto es un Drop LTL:
N7K# show system internal pixm info ltl 0x11a0
0x11a0 is not configured
N7K# show system internal pixm info ltl-region
LTL POOL TYPE SIZE RANGE
=====================================================================
DCE/FC Pool 1024 0x0000 to 0x03ff
SUP Inband LTL 32 0x0400 to 0x041f
MD Flood LTL 1 0x0420
Central R/W 1 0x0421
UCAST Pool 1536 0x0422 to 0x0a21
PC Pool 1720 0x0a22 to 0x10d9
LC CPU Pool 32 0x1152 to 0x1171
EARL Pool 72 0x10da to 0x1121
SPAN Pool 48 0x1122 to 0x1151
UCAST VDC Use Pool 16 0x1172 to 0x1181
UCAST Generic Pool 30 0x1182 to 0x119f
LISP Pool 4 0x1198 to 0x119b
Invalid SI 1 0x119c to 0x119c
ESPAN SI 1 0x119d to 0x119d
Recirc SI 1 0x119e to 0x119e
Drop DI 2 0x119f to 0x11a0
UCAST (L3_SVI_SI) Region 31 0x11a1 to 0x11bf
UCAST (Fex/GPC/SVI-ES) 3648 0x11c0 to 0x1fff
UCAST Reserved for Future Use Region 2048 0x2000 to 0x27ff
======================> UCAST MCAST BOUNDARY <======================
VDC OMF Pool 32 0x2800 to 0x281f
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
11-Oct-2013 |
Versión inicial |