Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

O que é o ELAM?

Topologia

Identificando o mecanismo de encaminhamento de ingresso

Exemplo: Captura ARP ELAM

Configurando o disparador

Interpretando o resultado

Exemplo: captura de ELAM IPv4

Configurando o disparador

Interpretando o resultado

Verificação adicional (F3 ltl-região)

bugs de ELAM

Introdução

Este documento descreve as etapas usadas para executar um ELAM (Embedded Logic Analyzer Module) em um módulo Cisco Nexus 7000/7700 F3.

Pré-requisitos

Requisitos

A Cisco recomenda que você tenha familiaridade com o Cisco Nexus Operating System (NX-OS) e a arquitetura Nexus básica antes de continuar com as informações descritas neste documento.

O ELAM só pode ser feito pela função de administrador de rede. Certifique-se de fazer logon como um usuário com privilégio de administrador de rede.

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Switches Cisco Nexus 7700 Series

- Módulos Cisco N7700 F3 Series (N77-F324FQ-25, módulos 10/40 Gigabit Ethernet de 24 portas)

- Cisco NX-OS versões 8.4.9

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

O que é o ELAM?

O ELAM auxilia na solução de problemas de encaminhamento de rede, capturando pacotes em tempo real sem interrupções, e não afeta o desempenho ou os recursos do plano de controle. O ELAM é uma ferramenta poderosa, granular e não intrusiva mais comumente usada pelos engenheiros do Cisco Technical Assistance Center (TAC). No entanto, é crucial saber que a ferramenta ELAM captura apenas um pacote por vez - o primeiro pacote recebido após o início do ELAM. Se precisar capturar todos os pacotes de um fluxo, use SPAN ou ERSPAN.

O ELAM pode responder a perguntas como:

- O quadro de interesse entra no switch?

- De que porta e VLAN o pacote é recebido?

- Quais são os endereços MAC origem e destino do pacote de entrada?

- Como o pacote é regravado e para qual porta ele é enviado?

Topologia

Neste artigo, o Host1 conectado à porta N77-F3 E5/23 envia tráfego ao Host2. O ELAM é usado para capturar o quadro individual de Host1 para Host2.

Para executar um ELAM no N7K, você primeiro precisa fazer login como um usuário com network-admin e, em seguida, precisa se conectar ao módulo.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0

Identificando o mecanismo de encaminhamento de ingresso

O Nexus 7000 opera como um switch totalmente distribuído, com decisões de encaminhamento feitas pelo mecanismo de encaminhamento da placa de linha de entrada.

Neste artigo, espera-se que o tráfego de interesse entre no switch através da porta 5/23. No exemplo do N7K, o mMódulo 5 é um módulo F3.

N77-F3# show module 5

Mod Ports            Module-Type                     Model         Status

--- ----- ----------------------------------- ------------------ ----------

5     24      10/40 Gbps Ethernet Module        N77-F324FQ-25       ok

Mod Sw Hw

--- --------------- ------

5 8.4(9) 1.3

Para módulos F3, execute o ELAM no Layer 2 (L2) Forwarding Engine (FE) com o codinome interno Flanker.

module-5# show hardware internal dev-port-map

--------------------------------------------------------------

CARD_TYPE: 24 port 40G

>Front Panel ports:24

--------------------------------------------------------------

Device name                  Dev role           Abbr num_inst:

--------------------------------------------------------------

> Flanker Fwd Driver     DEV_LAYER_2_LOOKUP      L2LKP 12

FP port | PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF

22                 10     10      10      10      0,1

23                 11     11      11      11      0,1        >>>Port 23 belongs to FE instance 11

24                 11     11      11      11      0,1

+-----------------------------------------------------------------------+

Nesta saída, é evidente que a porta E5/23 pertence à instância 11 do FE.

O DBUS (Barramento de Dados FE) de Camada 2 transporta as informações do cabeçalho original antes das pesquisas de Camada 2 (L2) e Camada 3 (L3), enquanto o RBUS (Barramento de Resultado) contém os resultados das pesquisas de L3 e L2. Para a maioria dos cenários de solução de problemas, uma captura ELAM de Camada 2 é suficiente.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 05:31:04 pst 2024 from 127.1.1.3 on pts/0

module-5# elam asic flanker instance 11

module-5(fln-elam)# ?

layer2 ELAMs for layer 2

layer3 ELAMs for layer 3

module-5(fln-elam)# layer2

Exemplo: Captura ARP ELAM

