Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Premesse

Utilizzare lo strumento Netdr

Opzioni

Risoluzione dei problemi

Introduzione

Questo documento descrive uno strumento disponibile, Netdr, sugli switch Cisco Catalyst serie 6500 con Supervisor Engine 720 o 32, che consente di acquisire pacchetti sul percorso in banda interno al processore di routing (RP) o alla CPU del processore di switch (SP).

Prerequisiti

Requisiti

Nessun requisito specifico previsto per questo documento.

Componenti usati

Per la stesura del documento, sono stati usati switch Cisco Catalyst serie 6500 con Supervisor Engine 720.

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.

Premesse

La CPU RP viene in genere utilizzata per gestire il traffico di controllo di layer 3 (L3) e il traffico di dati di layer 3 che non può essere commutato tramite hardware. Alcuni esempi di traffico di controllo L3 sono i pacchetti Open Shortest Path First (OSPF), Enhanced Interior Gateway Routing Protocol (EIGRP), Border Gateway Protocol (BGP) e Protocol Independent Multicast (PIM). Alcuni esempi di traffico di dati L3 che non può essere commutato dall'hardware sono i pacchetti con opzioni IP impostate, i pacchetti con valori TTL (Time To Live) pari a 1 e i pacchetti che devono essere frammentati.

La CPU dello Storage Processor viene in genere utilizzata per gestire il traffico di controllo di layer 2 (L2). Alcuni esempi sono i pacchetti Spanning Tree Protocol (STP), Cisco Discovery Protocol (CDP) e VLAN Trunking Protocol (VTP).

Lo strumento Netdr viene usato per acquisire sia i pacchetti di trasmissione (Tx) che di ricezione (Rx) sul percorso di commutazione del software CPU in banda interno. Questo strumento non può essere utilizzato per acquisire il traffico a commutazione di hardware.

Netdr è utile per risolvere i problemi relativi all'utilizzo elevato della CPU. Per verificare quanto è occupata la CPU RP, usare il comando show process cpu o il comando show process cpu history. Per verificare quanto è occupata la CPU dell'SP, usare il comando remote switch show process cpu o il comando remote switch show process cpu history.

Netdr è utile solo per la risoluzione dei problemi di utilizzo elevato della CPU basato su interrupt. L'utilizzo della CPU basato su interrupt è il risultato dell'elaborazione dei pacchetti in arrivo inviati alla CPU.

Cat6500#show process cpu

CPU utilization for five seconds: 90%/81%; one minute: 89%; five minutes: 80%

Nell'esempio precedente:

- 90% è l'utilizzo totale della CPU.

- L'81% è l'utilizzo della CPU dovuto agli interrupt, che costituisce il traffico elaborato dalla CPU.

- Il 9% (90 - 81) dell'utilizzo della CPU è dovuto a Cisco IOS? processi software.

Utilizzare lo strumento Netdr

In questa sezione viene descritto come utilizzare lo strumento Netdr.

Nota: Netdr può essere utilizzato in condizioni di utilizzo elevato della CPU sulle versioni più recenti del software Cisco IOS, ad esempio la versione 12.2(33)SXH e successive. In alcune versioni software meno recenti, Netdr potrebbe utilizzare una quantità maggiore di CPU e non essere sicuro per l'esecuzione su uno switch che già rileva un utilizzo elevato della CPU. Se lo switch esegue una versione software precedente, si consiglia di utilizzare questa funzionalità con la supervisione del Cisco Technical Assistance Center (TAC).

Per acquisire i pacchetti sul percorso CPU in banda RP, utilizzare la seguente sintassi:

Cat6500#debug netdr capture ?

acl                     (11) Capture packets matching an acl

and-filter               (3) Apply filters in an and function: all must match

continuous               (1) Capture packets continuously: cyclic overwrite

destination-ip-address  (10) Capture all packets matching ip dst address

dstindex                 (7) Capture all packets matching destination index

ethertype                (8) Capture all packets matching ethertype

interface                (4) Capture packets related to this interface

or-filter                (3) Apply filters in an or function: only one must match

rx                       (2) Capture incoming packets only

source-ip-address        (9) Capture all packets matching ip src address

srcindex                 (6) Capture all packets matching source index

tx                       (2) Capture outgoing packets only

vlan                     (5) Capture packets matching this vlan number

Nota: Sono disponibili diverse opzioni e i numeri tra parentesi a destra di ciascuna opzione indicano l'ordine in cui è necessario specificare le opzioni.

Per acquisire i pacchetti sul percorso della CPU in banda dell'SP, è necessario eseguire tutti i comandi dalla console dell'SP.

Cat6500#remote login switch

