Este documento descreve as etapas usadas para executar um ELAM nos módulos Cisco Nexus 7000 (N7K) M-Series, explica as saídas mais relevantes e descreve como interpretar os resultados.
Neste exemplo, um host na VLAN 2500 (10.0.5.101), a porta Eth4/1 envia uma solicitação de Internet Control Message Protocol (ICMP) 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 para 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):
N7K# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
module-4#
Espera-se que o tráfego entre no switch na porta Eth4/1. Ao verificar os módulos no sistema, você verá que o Módulo 4 é um módulo M-Series. É importante lembrar que o N7K é totalmente distribuído e que os módulos, e não o supervisor, tomam as decisões de encaminhamento para o tráfego do dataplane.
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 módulos M-Series, execute o ELAM no Layer 2 (L2) Forwarding Engine (FE) com codinome interno Eureka. Observe que o DBUS (L2 FE Data Bus) contém as informações do cabeçalho original 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. A consulta de L3 é realizada pelo FE de L3/Camada 4 (L4) com codinome interno Lamira, que é o mesmo processo usado na plataforma do switch Cisco Catalyst 6500 Series que executa o Supervisor Engine 2T.
Os módulos N7K M-Series podem usar vários FEs para cada módulo, portanto você deve determinar o ASIC Eureka que é 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: 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
Na saída, você pode ver que a porta Eth4/1 está na instância Eureka (L2LKP) 0.
module-4# elam asic eureka instance 1
module-4(eureka-elam)#
O ASIC Eureka suporta acionadores ELAM para IPv4, IPv6 e outros. O acionador ELAM deve se alinhar com o tipo de quadro. Se o quadro for um quadro IPv4, o disparador também deverá ser IPv4. Um quadro IPv4 não é capturado com um outro gatilho. A mesma lógica se aplica ao IPv6.
Com o Nexus Operating Systems (NX-OS), você pode usar o caractere de ponto de interrogação para separar o acionador do 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
Para este exemplo, o quadro é capturado de acordo com os endereços IPv4 origem e destino, de modo que somente esses valores são especificados.
Eureka exige que os acionadores sejam definidos para o DBUS e o RBUS. Há dois buffers de pacotes (PB) diferentes nos quais os dados RBUS podem residir. A determinação da instância correta de PB depende do tipo exato de módulo e da porta de entrada. Geralmente, recomenda-se que você configure PB1 e, se o RBUS não disparar, repita a configuração com PB2.
Aqui está o acionador 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
Aqui está o disparador RBUS:
module-4(eureka-elam)# trigger rbus rbi pb1 ip if cap2 1
Agora que o FE de entrada está selecionado e você configurou o disparador, é possível iniciar a captura:
module-4(eureka-elam)# start
Para verificar o status do ELAM, insira o 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
Quando o quadro que corresponde ao disparador é recebido pelo FE, o status do ELAM é mostrado como Triggered:
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 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 acionadores, o DBUS e o RBUS podem acionar quadros diferentes. Portanto, é importante verificar os números de sequência internos nos dados DBUS e RBUS para garantir que eles correspondam:
module-4(eureka-elam)# show dbus | i seq
seq = 0x05
module-4(eureka-elam)# show rbus | i seq
seq = 0x05
Aqui está o trecho dos dados do ELAM mais relevante para este exemplo (parte da saída é omitida):
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
Com os dados de DBUS, você pode verificar se o quadro é recebido na VLAN 2500 com um endereço MAC origem de d0d0.fdb7.3dc2 e um endereço MAC destino de 00000.0c07.ac65. Você também pode ver que esse é um quadro IPv4 originado de 10.0.5.101 e destinado a 10.0.3.101.
Para verificar em que porta o quadro é recebido, insira o comando SRC_INDEX (a LTL origem). Insira este comando para mapear um LTL para uma porta ou grupo de portas para o N7K:
N7K# show system internal pixm info ltl 0xa21
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth4/1
FLOOD_W_FPOE 0x8014
A saída mostra que o SRC_INDEX de 0xa21 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 e se o TTL é decrementado de 0xff nos dados DBUS para 0xfe nos dados RBUS. Você pode ver que os endereços MAC origem e destino são regravados em 8478.ac0e.4741 e 005.73a9.5541, respectivamente. Além disso, você pode confirmar a porta de saída do DEST_INDEX (destino LTL):
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 corresponder a uma porta física. Um bom exemplo disso é um LTL Drop:
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
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
11-Oct-2013 |
Versão inicial |