Este documento descreve as etapas usadas para executar um ELAM nos módulos Cisco Nexus 7700 (N7700) M3, explica as saídas mais relevantes e descreve como interpretar os resultados.
Tip: Consulte o documento ELAM Overview para obter uma visão geral sobre ELAM.
Neste exemplo, um host na VLAN 2500 (10.0.5.101), a porta Eth4/1 envia uma solicitação ICMP (Internet Control Message Protocol) a um host na VLAN 55 (10.0.3.101), porta Eth3/5. O ELAM é usado para capturar esse único pacote de 10.0.5.101 a 10.0.3.101. É importante lembrar que o ELAM permite capturar um único quadro.
Para executar um ELAM no N7K, você deve primeiro se conectar ao módulo apropriado (isso requer o privilégio de administrador de rede):
N7700# attach module 4 Attaching to module 4 ... module-4#
Espera-se que o tráfego ingresse no switch na porta Eth4/1. Ao verificar os módulos no sistema, você verá que o Módulo 4 é um módulo M3. É importante lembrar que o N7K é totalmente distribuído e que os módulos, não o supervisor, tomam as decisões de encaminhamento para o tráfego de dataplane.
N7700# show module Mod Ports Module-Type Model Status --- ----- ----------------------------------- ------------------ ---------- 1 12 100 Gbps Ethernet Module N77-F312CK-26 ok
3 48 1/10 Gbps Ethernet Module N77-M348XP-23L ok 4 24 10/40 Gbps Ethernet Module N77-M324FQ-25L ok 5 0 Supervisor Module-2 N77-SUP2E active * 6 0 Supervisor Module-2 N77-SUP2E ha-standby 7 24 10/40 Gbps Ethernet Module N77-F324FQ-25 ok Mod Sw Hw --- --------------- ------ 1 7.3(0)DX(1) 1.1
3 7.3(0)DX(1) 1.1 4 7.3(0)DX(1) 1.0 5 7.3(0)DX(1) 1.2 6 7.3(0)DX(1) 1.2 7 7.3(0)DX(1) 1.0
Para os módulos da série M, execute o ELAM no FE (L2, Layer 2 Forwarding Engine) com o nome de código interno F4. Observe que o L2 FE Data Bus (DBUS) contém as informações originais do cabeçalho antes das pesquisas de L2 e Camada 3 (L3), e o RBUS (Result Bus) contém os resultados após as pesquisas de L3 e L2.
Os módulos N7K M3 podem usar vários FEs para cada módulo, então você deve determinar o ASIC F4 usado para o FE na porta Eth4/1. Insira este comando para verificar isso:
module-4# show hardware internal dev-port-map (some output omitted)
-------------------------------------------------------------- CARD_TYPE: 24 port 40G >Front Panel ports:24 -------------------------------------------------------------- Device name Dev role Abbr num_inst: -------------------------------------------------------------- > SLF L3 Driver DEV_LAYER_3_LOOKUP L3LKP 4 > SLF L2FWD driver DEV_LAYER_2_LOOKUP L2LKP 4 +-----------------------------------------------------------------------+ +----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+ +-----------------------------------------------------------------------+ FP port | PHYS | MAC_0 | RWR_0 | L2LKP | L3LKP | QUEUE |SWICHF 1 0 0 0 0 0 0,1 2 0 0 0 0 0 0,1 3 0 0 0 0 0 0,1
Na saída, você pode ver que a porta Eth4/1 está na instância F4 (L2LKP)0. No módulo N77-M312CQ-26L, há 6 ASICs F4 com 2 portas em cada grupo de portas. No módulo N77-M324FQ-25L, há 4 ASICs F4 com 6 portas em cada grupo de portas. O módulo N77-M348XP-23L tem 2 ASICs F4 com 12 portas em cada grupo de portas.
Note: Assim como os módulos da série F, a sintaxe ELAM do módulo M3 usa valores baseados em 0. Não é o caso dos módulos M1 e M2, que usam valores baseados em 1.
module-4# elam asic f4 instance 0 module-4(f4-elam)# layer2
module-4(f4-l2-elam)#
O ASIC F4 suporta acionadores ELAM para IPv4, IPv6 e outros. O gatilho ELAM deve ser alinhado com o tipo de quadro. Se o quadro for um quadro IPv4, o disparador também deve ser IPv4. Um quadro IPv4 não é capturado com um outro acionador. A mesma lógica se aplica ao IPv6.
Com o Nexus Operating Systems (NX-OS), você pode usar o caractere de interrogação para separar o disparador do ELAM:
module-4(f4-l2-elam)# trigger dbus ipv4 ingress if ?
(some output omitted)
destination-index Destination-index
destination-ipv4-address Destination ipv4 address
destination-ipv4-mask Destination ipv4 mask
destination-mac-address Destination mac address
l4-protocol L4 protocol
source-index Source-index
source-ipv4-address Source ipv4 address
source-ipv4-mask Source ipv4 mask
source-mac-address Source mac address
Para este exemplo, o quadro é capturado de acordo com os endereços IPv4 origem e destino, portanto, somente esses valores são especificados.
F4 exige acionadores separados para o DBUS e o RBUS.
Aqui está o gatilho do DBUS:
module-4(f4-l2-elam)# trigger dbus ipv4 ingress if source-ipv4-address
10.0.5.101 destination-ipv4-address 10.0.3.101
Aqui está o gatilho do RBUS:
module-4(f4-l2-elam)# trigger rbus ingress result if tr 1
Agora que o FE de entrada está selecionado e você configurou o acionador, você pode iniciar a captura:
module-4(f4-l2-elam)# start
Para verificar o status do ELAM, insira o comando status:
module-4(f4-l2-elam)# status
ELAM Slot 4 instance 0: L2 DBUS/LBD Configuration: trigger dbus ipv4 ingress if
source-ipv4-address 10.0.5.101 destination-ipv4-address 10.0.3.101
L2 DBUS/LBD: Configured
ELAM Slot 4 instance 0: L2 RBUS Configuration: trigger rbus ingress result if tr 1
L2 RBUS: Configured
L2 BIS: Unconfigured
L2 BPL: Unconfigured
L2 EGR: Unconfigured
L2 PLI: Unconfigured
L2 PLE: Unconfigured
Quando o quadro que corresponde ao disparador é recebido pelo FE, o status do ELAM é mostrado como Disparado:
module-4(f4-l2-elam)# status
ELAM Slot 4 instance 1: L2 DBUS/LBD Configuration: trigger dbus ipv4 ingress if
source-ipv4-address 10.0.5.101 destination-ipv4-address 10.0.3.101
L2 DBUS/LBD: Triggered
ELAM Slot 4 instance 1: L2 RBUS Configuration: trigger rbus ingress result if tr 1
L2 RBUS: Triggered
L2 BIS: Unconfigured
L2 BPL: Unconfigured
L2 EGR: Unconfigured
L2 PLI: Unconfigured
L2 PLE: Unconfigured 7
Para exibir os resultados do ELAM, insira os comandos show dbus e show rbus. Se houver um alto volume de tráfego que corresponda aos mesmos disparadores, o DBUS e o RBUS podem disparar em quadros diferentes. Portanto, é importante verificar os números de sequência interna nos dados DBUS e RBUS para garantir que eles correspondam:
module-4(f4-l2-elam)# show dbus | i seq
port-id : 0x0 sequence-number : 0x868
module-4(f4-l2-elam)# show rbus | i seq
de-bri-rslt-valid : 0x1 sequence-number : 0x868
Aqui está o trecho dos dados ELAM mais relevantes para este exemplo (alguns resultados são omitidos):
module-4(f4-l2-elam)# show dbus -------------------------------------------------------------------- LBD IPV4 -------------------------------------------------------------------- ttl : 0xff l3-packet-length : 0x54 destination-address: 10.0.3.101 source-address: 10.0.5.101 -------------------------------------------------------------------- packet-length : 0x66 vlan : 0x9c4 segid-lsb : 0x0 source-index : 0xe05 destination-mac-address : 8c60.4f07.ac65 source-mac-address : 8c60.4fb7.3dc2 port-id : 0x0 sequence-number : 0x868 module-4(f4-l2-elam)# show rbus -------------------------------------------------------------------- L2 RBUS RSLT CAP DATA -------------------------------------------------------------------- de-bri-rslt-valid : 0x1 sequence-number : 0x868 vlan : 0x37 rbh : 0x65 cos : 0x0 destination-index : 0x9ed
Com os dados DBUS, você pode verificar se o quadro é recebido na VLAN 2500 com um endereço MAC de origem de 8c60.4fb6.3dc2 e um endereço MAC de destino de 8c60.4f07.ac65. Você também pode ver que esse é um quadro IPv4 originado de 10.0.5.101 e destinado a 10.0.3.101.
Tip: Há vários outros campos úteis que não estão incluídos nessa saída, como o valor de Tipo de Serviço (TOS), flags IP, comprimento de IP e comprimento de quadro L2.
Para verificar em que porta o quadro é recebido, insira o comando SRC_INDEX (a LTL (Local Target Logic) de origem). Insira este comando para mapear um LTL para uma porta ou grupo de portas para o N7K:
N7700# show system internal pixm info ltl 0xe05 Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth4/1
FLOOD_W_FPOE 0xc031
A saída mostra que o SRC_INDEX de 0xe05 mapeia para a porta Eth4/1. Isso confirma que o quadro é recebido na porta Eth4/1.
Com os dados RBUS, você pode verificar se o quadro é roteado para a VLAN 55. Observe que o TTL começa como 0xff nos dados DBUS. Além disso, você pode confirmar a porta de saída do 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
A saída mostra que o DEST_INDEX de 0x9ed mapeia para a porta Eth3/5. Isso confirma que o quadro é enviado da porta Eth3/5.
Para verificar como o switch aloca o pool LTL, insira o comando show system internal pixm info ltl-region. A saída desse comando é útil para entender a finalidade de um LTL se ele não for combinado a uma porta física. Um bom exemplo disso é um LTL de queda:
N7700# show system internal pixm info ltl 0xcad 0x0cad is Drop DI LTL N7700# show system internal pixm info ltl-region
(some output omitted) =========================================================== PIXM VDC 1 LTL MAP Version: 3 Description: LTL Map for Crossbow =========================================================== LTL_TYPE SIZE START END ======================================================================== LIBLTLMAP_LTL_TYPE_PHY_PORT 3072 0x0 0xbff LIBLTLMAP_LTL_TYPE_SUP_ETH_INBAND 64 0xc00 0xc3f LIBLTLMAP_LTL_TYPE_UCAST_VPC_VDC_SI 32 0xc40 0xc5f LIBLTLMAP_LTL_TYPE_EXCEPTION_SPAN 32 0xc60 0xc7f LIBLTLMAP_LTL_TYPE_UCAST_GENERIC 48 0xc80 0xcaf ------------------------------------------------------------------- SUB-TYPE LTL ------------------------------------------------------------------- LIBLTLMAP_LTL_TYPE_UCAST_GENERIC_NOT_USED 0xcaf LIBLTLMAP_LTL_TYPE_DROP_DI_WO_HW_BITSET 0xcae LIBLTLMAP_LTL_TYPE_DROP_DI 0xcad LIBLTLMAP_LTL_TYPE_SUP_DIAG_SI_V5 0xcac LIBLTLMAP_LTL_TYPE_RESERVED_ERSPAN_LTL 0xcab ------------------------------------------------------------------- LIBLTLMAP_LTL_TYPE_LC_CPU 192 0xcb0 0xd6f LIBLTLMAP_LTL_TYPE_UCAST_RESERVED 144 0xd70 0xdff LIBLTLMAP_LTL_TYPE_PC 1536 0xe00 0x13ff LIBLTLMAP_LTL_TYPE_DYNAMIC_UCAST 5120 0x1400 0x27ff LIBLTLMAP_LTL_TYPE_MCAST_RESERVED 48 0x2800 0x282f LIBLTLMAP_LTL_TYPE_DYNAMIC_MCAST 38848 0x2830 0xbfef LIBLTLMAP_LTL_TYPE_SAC_FLOOD 16 0xbff0 0xbfff LIBLTLMAP_LTL_TYPE_FLOOD_WITH_FPOE 16384 0xc000 0xffff