Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Cos'è ELAM?

Topologia

Identificazione del motore di inoltro in ingresso

Esempio: acquisizione ELAM ARP

Configurazione del trigger

Interpretazione del risultato

Esempio: acquisizione ELAM IPv4

Configurazione del trigger

Interpretazione del risultato

Verifica aggiuntiva (regione di litro F3)

bug ELAM

Introduzione

Questo documento descrive i passaggi utilizzati per eseguire un ELAM (Embedded Logic Analyzer Module) su un modulo Cisco Nexus 7000/7700 F3.

Prerequisiti

Requisiti

Cisco consiglia di familiarizzare con il sistema operativo Cisco Nexus (NX-OS) e l'architettura Nexus di base prima di procedere con le informazioni descritte in questo documento.

ELAM può essere eseguito solo dal ruolo di amministratore di rete. Verificare di aver eseguito l'accesso come utente con privilegi di amministratore di rete.

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:

- Cisco Nexus serie 7700 switch

- Moduli Cisco N7700 serie F3 (N77-F324FQ-25, moduli 10/40 Gigabit Ethernet a 24 porte)

- Cisco NX-OS versioni 8.4.9

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Cos'è ELAM?

L'ELAM assiste nella risoluzione dei problemi di inoltro di rete acquisendo pacchetti in tempo reale senza interruzioni e senza impatto sulle prestazioni o sulle risorse del control plane. L'ELAM è uno strumento potente, granulare e non intrusivo comunemente utilizzato dai tecnici dei Cisco Technical Assistance Center (TAC). Tuttavia, è fondamentale sapere che lo strumento ELAM acquisisce solo un pacchetto alla volta - il primo pacchetto ricevuto dopo l'avvio di ELAM. Per acquisire tutti i pacchetti di un flusso, usare SPAN o ERSPAN.

L'ELAM è in grado di rispondere a domande quali:

- Il frame di interesse entra nello switch?

- Da quale porta e VLAN viene ricevuto il pacchetto?

- Quali sono gli indirizzi MAC di origine e di destinazione del pacchetto in arrivo?

- Come viene riscritto il pacchetto e a quale porta viene inviato?

Topologia

In questo articolo, l'host 1 connesso alla porta N77-F3 E5/23, invia il traffico all'host 2. ELAM viene utilizzato per acquisire il singolo frame dall'host1 all'host2.

Per eseguire un ELAM sulla N7K, è necessario prima accedere come utente con network-admin, quindi collegarsi al modulo.

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

Identificazione del motore di inoltro in ingresso

Nexus 7000 funziona come uno switch completamente distribuito, con decisioni di inoltro prese dal motore di inoltro di Ingress Linecard.

In questo articolo, il traffico di interesse deve passare attraverso la porta 5/23. Nell'esempio del modello N7K, il parametro mmodulo 5 è un modulo 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

Per i moduli F3, eseguire l'ELAM sul Layer 2 (L2) Forwarding Engine (FE) con il nome in codice 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

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

In questo output, è evidente che la porta E5/23 appartiene all'istanza FE 11.

DBUS (Layer 2 FE Data Bus) trasporta le informazioni di intestazione originali prima delle ricerche di layer 2 (L2) e layer 3 (L3), mentre RBUS (Result Bus) contiene i risultati delle ricerche di layer 3 e L2. Per la maggior parte degli scenari di risoluzione dei problemi, è sufficiente un'acquisizione ELAM di layer 2.

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

Esempio: acquisizione ELAM ARP

Nell'esempio, l'host 1 sulla VLAN 100 (con indirizzo IP 192.168.1.1 e indirizzo MAC 8c60.4fc7.c5bc), collegato alla porta E5/23, invia una richiesta ARP (Address Resolution Protocol). Questa richiesta ha lo scopo di risolvere l'indirizzo MAC di un altro host sulla stessa VLAN 100, che ha un indirizzo IP di 192.168.1.2.

Configurazione del trigger

L'ASIC Flanker supporta i trigger ELAM per vari tipi di frame. Il trigger ELAM deve corrispondere al tipo di frame. Se il fotogramma è un fotogramma ARP, anche il trigger deve essere impostato sull'opzione ARP. Un frame ARP non può essere acquisito dal trigger Other L2. Se si utilizza ELAM per acquisire un frame MPLS, selezionare IPv4 o IPv6 anziché MPLS. Per ulteriori informazioni, consultare la sezione sul 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

Nell'esempio, il frame viene acquisito in base al campo dell'indirizzo IP di destinazione del frame ARP, quindi viene specificato solo questo valore.

Flanker richiede che i trigger siano impostati sia per DBUS che per RBUS. Il trigger RBUS è semplificato,trig soddisfa gli stessi criteri del trigger 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

Dopo aver configurato il trigger, è possibile avviare l'acquisizione.

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

Per verificare se ELAM ha acquisito dei pacchetti, eseguire ilstatuscomando. Il termine Armed indica che non è stato ancora acquisito alcun pacchetto corrispondente.

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

Eseguire il ping tra l'host 1 (192.168.1.1) e l'host 192.168.1.2. Poiché non è presente alcuna voce ARP su Host1, Host1 invia la richiesta ARP in un pacchetto di broadcast. Una volta che l'FE riceve il frame ARP, controlla il trigger. In caso di corrispondenza, ELAM acquisisce la decisione di inoltro di questo frame e lo stato ELAM viene visualizzato come 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

Interpretazione del risultato

