目录

简介

先决条件

要求

使用的组件

背景信息

使用Netdr工具

选项

故障排除

简介

本文档介绍运行管理引擎720或32的Cisco Catalyst 6500系列交换机上的可用工具Netdr，该工具允许您捕获路由处理器CPU(RP)或交换机处理器CPU(SP)的内部带内路径上的数据包。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息基于运行Supervisor引擎720的Cisco Catalyst 6500系列交换机。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

RP CPU通常用于处理第3层(L3)控制流量以及无法进行硬件交换的第3层数据流量。L3控制流量的一些示例包括开放最短路径优先(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命令switch show process cpu命令或remote命令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或物理）或从L3接口（SVI或物理）发送的数据包。 使用src_indx或dst_indx 选项可以捕获L2接口上的Tx或Rx数据包。src_indx和dst_indx选项可与L2或L3接口索引一起使用。

故障排除

注意：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