Neste exemplo, o Host 1 na VLAN 100 (com um endereço IP de 192.168.1.1 e um endereço MAC de 8c60.4fc7.c5bc), vinculado à porta E5/23, envia uma solicitação de Address Resolution Protocol (ARP). Essa solicitação destina-se a resolver o endereço MAC para outro host na mesma VLAN 100, que tem um endereço IP 192.168.1.2.

Configurando o disparador

O ASIC Flanker suporta acionadores ELAM para vários tipos de quadros. O acionador ELAM deve corresponder ao tipo de quadro. Se o quadro for um quadro ARP, o disparador também deverá ser definido como a opção ARP. Um quadro ARP não pode ser capturado pelo disparador Outro L2. Se você usar o ELAM para capturar um quadro MPLS, selecione IPv4 ou IPv6 em vez de MPLS. Para obter mais detalhes, consulte a seção de bug.

module-5(fln-l2-elam)# trigger dbus ?

arp ARP Frame Format              >>>capture ARP packet. Other L2 does not work for ARP

fc Fc hdr Frame Format

ipv4 IPV4 Frame Format            >>>capture IPv4 frame

ipv6 IPV6 Frame Format            >>>capture IPv6 frame

mpls MPLS

other L2 hdr Frame Format         >>>capture non-ip l2 frame

rarp RARP Frame Format

Neste exemplo, o quadro é capturado com base no campo de endereço IP de destino do quadro ARP, de modo que somente este valor é especificado.

A Flanker precisa que gatilhos sejam definidos para o DBUS e o RBUS. O acionador RBUS é simplificado,trig corresponde aos mesmos critérios do acionador DBUS.

module-5(fln-l2-elam)# trigger dbus arp ingress if target-ip-address 192.168.1.2

module-5(fln-l2-elam)# trigger rbus ingress if trig

Agora que você configurou o disparador, poderá iniciar a captura.

module-5(fln-l2-elam)# start

Para verificar se o ELAM capturou algum pacote, você pode executar ostatuscomando. O termo Armado indica que nenhum pacote correspondente foi capturado ainda.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2

L2 DBUS: Armed                  >>>no matched packet

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed                  >>>no matched packet

Faça um ping do Host1 (192.168.1.1) para 192.168.1.2. Como não há entrada ARP no Host1, o Host1 envia a solicitação ARP em um pacote de broadcast. Quando o FE recebe o quadro ARP, ele verifica o disparador. Se houver uma correspondência, o ELAM captura a decisão de encaminhamento desse quadro e o status do ELAM é exibido como Triggered.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus arp ingress if target-ip-address 192.168.1.2

L2 DBUS: Triggered              >>Packet hit

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered              >>Packet hit

Interpretando o resultado

O resultado será válido somente se o DBUS e o RBUS tiverem capturado o mesmo pacote. Portanto, é necessário verificar o número de sequência nos resultados de DBUS e RBUS. Se eles não corresponderem, você poderá reiniciá-los e capturá-los novamente até que se alinhem.

module-5(fln-l2-elam)# show dbus | in seq

sequence-number : 0x7 vl : 0x0

