NP7 芯片抓包
2025/10/29大约 3 分钟
NP7 芯片抓包
功能简介
当使用 NP7 平台芯片的设备(如 400F、600F、1000F、1801F 等)时,可以在数据流已经被 NP7 加速的情况下直接抓包,而不像 NP6 那样必须关闭流量匹配策略的 NP 加速后在 CPU 抓包。另外,也可以在 NP7 芯片上将过滤出的流量镜像到指定设备接口上。
diagnose npu sniffer {start | stop | filter}过滤条件
必须指定过滤条件后才可以开启抓包,使用diagnose npu sniffer filter可以定义 NP7 抓包的过滤条件,可以过滤的选项如下:
selector:用于保存过滤条件,最多可以创建 4 个 selector(0 ~ 3,默认为 0)。每个 selector 可以保存一套过滤条件。使用diagnose npu sniffer filter selector <0 ~ 3>可以切换到对应的 selector 进行设置,用于当一个 selector 无法表示出全部的过滤条件时使用。多个 selector 下的过滤条件为或(or)的关系,同时生效。intf <interface-name>:过滤抓包接口,可以抓取除 IPsec VPN 隧道接口以外的任何接口上的流量。dir {0 | 1 | 2}:过滤数据包在接口上的方向。0 表示入向数据包,1 表示出向数据包,2 表示双向数据包(默认为 2)。ethtype <type>: 如果抓取二层数据包,过滤数据包二层 ethertype 值。protocol <number>:过滤抓包的 IP 协议号,范围为 0 ~ 255。只能抓取到 NP7 处理器可以卸载的协议报文。srcip <ipv4-ip-address>/<ipv4-mask>:过滤抓包的 IPv4 源地址/掩码。dstip <ipv4-ip-address>/<ipv4-mask>:过滤抓包的 IPv4 目的地址/掩码。ip <ipv4-ip-address>/ 与<ipv4-mask>:过滤抓包的 IPv4 源或目的地址/掩码。srcip6 <ipv6-ip-address>/<ipv6-mask>:过滤抓包的 IPv6 源地址/掩码。dstip6 <ipv6-ip-address>/<ipv6-mask>:过滤抓包的 IPv6 目的地址/掩码。ip <ipv6-ip-address>/ 与<ipv6-mask>:过滤抓包的 IPv6 源或目的地址/掩码。sport <port-number>:过滤抓包的 4 层源端口。dport <port-number>:过滤抓包的 4 层目的端口。port <port-number>:过滤抓包的 4 层源或目的端口。outgoing_intf <interface>:如果需要将抓取的报文镜像到设备的指定接口,在这里设置镜像的目标接口。outgoing_vlan <vlan-id>:如果镜像的目标接口需要封装 VLAN tag 传输,在这里设置镜像的目标接口的 VLAN ID。clear:清空所有 selector 的过滤条件。
开启/关闭 NP7 抓包
配置好过滤条件后,使用diagnose npu sniffer {start | stop}在 NP7 上开始或停止抓包,然后使用diagnose sniffer packet npudbg显示抓取的数据包。
重要
可根据需求抓取 4 还是 6 格式的报文,并指定抓包数量与时间显示方式,如下所示,这里的参数与普通 sniffer 是一样的。
diagnose npu sniffer {start | stop}
diagnose sniffer packet npudbg '' 4 0 lNP7 抓包示例
单一 selector
diagnose npu sniffer filter
diagnose npu sniffer filter intf port23
diagnose npu sniffer filter dir 1
diagnose npu sniffer filter protocol 6
diagnose npu sniffer start
diagnose sniffer packet npudbg '' 4 0 l- 首先清除所有的抓包过滤器。
- 过滤接口为 port23。
- 过滤流量方向为出方向。
- 过滤协议为 TCP。
- 开启抓包。
- 在 CLI 下显示抓到的数据包。
多个 selector
diagnose npu sniffer filter selector 0
diagnose npu sniffer filter intf port1
diagnose npu sniffer filter protocol 6
diagnose npu sniffer filter dir 2
diagnose npu sniffer filter selector 1
diagnose npu sniffer filter intf port2
diagnose npu sniffer filter protocol 17
diagnose npu sniffer filter dir 1
diagnose npu sniffer start
diagnose sniffer packet npudbg '' 4 0 l- 第 1 个 selector 0:抓取 port1 上的双向 TCP 数据包。
- 第 2 个 selector 1:抓取 port2 上的出向 UDP 数据包。
- 在 CLI 下显示经过这两个 selector 过滤后抓到的数据包。