基于DPDK的bpf技术进行流量过滤的方法及系统技术方案

技术编号:37875002 阅读:8 留言:0更新日期:2023-06-15 21:03
本发明专利技术公开了基于DPDK的bpf技术进行流量过滤的方法及系统,所述方法包括:配置并添加过滤条件;生成对应的过滤配置文件;加载过滤配置文件,转换为ebpf指令集;将ebpf指令集与回调函数关联,DPDK的ebpf虚拟机通过hook挂载回调函数到接收函数中;DPDK接收报文执行接收函数时,调用回调函数进行filter过滤,若符合过滤条件则将报文填充至mbuf中,否则丢弃;本发明专利技术的优点在于:无需消耗系统内存,应用局限性小,有利于在实际流量采集分析系统中推广使用。用。用。

【技术实现步骤摘要】
基于DPDK的bpf技术进行流量过滤的方法及系统


[0001]本专利技术涉及流量采集分析领域,更具体涉及基于DPDK的bpf技术进行流量过滤的方法及系统。

技术介绍

[0002]目前的流量采集分析系统,在大流量复杂场景应用中,往往由于资源的限制而无法满足性能的需求;而在流量采集时,可能无法分离出需要分析的目标流量,或者只需要针对性分析某些业务系统的流量,这样就需要用到流量过滤功能。现有技术主要接收流量技术如PFRING和libpcap等,均已支持使用bpf语法直接进行流量过滤。DPDK(Data Plane Development Kit,数据平面开发套件)因其优越的性能已成为流量采集系统接收流量的主流技术,例如,中国专利公开号CN114070900A,公开了一种基于DPDK的抓包处理方法和装置,该方法使用多进程实现,通过DPDK主进程抓取网卡中的全量网络数据包,放入抓包资源中,tcpdump以从进程方式运行,从抓包资源中获取数据包并进行分析和处理。在实际的流量采集系统中,tcpdump的性能远远无法满足现网实时流量10G的需求,需要消耗很大资源进行数据包缓存,功能方面也无法满足对各种应用层协议进行深度分析并过滤的需求;因此通过tcpdump来对数据包过滤和分析处理,具有一定的局限性,无法在实际流量采集分析系统中使用。

技术实现思路

