目錄

簡介

必要條件

需求

採用元件

背景資訊

使用Netdr工具

選項

疑難排解

簡介

本檔案介紹執行Supervisor Engine 720或32的Cisco Catalyst 6500系列交換器上的可用工具Netdr，允許您擷取通往路由處理器CPU(RP)或交換處理器CPU(SP)的內部頻內路徑上的封包。

必要條件

需求

本文件沒有特定需求。

採用元件

本檔案中的資訊是根據執行Supervisor Engine 720的Cisco Catalyst 6500系列交換器。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

背景資訊

RP CPU通常用於處理第3層(L3)控制流量以及無法進行硬體交換的第3層資料流量。第3層控制流量的某些範例包括開放最短路徑優先(OSPF)、增強型內部閘道路由通訊協定(EIGRP)、邊界閘道通訊協定(BGP)和通訊協定無關多點傳送(PIM)封包。無法進行硬體交換的L3資料流量的某些範例為已設定IP選項的資料包、生存時間(TTL)值為1的資料包以及需要分段的資料包。

SP CPU通常用於處理第2層(L2)控制流量。例如，跨距樹狀目錄通訊協定(STP)、思科探索通訊協定(CDP)和VLAN主幹通訊協定(VTP)封包。

Netdr工具用於在內部頻內CPU軟體交換路徑上擷取傳輸(Tx)和接收(Rx)封包。此工具不能用於擷取硬體交換的流量。

Netdr有助於嘗試對高CPU使用情況進行故障排除。若要檢查RP CPU的繁忙程度，請發出show process cpu命令或show process cpu history命令。要檢查SP CPU的繁忙程度，請發出remote command switch show process cpu命令或remote command switch show process cpu history命令。

Netdr僅對中斷驅動的高CPU利用率問題進行故障排除有用。中斷驅動的CPU利用率是處理傳送到CPU的傳入資料包的結果。

Cat6500#show process cpu

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

在上一個示例中：

- 90%是總CPU利用率。

- 81%是由於中斷導致的CPU使用率，它構成CPU處理的流量。

- 9%(90 - 81)的CPU使用率是因為Cisco IOS?軟體進程。

使用Netdr工具

本節介紹如何使用Netdr工具。

附註：Netdr在較新Cisco IOS軟體版本(例如12.2(33)SXH版及更高版本)的高CPU使用率條件下使用是安全的。在幾個舊軟體版本中，Netdr可能會佔用更多CPU，在已發現高CPU使用率的交換機上運行可能不安全。如果交換器執行的是較舊軟體版本，建議在思科技術協助中心(TAC)的監督下使用此功能。

若要擷取RP頻內CPU路徑上的封包，請使用以下語法：

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

附註：有多個選項可用，每個選項右側的括弧中的數字表示必須指定選項的順序。

要捕獲SP帶內CPU路徑上的資料包，必須從SP控制檯運行所有命令。

Cat6500#remote login switch

Trying Switch ...

Entering CONSOLE for Switch

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

Cat6500-sp#debug netdr capture ?

附註：輸入exit以返回常規RP CPU命令提示符。

擷取封包後，系統會使用show netdr capture 指令顯示這些封包。

選項

以下是Netdr的一些可用選項：

- 使用continuous選項時，交換器在頻內CPU路徑上會有封包持續填充整個擷取緩衝區（4096封包），並開始以先進先出(FIFO)方式覆寫緩衝區。

- tx和rx選項分別捕獲來自CPU並進入CPU的資料包。

- interface選項用於擷取傳入或傳出指定介面的封包。該介面是交換機虛擬介面(SVI)或交換機上的L3介面。

- vlan選項用於擷取指定VLAN中的所有封包。指定的VLAN可以是與L3介面關聯的內部VLAN之一。使用show VLAN internal usage命令可檢視內部VLAN到L3介面的對映。

- LTL（本地目標邏輯）是介面的內部軟體表示。src_indx（源索引）和dst_indx（目標索引）選項用於分別捕獲與源LTL和目標LTL索引匹配的所有資料包。請注意，interface選項僅允許擷取前往或來自L3介面（SVI或實體）的封包。 使用src_indx或dst_indx選項可以捕獲L2介面上的Tx或Rx資料包。src_indx和dst_indx選項適用於第2層或第3層介面索引。

疑難排解

附註：Netdr在較新Cisco IOS軟體版本(例如12.2(33)SXH版及更高版本)的高CPU使用率條件下使用是安全的。在幾個舊軟體版本中，Netdr可能會佔用更多CPU，而且如果運行在已發現高CPU使用率的交換機上，可能會是不安全的。如果交換器執行的是較舊的軟體版本，建議在Cisco TAC的監督下使用此功能。

完成以下步驟，以便對Netdr進行故障排除：

1. 為RP CPU中的流量啟動Netdr捕獲：
Cat6500#debug netdr capture rx

2. 顯示捕獲的資料包：
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. 檢查資料包以確定最大流量生成者和趨勢。您可以使用「| include」選項根據欄位(例如，源MAC(srcmac)地址、目標MAC(destmac)地址、源和目標(src & dst)IP地址以及源索引(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. 解碼src_indx和dest_indx，以探索封包的來源和目的地介面。

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