本发明涉及报文捕获方法,特别是指一种报文处理方法、装置及系统。
背景技术:
1、以太网是目前应用最广泛计算机局域网技术,按照速率可以分为多种速率的以太网。以太网设备按照网络拓扑可以分为以太网终端和以太网网络设备,以太网终端指具有以太网网卡的计算机,以太网网络设备指以太网交换机/路由器/防火墙等网络设备。
2、随着网络业务的丰富,出现越来越多的更加“智能”的网络设备(比如防火墙/负载分担/分流器/dpi等),能够对高层网络协议(或者说业务层面)进行分析和处理,一般使用cpu/np/fpga这类可编程硬件对网络报文进行智能处理。
3、对于一个“智能”网络设备,其产品生命周期可以简单分为研发/运维两个阶段,在研发阶段会面临各种产品问题,由于此时产品还未发布,测试环境可控,比较容易定位和解决问题。
4、在运维阶段,产品部署在客户生产环境,会经常面临各种意想不到的问题,比如各种异常/畸形网络报文,如果设备的业务逻辑可靠性/完备性不足,则会导致设备运行异常;这种设备异常,一方面在实验室环境很难复现,一方面在生产环境几周/几个月才能发生一次,导致设备厂家需要投入大量人力物力定位和解决问题。
5、在客户生产环境分析定位问题,网络抓包就成为关键手段。
6、(1)以太网速度小于或者等于1000m,采用开源抓包软件即可满足需求;此类软件基于计算机硬件,使用以太网网卡,通过软件库进行报文捕获,性能较低,容易产生丢包,只适用于低速场景。
7、(2)以太网速度小于100g,可以采用定制化产品满足需求。此类产品基于高性能cpu或fpga来实现,一般配置多块ssd硬盘,满足报文捕获和报文存储需求。
8、(3)以太网速度大于或者等于100g,目前没有产品满足需求。在这种速度下,100gbps相当于每秒需要保存12.5g字节数据,即使高性能ssd能满足存储性能要求,也无法满足存储寿命要求。
9、固态硬盘有数据量tbw(太字节)指标,比如一个1t的硬盘tbw指标为512t,表示硬盘容量为1t,总写入量达到512t后,固态硬盘就会失去质保期,继续使用有硬盘损坏风险。对于一个100g以太网端口,每秒生成12.5g数据,使用tbw为512t的固态硬盘存储,则可用时间为:512*1024/12.5=41943.04秒=11.65小时,不到一天硬盘就面临损坏。
技术实现思路
1、本发明提供一种报文处理方法、装置及系统。用以解决速率高于100g时的报文捕获问题。
2、为解决上述技术问题,本发明的技术方案如下:
3、一种报文处理方法,应用于捕获设备,所述方法包括:
4、在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;
5、根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;
6、将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文 捕获,并对已捕获的报文进行导出,得到报文文件。
7、可选地,根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表,包括:
8、根据所述第一指令中的业务设备标识符和业务设备端口,查询报文捕获端口映射表,得到捕获端口列表。
9、可选地,将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,包括:
10、将所述捕获端口列表,通过高速串行计算机扩展pcie总线发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块中的至少一个报文流水线,一个报文流水线对应所述捕获设备的一个以太网端口。
11、可选地,根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件,包括:
12、调用至少一个报文流水线中的目标报文流水线的以太网模块停止报文捕获;
13、调用所述目标报文流水线的报文管理模块,根据与所述报文管理模块通信连接的寄存器中的配置信息,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出。
14、可选地,所述寄存器包括:配置寄存器、现场可编程逻辑门阵列模块状态寄存器和时间寄存器;
15、其中,所述配置寄存器中的第一配置信息包括以下至少一项:
16、报文流水线使用的内存起始地址;
17、报文流水线使用的内存大小;
18、所述现场可编程逻辑门阵列模块状态寄存器中的第二配置信息包括以下至少一项:
19、根据报文捕获的批次按照预设规则进行递增;
20、最后使用的管理块序号;
21、最后使用的内存块数量;
22、所述现场可编程逻辑门阵列模块状态寄存器根据所述报文流水线的规则对第二配置信息进行设定;
23、所述时间寄存器中的第三配置信息包括以下至少一项:
24、时间精度。
25、可选的,对所述以太网模块停止报文捕获之前已经捕获的目标报文进行导出,包括:
26、在所述现场可编程逻辑门阵列模块接收到所述捕获端口列表下发停止报文捕获命令后,通过直接内存访问将所述现场可编程逻辑门阵列模块中的目标数据发送至中央处理器,使得所述中央处理器将所述目标数据存储于目标报文,并将所述目标报文进行导出。
27、可选的,将所述目标报文进行导出,包括:
28、根据所述现场可编程逻辑门阵列模块的写入方式,将所述目标报文进行导出。
29、本发明的实施例还提供一种报文处理装置,包括:
30、收发模块,用于在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;
31、处理模块,用于根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文 捕获,并对已捕获的报文进行导出,得到报文文件。
32、本发明的实施例还提供一种报文处理系统,包括:业务设备和至少一个捕获设备,所述业务设备与所述至少一个捕获设备通过分流设备通信连接,或者,所述业务设备与所述至少一个捕获设备直接通信连接;
33、所述业务设备在检测到自身异常时,向所述捕获设备发送第一指令;
34、所述捕获设备接收第一指令,并根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。
35、本发明的实施例还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。
36、本发明的上述方案至少包括以下有益效果:
37、本发明的上述方案,通过在与捕获设备通信连接的业务设备检测到所述业务设备异常时,接收业务设备发送的停止报文捕获的第一指令;根据所述第一指令,查询报文捕获端口映射表,得到捕获端口列表;将所述捕获端口列表发送至所述捕获设备的至少一个现场可编程逻辑门阵列模块,使所述现场可编程逻辑门阵列模块根据所述捕获端口列表停止报文捕获,并对已捕获的报文进行导出,得到报文文件。本发明的方案可以抓取业务设备异常时的畸形报文,进而方便业务设备异常问题定位。