module-5(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger : 0x1 sequence-number : 0x7

É aconselhável primeiro verificar a saída de DBUS, pois ela contém dados antes de qualquer regravação. Este é um exemplo de uma captura ELAM ARP. Observe que parte da saída foi omitida.

module-5(fln-l2-elam)# show dbus

cp = 0x20c6ad1c, buf = 0x20c6ad1c, end = 0x20c7706c

--------------------------------------------------------------------

Flanker Instance 11 - Capture Buffer On L2 DBUS:

<snip>

--------------------------------------------------------------------

L2 DBUS PRS MLH ARP/RARP

--------------------------------------------------------------------

valid : 0x1                                    requst-response : 0x1    >>>ARP request

(1:for ARP request,2: for ARP reply, 3:for RARP request, 4:for RARP reply)

port-id : 0x0                                 last-ethertype : 0x806    >>>Ethernet type, 0x0806 means ARP

packet-type : 0x0                              l2-length-check : 0x0    >>>0 for ingress, 1 for egress

vqi : 0x0                                       packet-length : 0x40    >>>L2 ethernet frame totally length 64 byte

vlan : 0x64                                  destination-index : 0x0    >>>VLAN100

source-index : 0xb79                               bundle-port : 0x0    >>>source port ltl index

status-is-1q : 0x0                                 trill-encap : 0x0    >>>0 means frame without vlan tag

sender-ip-address: 192.168.1.1                                          >>>sender-ip-address in ARP header

target-ip-address: 192.168.1.2                                          >>>target-ip-address in ARP header

sender-mac-address : 8c60.4fc7.c5bc                                     >>>sender-mac-address in ARP header

target-mac-address : ffff.ffff.ffff                                     >>>target-mac-address in ARP header

destination-mac-address : ffff.ffff.ffff                                >>>sestination mac in ethernet header

source-mac-address : 8c60.4fc7.c5bc                                     >>>source mac in ethernet header

Com os dados DBUS, você pode confirmar que o quadro é recebido na VLAN100 (vlan:0x64) com um endereço MAC origem de 8c60.4fc7.c5bc e um endereço MAC destino de ffff.ffff.ffff. Você também pode identificar que este é um quadro de solicitação ARP originado do IP 192.168.1.1.

Para verificar a porta na qual o quadro é recebido, use o comandoPIXM(Port Index Manager). Este comando exibe o mapeamento de uma Lógica de destino local (LTL) para uma porta frontal ou um grupo de portas frontais.

N77-F3# show system internal pixm info ltl 0xb79

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc031

A saída revela que um índice de origem de 0xb79 mapeia para a porta E5/23. Isso verifica se o quadro é recebido na porta E5/23.

Depois de confirmar que o ELAM capturou o quadro de interesse, você pode verificar o resultado da decisão de encaminhamento usando os dados RBUS (observe que algumas saídas foram omitidas).

module-5(fln-l2-elam)# show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

di-ltl-index : 0xc031                        l3-multicast-di : 0xc00    >>> destination ltl index

source-index : 0xb79                         vlan : 0x64                >>> vlan id after rewritten

vqi : 0x0                                    di2-valid : 0x0            >>> use l3-multicast-di as di if this is 1

routed-frame : 0x0                           copy-cause : 0x0           >>> 0x0 means N7K performs layer 2 switching

Com os dados RBUS, você pode confirmar se o quadro está comutado na VLAN 100 (0x64). Para determinar a(s) porta(s) de saída do índice di-ltl, use o comando pixm novamente.

N77-F3# show system internal pixm info ltl 0xc031

Member info

------------------

IFIDX LTL

---------------------------------

Eth5/24 0x0b78

Eth5/23 0x0b79

A saída mostra que as portas E5/23 e E5/24 pertencem a LTL 0xc031. O pacote ARP comuta para essas duas portas. Como é recebido de E5/23, só é enviado de E5/24.

Exemplo: captura de ELAM IPv4

ipv4 l3 elam

Neste exemplo, o Host 1 na VLAN 100 (com um endereço IP de 192.168.1.1/24 e um endereço MAC de 8c60.4fc7.c5bc), está conectado à porta E5/23 e envia uma solicitação do Internet Control Message Protocol (ICMP) ao Host 2. O Host 2 tem um endereço IP 192.168.2.2/24 e está em uma VLAN diferente, VLAN200.

Configurando o disparador

Neste exemplo, como Host1 e Host2 estão em VLANs diferentes, o pacote ICMP de Host1 para Host2 é roteado através da Camada 3 em N77-F3. Um ELAM de Camada 2 é usado para capturar o pacote de solicitação ICMP.

Tanto o IP de origem (192.168.1.2) quanto o IP de destino (192.168.2.2) são combinados como disparadores DBUS. O ELAM captura somente o pacote que corresponde a todos os acionadores.

N77-F3# attach module 5

Attaching to module 5 ...

To exit type 'exit', to abort type '$.'

Last login: Thu Jan 18 11:19:46 pst 2024 from 127.1.1.3 on pts/0

module-5# elam asic flanker instance 11

module-5(fln-elam)# layer2

module-5(fln-l2-elam)# trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

module-5(fln-l2-elam)# trigger rbus ingress if trig

module-5(fln-l2-elam)# start

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

L2 DBUS: Armed

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed

Inicie um ping desde o Host 1 (192.168.1.2) até o Host 2 (192.168.2.2). Quando o pacote que corresponde aos acionadores é recebido pela instância 11 do FE, o status do ELAM é exibido como Acionado.

module-5(fln-l2-elam)# status

ELAM Slot 5 instance 11: L2 DBUS Configuration: trigger dbus ipv4 ingress if destination-ipv4-address 192.168.2.2 source-ipv4-address 192.168.1.2

L2 DBUS: Triggered

ELAM Slot 5 instance 11: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered

Interpretando o resultado

Certifique-se de que o RBUS e o DBUS tenham o mesmo número de sequência. Essa etapa é necessária para cada captura.

module-5(fln-l2-elam)# show dbus | in seq

sequence-number : 0x74 vl : 0x0

module-5(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger : 0x1 sequence-number : 0x74      >>same sequence number, valid elam result

Este é um exemplo de uma captura de ELAM ICMP IPv4. Observe que parte da saída foi omitida.

module-5(fln-l2-elam)# show dbus

--------------------------------------------------------------------

L2 DBUS PRS MLH IPV4

--------------------------------------------------------------------

l4-protocol : 0x1                                           df : 0x0    >>>L4 protocol id, 1 means icmp packet

ttl : 0xff                                   l3-packet-length : 0x54    >>>ip total length is 84 in this packet, ttl is 255

port-id : 0x0                                 last-ethertype : 0x800    >>>Ethernet type, 0x0800 means IPv4

vqi : 0x0                                       packet-length : 0x66    >>>L2 frame length field

vlan : 0x64                                  destination-index : 0x0    >>>vlan id 100

source-index : 0xb79                               bundle-port : 0x0    >>>source port ltl index

status-is-1q : 0x1                                 trill-encap : 0x0    >>>1 means frame with vlan tag

source-ipv4-address: 192.168.1.2                                        >>>Packet source IP

destination-ipv4-address: 192.168.2.2                                   >>>Packet destination IP

destination-mac-address : 003a.9c40.8ac3                                >>>Packet destination mac

source-mac-address : 8c60.4fc7.c5bc                                     >>>Packet source mac

Com os dados DBUS, você pode confirmar que o pacote é recebido na VLAN100 (vlan:0x64) com um IP origem de 192.168.1.2 e um IP destino de 192.168.2.2. Você também pode identificar que esse é um pacote ICMP IPv4.

Para verificar a porta na qual o quadro é recebido, execute o comandoPIXM(Port Index Manager). Este comando exibe o mapeamento de uma Lógica de destino local (LTL) para uma porta frontal ou um grupo de portas frontais.

N77-F3# show system internal pixm info ltl 0xb79

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc032

FLOOD_W_FPOE 0xc031

FLOOD_W_FPOE 0xc029

A saída mostra que um índice de origem de 0xb79 mapeia para a porta E5/23. Isso confirma que o quadro é recebido na porta E5/23.

Depois de confirmar que o ELAM capturou o pacote ICMP de interesse, você pode verificar o resultado da decisão de encaminhamento usando os dados RBUS (observe que alguma saída foi omitida). A partir dos dados RBUS, você pode ver que o quadro é roteado da VLAN 100 (0x64) para a VLAN 200.

module-5(fln-l2-elam)# show rbus

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

segment-id-valid : 0x0                                 ttl-out : 0xfe      >>>TTL is 254

di-ltl-index : 0xb78                            l3-multicast-di : 0x0      >>>destination port ltl

source-index : 0xb79                                      vlan : 0xc8      >>>vlan id is 200

routed-frame : 0x1                                   copy-cause : 0x0      >>>routed on N7K

Para determinar a(s) porta(s) de saída do índice di-ltl, execute o comandoPIXM. A saída mostra que a porta de saída é E5/24.

N77-F3# show system internal pixm info ltl 0xb78

Member info

------------------

Type LTL

---------------------------------

PHY_PORT Eth5/24

FLOOD_W_FPOE 0xc032

FLOOD_W_FPOE 0xc031

FLOOD_W_FPOE 0xc029

Verificação adicional (F3 região ltl)

A saída desse comando é útil para entender a finalidade de um LTL se ele não corresponder a uma porta física. Exemplos incluem Drop LTL e Inband LTL:

N77-F3# show system internal pixm info ltl-region

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

PIXM VDC 1 LTL MAP Version: 3

Description: LTL Map for Crossbow

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

LTL_TYPE SIZE START END

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

LIBLTLMAP_LTL_TYPE_SUP_ETH_INBAND 64 0xc00 0xc3f

-------------------------------------------------------------------

LIBLTLMAP_LTL_TYPE_DROP_DI_WO_HW_BITSET 0xcae

LIBLTLMAP_LTL_TYPE_DROP_DI 0xcad

bugs de ELAM

ID de bug da Cisco

Título do erro

Corrigir versão

ID de bug da Cisco CSCux73273

O disparador Mpls para ELAM em F3 não está funcionando

Sem versão fixa, use a solução

ID de bug da Cisco CSCvm65736

N7k: disparador da versão ELAM clp_elam crash/LC reload

7.3(3)D1(1) ou 8.2(3) ou 8.3(2)