本发明涉及协议解析,尤其涉及一种基于dpdk技术的流量过滤的协议解析方法。
背景技术:
1、在数据安全领域,常使用dpdk(data plane development kit,数据平面开发)来进行网络流量的监控。利用dpdk技术进行业务流量的高效处理,包括流量采集、协议解析、安全事件检测和异常行为检测等。
2、随着互联网的普及,流量体系已较大,在硬件能力有限的情况下,很难做到全流量的分析。某些情况下,只对某个业务节点的流量感兴趣,希望能做定向流量的解析,丢弃其他流量;或对某个业务节点的流量不感兴趣,希望能丢弃这部分流量,以免产生干扰数据。某些情况下,希望根据实际情况(安全事件、特殊时间节点),动态调整流量解析对象,进行个别流量的跟踪。在特殊应用中,比如文件重组,需要跟踪某个特定ip输出的文件。
3、目前的流量过滤方法往往使用固定的过滤规则,无法同时满足多种业务需求,应用场景受限。例如,一种在中国专利文献上公开的“流量过滤方法及装置”,其公告号cn106878074a,包括:抓取目标网络流量;基于目标协议类型对所述目标网络流量进行报文格式解析,获取该目标网络流量中携带的与文件格式相关联的内容关键字;将所述内容关键字与预设关键字进行匹配,如果所述内容关键字匹配所述预设关键字,过滤并保存携带有所述内容关键字的目标网络流量。该方案采用固定的过滤规则,无法同时满足多种业务需求,应用场景受限。
技术实现思路
1、本发明主要解决现有技术往往使用固定的过滤规则,无法同时满足多种业务需求,应用场景受限的问题;提供一种基于dpdk技术的流量过滤的协议解析方法,在对应业务前进行过滤模型的匹配,实时更新过滤规则,能同时满足多种业务的过滤规则。
2、本发明的上述技术问题主要是通过下述技术方案得以解决的:
3、一种基于dpdk技术的流量过滤的协议解析方法,包括以下步骤:
4、s1:资源初始化,包括定时器库、内存资源和网络接口;
5、s2:读取配置过滤文件,构建并更新过滤模型;
6、s3:从网络接口采集读取数据报文,循环解析每个数据报文,与过滤模型匹配,过滤符合过滤条件的数据报文,将保留的数据报文导出到数据库中存储。
7、在对应业务前进行过滤模型的匹配,实时更新过滤规则,能同时满足多种业务的过滤规则。
8、作为优选,所述的步骤s2包括以下过程:
9、s201:读取配置过滤文件,判断过滤开关是否打开,若是,则进入下一步,否则,结束读取;
10、s202:构建过滤模型,创建定时器对象并启动后结束读取;
11、s203:定时器回调时过滤模型中的过滤规则更新;判断过滤规则配置是否更新;若是,则更新过滤模型后等待下次执行;否则直接等待下次执行。
12、能够根据实际需要,实时更新过滤规则,支持不同应用场景下的过滤规则,支持ip地址区间范围的过滤筛选,应用范围广。
13、作为优选,过滤模型的构建过程为:
14、根据各部分开关配置,读取配置信息;
15、在开关打开时,读取规则个数,根据规则个数创建结构体数组;
16、配置中至少配置一个ip地址;根据配置项内容确定匹配模型;
17、按行读取,依次存入结构体数组中;
18、根据ip地址和子网掩码位数mask计算各配置规则的ip地址区间。
19、作为优选,规则格式包括黑名单和白名单的ip地址、子网掩码位数mask和网络接口号port。
20、作为优选,所述的过滤模型包括名称、开关值和规则内容;
21、规则内容中包括白名单或黑名单类型、匹配规则和具体内容信息。
22、根据黑名单,丢弃无关业务的流量;根据白名单,只处理感兴趣的流量。
23、作为优选,从网络接口读取的数据具体经过以下处理线程处理:
24、从ring环批量获取报文包;
25、当报文包个数大于零时,循环解析每个报文,获取包括源ip、源potr、目的ip、目的port和协议类型的五元组信息;
26、过滤模型匹配,若是黑名单符合过滤条件,则释放相关内存资源;若是白名单符合过滤条件,则应用层协议解析后将具有相同五元组信息的解析流转至同一导出线程;
27、返回,继续从ring环批量获取报文包;
28、当报文包个数小于等于零时,返回,继续从ring环批量获取报文包。
29、作为优选,过滤模型匹配过程为:
30、根据应用场景选择过滤模型对象;
31、在开关打开时,根据报文的源ip、源potr、目的ip和目的port四元组信息进行匹配;
32、选择源ip,判断源ip是否在过滤模型的ip地址区间范围内,若是,则通过二分法匹配对应的ip地址;否则,选择目的ip;
33、判断通过二分法是否匹配到对应的ip地址,若是,则根据匹配模型进行其他元素的匹配;否则,选择目的ip;
34、判断匹配模型的其他元素是否全部匹配,若是,则匹配成功;否则,选择目的ip;
35、判断选择的目的ip是否在过滤模型的ip地址区间范围内,若是,则进一步匹配对应ip地址;否则匹配失败;
36、若进一步匹配到对应ip地址,则判断其他元素是否全部匹配,否则,匹配失败;
37、若其他元素全部匹配,则匹配成功,否则,匹配失败;
38、若匹配成功且为黑名单,则跳过该报文处理;若匹配成功且为白名单则进行报文处理;
39、若匹配失败且为黑名单,则处理该报文,若匹配失败且为白名单则跳过该报文处理。
40、能同时满足多种业务的过滤规则,只需在对应业务前进行过滤模型的匹配;过滤规则配置灵活:(src)ip/mask/port, (dst)ip/mask/port,支持至少一个ip地址的配置,有各种组合配置,应用范围更广;在不重启应用的情况下,根据现场环境实时更新过滤规则;支持ip地址区间范围的过滤筛选,更切合实际情况;根据黑名单,丢弃无关业务的流量;根据白名单,只处理感兴趣的流量。
41、作为优选,报文采集过程具体为:
42、从网络接口读取数据;
43、当报文包个数大于零时,基于rss功能获取报文的五元组信息;将具有相同五元组信息的报文转至同一处理线程;返回,从网络接口读取数据;
44、当报文包个数小于等于零时,返回,从网络接口读取数据。
45、作为优选,报文导出过程具体为:
46、从ring环批量获取解析流;
47、当报文包个数大于零时,按照协议类型进行数据组包;将数据导出到数据库存储;返回,从ring环批量获取解析流;
48、当报文包个数小于等于零时,返回,从ring环批量获取解析流。
49、本发明的有益效果是:
50、1. 过滤规则配置灵活,支持至少一个ip地址的配置,有各种组合配置,应用范围更广。
51、2.在不重启应用的情况下,根据现场环境实时更新过滤规则。
52、3.支持ip地址区间范围的过滤筛选,更切合实际情况。
53、4.根据黑名单,丢弃无关业务的流量;根据白名单,只处理感兴趣的流量。