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).
Nessun requisito specifico previsto per questo documento.
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.
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:
In questa sezione viene descritto come utilizzare lo strumento Netdr.
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
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 ?
Una volta acquisiti, i pacchetti vengono visualizzati con il comando show netdr capture.
Di seguito sono elencate alcune delle opzioni disponibili per Netdr:
Per risolvere il problema con Netdr, completare i seguenti passaggi:
Cat6500#debug netdr capture rx
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
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)
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