一种控制转发分离的网络连接跟踪实现方法及装置制造方法及图纸

技术编号:36183772 阅读:26 留言:0更新日期:2022-12-31 20:42
本发明专利技术涉及数据处理领域,且公开了一种控制转发分离的网络连接跟踪实现方法及装置,所述的网络连接跟踪实现方法包括:S1:启用conntrack快速转发处理模块和conntrack慢速跟踪模块,conntrack快速转发处理模块通过多线程的方式轮询获取数据包,提取数据包的源IP地址、目标IP地址、协议号、源端口号、目标端口号的五元组报文信息,并将五元组信息运算成一个HASH值;S2:通过HASH值查询共享内存HashMap索引,获取第一个Contntack Elemnet,即记录初始和回应的连接跟踪记录信息,解决了传统Linux内核的conntrack模块在多核并行处理模块上,由于锁的方式导致contrack性能不佳的问题,有效防止由于Linux内核conntrack table的内存溢出导致“已建立连接”的数据报文转发异常,减低维护成本,缓解网络数据包处理失效问题。题。题。

【技术实现步骤摘要】
一种控制转发分离的网络连接跟踪实现方法及装置


[0001]本专利技术涉及数据处理
,具体为一种控制转发分离的网络连接跟踪实现方法及装置。

技术介绍

[0002]连接跟踪(conntrack)是用于跟踪并且记录网络的连接状态的,Linux为每一个经过网络堆栈的数据包,生成一个新的连接记录项,此后,所有属于此连接的数据包都被唯一的分配给这个连接,并标识连接的状态。连接跟踪是防火墙模块的状态检测的基础,同时也是地址转换中实现SNAT和DNAT的前提,DPDK全称Intel Data Plane Development Kit,是intel开源的数据平面开发工具集,提供在用户空间高效的数据包处理提供库函数和驱动的支持,DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程,Kni(Kernel NIC Interface)内核网卡接口,是DPDK允许用户态和内核态交换报文的功能组件,KNI模拟了一个虚拟的网口,提供dpdk的应用程序和linux内核之间通讯,用于DPDK和内核的交互,kn本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种控制转发分离的网络连接跟踪实现方法,其特征在于,包括:S1:启用conntrack快速转发处理模块和conntrack慢速跟踪模块,conntrack快速转发处理模块通过多线程的方式轮询获取数据包,提取数据包的源IP地址、目标IP地址、协议号、源端口号、目标端口号的五元组报文信息,并将五元组信息运算成一个HASH值;S2:通过HASH值查询共享内存HashMap索引,获取第一个Contntack Elemnet,即记录初始和回应的连接跟踪记录信息,获取list_head,即回应连接跟踪的表头,通过list_head的下一跳数组下标,提取conntack pool中对应的Contntack Elemnet与数据包的回应方向进行匹配;S3:如果遍历HASH链表后五元组没有匹配命中,则将数据包会进入限制计时器,记录每个源IP地址进入慢速通道的次数,如果次数超过一定的阀值,就会丢弃数据包,防止网络泛洪攻击影响Linux内核的正常运行,如果次数没有超过阀值,则通过KNI接口发送至Linux内核的conntack慢速跟踪通道;S4:如果遍历HASH链表后五元组匹配命中,则对比Contntack Elemnet进行初始方向的匹配;S5:如果匹配命中,这表示数据报文为已建立连接状态,进入转发处理;S6:conntrack慢速跟踪模块通过KNI网卡接收到来自conntrack快速处理模块的非已建立连接的数据包,进入Linux内核的传统Contrack模块处理,在处理过程中,会对Linux内核的conntrack table进行更新操作;S7:启用同步模块,同步模块通过netlink的方式监听linux内核的conntrack table更新信息,并将更新信息获取更新到共享内存中;S8:如果更新状态不是删除,则提取conntrack table的更新信息的回应方向的五元组信息,计算五元组信息的HASH值,通过HASH值查询共享内存HashMap索引,获取第一个Contntack Elemnet,获取list_head,通过list_head的下一跳数组下标,提取conntack pool中对应的Contntack Elemnet与数据包的回应方向进行匹配;S9:如果是删除操作,则提取conntrack table的更新信息的回应方向的五元组信息,计算五元组信息的HASH值,通过HASH值查询共享内存HashMap索引,获取第一个Contntack Elemnet,获取list_head,通过list_head的下一跳数组下标,提取conntack pool中对应的Contntack Elemnet与数据包的回应方向进行匹配;S10:启用conntrack table共享内存,conntrack table共享内存包括:conntrack pool和HashMap索引,conntrack pool采用数组形式,在初始化的过程中,会创建一个大容量连续的内存空间,用于存放在conntack element连接跟踪记录信息。2.根据权利要求1所述的一种控制转发分离的网络连接跟踪实现方法,其特征在于,所述S2中的回应方向的匹配规则,包括以下步骤:S201:将数据包的目标IP地址与Contntack Elemnet中的reply_src_ip,即回应的源IP地址,进行对比;S202:将数据包的源IP地址与Contntack Elemnet中的reply_dst_ip,即回应的目标IP,进行对比;S203:将数据包的目标端口与Contntack Elemnet中的reply_src_port,即回应的源端口,进行对比;
S204:将数据包的源端口与Contntack Elemnet中的reply_dst_port,即回应的目标端口,进行对比;S205:将数据包的协会号与Contntack Elemnet中的proto,即协议号;S206:判断flag标记位标记为已占用,并且状态为已建立连接。3.根据权利要求1所述的一种控制转发分离的网络连接跟踪实现方法,其特征在于,所述S4中初始方向的匹配规则,包括以下步骤:S401:将数据包的源IP地址与Contntack Elemnet中的reply_src_ip,即回应的源IP地址,进行对比;S402:将数据包的目标IP地址与Contntack Elemnet中的reply_dst_ip,即回应的目标IP,进行对比;S403:将数据包的源端口与Contntack Ele...

【专利技术属性】
技术研发人员:尹俊文尹鹏
申请(专利权)人:腾云创威信息科技威海有限公司
类型:发明
国别省市:

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

1