In questo documento vengono descritti gli strumenti nativi inclusi in ACI che possono essere utilizzati per eseguire il debug dei problemi di inoltro.
Il materiale di questo documento è stato estratto da Troubleshooting Cisco Application Centric Infrastructure, Second Edition (Risoluzione dei problemi di Cisco Application Centric Infrastructure, Second Edition) libro, in particolare ilInoltro intra-fabric - Strumenticapitolo.
Inoltre, spiegazioni più dettagliate su ELAM e Ftriage sono disponibili nella libreria CiscoLive On-Demand nella sessione BRKDCN-3900b.
Per risolvere un problema di inoltro dalla prospettiva ACI, occorre comprendere:
ACI include diversi strumenti che consentono all'utente di ottenere informazioni dettagliate su quanto accade a un flusso specifico. Nelle sezioni seguenti vengono illustrati in dettaglio questi strumenti, pertanto viene fornita solo un'introduzione generale.
SPAN ed ERSPAN sono entrambi strumenti che consentono la replica di tutto o parte del traffico ricevuto in un percorso specifico in un altro percorso. È previsto che il dispositivo finale a cui viene inviato il traffico replicato esegua un tipo di applicazione packet sniffer/analyzer. Lo SPAN tradizionale implica la replica del traffico ricevuto su una porta e il passaggio su un'altra porta. ACI supporta questa operazione in aggiunta a ERSPAN.
ERSPAN replica il traffico in uscita da una porta locale; il traffico replicato viene incapsulato nel GRE e inviato a una destinazione remota. In ACI, questa destinazione ERSPAN deve essere appresa solo come endpoint di layer 3 e può essere qualsiasi EPG in qualsiasi VRF.
È consigliabile disporre sempre di destinazioni SPAN collegate al fabric per ridurre al minimo i tempi di preparazione durante la risoluzione dei problemi e consentire una rapida configurazione e acquisizione della sessione ERSPAN.
Embedded Logic Analyzer Module (ELAM) è uno strumento che consente all'utente di impostare le condizioni nell'hardware e acquisire il primo pacchetto o frame che soddisfa le condizioni impostate. Se l'acquisizione ha esito positivo, lo stato ELAM viene visualizzato come "attivato". Una volta attivato, l'ELAM viene disabilitato e si può raccogliere un dump per analizzare il vasto numero di decisioni di inoltro che l'ASIC dello switch sta prendendo con quel pacchetto/frame. La tecnologia ELAM viene implementata a livello di ASIC e non influisce sulla CPU o su altre risorse dello switch.
Gli esempi di inoltro in questo libro utilizzano ELAM come mezzo per verificare ciò che sta accadendo con il flusso. Gli esempi mostrano sia la versione CLI foglia che l'applicazione ELAM Assistant.
Questa guida non copre l'uso di ELAM sugli switch foglia di prima generazione (switch senza suffisso EX, FX o FX2).
Prima di utilizzare lo strumento, è importante conoscere la struttura della sintassi del comando.
Esempio nella CLI foglia:
vsh_lc [This command enters the line card shell where ELAMs are run]
debug platform internal <asic> elam asic 0 [refer to the ASICs table]
Imposta condizioni da attivare:
trigger reset [ensures no existing triggers are running]
trigger init in-select <number> out-select <number> [determines what information about a packet is displayed and which conditions can be set]
set outer/inner [sets conditions]
start [starts the trigger]
status [checks if a packet is captured]
Genera il dump contenente l'analisi del pacchetto
ereport [display detailed forwarding decision for the packet]
Continuare a immettere il comando status per visualizzare lo stato del trigger. Quando sull'ASIC viene rilevato un pacchetto che soddisfa le condizioni definite, l'output dello stato visualizza trigger. Una volta attivato il modulo ELAM, i dettagli delle decisioni di inoltro dello switch possono essere mostrati con "report". Prima di ACI versione 4.2, è necessario usare il report.
All'interno della sintassi ELAM, è necessario specificare l'ASIC. Poiché l'ASIC dipende dal modello di switch, fare riferimento a questa tabella per determinare l'ASIC da specificare:
| Famiglia di switch/schede di linea |
Asic per Elam |
| Switch/LC -EX |
TAH |
| Switch/LC -FX(P) |
ROC |
| -FX2 switch/LC |
ROC |
| Switch C (9364C,9332C) |
ROC |
| Switch -GX |
APP |
| Switch -GX2 |
CHO |
| -FX3 switch |
ROC |
L'altro componente dell'ELAM che deve essere compreso quando si esegue dalla CLI è in-select. Il comando in-select definisce le intestazioni del pacchetto/frame che devono avere e le intestazioni che devono corrispondere.
Ad esempio, un pacchetto proveniente da una porta downlink non incapsulata in VXLAN avrebbe solo intestazioni di layer 2, layer 3 e layer 4 esterne.
Un pacchetto proveniente da una porta del pannello anteriore (downlink) incapsulata dalla VXLAN (ad esempio Cisco ACI Virtual Edge in modalità VXLAN) o proveniente da un dorso a monte avrebbe l'incapsulamento della VXLAN. Ciò significa che potrebbe avere sia intestazioni di livello 2, livello 3 e livello 4 esterne che interne.
Tutte le opzioni di trigger sono:
leaf1# vsh_lc
module-1# debug platform internal tah elam asic 0
module-1(DBG-elam)# trigger reset
module-1(DBG-elam)# trigger init in-select ?
10 Outerl4-innerl4-ieth
13 Outer(l2|l3|l4)-inner(l2|l3|l4)-noieth
14 Outer(l2(vntag)|l3|l4)-inner(l2|l3|l4)-ieth
15 Outer(l2|l3|l4)-inner(l2|l3|l4)-ieth
6 Outerl2-outerl3-outerl4
7 Innerl2-innerl3-innerl4
8 Outerl2-innerl2-ieth
9 Outerl3-innerl3
Se è selezionato in-select 6, l'unica opzione è quella di impostare le condizioni e visualizzare le intestazioni dal layer 2, 3 o 4 esterno. Se è selezionato in-select 14, l'unica opzione è quella di impostare le condizioni per e vedere i dettagli delle intestazioni Layer 2, 3 e 4 esterne e interne.
Nota sulle procedure ottimali:
Il comando out-select consente di controllare quali risultati di ricerca vengono visualizzati nel report ELAM. Per motivi più pratici, è possibile usare out-select 0 perché contiene la maggior parte delle informazioni, incluso il vettore di rilascio, che indica se il risultato della ricerca è il rifiuto del pacchetto/frame.
Si noti che quando viene utilizzato il report anziché il report o il dettaglio del report per ottenere i risultati ELAM, il vettore di rilascio viene visualizzato solo in out-select 1. Tuttavia, è sempre possibile eseguire il report o i dettagli del report con out-select 0.
ELAM supporta una grande quantità di condizioni di layer 2, 3 e 4 da cercare in un pacchetto. Se si specifica inner vs. outer si determina se la condizione può essere verificata nell'intestazione interna (pacchetto incapsulato VXLAN) o nell'intestazione esterna.
Esempio ARP:
set outer arp source-ip-address 10.0.0.1 target-ip-address 10.0.0.2
Esempio di indirizzo MAC:
set outer l2 src_mac aaaa.bbbb.cccc dst_mac cccc.bbbb.aaaa
Esempio di indirizzo IP nell'intestazione interna:
set inner ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2
Verificare che l'ELAM sia stato attivato con lo stato:
module-1(DBG-elam-insel6)# status
ELAM STATUS
===========
Asic 0 Slice 0 Status Armed
Asic 0 Slice 1 Status Triggered
report può essere utilizzato per visualizzare il risultato dell'ELAM in un formato di facile comprensione. Il report ELAM viene salvato nella cartella /var/log/dme/log/ dello switch. Nella cartella sono presenti due file per l'ELAM:
Nell'esempio, viene catturato un traffico non VXLAN incapsulato (che corrisponde all'intestazione esterna) proveniente da una porta downlink su uno switch -EX:
module-1# debug platform internal tah elam asic 0
module-1(DBG-elam)# trigger reset
module-1(DBG-elam)# trigger init in-select 6 out-select 0
module-1(DBG-elam-insel6)# set outer ipv4 src_ip 10.0.0.1 dst_ip 10.0.0.2
module-1(DBG-elam-insel6)# start
module-1(DBG-elam-insel6)# status
module-1(DBG-elam-insel6)# ereport
Gli esempi di risoluzione dei problemi riportati in questo manuale mostrano anche l'utilizzo di ELAM Assistant.
In precedenza era un'app che era possibile scaricare tramite Cisco DC App Center (https://dcappcenter.cisco.com). a partire dalla versione ACI 6.1(2)+, ELAM Assistant è integrato direttamente in APIC e vi si accede tramite la scheda Operazioni nell'interfaccia utente APIC.

Per le funzionalità di ELAM Assistant incorporate, solo gli utenti APIC con privilegi di lettura/scrittura possono utilizzare Elam Assistant e l'opzione di menu non è visibile per gli utenti senza privilegi di lettura/scrittura.
Questo strumento automatizza l'installazione e l'interpretazione degli ELAM tramite la GUI sull'APIC.
L'esempio mostra la distribuzione di un ELAM corrispondente a un IP di origine e di destinazione specifico sulla porta downlink del nodo 101:
Per iniziare a utilizzarlo, è necessario fare clic su Capture (Perform ELAM) nel pannello laterale sinistro, quindi nella schermata principale, fare clic su Add node per iniziare ad aggiungere nodi dove l'ELAM deve essere impostato. In questo esempio, viene aggiunto il nodo 101:

Una volta aggiunti i nodi di interesse, è necessario configurare la direzione (downlink/downlink VXLAN/uplink).
È inoltre possibile specificare se è necessario osservare una particolare interfaccia. Il valore predefinito è any (qualsiasi).
Infine, è possibile impostare una serie di parametri (in modo simile alla versione CLI):


Infine, fare clic su Set ELAM(s) per attivare gli ELAM sui nodi specificati.
Per verificare se è stato attivato ELAM, è possibile fare clic sul pulsante Controlla trigger e, se l'ELAM viene attivato in un nodo, lo stato viene modificato in Report Ready accanto al nome del nodo:

Questo pulsante Report Ready visualizza in un formato grazioso il report ELAM riportato di seguito:

L'output viene visualizzato in tre versioni: Express, Detail e Raw.
L'ELAM Assistant consente inoltre di utilizzare facilmente parametri di corrispondenza più complessi, quali l'interfaccia di origine o i valori VXLAN.
Il comando ping è un'utility di rete standard utilizzata in Linux per verificare la raggiungibilità di un host su una rete IP (Internet Protocol). Invia pacchetti di richieste echo ICMP a una destinazione specificata (un indirizzo IP o un nome di dominio) e resta in attesa di una risposta echo.
La funzione principale di questo comando è eseguire:
· Test di connettività: Verifica se un dispositivo remoto è attivo e raggiungibile.
· Misurazione della latenza: Calcola il tempo di andata e ritorno (RTT) dei pacchetti per il viaggio verso la destinazione e il ritorno, in millisecondi (ms).
· Rilevamento perdite pacchetti: Segnala la percentuale di pacchetti non restituiti, consentendo di identificare problemi di congestione o stabilità della rete.
Questa utilità può essere utilizzata quando nell'APIC vengono identificati problemi di raggiungibilità.
Confermare la raggiungibilità di un server esterno SNMP (ad esempio, 10.31.125.144) dall'indirizzo OOB APIC:
ping 10.31.125.144 -I oobmgmt
Come si può vedere, l'opzione -I è utile per specificare l'interfaccia di origine, in questo esempio l'indirizzo di gestione OOB.
È possibile utilizzare l'opzione -h per visualizzare tutte le opzioni disponibili.
Il comando ping, d'altra parte, è uno strumento diagnostico specializzato nell'ambiente Cisco Application Centric Infrastructure (ACI).
iping è una potente utility di diagnostica di rete utilizzata nella CLI di Cisco ACI per verificare la connettività da un nodo o un contesto specifico all'interno della struttura. Poiché ACI è un ambiente multi-tenant, il ping consente agli amministratori di testare la connettività tenendo conto dell'isolamento logico fornito da VRF e tenant.
Come funziona: Avvia una richiesta echo ICMP da un nodo o contesto di origine specificato a un indirizzo IP di destinazione. Assicura che il pacchetto attraversi correttamente l'infrastruttura in base agli EPG e ai contratti configurati. A tale scopo, lo switch foglia deve incapsulare il pacchetto ICMP nello stesso modo in cui il traffico di produzione verrebbe incapsulato se entrasse nell'infrastruttura. L'intestazione iVXLAN contiene il VNID (Virtual Network Identifier) che mappa il traffico al VRF o EPG corretto. In questo modo, il pacchetto è soggetto alle stesse regole di inoltro e di sicurezza del traffico di produzione effettivo.
Funzioni principali:
Confermare la raggiungibilità dell'endpoint, eseguendo il ping dalla SVI distribuita dal soggetto del dominio del bridge (SVI)
iping 192.168.104.2 -V tenant_prod:VRF1
È necessario selezionare almeno la sorgente VRF, con il parametro -V.
Quando viene fornito il flag -V <tenant>:<vrf>, il sistema identifica il VNID (VXLAN Network Identifier) specifico associato a tale VRF. Questo VNID è fondamentale per garantire che il pacchetto venga instradato all'interno della tabella di routing logica corretta.
È possibile utilizzare l'opzione -h per visualizzare tutte le opzioni disponibili.
fTriage è uno strumento basato su APIC CLI destinato a fornire un'automazione completa della configurazione e dell'interpretazione ELAM. La premessa dello strumento è che l'utente può definire un flusso specifico e la foglia in cui si prevede che il flusso abbia inizio. Lo strumento esegue quindi ELAM su ciascun nodo, uno alla volta, per esaminare il flusso di inoltro. È particolarmente utile nelle topologie di grandi dimensioni dove non è chiaro quale percorso debba seguire un pacchetto.
fTriage genera un file di log di grandi dimensioni contenente l'output di ciascun comando eseguito. Il nome di questo file è visibile nelle prime righe dell'output di Triage.
Il completamento del triage può richiedere fino a 15 minuti.
Mappare il flusso per la comunicazione instradata tra 10.0.1.1 e 10.0.2.1 a partire da foglia 104:
ftriage route -ii LEAF:104 -dip 10.0.2.1 -sip 10.0.1.1
Mappare un flusso di layer 2 a partire da foglia 104:
ftriage bridge -ii LEAF:104 -dmac 02:02:02:02:02:02
Per visualizzare la guida completa di fTriage, eseguire ftriage —help sull'APIC.
tcpdump può essere utilizzato sugli switch ACI per acquisire il traffico da e verso il control-plane. Notare che solo il traffico del control plane inviato alla CPU dello switch può essere osservato in un'acquisizione tcpdump. Alcuni esempi sono: protocolli di routing, LLDP/CDP, LACP, ARP e così via. Per acquisire il traffico del piano dati (e del control plane), utilizzare SPAN e/o ELAM.
Per eseguire l'acquisizione sulla CPU, specificare l'interfaccia kpm_inb. Sono disponibili la maggior parte dei filtri e delle opzioni tcpdump tradizionali.
Esempio di acquisizione di un messaggio ICMP destinato a una SVI sullo switch foglia:
leaf205# tcpdump -ni kpm_inb icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on kpm_inb, link-type EN10MB (Ethernet), capture size 65535 bytes
20:24:12.921981 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4096, length 64
20:24:12.922059 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4096, length 64
20:24:13.922064 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4352, length 64
20:24:13.922157 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4352, length 64
20:24:14.922231 IP 10.0.2.100 > 10.0.2.1: ICMP echo request, id 62762, seq 4608, length 64
20:24:14.922303 IP 10.0.2.1 > 10.0.2.100: ICMP echo reply, id 62762, seq 4608, length 64
Inoltre, l'opzione -w permette a tcpdump di scrivere l'acquisizione del pacchetto su un file PCAP in modo che possa essere aperta in strumenti come Wireshark.
Utilizzare tcpdump sull'interfaccia eth0, ossia l'interfaccia fuori banda sullo switch. Questa opzione permette di risolvere i problemi di connettività del traffico che attraversa la porta fisica fuori banda dello switch. Si tratterebbe principalmente di traffico control plane, ad esempio SSH, SNMP e così via.
I contatori atomici su richiesta hanno lo scopo di contare i pacchetti all'interno di un flusso specifico quando lasciano su un uplink foglia e vengono ricevuti su un'altra porta fabric foglia. Permettono una certa granularità nel determinare se i pacchetti sono stati persi o ricevuti in eccesso.
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
3.0 |
01-Jul-2026
|
Callout aggiunto in cui ELAM Assistant verrà incorporato in APIC versione 6.1(2)+ |
2.0 |
19-Aug-2024
|
Formattazione dei comandi. |
1.0 |
10-Aug-2022
|
Versione iniziale |