Sommario

Introduzione

Premesse

Come Possono Essere Utilizzati Questi Strumenti?

SPAN ed ERSPAN

ELAM

Panoramica

ASIC

Tabella ASIC

Selezione in ingresso trigger ELAM

Selezione uscita trigger ELAM

Condizioni di impostazione ELAM

Visualizzazione del report ELAM

Esempio di ELAM completo

applicazione ELAM Assistant

ElamAssistant

ElamAssistant - Dettaglio

Triage

Esempi

Tcpdump

Contatori atomici su richiesta

Introduzione

In questo documento vengono descritti gli strumenti nativi inclusi in ACI che possono essere utilizzati per eseguire il debug dei problemi di inoltro.

Premesse

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.

Come Possono Essere Utilizzati Questi Strumenti?

Per risolvere un problema di inoltro dalla prospettiva ACI, occorre comprendere:

1. Quale switch riceve un flusso?

2. Quale decisione di inoltro sta prendendo lo switch?

3. L'interruttore la sta perdendo?

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

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.

ELAM

Panoramica

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".

ASIC

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:

Tabella ASIC

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

Selezione in ingresso trigger ELAM

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'

Selezione uscita trigger ELAM

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'.

Condizioni di impostazione ELAM

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

Visualizzazione del report ELAM

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.

- elam_<timestamp>.txt

- nice_elam_<timestamp>.txt

Esempio di ELAM completo

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

applicazione ELAM Assistant

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

ElamAssistant

ElamAssistant - Dettaglio

L'ELAM Assistant consente inoltre di utilizzare facilmente parametri di corrispondenza più complessi, quali l'interfaccia di origine o i valori VXLAN.

Triage

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.

Esempi

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

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.

Contatori atomici su richiesta

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.