[0003]本专利技术所要解决的技术问题在于现有技术基于DPDK的流量过滤方法,需要消耗很大资源进行数据包缓存,具有一定的局限性,无法在实际流量采集分析系统中使用的问题。
[0004]本专利技术通过以下技术手段实现解决上述技术问题的:基于DPDK的bpf技术进行流量过滤的方法,所述方法包括:
[0005]步骤1、配置并添加过滤条件;
[0006]步骤2、生成对应的过滤配置文件;
[0007]步骤3、加载过滤配置文件,转换为ebpf指令集;
[0008]步骤4、将ebpf指令集与回调函数关联,DPDK的ebpf虚拟机通过hook挂载回调函数到接收函数中;
[0009]步骤5、DPDK接收报文执行接收函数时,调用回调函数进行filter过滤,若符合过滤条件则将报文填充至mbuf中,否则丢弃。
[0010]有益效果:本专利技术提供了一种新的进行流量过滤的方法,并且使用单进程实现流量的获取和过滤,方法简单,消耗的资源少,将ebpf指令集与回调函数关联,DPDK的ebpf虚拟机通过hook挂载回调函数到接收函数中,在接收数据包的时候就调用回调函数,从而执行过滤,因此数据包在进入用户内存之前即会判断是否需要丢弃,相比现有技术先进行缓存再判断是否过滤的方法,无需消耗系统内存,应用局限性小,有利于在实际流量采集分析系统中推广使用。
[0011]进一步地,所述步骤1包括:通过人机交互界面配置过滤条件。
[0012]进一步地,所述步骤2包括:将过滤条件保存至配置文件中,生成对应的过滤配置文件。
[0013]进一步地,所述步骤3包括:
[0014]使用tcpdump抓包语法定义要过滤流量的过滤条件,先编译为cbpf指令,再将其转换为ebpf指令,生成ebpf指令集。
[0015]进一步地,所述步骤4包括:
[0016]创建对象加载ebpf指令,将对象关联到回调函数,并将回调函数安装到端口队列回调入口,DPDK的ebpf虚拟机通过hook挂载回调函数到接收函数中,其中,所述对象为bpf执行上下文。
[0017]进一步地,所述步骤5包括:
[0018]当程序使用收包接口接收流量时,执行接收函数并调用回调函数,从而执行对象的ebpf指令,进行filter过滤,若符合过滤条件则将报文填充至mbuf中,否则丢弃。
[0019]本专利技术还提供基于DPDK的bpf技术进行流量过滤的系统,包括流量引擎,所述流量引擎执行以下过程:
[0020]所述流量引擎加载过滤配置文件;流量引擎解析过滤配置文件,转换生成ebpf指令集,将ebpf指令集通过DPDK的ebpf虚拟机加载到回调函数,若检查语法有问题,则返回错误;流量引擎通过DPDK接收报文执行接收函数时,调用回调函数进行filter过滤;若报文匹配过滤条件,将报文填入mbuf中,流量引擎获取mbuf并进行协议解析和内容安全检测,并生成网络日志;若报文未匹配,则直接丢弃。
[0021]本专利技术还提供基于DPDK的bpf技术进行流量过滤的系统,包括人机交互界面、管理后端、管理代理端以及流量引擎,所述系统执行以下过程:
[0022]人机交互界面根据语法配置过滤条件;
[0023]管理后端将配置的过滤条件保存至mysql数据库中,同时将其下发给管理代理端;
[0024]管理代理端接收配置的过滤条件,将过滤条件保存至配置文件中,生成对应的过滤配置文件;
[0025]管理代理端告知流量引擎加载过滤配置文件;流量引擎解析过滤配置文件,转换生成ebpf指令集,将ebpf指令集通过DPDK的ebpf虚拟机加载到回调函数,若检查语法有问题,则返回错误;流量引擎通过DPDK接收报文执行接收函数时,调用回调函数进行filter过滤;若报文匹配过滤条件,将报文填入mbuf中,流量引擎获取mbuf并进行协议解析和内容安全检测,并生成网络日志;若报文未匹配,则直接丢弃。
[0026]进一步地,所述流量引擎还创建对象加载ebpf指令,将对象关联到回调函数,并将回调函数安装到端口队列回调入口,DPDK的ebpf虚拟机通过hook挂载回调函数到接收函数中,其中,所述对象为bpf执行上下文。
[0027]更进一步地,所述流量引擎通过DPDK的收包接口接收报文时,执行接收函数,当程序执行到端口队列的回调入口时,调用回调函数,从而执行对象的ebpf指令进行filter过滤。
[0028]本专利技术的优点在于:本专利技术提供了一种新的进行流量过滤的方法,并且使用单进程实现流量的获取和过滤,方法简单,消耗的资源少,将ebpf指令集与回调函数关联,DPDK
的ebpf虚拟机通过hook挂载回调函数到接收函数中,在接收数据包的时候就调用回调函数,从而执行过滤,因此数据包在进入用户内存之前即会判断是否需要丢弃,相比现有技术先进行缓存再判断是否过滤的方法,无需消耗系统内存,应用局限性小,有利于在实际流量采集分析系统中推广使用。
附图说明
[0029]图1为本专利技术实施例1所公开的基于DPDK的bpf技术进行流量过滤的方法的流程图;
[0030]图2为本专利技术实施例1所公开的基于DPDK的bpf技术进行流量过滤的方法中ebpf虚拟机与应用层的示意图。
具体实施方式
[0031]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于DPDK的bpf技术进行流量过滤的方法,其特征在于,所述方法包括:步骤1、配置并添加过滤条件;步骤2、生成对应的过滤配置文件;步骤3、加载过滤配置文件,转换为ebpf指令集;步骤4、将ebpf指令集与回调函数关联,DPDK的ebpf虚拟机通过hook挂载回调函数到接收函数中;步骤5、DPDK接收报文执行接收函数时,调用回调函数进行filter过滤,若符合过滤条件则将报文填充至mbuf中,否则丢弃。2.根据权利要求1所述的基于DPDK的bpf技术进行流量过滤的方法,其特征在于,所述步骤1包括:通过人机交互界面配置过滤条件。3.根据权利要求1所述的基于DPDK的bpf技术进行流量过滤的方法,其特征在于,所述步骤2包括:将过滤条件保存至配置文件中,生成对应的过滤配置文件。4.根据权利要求1所述的基于DPDK的bpf技术进行流量过滤的方法,其特征在于,所述步骤3包括:使用tcpdump抓包语法定义要过滤流量的过滤条件,先编译为cbpf指令,再将其转换为ebpf指令,生成ebpf指令集。5.根据权利要求1所述的基于DPDK的bpf技术进行流量过滤的方法,其特征在于,所述步骤4包括:创建对象加载ebpf指令,将对象关联到回调函数,并将回调函数安装到端口队列回调入口,DPDK的ebpf虚拟机通过hook挂载回调函数到接收函数中,其中,所述对象为bpf执行上下文。6.根据权利要求1所述的基于DPDK的bpf技术进行流量过滤的方法,其特征在于,所述步骤5包括:当程序使用收包接口接收流量时,执行接收函数并调用回调函数,从而执行对象的ebpf指令,进行filter过滤,若符合过滤条件则将报文填充至mbuf中,否则丢弃。7.基于DPDK的bpf技术进行流量过滤的系统,其特征在于,包括流量引擎,所述流量引擎执行以下过程:所述流量引擎加载过滤配置文件;流量引擎解析过滤配置文件,...

【专利技术属性】
技术研发人员:范海斌王文君
申请(专利权)人:上海观安信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1