Este documento describe los pasos utilizados para realizar un ELAM en un módulo F2 Cisco Nexus 7000 (N7K), explica los resultados más relevantes y describe cómo interpretar los resultados.
En este ejemplo, un host en VLAN 10 (10.1.1.101 con dirección MAC 0050.56a1.1a01), puerto Eth6/4 envía una solicitud de Protocolo de mensajes de control de Internet (ICMP) a un host que también está en VLAN 10 (10.1.1.1.10 2 con dirección MAC 0050.56a1.1aef), puerto Eth6/3. ELAM se utiliza para capturar esta trama única de 10.1.1.101 a 10.1.1.102. Es importante recordar que ELAM le permite capturar sólo una trama.
Para realizar un ELAM en el N7K, primero debe conectarse al módulo apropiado (esto requiere el privilegio de administrador de red):
N7K# attach module 6
Attaching to module 6 ...
To exit type 'exit', to abort type '$.'
module-6#
Se espera que el tráfico ingrese el switch en el puerto Eth6/4. Cuando verifica los módulos en el sistema, ve que el Módulo 6 es un módulo F2. Es importante recordar que el N7K está totalmente 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 6
Mod Ports Module-Type Model Status
--- ----- --------------------------- ------------------ -------
6 48 1/10 Gbps Ethernet Module N7K-F248XP-25E ok
Para los módulos F2, ejecute el ELAM en el motor de reenvío de capa 2 (L2) (FE) con el nombre de código interno Clipper. Tenga en cuenta que el bus de datos L2 FE (DBUS) contiene la información de encabezado original antes de las búsquedas de capa 2 y capa 3 (L3), y el bus de resultados (RBUS) contiene los resultados después de las búsquedas de capa 3 y capa 2.
El N7K F2 tiene 12 FE por módulo, por lo que debe determinar el ASIC Clipper que se utiliza para el FE en el puerto Eth6/4. Ingrese este comando para verificar:
module-6# show hardware internal dev-port-map
--------------------------------------------------------------
CARD_TYPE: 48 port 10G
>Front Panel ports:48
--------------------------------------------------------------
Device name Dev role Abbr num_inst:
--------------------------------------------------------------
> Clipper FWD DEV_LAYER_2_LOOKUP L2LKP 12
+-----------------------------------------------------------------------+
+----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+
+-----------------------------------------------------------------------+
FP port | PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF
...
3 0 0 0 0 0 0
4 0 0 0 0 0 0
En la salida, puede ver que el puerto Eth6/4 está en la instancia de Clipper (L2LKP) 0.
module-6# elam asic clipper instance 0
module-6(clipper-elam)# layer2
module-6(clipper-l2-elam)#
El Clipper ASIC soporta disparadores ELAM para varios tipos de tramas. El disparador ELAM debe alinearse con el tipo de trama. Si la trama es una trama IPv4, el disparador también debe ser IPv4. Una trama IPv4 no se captura con otro disparador. La misma lógica se aplica a IPv6.
El Clipper ASIC soporta estos tipos de tramas:
module-6(clipper-l2-elam)# trigger dbus ?
arp ARP Frame Format
fc Fc hdr Frame Format
ipv4 IPV4 Frame Format
ipv6 IPV6 Frame Format
other L2 hdr Frame Format
pup PUP Frame Format
rarp Rarp hdr Frame Format
valid On valid packet
Con Nexus Operating Systems (NX-OS), puede utilizar el carácter de signo de interrogación para separar el disparador ELAM. Hay varias opciones disponibles para ELAM en el módulo F2:
module-6(clipper-l2-elam)# trigger dbus ipv4 ingress if ?
<CR>
destination-ipv4-address destination ipv4 address
destination-mac-address Inner destination mac address
source-index Source index
source-ipv4-address source ipv4 address
source-mac-address Inner source mac address
vlan Vlan
etc?
Para este ejemplo, la trama se captura en función de las direcciones IPv4 de origen y destino, por lo que sólo se especifican esos valores.
Clipper requiere que los disparadores estén configurados para el DBUS y el RBUS. Esto difiere de los módulos de la serie M, porque no se requiere que se especifique una instancia de Packet Buffer (PB). Esto simplifica el disparador RBUS.
Este es el disparador DBUS:
module-6(clipper-l2-elam)# trigger dbus ipv4 ingress if source-ipv4-address
10.1.1.101 destination-ipv4-address 10.1.1.102
Aquí está el disparador de RBUS:
module-6(clipper-l2-elam)# trigger rbus ingress if trig
Ahora que se ha seleccionado el FE de ingreso y ha configurado el disparador, puede iniciar la captura:
module-6(clipper-l2-elam)# start
Para verificar el estado del ELAM, ingrese el comando status:
module-6(clipper-l2-elam)# status
ELAM instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if
source-ipv4-address 10.1.1.101 destination-ipv4-address 10.1.1.102
L2 DBUS Armed
ELAM instance 0: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS Armed
Una vez que la FE recibe la trama que coincide con el disparador, el estado de ELAM se muestra como Desencadenado:
module-6(clipper-l2-elam)# status
ELAM instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if
source-ipv4-address 10.1.1.101 destination-ipv4-address 10.1.1.102
L2 DBUS Triggered
ELAM instance 0: L2 RBUS Configuration: trigger rbus ingress if trig
L2 RBUS Triggered
Para mostrar los resultados de ELAM, ingrese los comandos show dbus y show rbus. A continuación se muestra el extracto de los datos de ELAM que es más relevante para este ejemplo (se omite algún resultado):
module-6(clipper-l2-elam)# show dbus
--------------------------------------------------------------------
L2 DBUS CONTENT - IPV4 PACKET
--------------------------------------------------------------------
...
vlan : 0xa destination-index : 0x0
source-index : 0x3 bundle-port : 0x0
sequence-number : 0x3f vl : 0x0
...
source-ipv4-address: 10.1.1.101
destination-ipv4-address: 10.1.1.102
destination-mac-address: 0050.56a1.1aef
source-mac-address: 0050.56a1.1a01
module-6(clipper-l2-elam)# show rbus
--------------------------------------------------------------------
L2 RBUS INGRESS CONTENT
--------------------------------------------------------------------
l2-rbus-trigger : 0x1 sequence-number : 0x3f
di-ltl-index : 0x2 l3-multicast-di : 0x0
source-index : 0x3 vlan-id : 0xa
Con los datos DBUS, puede verificar que la trama se recibe en la VLAN 10 (vlan: 0xa) con una dirección MAC de origen de 0050.56a1.1a01 y una dirección MAC de destino de 0050.56a1.1aef. También puede ver que esta es una trama IPv4 que se origina desde 10.1.1.101, y está destinada a 10.1.1.102.
Para verificar en qué puerto se recibe la trama, ingrese el comando SRC_INDEX (la LTL de destino local de origen). Ingrese este comando para asignar un LTL a un puerto o grupo de puertos para el N7K:
N7K# show system internal pixm info ltl 0x3
Type LTL
---------------------------------
PHY_PORT Eth6/4
El resultado muestra que un índice de origen de 0x3 se mapea al puerto Eth6/4. Esto confirma que la trama se recibe en el puerto Eth6/4.
Con los datos RBUS, puede verificar que la trama esté conmutada en la VLAN 10 (vlan-id: XA). Además, puede confirmar el puerto de salida del di-ltl-index (destino LTL):
N7K# show system internal pixm info ltl 0x2
Type LTL
---------------------------------
PHY_PORT Eth6/3
El resultado muestra que un di-ltl-index de 0x2 se mapea al puerto Eth6/3. Esto confirma que la trama se conmuta desde el puerto Eth6/3.
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 entender el propósito de un 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