Trying Switch ...

Entering CONSOLE for Switch

Type "^C^C^C" to end this session

Cat6500-sp#debug netdr capture ?

Nota: Immettere exit per tornare al normale prompt dei comandi della CPU RP.

Una volta acquisiti, i pacchetti vengono visualizzati con il comando show netdr capture.

Opzioni

Di seguito sono elencate alcune delle opzioni disponibili per Netdr:

- Quando si usa l'opzione continuous (continua), lo switch ha pacchetti sul percorso CPU in banda che riempiono continuamente l'intero buffer di acquisizione (4096 pacchetti) e iniziano a sovrascrivere il buffer in modalità FIFO (first-in, first-out).

- Le opzioni tx e rx acquisiscono i pacchetti provenienti rispettivamente dalla CPU e dalla CPU.

- L'opzione interface (interfaccia) viene usata per acquisire i pacchetti da o verso l'interfaccia specificata. L'interfaccia è un'interfaccia virtuale dello switch (SVI) o un'interfaccia L3 dello switch.

- L'opzione vlan viene usata per acquisire tutti i pacchetti nella VLAN specificata. La VLAN specificata può essere una delle VLAN interne associate a un'interfaccia L3. Per verificare il mapping dell'interfaccia da VLAN interna a L3, usare il comando show vlan internal usage.

- LTL (local target logic) è una rappresentazione software interna di un'interfaccia. Le opzioni src_index (indice origine) e dst_index (indice destinazione) vengono usate per acquisire tutti i pacchetti che corrispondono rispettivamente agli indici LTL di origine e LTL di destinazione. Notare che l'opzione interface (interfaccia) consente solo l'acquisizione di pacchetti da o verso un'interfaccia L3 (SVI o fisica). L'uso delle opzioni src_indx o dst_indx permette di acquisire pacchetti Tx o Rx su un'interfaccia L2. Le opzioni src_indx e dst_indx funzionano con gli indici dell'interfaccia L2 o L3.

Risoluzione dei problemi

Nota: Netdr può essere utilizzato in condizioni di utilizzo elevato della CPU sulle versioni più recenti del software Cisco IOS, ad esempio la versione 12.2(33)SXH e successive. In alcune versioni software meno recenti, Netdr potrebbe utilizzare una quantità maggiore di CPU e non essere sicuro per l'esecuzione su uno switch che già rileva un utilizzo elevato della CPU. Se lo switch esegue una versione software precedente, si consiglia di utilizzare questa funzione con la supervisione di Cisco TAC.

Per risolvere il problema con Netdr, completare i seguenti passaggi:

1. Avviare un'acquisizione Netdr per il traffico in entrata nella CPU RP:
Cat6500#debug netdr capture rx

2. Visualizzare i pacchetti acquisiti:
Cat6500#show netdr capture

A total of 4096 packets have been captured

The capture buffer wrapped 0 times

Total capture capacity: 4096 packets

------- dump of incoming inband packet -------

interface NULL, routine mistral_process_rx_packet_inlin, timestamp 06:35:39.498

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

bpdu 0, index_dir 1, flood 0, dont_lrn 1, dest_indx 0x387(903)

05000018 03F16000 01020000 40000000 00117F00 00157F00 00100000 03870000

mistral hdr: req_token 0x0(0), src_index 0x102(258), rx_offset 0x76(118)

requeue 0, obl_pkt 0, vlan 0x3F1(1009)

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

protocol ip: version 0x04, hlen 0x05, tos 0x00, totlen 46, identifier 8207

df 0, mf 0, fo 0, ttl 32, >src 127.0.0.16, dst 127.0.0.21

udp src 68, dst 67 len 26 checksum 0xB8BC

3. Rivedere i pacchetti per identificare i relatori e le tendenze principali. È possibile utilizzare l'opzione "| include" per eseguire la ricerca in base a campi quali l'indirizzo MAC di origine (srcmac), l'indirizzo MAC di destinazione (destmac), gli indirizzi IP di origine e destinazione (src & dst) e l'indice di origine (src_indx).

Cat6500#show netdr capture | include srcmac

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 86DD

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 86DD

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 86DD

Cat6500#show netdr capture | inc src_indx

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x54(84)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x54(84)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x54(84)

4. Decodificare i valori src_indx e dest_indx per individuare le interfacce di origine e di destinazione del pacchetto.

Cat6500#remote command switch test mcast ltl-info index 102

index 0x102 contain ports 5/3

! This is the physical interface sourcing the packet going to the CPU.

Cat6500#remote command switch test mcast ltl-info index 387

index 0x387 contain ports 5/R

!5/R refers to RP CPU on the supervisor engine in slot 5