CN111371779B - 一种基于dpdk虚拟化管理***的防火墙及其实现方法 - Google Patents
一种基于dpdk虚拟化管理***的防火墙及其实现方法 Download PDFInfo
- Publication number
- CN111371779B CN111371779B CN202010134854.4A CN202010134854A CN111371779B CN 111371779 B CN111371779 B CN 111371779B CN 202010134854 A CN202010134854 A CN 202010134854A CN 111371779 B CN111371779 B CN 111371779B
- Authority
- CN
- China
- Prior art keywords
- rule
- data
- data packet
- session
- packet
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 12
- 230000009471 action Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 14
- 238000012423 maintenance Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013481 data capture Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于DPDK虚拟化管理***的防火墙及其实现方法,本发明利用DPDK的轮询技术拦截中断,解决中断处理带来的损耗问题,并利用UIO技术绕过内核协议栈,通过UIO技术将网卡收到的报文映射到用户态协议栈f‑stack处理的工作原理,大幅较少捕获数据包时的性能消耗,提高防火墙处理数据包的性能。在数据包进入f‑stack协议栈之前增加了一条快速转发路径,对DPDK捕获到的数据包进行会话检查,对于已经建立会话的流,直接从记下的端口转发出去,以降低数据包在经过协议栈的过程中造成的性能损失,提高包转发速率,进而提高虚拟化管理***防火墙的数据处理性能。
Description
技术领域
本发明涉及防火墙技术领域,特别是一种基于DPDK虚拟化管理***的防火墙及其实现方法。
背景技术
随着光纤技术的发展,网络带宽快速提升***业务量的增加,软件技术性能基于传统的网络协议栈的防火墙对数据包的处理流程复杂,开销较大,无法满足人们对于高性能处理密集数据的要求,因此研发高性能防火墙具有十分重要的意义。
发明内容
本发明的目的是提供一种基于DPDK虚拟化管理***的防火墙及其实现方法,旨在解决现有技术中防火墙对数据包的处理流程复杂、性能开销大的问题,实现提高虚拟化管理***防火墙的数据处理性能,减少性能消耗。
为达到上述技术目的,本发明提供了一种基于DPDK虚拟化管理***的防火墙,所述防火墙包括:
数据包捕获模块,用于基于DPDK接口,利用轮询模式批量接收网络数据包,并将数据包从内核态映射到用户态;
会话查询模块,用于从数据包中解析出标识数据流的五元组数据信息后进行会话查询,若查询失败则尝试规则匹配,并在规则允许的情况下新建会话;若查询成功则进入快转路径;
规则查询模块,用于采用基于分治法的规则匹配算法,将规则集分为多个子规则集,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法,并在匹配成功后进入f-stack协议栈;
快转模块,用于对已经建立会话且该条数据流无需通过协议栈处理的数据包进行快速转发;
管理模块,用于将数据包的包头信息和数据包流向记录到日志文件中,并将规则表单写入防火墙规则文件中,对防火墙网络策略进行管理。
优选地,所述从数据包中解析出标识数据流的五元组数据信息后进行会话查询具体为:
将IP报文的源IP地址、目的IP地址、源端口、目的端口、协议类型作为一个五元组,计算出哈希值用以标识数据流,利用哈希查找算法查询该流是否在会话表中。
优选地,所述规则查询模块在进行规则查询时,将数据包按照规则优先级从高到低的顺序依次尝试匹配子规则集中的规则,若匹配成功则执行规则指定的动作且不再尝试匹配后面的规则,否则一直尝试匹配下一条规则直到最后优先级最低的默认规则匹配完毕,返回查询结果,若规则允许则将数据包交给上层f-stack协议栈处理。
优选地,所述快转模块在进行快速转发时,当一条数据流的第一个报文通过查找路由表转发后,将转发信息记录到会话表中,该数据流后续报文的转发可通过直接查找会话表进行转发。
优选地,所述f-stack协议栈需要处理的数据包包括接收的第一个数据包、MPLS包、ARP包、VLAN包,且还需要记录每个新建会话的信息,包括目的MAC地址和数据包的转发端口。
本发明还提供了一种基于DPDK虚拟化管理***的防火墙实现方法,所述方法包括以下操作:
基于DPDK接口,利用轮询模式批量接收业务网卡发送的网络数据包,并将数据包从内核态映射到用户态;
从数据包中解析出标识数据流的五元组数据信息后进行会话查询,若查询失败则尝试规则匹配,并在规则允许的情况下新建会话;若查询成功则进入快转路径;
对于规则匹配,采用基于分治法的规则匹配算法,将规则集分为多个子规则集,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法,并在匹配成功后进入f-stack协议栈,并通过协议栈处理返回至业务网卡;
对已经建立会话且该条数据流无需通过协议栈处理的数据包进行快速转发返回至业务网卡。
优选地,所述从数据包中解析出标识数据流的五元组数据信息后进行会话查询具体为:
将IP报文的源IP地址、目的IP地址、源端口、目的端口、协议类型作为一个五元组,计算出哈希值用以标识数据流,利用哈希查找算法查询该流是否在会话表中。
优选地,在规则匹配时,将数据包按照规则优先级从高到低的顺序依次尝试匹配子规则集中的规则,若匹配成功则执行规则指定的动作且不再尝试匹配后面的规则,否则一直尝试匹配下一条规则直到最后优先级最低的默认规则匹配完毕,返回查询结果,若规则允许则将数据包交给上层f-stack协议栈处理。
优选地,在进行快速转发时,当一条数据流的第一个报文通过查找路由表转发后,将转发信息记录到会话表中,该数据流后续报文的转发可通过直接查找会话表进行转发。
优选地,所述f-stack协议栈需要处理的数据包包括接收的第一个数据包、MPLS包、ARP包、VLAN包,且还需要记录每个新建会话的信息,包括目的MAC地址和数据包的转发端口。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
与现有技术相比,本发明通过设置数据包捕获模块、会话查询模块、规则查询模块、快转模块以及管理模块实现防火墙的设计,利用DPDK的轮询技术拦截中断,解决中断处理带来的损耗问题,并利用UIO技术绕过内核协议栈,通过UIO技术将网卡收到的报文映射到用户态协议栈f-stack处理的工作原理,大幅较少捕获数据包时的性能消耗,提高防火墙处理数据包的性能。在数据包进入f-stack协议栈之前增加了一条快速转发路径,对DPDK捕获到的数据包进行会话检查,对于已经建立会话的流,直接从记下的端口转发出去,以降低数据包在经过协议栈的过程中造成的性能损失,提高包转发速率。本发明还优化了规则匹配算法,利用基于分治法的规则查询算法进行规则匹配,根据协议类型将规则集划分多个子规则集,减少规则匹配是规则集数量,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法,有效提高包在子规则集中的查询效率,同时也提高了规则查询模块整体的处理性能,进而提高虚拟化管理***防火墙的数据处理性能。
附图说明
图1为本发明实施例中所提供的一种基于DPDK虚拟化管理***的防火墙***结构示意图;
图2为本发明实施例中所提供的一种数据包捕获并行处理示意图。
具体实施方式
为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
下面结合附图对本发明实施例所提供的一种基于DPDK虚拟化管理***的防火墙及其实现方法进行详细说明。
如图1所示,本发明公开了一种基于DPDK虚拟化管理***的防火墙,所述防火墙包括:
数据包捕获模块,用于基于DPDK接口,利用轮询模式批量接收网络数据包,并将数据包从内核态映射到用户态;
会话查询模块,用于从数据包中解析出源IP地址、目的IP地址、源端口、目的端口以及协议类型信息后进行会话查询,若查询失败则尝试规则匹配,并在规则允许的情况下新建会话;若查询成功则进入快转路径;
规则查询模块,用于采用基于分治法的规则匹配算法,将规则集分为多个子规则集,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法,并在匹配成功后进入f-stack协议栈;
快转模块,用于对已经建立会话且该条数据流无需通过协议栈处理的数据包进行快速转发;
管理模块,用于将数据包的包头信息和数据包流向记录到日志文件中,并将规则表单写入防火墙规则文件中,对防火墙网络策略进行管理。
在本发明实施例中,数据包捕获模块、会话查询模块、规则查询模块以及快转模块的流量通过业务网卡,实现防火墙***的业务通信,提升防火墙性能,管理模块通过Linux协议栈对***进行配置和管理,用户可以通过管理网卡对***进行远程操作。
所述数据包捕获模块为基于DPDK(Data Plane Development Kit,数据平面开发套件)实现的,DPDK提供了数据包处理函数库和驱动集合,为实现数据包捕获模块提供通信接口,便于将数据面和控制面的操作进行整合以提高数据包处理效率。通过数据包捕获模块将接收到的数据包从内核态映射到用户态,数据包的捕获性能直接影响整个***的性能。
由于DPDK是多核多线程架构,可以并行的捕获数据包,如图2所示。
利用CPU亲和性将各个执行线程与不同的CPU逻辑核进行绑定,单独为每个线程分配一个CPU逻辑核,进而将网卡接收的报文分配到各个CPU上处理,减少单个CPU核心的处理压力,同时,由于CPU上运行的单个线程,并且每个逻辑CPU用于存储报文的内存池相互独立,无需因多个线程访问同一个报文队列而对队列进行加锁,减少了锁开销,可以减少CPU中断和资源竞争。
具备多队列的网卡,可以利用RSS技术对数据流计算哈希值,不同的数据流按照一定的分发策略选择不同的队列,进而交给特定的CPU线程处理,可实现使接收报文在多个CPU之间负载均衡、按流分发。同时由于DPDK的网卡驱动借助工作在用户态,利用轮询模式批量接收网络数据包,通过UIO(Userspace I/O)技术映射到用户态供应用程序使用,无需像传统协议栈的工作方式,对数据包进行内存拷贝,大大提高了数据的捕获性能。
所述会话查询模块包括会话的数据结构设计、会话表的维护和会话查询三个部分,用于从DPDK捕获到的数据包中解析出源IP地址、目的IP地址、源端口、目的端口以及协议类型信息后进行会话查询,若查询失败则尝试规则匹配,并在规则允许的情况下新建会话;若查询成功则进入快转路径。
在该模块中,对于数据结构设计,将IP报文的源IP地址、目的IP地址、源端口、目的端口以及协议类型作为一个五元组,计算出哈希值用以标识数据流,利用哈希查找算法查询该数据流是否在会话列表中。对于会话表的维护,设定一个时间段,定期检查会话表,并且要规定会话的超时时间,一旦超时则从会话表中删除该条会话,通过会话表的维护来保证***的查询会话表的性能维持在较高水平。
所述规则查询模块用于对数据包进行规则查询,防火墙集中的规则包括源/目的IP地址、源/目的端口、源/目的MAC地址、协议类型以及对数据包的处理动作。在本发明实施例中,采用基于分治法的规则匹配算法,将规则集按一定的分类方案分为子规则集,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法。将数据包按规则的优先级从高到低的顺序依次尝试匹配子规则集中的规则,若匹配成功则执行规则指定的动作且不再尝试匹配后面的规则,否则一直尝试匹配下一条规则直到最后优先级最低的默认规则匹配完毕,返回查询结果,若规则允许则将数据包交给上层f-stack(用户态的高性能的网络接入开发包)协议栈处理。
所述快转模块用于报文的快速转发,该模块处理的是已经建立会话且该条数据流无需通过协议栈处理的数据包。
使用五元组(源IP地址、目的IP地址、源端口、目的端口以及协议类型)来标识一条数据流。当一条数据流的第一个报文通过查找路由表转发后,将转发信息记录到会话表中,该数据流后续报文的转发就可以通过直接查找会话表进行转发。因此,只需对数据包进行一次会话查询就可获取到转发信息,然后根据信息将数据包直接转发出去,如此可大大缩减IP报文的排队流程,减少报文的转发时间,提高IP报文的转发速率。
所述f-stack协议栈需要处理的数据包包括接收的第一个数据包、MPLS包、ARP包、VLAN包等。f-stack协议栈还需要记录每个新建会话的信息,包括目的MAC地址和数据包的转发端口,便于快速转发数据包。除此之外,用户态协议栈还提供路由查找功能。
所述管理模块用于对数据包记录进行管理,数据包在经过会话查询模块、快转模块、规则查询模块时将包头信息和数据包流向都将被记录到日志文件中,方便对***的管理和维护。管理模块提供人机交互界面,使用php语言开发服务程序,处理用户提交的规则表单,并讲规则写入到防火墙***的规则文件中,将程序部署到nginx服务器中,再以Web页面的形式呈现给用户,提供对防火墙规则的增、删、改、查等功能,便于用户对网络策略实施进行管理。
本发明实施例通过设置数据包捕获模块、会话查询模块、规则查询模块、快转模块以及管理模块实现防火墙的设计,利用DPDK的轮询技术拦截中断,解决中断处理带来的损耗问题,并利用UIO技术绕过内核协议栈,通过UIO技术将网卡收到的报文映射到用户态协议栈f-stack处理的工作原理,大幅较少捕获数据包时的性能消耗,提高防火墙处理数据包的性能。在数据包进入f-stack协议栈之前增加了一条快速转发路径,对DPDK捕获到的数据包进行会话检查,对于已经建立会话的流,直接从记下的端口转发出去,以降低数据包在经过协议栈的过程中造成的性能损失,提高包转发速率。本发明还优化了规则匹配算法,利用基于分治法的规则查询算法进行规则匹配,根据协议类型将规则集划分多个子规则集,减少规则匹配是规则集数量,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法,有效提高包在子规则集中的查询效率,同时也提高了规则查询模块整体的处理性能,进而提高虚拟化管理***防火墙的数据处理性能。
本发明实施例还公开了一种基于DPDK虚拟化管理***的防火墙实现方法,所述方法包括以下操作:
基于DPDK接口,利用轮询模式批量接收业务网卡发送的网络数据包,并将数据包从内核态映射到用户态;
从数据包中解析出标识数据流的五元组数据信息后进行会话查询,若查询失败则尝试规则匹配,并在规则允许的情况下新建会话;若查询成功则进入快转路径;
对于规则匹配,采用基于分治法的规则匹配算法,将规则集分为多个子规则集,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法,并在匹配成功后进入f-stack协议栈,并通过协议栈处理返回至业务网卡;
对已经建立会话且该条数据流无需通过协议栈处理的数据包进行快速转发返回至业务网卡。
数据包捕获为基于DPDK实现的,DPDK提供了数据包处理函数库和驱动集合,为实现数据包捕获提供通信接口,便于将数据面和控制面的操作进行整合以提高数据包处理效率。通过数据包捕获将接收到的数据包从内核态映射到用户态,数据包的捕获性能直接影响整个***的性能。
由于DPDK是多核多线程架构,可以并行的捕获数据包。
利用CPU亲和性将各个执行线程与不同的CPU逻辑核进行绑定,单独为每个线程分配一个CPU逻辑核,进而将网卡接收的报文分配到各个CPU上处理,减少单个CPU核心的处理压力,同时,由于CPU上运行的单个线程,并且每个逻辑CPU用于存储报文的内存池相互独立,无需因多个线程访问同一个报文队列而对队列进行加锁,减少了锁开销,可以减少CPU中断和资源竞争。
具备多队列的网卡,可以利用RSS技术对数据流计算哈希值,不同的数据流按照一定的分发策略选择不同的队列,进而交给特定的CPU线程处理,可实现使接收报文在多个CPU之间负载均衡、按流分发。同时由于DPDK的网卡驱动借助工作在用户态,利用轮询模式批量接收网络数据包,通过UIO(Userspace I/O)技术映射到用户态供应用程序使用,无需像传统协议栈的工作方式,对数据包进行内存拷贝,大大提高了数据的捕获性能。
根据数据包进行会话查询。所述会话查询包括会话的数据结构设计、会话表的维护和会话查询三个部分,用于从DPDK捕获到的数据包中解析出源IP地址、目的IP地址、源端口、目的端口以及协议类型信息后进行会话查询,若查询失败则尝试规则匹配,并在规则允许的情况下新建会话;若查询成功则进入快转路径。
对于数据结构设计,将IP报文的源IP地址、目的IP地址、源端口、目的端口以及协议类型作为一个五元组,计算出哈希值用以标识数据流,利用哈希查找算法查询该数据流是否在会话列表中。对于会话表的维护,设定一个时间段,定期检查会话表,并且要规定会话的超时时间,一旦超时则从会话表中删除该条会话,通过会话表的维护来保证***的查询会话表的性能维持在较高水平。
对于查询会话失败的数据包进行规则查询,防火墙集中的规则包括源/目的IP地址、源/目的端口、源/目的MAC地址、协议类型以及对数据包的处理动作。在本发明实施例中,采用基于分治法的规则匹配算法,将规则集按一定的分类方案分为子规则集,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法。将数据包按规则的优先级从高到低的顺序依次尝试匹配子规则集中的规则,若匹配成功则执行规则指定的动作且不再尝试匹配后面的规则,否则一直尝试匹配下一条规则直到最后优先级最低的默认规则匹配完毕,返回查询结果,若规则允许则将数据包交给上层f-stack(用户态的高性能的网络接入开发包)协议栈处理。
对于查询会话成功的报文进行快速转发,其处理的是已经建立会话且该条数据流无需通过协议栈处理的数据包。
使用五元组(源IP地址、目的IP地址、源端口、目的端口以及协议类型)来标识一条数据流。当一条数据流的第一个报文通过查找路由表转发后,将转发信息记录到会话表中,该数据流后续报文的转发就可以通过直接查找会话表进行转发。因此,只需对数据包进行一次会话查询就可获取到转发信息,然后根据信息将数据包直接转发出去,如此可大大缩减IP报文的排队流程,减少报文的转发时间,提高IP报文的转发速率。
所述f-stack协议栈需要处理的数据包包括接收的第一个数据包、MPLS包、ARP包、VLAN包等。f-stack协议栈还需要记录每个新建会话的信息,包括目的MAC地址和数据包的转发端口,便于快速转发数据包。除此之外,用户态协议栈还提供路由查找功能。
数据包在经过会话查询、快转、规则查询时将包头信息和数据包流向都将被记录到日志文件中,方便对***的管理和维护。本发明实施例提供人机交互界面,使用php语言开发服务程序,处理用户提交的规则表单,并讲规则写入到防火墙***的规则文件中,将程序部署到nginx服务器中,再以Web页面的形式呈现给用户,提供对防火墙规则的增、删、改、查等功能,便于用户对网络策略实施进行管理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于DPDK虚拟化管理***的防火墙,其特征在于,所述防火墙包括:
数据包捕获模块,用于基于DPDK接口,利用轮询模式批量接收网络数据包,并将数据包从内核态映射到用户态;
会话查询模块,用于从数据包中解析出标识数据流的五元组数据信息后进行会话查询,若查询失败则尝试规则匹配,并在规则允许的情况下新建会话;若查询成功则进入快转路径;
规则查询模块,用于采用基于分治法的规则匹配算法,将规则集分为多个子规则集,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法,并在匹配成功后进入f-stack协议栈;
快转模块,用于对已经建立会话且该条数据流无需通过协议栈处理的数据包进行快速转发;
管理模块,用于将数据包的包头信息和数据包流向记录到日志文件中,并将规则表单写入防火墙规则文件中,对防火墙网络策略进行管理。
2.根据权利要求1所述的一种基于DPDK虚拟化管理***的防火墙,其特征在于,所述从数据包中解析出标识数据流的五元组数据信息后进行会话查询具体为:
将IP报文的源IP地址、目的IP地址、源端口、目的端口、协议类型作为一个五元组,计算出哈希值用以标识数据流,利用哈希查找算法查询该数据流是否在会话表中。
3.根据权利要求1所述的一种基于DPDK虚拟化管理***的防火墙,其特征在于,所述规则查询模块在进行规则查询时,将数据包按照规则优先级从高到低的顺序依次尝试匹配子规则集中的规则,若匹配成功则执行规则指定的动作且不再尝试匹配后面的规则,否则一直尝试匹配下一条规则直到最后优先级最低的默认规则匹配完毕,返回查询结果,若规则允许则将数据包交给上层f-stack协议栈处理。
4.根据权利要求1所述的一种基于DPDK虚拟化管理***的防火墙,其特征在于,所述快转模块在进行快速转发时,当一条数据流的第一个报文通过查找路由表转发后,将转发信息记录到会话表中,该数据流后续报文的转发可通过直接查找会话表进行转发。
5.根据权利要求1所述的一种基于DPDK虚拟化管理***的防火墙,其特征在于,所述f-stack协议栈需要处理的数据包包括接收的第一个数据包、MPLS包、ARP包、VLAN包,且还需要记录每个新建会话的信息,包括目的MAC地址和数据包的转发端口。
6.一种基于DPDK虚拟化管理***的防火墙实现方法,其特征在于,所述方法包括以下操作:
基于DPDK接口,利用轮询模式批量接收业务网卡发送的网络数据包,并将数据包从内核态映射到用户态;
从数据包中解析出标识数据流的五元组数据信息后进行会话查询,若查询失败则尝试规则匹配,并在规则允许的情况下新建会话;若查询成功则进入快转路径;
对于规则匹配,采用基于分治法的规则匹配算法,将规则集分为多个子规则集,并根据规则间的关系对规则进行分组,由组内的规则特征选择不同的查询算法,并在匹配成功后进入f-stack协议栈,并通过协议栈处理返回至业务网卡;
对已经建立会话且该条数据流无需通过协议栈处理的数据包进行快速转发返回至业务网卡。
7.根据权利要求6所述的一种基于DPDK虚拟化管理***的防火墙实现方法,其特征在于,所述从数据包中解析出标识数据流的五元组数据信息后进行会话查询具体为:
将IP报文的源IP地址、目的IP地址、源端口、目的端口、协议类型作为一个五元组,计算出哈希值用以标识数据流,利用哈希查找算法查询该数据流是否在会话表中。
8.根据权利要求6所述的一种基于DPDK虚拟化管理***的防火墙实现方法,其特征在于,在规则匹配时,将数据包按照规则优先级从高到低的顺序依次尝试匹配子规则集中的规则,若匹配成功则执行规则指定的动作且不再尝试匹配后面的规则,否则一直尝试匹配下一条规则直到最后优先级最低的默认规则匹配完毕,返回查询结果,若规则允许则将数据包交给上层f-stack协议栈处理。
9.根据权利要求6所述的一种基于DPDK虚拟化管理***的防火墙实现方法,其特征在于,在进行快速转发时,当一条数据流的第一个报文通过查找路由表转发后,将转发信息记录到会话表中,该数据流后续报文的转发可通过直接查找会话表进行转发。
10.根据权利要求6所述的一种基于DPDK虚拟化管理***的防火墙实现方法,其特征在于,所述f-stack协议栈需要处理的数据包包括接收的第一个数据包、MPLS包、ARP包、VLAN包,且还需要记录每个新建会话的信息,包括目的MAC地址和数据包的转发端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010134854.4A CN111371779B (zh) | 2020-02-29 | 2020-02-29 | 一种基于dpdk虚拟化管理***的防火墙及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010134854.4A CN111371779B (zh) | 2020-02-29 | 2020-02-29 | 一种基于dpdk虚拟化管理***的防火墙及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111371779A CN111371779A (zh) | 2020-07-03 |
CN111371779B true CN111371779B (zh) | 2022-05-10 |
Family
ID=71210257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010134854.4A Active CN111371779B (zh) | 2020-02-29 | 2020-02-29 | 一种基于dpdk虚拟化管理***的防火墙及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111371779B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111953706A (zh) * | 2020-08-21 | 2020-11-17 | 公安部第三研究所 | 基于https流量信息识别移动应用的方法 |
CN112153005A (zh) * | 2020-08-26 | 2020-12-29 | 广东网堤信息安全技术有限公司 | 一种tcpudp数据包转发***的架构 |
CN112769748B (zh) * | 2020-12-07 | 2022-05-31 | 浪潮云信息技术股份公司 | 一种基于dpdk的acl包过滤方法 |
CN112737966A (zh) * | 2020-12-23 | 2021-04-30 | 北京浪潮数据技术有限公司 | 一种负载均衡方法及相关装置 |
CN113098925B (zh) * | 2021-03-06 | 2022-03-11 | 郑州信大捷安信息技术股份有限公司 | 一种基于F-Stack和Nginx实现动态代理的方法和*** |
CN113518270A (zh) * | 2021-05-24 | 2021-10-19 | 北京邮电大学 | 面向移动网络的异构数据采集装置和方法 |
CN113434287A (zh) * | 2021-06-03 | 2021-09-24 | 中国联合网络通信集团有限公司 | 任务数据传输方法、***、电子设备及存储介质 |
CN113630342B (zh) * | 2021-06-25 | 2023-08-15 | 济南浪潮数据技术有限公司 | 一种虚拟交换机的转发表管理方法、***及装置 |
CN113535433B (zh) * | 2021-07-21 | 2023-08-11 | 广州市品高软件股份有限公司 | 基于Linux***的控制转发分离方法、装置、设备和存储介质 |
CN113839937A (zh) * | 2021-09-15 | 2021-12-24 | 神州网云(北京)信息技术有限公司 | 基于网络流量的使用跨会话技术检测未知木马的方法及*** |
CN115883440A (zh) * | 2021-09-27 | 2023-03-31 | 成都鼎桥通信技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114172695A (zh) * | 2021-11-22 | 2022-03-11 | 闪捷信息科技有限公司 | 串行防火墙报文转发方法、装置、设备及存储介质 |
CN116319510A (zh) * | 2021-12-21 | 2023-06-23 | 达发科技(苏州)有限公司 | 矢量包处理转发方法 |
CN114640515A (zh) * | 2022-03-09 | 2022-06-17 | 京东科技信息技术有限公司 | 基于流量阻断的数据处理方法、装置及相关设备 |
CN115225483A (zh) * | 2022-06-29 | 2022-10-21 | 北京天融信网络安全技术有限公司 | 数据包转发方法及电子设备、存储介质 |
CN115473811A (zh) * | 2022-09-21 | 2022-12-13 | 西安超越申泰信息科技有限公司 | 一种网络性能优化方法、装置、设备及介质 |
CN115858152B (zh) * | 2022-11-27 | 2024-05-28 | 北京泰策科技有限公司 | 一种基于单端口的dns负载均衡性能优化方案 |
CN116527410B (zh) * | 2023-07-05 | 2023-09-26 | 北京亿赛通科技发展有限责任公司 | 一种反向代理模式下的防火墙多进程处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核***的报文转发方法和装置 |
CN107196870A (zh) * | 2017-07-20 | 2017-09-22 | 哈尔滨工业大学 | 一种基于dpdk的流量动态负载均衡方法 |
CN107888500A (zh) * | 2017-11-03 | 2018-04-06 | 东软集团股份有限公司 | 报文转发方法及装置、存储介质、电子设备 |
CN109379303A (zh) * | 2018-08-22 | 2019-02-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于提升万兆以太网性能的并行化处理框架***和方法 |
CN110768994A (zh) * | 2019-10-30 | 2020-02-07 | 中电福富信息科技有限公司 | 一种基于dpdk技术的提高sip网关性能的方法 |
-
2020
- 2020-02-29 CN CN202010134854.4A patent/CN111371779B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核***的报文转发方法和装置 |
CN107196870A (zh) * | 2017-07-20 | 2017-09-22 | 哈尔滨工业大学 | 一种基于dpdk的流量动态负载均衡方法 |
CN107888500A (zh) * | 2017-11-03 | 2018-04-06 | 东软集团股份有限公司 | 报文转发方法及装置、存储介质、电子设备 |
CN109379303A (zh) * | 2018-08-22 | 2019-02-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于提升万兆以太网性能的并行化处理框架***和方法 |
CN110768994A (zh) * | 2019-10-30 | 2020-02-07 | 中电福富信息科技有限公司 | 一种基于dpdk技术的提高sip网关性能的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111371779A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111371779B (zh) | 一种基于dpdk虚拟化管理***的防火墙及其实现方法 | |
US11677851B2 (en) | Accelerated network packet processing | |
US10735325B1 (en) | Congestion avoidance in multipath routed flows | |
US9614762B2 (en) | Work migration in a processor | |
US9531723B2 (en) | Phased bucket pre-fetch in a network processor | |
CN108833299B (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
US10778588B1 (en) | Load balancing for multipath groups routed flows by re-associating routes to multipath groups | |
JP3645734B2 (ja) | ネットワーク中継装置及びネットワーク中継方法 | |
US10693790B1 (en) | Load balancing for multipath group routed flows by re-routing the congested route | |
US8638793B1 (en) | Enhanced parsing and classification in a packet processor | |
US11729300B2 (en) | Generating programmatically defined fields of metadata for network packets | |
US9590922B2 (en) | Programmable and high performance switch for data center networks | |
US20130128742A1 (en) | Internet Real-Time Deep Packet Inspection and Control Device and Method | |
US10819640B1 (en) | Congestion avoidance in multipath routed flows using virtual output queue statistics | |
US10397116B1 (en) | Access control based on range-matching | |
US20130294231A1 (en) | Method of high-speed switching for network virtualization and high-speed virtual switch architecture | |
CN112118167A (zh) | 一种跨网隧道数据快速传输方法 | |
US10887234B1 (en) | Programmatic selection of load balancing output amongst forwarding paths | |
US9898069B1 (en) | Power reduction methods for variable sized tables | |
US20190044873A1 (en) | Method of packet processing using packet filter rules | |
TW202327316A (zh) | 向量包處理轉發方法 | |
CN117336246A (zh) | 数据报文的处理方法及装置、电子设备及存储介质 | |
CN117793031A (zh) | 一种用于多核sdn交换机的流量调度***及调度方法 |
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 |