一种网络设备及其报文抓取方法与流程

摘要: 本申请涉及通信技术,具体的讲是一种网络设备及其报文抓取方法。背景技术:1、在网络设备的运维与故障诊断中,报文抓取(packetcapture)是定位网络异常的关...
一种网络设备及其报文抓取方法与流程

本申请涉及通信技术,具体的讲是一种网络设备及其报文抓取方法。

背景技术:

1、在网络设备的运维与故障诊断中,报文抓取(packet capture)是定位网络异常的关键手段。

2、现有的内置抓包方案主要依赖“镜像上送中央处理器(central processingunit, cpu)”模式:设备通过交换芯片将目标端口报文镜像复制至上送cpu,由cpu运行软件协议栈进行过滤、封装并写入闪存(flash)。

3、然而,随着网络接口速率向400g及更高演进,仍采用上述报文抓取模式会导致海量高速镜像报文冲击cpu,导致中断处理与协议栈资源被严重占用,不仅抓包进程丢包,更可能干扰双向转发检测(bidirectional forwarding detection,bfd)、路由协议等关键控制平面业务的稳定性。此外,cpu计算资源与系统总线带宽限制了高速率下的线速处理,获取的抓包文件完整性差。

4、虽然,可通过外接专用抓包设备替代cpu进行报文专区虽能规避cpu瓶颈,但存在部署复杂、成本高昂且无法与设备本地状态实时联动的缺陷。因此,亟需一种能够卸载cpu压力、利用硬件可编程逻辑实现高速过滤与存储,从而在保证设备稳定性的同时提供高性能、低成本内置抓包能力的技术方案。

技术实现思路

1、本申请的目的在于提供一种网络设备及其报文抓取方法,提供高性能的设备内置报文抓取。

2、为实现上述目的,本申请提供了一种网络设备的报文抓取方法,该方法包括以下步骤:cpu申请一块连续的物理内存区域,并将其划分为n个固定大小的数据块,构建包含n个数据块物理地址的空闲链表,将空闲链表的指针及内存基地址通过控制通道下发至可编程门阵列fpga芯片的抓包硬件逻辑单元;cpu将编译的硬件过滤表项同步至抓包硬件逻辑单元;抓包硬件逻辑单元基于硬件过滤表项对镜像报文进行硬件级过滤,将匹配硬件过滤表项的镜像报文添加硬件时间戳,从空闲链表中获取一个空闲标记的数据块的物理地址;将携带有硬件时间戳的报文数据以及报文长度组成抓包记录单元直接写入空闲数据块并设置已写满状态标记,将指针指向下一个空闲数据块。

3、为实现上述目的,本申请还提供了一种网络设备,该包括处理器、机器可读存储介质、现场可编程门阵列fpga芯片、交换芯片以及网络接口;处理器通过运行机器可读存储介质中的机器可执行指令执行以下操作,申请一块连续的物理内存区域,并将其划分为n个固定大小的数据块,构建包含n个数据块物理地址的空闲链表,将空闲链表的指针及内存基地址通过控制通道下发至fpga芯片的抓包硬件逻辑单元;将编译的硬件过滤表项同步至抓包硬件逻辑单元;fpga芯片配置的抓包硬件逻辑单元基于硬件过滤表项对镜像报文进行硬件级过滤,将匹配硬件过滤表项的镜像报文添加硬件时间戳,从空闲链表中获取一个空闲标记的数据块的物理地址;将携带有硬件时间戳的报文数据以及报文长度组成抓包记录单元直接写入空闲数据块并设置已写满状态标记,将指针指向下一个空闲数据块。

4、本申请的有益效果在于,网络设备的处理器cpu仅通过控制通道配置fpga芯片(field-programmable gate array,可编程门阵列)芯片的硬件过滤表项以及将fpga芯片抓取的抓包记录单元转存为设备的持久化存储介质的抓包文件,实现抓包业务对cpu的零冲击。

1.一种网络设备的报文抓取方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,所述cpu将所述空闲链表的指针及内存基地址通过控制通道下发至fpga芯片的抓包硬件逻辑单元包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括,

4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括,

5.根据权利要求4所述的方法,其特征在于,所述方法还包括,

6.一种网络设备,其特征在于,所述设备包括处理器、机器可读存储介质、现场可编程门阵列fpga芯片、交换芯片以及网络接口;

7.根据权利要求6所述的设备,其特征在于,

8.根据权利要求7所述的设备,其特征在于,

9.根据权利要求7或8所述的设备,其特征在于,

10.根据权利要求9所述的设备,其特征在于,所述处理器通过运行所述机器可读存储介质中的机器可执行指令还执行以下操作,