La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive i passaggi utilizzati per eseguire un ELAM (Embedded Logic Analyzer Module) su un modulo Cisco Nexus 7000/7700 F3.
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.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
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.
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:
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
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
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.
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 ilstatus
comando. 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
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.
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.
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
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 ilPIXM
comando. 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
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
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) |
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
30-Jan-2024 |
Versione iniziale |