CN115549976A - 一种控制转发分离的网络连接跟踪实现方法及装置 - Google Patents

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

Info

Publication number
CN115549976A
CN115549976A CN202211061698.9A CN202211061698A CN115549976A CN 115549976 A CN115549976 A CN 115549976A CN 202211061698 A CN202211061698 A CN 202211061698A CN 115549976 A CN115549976 A CN 115549976A
Authority
CN
China
Prior art keywords
conntrack
data packet
water
elemnet
contntack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211061698.9A
Other languages
English (en)
Other versions
CN115549976B (zh
Inventor
尹俊文
尹鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tengyun Chuangwei Information Technology Weihai Co ltd
Original Assignee
Tengyun Chuangwei Information Technology Weihai Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tengyun Chuangwei Information Technology Weihai Co ltd filed Critical Tengyun Chuangwei Information Technology Weihai Co ltd
Priority to CN202211061698.9A priority Critical patent/CN115549976B/zh
Publication of CN115549976A publication Critical patent/CN115549976A/zh
Application granted granted Critical
Publication of CN115549976B publication Critical patent/CN115549976B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A10/00TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
    • Y02A10/40Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种控制转发分离的网络连接跟踪实现方法及装置
技术领域
本发明涉及数据处理技术领域,具体为一种控制转发分离的网络连接跟踪实现方法及装置。
背景技术
连接跟踪(conntrack)是用于跟踪并且记录网络的连接状态的,Linux为每一个经过网络堆栈的数据包,生成一个新的连接记录项,此后,所有属于此连接的数据包都被唯一的分配给这个连接,并标识连接的状态。连接跟踪是防火墙模块的状态检测的基础,同时也是地址转换中实现SNAT和DNAT的前提,DPDK全称Intel Data Plane Development Kit,是intel开源的数据平面开发工具集,提供在用户空间高效的数据包处理提供库函数和驱动的支持,DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程,Kni(Kernel NIC Interface)内核网卡接口,是DPDK允许用户态和内核态交换报文的功能组件,KNI模拟了一个虚拟的网口,提供dpdk的应用程序和linux内核之间通讯,用于DPDK和内核的交互,kni接口允许报文从用户态接收后转发到内核协议栈去;传统Linux内核的连接跟踪方法,是通过Linux下的一个内核模块逐一连接跟踪conntrack,这个模块用于网络连接跟踪,这里的连接是指通信的两个端点之间用于传输数据的连接,因此它不止可以用来跟踪TCP的连接,还可以跟踪UDP、ICMP协议保报文这样“连接”,conntrack维护两张记录表,用于跟踪网络连接的初始与回应的两个过程。通过netfilter的hook机制,conntrack模块可以检查系统中进出的每个网络数据包,在contrack table维护,比如接收到客户端发起的一个TCP SYNC数据包,conntrack会将数据包的源IP地址、目标IP地址、网络协议号、源端口号、目标端口号封装套一个tuple结构体,并tuple的HASH值,记录到初始的contrack table中,将数据包源IP地址和目标IP地址反转、源端口号和目标端口号反转加上网络协议号记录到回应的contrack table中,当服务端接收的客户端的TCP SYNC数据包后,作为TCP ACK回应时,conntrack通过封装tuple结构,并运算HASH,在回应的contrack table中查询到相匹配的记录,标记数据包的连接状态为“等待确认”,待客户端和服务端三次握手完成握手后,标记数据包的连接状态为“已建立连接”。
然而现有技术中传统Linux内核的连接跟踪方法,存在诸多问题:
1、在多核的处理器上,Linux内核为了保障conntrack table的在并发读写过程中的一致性,会采用锁的方式保护conmtrack table读写操作,随着服务器的多核心数量的提升,conntrack的处理性能不足;
2、传统Linux内核的conntrack容易被造成新建连接泛洪攻击,大量的新建连接会导致内存溢出,并影响已有连接的查询的性能,最终网络数据包处理失效问题;
3、用以承载数据处理的装置,在长时间的使用过程中,容易被外部灰尘所侵入,干扰元件正常运转,无法对灰尘进行有效捕捉与隔绝。
因此需要一种控制转发分离的网络连接跟踪实现方法及装置解决上述问题。
发明内容
(一)解决的技术问题
针对现有技术所存在的上述缺点,本发明提供了一种控制转发分离的网络连接跟踪实现方法及装置,能够有效地解决现有技术随着服务器的多核心数量的提升,conntrack的处理性能不足,传统Linux内核的conntrack容易被造成新建连接泛洪攻击,大量的新建连接会导致内存溢出,并影响已有连接的查询的性能,最终网络数据包处理失效问题,用以承载数据处理的装置,在长时间的使用过程中,容易被外部灰尘所侵入,干扰元件正常运转,无法对灰尘进行有效捕捉与隔绝的问题。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现,
本发明公开了一种控制转发分离的网络连接跟踪实现方法,包括:
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内核的conntracktable更新信息,并将更新信息获取更新到共享内存中;
S8:如果更新状态不是删除,则提取conntrack table的更新信息的回应方向的五元组信息,计算五元组信息的HASH值,通过HASH值查询共享内存HashMap索引,获取第一个Contntack Elemnet,获取list_head,通过list_head的下一跳数组下标,提取conntackpool中对应的Contntack Elemnet与数据包的回应方向进行匹配;
S9:如果是删除操作,则提取conntrack table的更新信息的回应方向的五元组信息,计算五元组信息的HASH值,通过HASH值查询共享内存HashMap索引,获取第一个Contntack Elemnet,获取list_head,通过list_head的下一跳数组下标,提取conntackpool中对应的Contntack Elemnet与数据包的回应方向进行匹配;
S10:启用conntrack table共享内存,conntrack table共享内存包括:conntrackpool和HashMap索引,conntrack pool采用数组形式,在初始化的过程中,会创建一个大容量连续的内存空间,用于存放在conntack element连接跟踪记录信息。
更进一步地,所述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标记位标记为已占用,并且状态为已建立连接。
更进一步地,所述S4中初始方向的匹配规则,包括以下步骤:
S401:将数据包的源IP地址与Contntack Elemnet中的reply_src_ip,即回应的源IP地址,进行对比;
S402:将数据包的目标IP地址与Contntack Elemnet中的reply_dst_ip,即回应的目标IP,进行对比;
S403:将数据包的源端口与Contntack Elemnet中的reply_src_port,即回应的源端口,进行对比;
S404:将数据包的目标端口与Contntack Elemnet中的reply_dst_port,即回应的目标端口,进行对比;
S405:将数据包的协会号与Contntack Elemnet中的proto,即协议号;
S406:判断flag标记位标记为已占用。
更进一步地,所述S6中的更新操作过程,包括:新增、修改、删除。
更进一步地,所述S8中的Contntack Elemnet与数据包的回应方向进行匹配的结果,包括:S801:如果匹配不命中,表示新增操作,在共享内存的conntrack pool获取一个标记位为未占用的conntrack element,将标记位记录为已占用,将conntrack table的更新信息写入到conntrack element,并将计算conntrack element的回应方向的五元组信息的HASH值以及数据下标,加入到共享内存的HashMap索引中;S802:如果匹配命中,表示修改操作,根据conntrack table的更新信息修改Contntack Elemnet。
更进一步地,所述S9中Contntack Elemnet与数据包的回应方向进行匹配的结果,包括:S901:如果匹配命中,修改Contntack Elemnet的flag标记位为未占用;S902:如果匹配未命中,不进行处理。
一种控制转发分离的网络连接跟踪装置,包括处理器主体,所述处理器主体的内部安装有处理显卡,所述处理器主体的正面铰接有盖板,所述处理器主体的右端连通有水幕形成箱,所述处理器主体的表面设置有水幕机构,所述处理器主体的内部设置有除湿机构;
所述水幕机构包括微型水泵,且微型水泵安装在处理器主体的顶端,所述微型水泵的出水端安装有出水管,所述出水管的底端均匀连通有分流管,所述水幕形成箱的内部设置有水幕板,所述水幕板的边缘处与水幕形成箱的内壁固定连接,所述微型水泵的入水端安装有入水管,所述处理器主体的底端套设有集水箱,所述入水管与集水箱相连通,所述集水箱的表面开设有注水口,所述集水箱的左右两侧均匀插接有矩形铜管,所述矩形铜管延伸至集水箱的内部;所述水幕形成箱与集水箱通过滤渣机构相连接;所述除湿机构包括安装壳,所述安装壳与处理器主体的左右相连通,所述安装壳的内部安装有风机,所述水幕形成箱的内部固定连接有固定架,所述固定架的内部转动连接有转轴杆,所述转轴杆的表面固定连接有吸潮板。
更进一步地,所述风机中心轴的右端固定连接有中轴杆,所述中轴杆的表面铰接有第一套杆,所述第一套杆的内部滑动连接有第二套杆,所述第二套杆的内部滑动连接有第三套杆,所述第三套杆的右端固定连接有固定插块,所述固定插块插设在转轴杆的内部,所述转轴杆的顶端插设有拉杆,所述拉杆的底端延伸至固定插块的内部,所述拉杆的表面套设有扭力弹簧,所述扭力弹簧的一端与拉杆的表面固定连接,所述拉杆的另一端与转轴杆的表面固定连接。
更进一步地,所述滤渣机构包括出水口,所述出水口与水幕形成箱的底端相连通,所述出水口底端设置有滤液筒,所述滤液筒的内部设置有滤板,所述滤板的边缘处与滤液筒的内壁固定连接,所述滤液筒的底端通过螺纹转动连接有螺筒,所述螺筒的底端与集水箱的顶端相连通。
(三)有益效果
采用本发明提供的技术方案,与已知的公有技术相比,具有如下有益效果,
1、本发明通过利用DPDK多线程高效的报文处理能力,提升传统Linux conntrack连接跟踪状态的数据包处理性能,通过多并发无锁的共享内存设计,有效提升DPDK多线程的并发处理性能,设计只有同步模块可对conntrack table共享内存进行写操作,并且删除conntrack table共享内存的记录操作只是通过标记位记录为可写,不会真正删除数据,解决了传统Linux内核的conntrack模块在多核并行处理模块上,由于锁的方式导致contrack性能不佳的问题。
2、本发明通过增加在conntrack快速转发通道与conntrack慢速处理通道之间加入限速计数器的措施,有效地缓解网络泛洪攻击对Linux内核的影响,利用DPDK高效处理大大提升拦截网络泛洪攻击报文的效率,由于共享内存设计在用户态,可摆脱Linux内核conntrack table的内存限制,有效防止由于Linux内核conntrack table的内存溢出导致“已建立连接”的数据报文转发异常,减低维护成本。
3、本发明通过conntrack pool的方式可有效利用大页内存和CPU高效缓存机制,提升conntrack pool的读取效率,本发明将初始和回应的conntack记录合并成一个conntack element连接跟踪记录信息,这样做可以减少conntrack快速转发处理模块查询次数,提升性能,缓解传统Linux内核的conntrack模块在高并发新建连接、新建连接泛洪攻击场景下,导致内存溢出引起的网络数据包处理失效问题。
4、本发明通过增加水幕机构,当处理显卡以及处理器主体内部的相关部件在保持运转时,用户可启动微型水泵与风机,将集水箱中的通过诸多分流管分流洒至水幕板表面,在水幕形成箱内形成水幕,当风机启动时,将处理器主体内部相关元件的热风及灰尘吹出,使其与水幕接触,水幕流下的水进入集水箱中,该装置在加速空气流通的同时,通过水幕对热量吸收,并对来自内部与外部的灰尘进行吸附与阻隔,防止其进入处理器主体内部,腐蚀处理显卡以及相关元件,并且防止灰尘再度进入处理器主体外部,防止其再度在外部循环,对灰尘直接进行捕获,提升处理器主体内部元件的运转时的安全性,并且可营造良好的温度环境,防止温度的不断攀升影响元件运转的性能。
5、本发明通过增加除湿机构,当风机处于运转状态时,通过中轴杆及其相关部件的传动下,使得转轴杆带动吸潮板进行旋转,使得吸潮板在转动过程中,将水幕所散发的水汽进行捕捉,防止其侵入处理器主体内部,当用户需要维修或者更换处理器主体内部相关配件时,用户拉动拉杆移出固定插块,然后用户将第三套杆收入第二套杆,将第二套杆收入第一套杆,将第一套杆转动使其在中轴杆上垂下,然后用户可对处理器主体内部部件的使用状态进行查看与分辨,并进行相应的维修与更换。
6、本发明通过增加滤除机构,从分流管中喷下的水幕,在水幕形成箱中通过出水口流入滤液筒中,由滤板对水流中的灰尘等杂质进行过滤,最终通过螺筒回流至集水箱内部,当用户需要清洁滤板与滤液筒时,用户可转动滤液筒,使其在螺筒上转动,当滤液筒转离螺筒后,用户可将滤液筒取下,对其内部及滤板进行清洁,从而使得该装置能够有效地保证水幕用水的清洁性,保证对灰尘捕捉的效果,对滤板和滤液筒的清洁与更换较为方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种控制转发分离的网络连接跟踪实现方法的架构示意图;
图2为一种控制转发分离的网络连接跟踪实现方法的共享内存的结构演示图;
图3为一种控制转发分离的网络连接跟踪装置的正视立体结构图;
图4为一种控制转发分离的网络连接跟踪装置的侧视立体结构图;
图5为一种控制转发分离的网络连接跟踪装置中除湿机构的爆炸立体结构图;
图6为一种控制转发分离的网络连接跟踪装置中滤除机构的爆炸立体结构图。
图中的标号分别代表,1、处理器主体;2、处理显卡;3、盖板;4、水幕形成箱;5、微型水泵;6、出水管;7、入水管;8、集水箱;9、水幕板;10、分流管;11、矩形铜管;12、注水口;13、安装壳;14、风机;15、中轴杆;16、第一套杆;17、第二套杆;18、第三套杆;19、拉杆;20、吸潮板;21、固定插块;22、扭力弹簧;23、转轴杆;24、固定架;25、出水口;26、滤液筒;27、滤板;28、螺筒。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合实施例对本发明作进一步的描述。
实施例1
本实施例的一种控制转发分离的网络连接跟踪实现方法,如图1和图2所示,包括
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内核的conntracktable更新信息,并将更新信息获取更新到共享内存中;
S8:如果更新状态不是删除,则提取conntrack table的更新信息的回应方向的五元组信息,计算五元组信息的HASH值,通过HASH值查询共享内存HashMap索引,获取第一个Contntack Elemnet,获取list_head,通过list_head的下一跳数组下标,提取conntackpool中对应的Contntack Elemnet与数据包的回应方向进行匹配;
S9:如果是删除操作,则提取conntrack table的更新信息的回应方向的五元组信息,计算五元组信息的HASH值,通过HASH值查询共享内存HashMap索引,获取第一个Contntack Elemnet,获取list_head,通过list_head的下一跳数组下标,提取conntackpool中对应的Contntack Elemnet与数据包的回应方向进行匹配;
S10:启用conntrack table共享内存,conntrack table共享内存包括:conntrackpool和HashMap索引,conntrack pool采用数组形式,在初始化的过程中,会创建一个大容量连续的内存空间,用于存放在conntack element连接跟踪记录信息。
本实施例中,步骤S6中的更新操作过程,包括:新增、修改、删除。
本实施例中,步骤S8中的Contntack Elemnet与数据包的回应方向进行匹配的结果,包括:
S801:如果匹配不命中,表示新增操作,在共享内存的conntrack pool获取一个标记位为未占用的conntrack element,将标记位记录为已占用,将conntrack table的更新信息写入到conntrack element,并将计算conntrack element的回应方向的五元组信息的HASH值以及数据下标,加入到共享内存的HashMap索引中;
S802:如果匹配命中,表示修改操作,根据conntrack table的更新信息修改Contntack Elemnet。
步骤S9中Contntack Elemnet与数据包的回应方向进行匹配的结果,包括:
S901:如果匹配命中,修改Contntack Elemnet的flag标记位为未占用;
S902:如果匹配未命中,不进行处理。
本实施例在具体实施时,利用DPDK多线程高效的报文处理能力,提升传统Linuxconntrack连接跟踪状态的数据包处理性能,通过多并发无锁的共享内存设计,有效提升DPDK多线程的并发处理性能,设计只有同步模块可对conntrack table共享内存进行写操作,并且删除conntrack table共享内存的记录操作只是通过标记位记录为可写,不会真正删除数据;
在conntrack快速转发通道与conntrack慢速处理通道之间加入限速计数器的措施,有效地缓解网络泛洪攻击对Linux内核的影响,利用DPDK高效处理大大提升拦截网络泛洪攻击报文的效率,由于共享内存设计在用户态,可摆脱Linux内核conntrack table的内存限制;
通过conntrack pool的方式可有效利用大页内存和CPU高效缓存机制,提升conntrack pool的读取效率,将初始和回应的conntack记录合并成一个conntack element连接跟踪记录信息,减少conntrack快速转发处理模块查询次数,提升性能,缓解传统Linux内核的conntrack模块在高并发新建连接、新建连接泛洪攻击场景下,导致内存溢出引起的网络数据包处理失效问题。
实施例2
在其他层面,本实施例还提供一种回应方向的匹配规则,步骤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标记位标记为已占用,并且状态为已建立连接。
本实施例在具体实施时,有效防止由于Linux内核conntrack table的内存溢出导致“已建立连接”的数据报文转发异常,减低维护成本。
实施例3
本实施例中,提供一种初始方向的匹配规则,包括以下步骤:S401:将数据包的源IP地址与Contntack Elemnet中的reply_src_ip,即回应的源IP地址,进行对比;
S402:将数据包的目标IP地址与Contntack Elemnet中的reply_dst_ip,即回应的目标IP,进行对比;
S403:将数据包的源端口与Contntack Elemnet中的reply_src_port,即回应的源端口,进行对比;
S404:将数据包的目标端口与Contntack Elemnet中的reply_dst_port,即回应的目标端口,进行对比;
S405:将数据包的协会号与Contntack Elemnet中的proto,即协议号;
S406:判断flag标记位标记为已占用。
本实施例在具体实施时,在索引HASH链表内部所有数据后五元组匹配命中的情况下,则提供一种用以对比Contntack Elemnet进行初始方向的匹配方式。
实施例4
本实施例中,提供一种控制转发分离的网络连接跟踪装置,如图3和图4所示,包括处理器主体1,处理器主体1的内部安装有处理显卡2,处理器主体1的正面铰接有盖板3,处理器主体1的右端连通有水幕形成箱4,处理器主体1的表面设置有水幕机构,水幕机构包括微型水泵5,且微型水泵5安装在处理器主体1的顶端,微型水泵5的出水端安装有出水管6,出水管6的底端均匀连通有分流管10,水幕形成箱4的内部设置有水幕板9,水幕板9的边缘处与水幕形成箱4的内壁固定连接,微型水泵5的入水端安装有入水管7,处理器主体1的底端套设有集水箱8,入水管7与集水箱8相连通,集水箱8的表面开设有注水口12,集水箱8的左右两侧均匀插接有矩形铜管11,矩形铜管11延伸至集水箱8的内部。
本实施例在具体实施时,启动后通过处理显卡2对缓存数据的接收与传递进行处理,当处理显卡2以及处理器主体1内部的相关部件在保持运转时,提前通过注水口12为集水箱8中注入清水,然后用户可启动微型水泵5与风机14,此过程中,微型水泵5将集水箱8中的水通过入水管7输送至出水管6,并通过诸多分流管10分流洒至水幕板9表面,并通过水幕板9的斜面处缓速流下,并在水幕形成箱4内形成水幕,当风机14启动时,将处理器主体1内部相关元件的热风及灰尘吹出,使其与水幕接触,水幕流下的水进入集水箱8中,通过矩形铜管11进行散热,该装置在加速空气流通的同时,通过水幕对热量吸收,并对来自内部与外部的灰尘进行吸附与阻隔,防止其进入处理器主体1内部,腐蚀处理显卡2以及相关元件,并且防止灰尘再度进入处理器主体1外部,防止其再度在外部循环。
实施例5
本实施例中,提供一种除湿机构,如图4和图5所示,处理器主体1的内部设置有除湿机构,除湿机构包括安装壳13,安装壳13与处理器主体1的左右相连通,安装壳13的内部安装有风机14,水幕形成箱4的内部固定连接有固定架24,固定架24的内部转动连接有转轴杆23,转轴杆23的表面固定连接有吸潮板20,风机14中心轴的右端固定连接有中轴杆15,中轴杆15的表面铰接有第一套杆16,第一套杆16的内部滑动连接有第二套杆17,第二套杆17的内部滑动连接有第三套杆18,第三套杆18的右端固定连接有固定插块21,固定插块21插设在转轴杆23的内部,转轴杆23的顶端插设有拉杆19,拉杆19的底端延伸至固定插块21的内部,拉杆19的表面套设有扭力弹簧22,扭力弹簧22的一端与拉杆19的表面固定连接,拉杆19的另一端与转轴杆23的表面固定连接。
本实施例在具体实施时,当风机14处于运转状态时,通过中轴杆15及其相关部件的传动下,使得转轴杆23带动吸潮板20进行旋转,使得吸潮板20在转动过程中,将水幕所散发的水汽进行捕捉,防止其侵入处理器主体1内部,当用户需要维修或者更换处理器主体1内部相关配件时,用户可开启盖板3,再拉动拉杆19,使得拉杆19带动扭力弹簧22进行拉伸,并移出固定插块21中,然后用户可将固定插块21拉出转轴杆23,将第三套杆18收入第二套杆17,将第二套杆17收入第一套杆16,将第一套杆16转动使其在中轴杆15上垂下,然后用户可对处理器主体1内部部件的使用状态进行查看与分辨,并进行相应的维修与更换。
实施例6
本实施例中,提供一种滤渣机构,如图4和图6所示,水幕形成箱4与集水箱8通过滤渣机构相连接,滤渣机构包括出水口25,出水口25与水幕形成箱4的底端相连通,出水口25底端设置有滤液筒26,滤液筒26的内部设置有滤板27,滤板27的边缘处与滤液筒26的内壁固定连接,滤液筒26的底端通过螺纹转动连接有螺筒28,螺筒28的底端与集水箱8的顶端相连通。
本实施例在具体实施时,来自分流管10中喷下的水幕,在水幕形成箱4中通过出水口25流入滤液筒26中,由滤板27对水流中的灰尘等杂质进行过滤,最终通过螺筒28回流至集水箱8内部,当用户需要清洁滤板27与滤液筒26时,用户可转动滤液筒26,使其在螺筒28上转动,当滤液筒26转离螺筒28后,用户可将滤液筒26取下,对其内部及滤板27进行清洁。
综上,本发明利用DPDK多线程高效的报文处理能力,提升传统Linux conntrack连接跟踪状态的数据包处理性能,通过多并发无锁的共享内存设计,有效提升DPDK多线程的并发处理性能,设计只有同步模块可对conntrack table共享内存进行写操作,并且删除conntrack table共享内存的记录操作只是通过标记位记录为可写,不会真正删除数据,解决了传统Linux内核的conntrack模块在多核并行处理模块上,由于锁的方式导致contrack性能不佳的问题;通过在conntrack快速转发通道与conntrack慢速处理通道之间加入限速计数器的,有效地缓解网络泛洪攻击对Linux内核的影响,利用DPDK高效处理大大提升拦截网络泛洪攻击报文的效率,由于共享内存设计在用户态,可摆脱Linux内核conntracktable的内存限制;通过conntrack pool的方式可有效利用大页内存和CPU高效缓存机制,提升conntrack pool的读取效率,将初始和回应的conntack记录合并成一个conntackelement连接跟踪记录信息,这样做可以减少conntrack快速转发处理模块查询次数,提升性能,缓解传统Linux内核的conntrack模块在高并发新建连接、新建连接泛洪攻击场景下,导致内存溢出引起的网络数据包处理失效问题;在启动后通过处理显卡2对缓存数据的接收与传递进行处理,当处理显卡2以及处理器主体1内部的相关部件在保持运转时,提前通过注水口12为集水箱8中注入清水,然后用户可启动微型水泵5与风机14,此过程中,微型水泵5将集水箱8中的水通过入水管7输送至出水管6,并通过诸多分流管10分流洒至水幕板9表面,并通过水幕板9的斜面处缓速流下,并在水幕形成箱4内形成水幕,当风机14启动时,将处理器主体1内部相关元件的热风及灰尘吹出,使其与水幕接触,水幕流下的水进入集水箱8中,通过矩形铜管11进行散热,该装置在加速空气流通的同时,通过水幕对热量吸收,并对来自内部与外部的灰尘进行吸附与阻隔,防止其进入处理器主体1内部,腐蚀处理显卡2以及相关元件,并且防止灰尘再度进入处理器主体1外部,防止其再度在外部循环;当风机14处于运转状态时,通过中轴杆15及其相关部件的传动下,使得转轴杆23带动吸潮板20进行旋转,使得吸潮板20在转动过程中,将水幕所散发的水汽进行捕捉,防止其侵入处理器主体1内部,当用户需要维修或者更换处理器主体1内部相关配件时,用户可开启盖板3,再拉动拉杆19,使得拉杆19带动扭力弹簧22进行拉伸,并移出固定插块21中,然后用户可将固定插块21拉出转轴杆23,将第三套杆18收入第二套杆17,将第二套杆17收入第一套杆16,将第一套杆16转动使其在中轴杆15上垂下,然后用户可对处理器主体1内部部件的使用状态进行查看与分辨,并进行相应的维修与更换;来自分流管10中喷下的水幕,在水幕形成箱4中通过出水口25流入滤液筒26中,由滤板27对水流中的灰尘等杂质进行过滤,最终通过螺筒28回流至集水箱8内部,当用户需要清洁滤板27与滤液筒26时,用户可转动滤液筒26,使其在螺筒28上转动,当滤液筒26转离螺筒28后,用户可将滤液筒26取下,对其内部及滤板27进行清洁。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

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的下一跳数组下标,提取conntackpool中对应的Contntack Elemnet与数据包的回应方向进行匹配;
S9:如果是删除操作,则提取conntrack table的更新信息的回应方向的五元组信息,计算五元组信息的HASH值,通过HASH值查询共享内存HashMap索引,获取第一个ContntackElemnet,获取list_head,通过list_head的下一跳数组下标,提取conntack pool中对应的Contntack Elemnet与数据包的回应方向进行匹配;
S10:启用conntrack table共享内存,conntrack table共享内存包括:conntrackpool和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 Elemnet中的reply_src_port,即回应的源端口,进行对比;
S404:将数据包的目标端口与Contntack Elemnet中的reply_dst_port,即回应的目标端口,进行对比;
S405:将数据包的协会号与Contntack Elemnet中的proto,即协议号;
S406:判断flag标记位标记为已占用。
4.根据权利要求1所述的一种控制转发分离的网络连接跟踪实现方法,其特征在于,所述S6中的更新操作过程,包括:新增、修改、删除。
5.根据权利要求1所述的一种控制转发分离的网络连接跟踪实现方法,其特征在于,所述S8中的Contntack Elemnet与数据包的回应方向进行匹配的结果,包括:S801:如果匹配不命中,表示新增操作,在共享内存的conntrack pool获取一个标记位为未占用的conntrack element,将标记位记录为已占用,将conntrack table的更新信息写入到conntrack element,并将计算conntrack element的回应方向的五元组信息的HASH值以及数据下标,加入到共享内存的HashMap索引中;S802:如果匹配命中,表示修改操作,根据conntrack table的更新信息修改Contntack Elemnet。
6.根据权利要求1所述的一种控制转发分离的网络连接跟踪实现方法,其特征在于,所述S9中Contntack Elemnet与数据包的回应方向进行匹配的结果,包括:S901:如果匹配命中,修改Contntack Elemnet的flag标记位为未占用;S902:如果匹配未命中,不进行处理。
7.一种控制转发分离的网络连接跟踪装置,所述装置是对如权利要求1-6中任意一项所述的一种控制转发分离的网络连接跟踪方法的实施装置,其特征在于,包括处理器主体(1),所述处理器主体(1)的内部安装有处理显卡(2),所述处理器主体(1)的正面铰接有盖板(3),所述处理器主体(1)的右端连通有水幕形成箱(4),所述处理器主体(1)的表面设置有水幕机构,所述处理器主体(1)的内部设置有除湿机构;所述水幕机构包括微型水泵(5),且微型水泵(5)安装在处理器主体(1)的顶端,所述微型水泵(5)的出水端安装有出水管(6),所述出水管(6)的底端均匀连通有分流管(10),所述水幕形成箱(4)的内部设置有水幕板(9),所述水幕板(9)的边缘处与水幕形成箱(4)的内壁固定连接,所述微型水泵(5)的入水端安装有入水管(7),所述处理器主体(1)的底端套设有集水箱(8),所述入水管(7)与集水箱(8)相连通,所述集水箱(8)的表面开设有注水口(12),所述集水箱(8)的左右两侧均匀插接有矩形铜管(11),所述矩形铜管(11)延伸至集水箱(8)的内部;所述水幕形成箱(4)与集水箱(8)通过滤渣机构相连接;所述除湿机构包括安装壳(13),所述安装壳(13)与处理器主体(1)的左右相连通,所述安装壳(13)的内部安装有风机(14),所述水幕形成箱(4)的内部固定连接有固定架(24),所述固定架(24)的内部转动连接有转轴杆(23),所述转轴杆(23)的表面固定连接有吸潮板(20)。
8.根据权利要求7所述的一种控制转发分离的网络连接跟踪装置,其特征在于,所述风机(14)中心轴的右端固定连接有中轴杆(15),所述中轴杆(15)的表面铰接有第一套杆(16),所述第一套杆(16)的内部滑动连接有第二套杆(17),所述第二套杆(17)的内部滑动连接有第三套杆(18),所述第三套杆(18)的右端固定连接有固定插块(21),所述固定插块(21)插设在转轴杆(23)的内部,所述转轴杆(23)的顶端插设有拉杆(19),所述拉杆(19)的底端延伸至固定插块(21)的内部,所述拉杆(19)的表面套设有扭力弹簧(22),所述扭力弹簧(22)的一端与拉杆(19)的表面固定连接,所述拉杆(19)的另一端与转轴杆(23)的表面固定连接。
9.根据权利要求7所述的一种控制转发分离的网络连接跟踪装置,其特征在于,所述滤渣机构包括出水口(25),所述出水口(25)与水幕形成箱(4)的底端相连通,所述出水口(25)底端设置有滤液筒(26),所述滤液筒(26)的内部设置有滤板(27),所述滤板(27)的边缘处与滤液筒(26)的内壁固定连接,所述滤液筒(26)的底端通过螺纹转动连接有螺筒(28),所述螺筒(28)的底端与集水箱(8)的顶端相连通。
CN202211061698.9A 2022-10-25 2022-10-25 一种控制转发分离的网络连接跟踪实现方法 Active CN115549976B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211061698.9A CN115549976B (zh) 2022-10-25 2022-10-25 一种控制转发分离的网络连接跟踪实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211061698.9A CN115549976B (zh) 2022-10-25 2022-10-25 一种控制转发分离的网络连接跟踪实现方法

Publications (2)

Publication Number Publication Date
CN115549976A true CN115549976A (zh) 2022-12-30
CN115549976B CN115549976B (zh) 2023-10-27

Family

ID=84725047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211061698.9A Active CN115549976B (zh) 2022-10-25 2022-10-25 一种控制转发分离的网络连接跟踪实现方法

Country Status (1)

Country Link
CN (1) CN115549976B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012151904A1 (zh) * 2011-08-19 2012-11-15 中兴通讯股份有限公司 一种数据报文转发方法及装置
WO2012167559A1 (zh) * 2011-06-10 2012-12-13 中兴通讯股份有限公司 一种快速转发数据包的方法及三层设备
CN108848202A (zh) * 2018-06-21 2018-11-20 Oppo(重庆)智能科技有限公司 电子装置、数据传输方法及相关产品
CN111614631A (zh) * 2020-04-29 2020-09-01 江苏深网科技有限公司 一种用户态流水线架构防火墙系统
CN113596019A (zh) * 2021-07-27 2021-11-02 中国南方电网有限责任公司 高性能网络流量数据表示和提取方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012167559A1 (zh) * 2011-06-10 2012-12-13 中兴通讯股份有限公司 一种快速转发数据包的方法及三层设备
WO2012151904A1 (zh) * 2011-08-19 2012-11-15 中兴通讯股份有限公司 一种数据报文转发方法及装置
CN108848202A (zh) * 2018-06-21 2018-11-20 Oppo(重庆)智能科技有限公司 电子装置、数据传输方法及相关产品
CN111614631A (zh) * 2020-04-29 2020-09-01 江苏深网科技有限公司 一种用户态流水线架构防火墙系统
CN113596019A (zh) * 2021-07-27 2021-11-02 中国南方电网有限责任公司 高性能网络流量数据表示和提取方法和系统

Also Published As

Publication number Publication date
CN115549976B (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
US7519707B2 (en) Facilitating monitoring and simultaneously analyzing of network events of multiple hosts via a single network interface
US9712544B2 (en) Direct cache access for network input/output devices
CN112202624A (zh) 网络靶场场景编排的真实设备快速接入系统与方法
CN115549976A (zh) 一种控制转发分离的网络连接跟踪实现方法及装置
CN113542311B (zh) 一种实时检测失陷主机并回溯的方法
CN112399786B (zh) 一种电子信息抗干扰器
CN110022303A (zh) Arp双向防御系统及方法
CN208572691U (zh) 一种除湿器机柜
CN114598740B (zh) 一种微隔离数据抓取方法以及系统
CN102653914B (zh) 除去装置以及烘干装置
CN213783840U (zh) 一种具有除尘散热功能的物联网控制机箱
CN211349269U (zh) 一种具有散热系统的电子装置
CN210958392U (zh) 一种具有散热功能的计算机用路由器
CN205140006U (zh) 社会保障复合卡管理装置
CN210776557U (zh) 一种主机间大批量数据处理装置
CN214852502U (zh) 一种数字会议系统中央控制主机用快速散热机构
CN102653915B (zh) 除去装置以及烘干装置
CN205427921U (zh) 基于大数据信息设备状态检修的支持系统
CN212340678U (zh) 一种净水器高低压测试机
CN114268426B (zh) 面向ICMPv6 DoS攻击与DDoS攻击的检测方法及系统
CN101355462B (zh) 一种网络设备的管理信息库及其监测网站与用户的方法
CN214665133U (zh) 一种降温防凝露性能好的新风系统
CN220856110U (zh) 一种便于拆卸的ssd硬盘
CN212257086U (zh) 一种便于防尘的箱式变压器
CN218419007U (zh) 一种防磁柜的防潮结构

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant