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).
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 tratto da questo documento è stato Risoluzione dei problemi di Cisco Application Centric Infrastructure, Second Edition libro, in particolare Inoltro intra-fabric - Strumenti capitolo.
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 verranno illustrati in dettaglio questi strumenti e verrà fornita solo un'introduzione di alto livello.
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 oltre a ERSPAN.
ERSPAN segue lo stesso concetto tranne la replica del traffico in uscita da un porto 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 viene completata correttamente, 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 utilizzeranno ELAM come mezzo per verificare ciò che accade 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 su attivazione
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 viene rilevato un pacchetto che soddisfa le condizioni definite sull'ASIC, l'output di 'status' visualizza 'triggered'. 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 "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 è il "in-select". Il comando 'in-select' definisce le intestazioni del pacchetto/frame 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, 3 e 4 esterne che interne.
Tutte le opzioni di trigger sono le seguenti:
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 si seleziona '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:
Per catturare un pacchetto con incapsulamento VLAN su una porta di download, usare 'in-select 6'
Per acquisire un pacchetto con incapsulamento VXLAN (da una spine o da una vleaf con incapsulamento VXLAN) usare il comando 'in-select 14'
La funzione di "selezione" consente di controllare quali risultati di ricerca vengono visualizzati nel report ELAM. Per la maggior parte degli scopi pratici si può usare 'out-select 0' perché contiene la maggior parte delle informazioni tra cui il 'drop vector' che dirà se il risultato della ricerca è il drop del pacchetto/frame.
Si noti che quando si utilizza 'report' anziché 'report' o 'report detail' per ottenere i risultati ELAM, 'drop vector' viene visualizzato solo in 'out-select 1'. Tuttavia, è sempre possibile eseguire 'report' o 'report detail' con 'out-select 0'.
ELAM supporta una grande quantità di condizioni di layer 2, 3 e 4 da cercare in un pacchetto. Specificazione di 'inner' e 'outer' 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. Ci saranno due file per l'ELAM sotto la cartella.
Nell'esempio, viene catturato un traffico non VXLAN incapsulato (corrispondente 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 dell'app ELAM Assistant che può essere scaricata tramite Cisco DC App Center (https://dcappcenter.cisco.com). 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
L'ELAM Assistant consente inoltre di utilizzare facilmente parametri di corrispondenza più complessi, quali l'interfaccia di origine o i valori VXLAN.
fTriage è uno strumento basato su APIC CLI che fornisce 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 eseguirà 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 dovrà 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 fTriage.
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 delle opzioni e dei filtri 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' consente 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 |
---|---|---|
1.0 |
10-Aug-2022 |
Versione iniziale |