Il risultato è valido solo se DBUS e RBUS hanno acquisito lo stesso pacchetto. Pertanto, è necessario controllare il numero di sequenza sia nei risultati DBUS che nei risultati RBUS. Se non corrispondono, è possibile riavviarli e acquisirli di nuovo fino a quando non vengono allineati.

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

Si consiglia di controllare innanzitutto l'output DBUS, poiché contiene dati prima di qualsiasi riscrittura. Di seguito è riportato un esempio di acquisizione ARP ELAM. Si noti che alcuni output sono stati omessi.

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

Con i dati DBUS, è possibile confermare che il frame venga ricevuto sulla VLAN100 (vlan:0x64) con un indirizzo MAC di origine di 8c60.4fc7.c5bc e un indirizzo MAC di destinazione di ffff.ffff.ffff. È possibile inoltre identificare questo frame di richiesta ARP proveniente da IP 192.168.1.1.

Per verificare la porta su cui viene ricevuto il frame, utilizzare il comandoPIXM(Port Index Manager). Con questo comando viene visualizzato il mapping di una LTL (Local Target Logic) a una porta anteriore o a un gruppo di porte anteriori.

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

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

Type LTL

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

PHY_PORT Eth5/23

FLOOD_W_FPOE 0xc031

L'output mostra che un indice di origine di 0xb79 è mappato alla porta E5/23. Questo comando verifica che il frame venga ricevuto sulla porta E5/23.

Dopo aver confermato che ELAM ha acquisito il frame di interesse, è possibile verificare il risultato della decisione di inoltro utilizzando i dati RBUS (notare che alcuni output sono stati omessi).

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

Con i dati RBUS, è possibile confermare che il frame sia attivato sulla VLAN 100 (0x64). Per determinare le porte di uscita dall'indice di-ltl, usare nuovamente il comando pixm.

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

Member info

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

IFIDX LTL

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

Eth5/24 0x0b78

Eth5/23 0x0b79

L'output mostra che le porte E5/23 e E5/24 appartengono entrambe a LTL 0xc031. Il pacchetto ARP passa a entrambe queste porte. Ricevuto dalla E5/23, viene inviato solo dalla E5/24.

Esempio: acquisizione ELAM IPv4

elam ipv4 l3

Nell'esempio, l'host 1 sulla VLAN 100 (con indirizzo IP 192.168.1.1/24 e indirizzo MAC 8c60.4fc7.c5bc) è connesso alla porta E5/23 e invia una richiesta ICMP (Internet Control Message Protocol) all'host 2. L'indirizzo IP dell'host 2 è 192.168.2.2/24 e la VLAN 200 è diversa.

Configurazione del trigger

In questo esempio, poiché l'host 1 e l'host 2 si trovano in VLAN diverse, il pacchetto ICMP da host 1 a host 2 viene instradato al layer 3 sull'host N77-F3. Per acquisire il pacchetto di richiesta ICMP viene utilizzato un ELAM di layer 2.

Sia l'IP di origine (192.168.1.2) che quello di destinazione (192.168.2.2) vengono combinati come trigger DBUS. ELAM acquisisce solo il pacchetto che corrisponde a tutti i trigger.

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

Eseguire il ping tra l'host 1 (192.168.1.2) e l'host 2 (192.168.2.2). Quando il pacchetto che corrisponde ai trigger viene ricevuto dall'istanza FE 11, lo stato ELAM viene visualizzato come Triggered.

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

Interpretazione del risultato

Verificare che RBUS e DBUS abbiano lo stesso numero di sequenza. Questo passaggio è necessario per ogni cattura.

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

Di seguito è riportato un esempio di acquisizione ELAM ICMP IPv4. Si noti che alcuni output sono stati omessi.

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

Con i dati DBUS, è possibile confermare che il pacchetto venga ricevuto sulla VLAN100 (vlan:0x64) con un IP di origine di 192.168.1.2 e un IP di destinazione di 192.168.2.2. Inoltre, è possibile verificare che si tratti di un pacchetto ICMP IPv4.

Per verificare la porta su cui viene ricevuto il frame, eseguire il comando (Port Index Manager)PIXM. Con questo comando viene visualizzato il mapping di una LTL (Local Target Logic) a una porta anteriore o a un gruppo di porte anteriori.

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

L'output mostra che un indice di origine di 0xb79 è mappato alla porta E5/23. Ciò conferma che il frame viene ricevuto sulla porta E5/23.

Dopo aver confermato che ELAM ha acquisito il pacchetto ICMP di interesse, è possibile verificare il risultato della decisione di inoltro utilizzando i dati RBUS (notare che alcuni output sono stati omessi). Dai dati RBUS, è possibile vedere che il frame è instradato dalla VLAN 100 (0x64) alla 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

Per determinare le porte di uscita dall'indice di-ltl, eseguire ilPIXMcomando. L'output mostra che la porta di uscita è 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 aggiuntiva (regione F3 ltl)

L'output di questo comando è utile per comprendere lo scopo di una LTL se non corrisponde a una porta fisica. Gli esempi includono le librerie a nastro locale (Drop LTL) e in banda (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

bug ELAM

ID bug Cisco

Titolo bug

Correggi versione

ID bug Cisco CSCux73273

Il trigger Mpls per ELAM su F3 non funziona

Nessuna versione fissa, utilizzare la soluzione

ID bug Cisco CSCvm65736

N7k: trigger di rilascio ELAM clp_elam crash/LC reload

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