一种基于多核网络处理器的防火墙实现方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于多核网络处理器的防火墙实现方法
专利名称:一种基于多核网络处理器的防火墙实现方法
技术领域:
本发明涉及计算机网络技术领域,特别涉及一种基于多核网络处理器的防火墙系统及实现方法。
背景技术:
随着社会的不断发展,计算机网络在全世界范围内的普及率越来越高。
随着而来的是网络安全问题层出不穷,人们越来越重视信息的安全性。
防火墙技术正是ー种有效保护网络安全的技术,防火墙产品已逐渐发展成为维护网络安全所必不可少的组成部分。
然而,随着计算机网络技术的飞速发展,网络流量急剧增加,各种新兴业务层出不穷,这就要求防火墙必须具有高效处理网络数据报文的能力,而防火墙功能和性能的矛盾一直是困扰信息安全产品的问题。
传统的防火墙主要是基于x86软件平台开源项目和ASIC专用芯片平台,但是x86软件平台开源项目的防火墙最大的缺点就是小包通过率低,造成该缺点的主要原因是x86软件平台开源项目的中断机制以及有数据都要经过复杂的软件IP
协议栈以及其他的辅助流程处理。
目前市场上大多数的x86软件平台开源项目防火墙不能作为大容量千兆防火墙使用,只能作为小型百兆防火墙。
基于ASIC 专用芯片平台架构的防火墙从架构上改进了中断机制,数据通过网卡进入系统后,不需经过主CPU软件IP协议栈和辅助流程处理,而是由集成在系统中的芯片直接处理,完成防火墙的功能,如路由、NAT、防火墙规则匹配等,因此,其性能得到了大幅度的提升。
但问题是,这种防火墙在设计时,就必须将安全功能固化进ASIC专用芯片中,所以它的灵活性不够,如果想要增添新的功能或进行系统升级,开发周期较长,对技术的要求也很高。
可见,现有防火墙技
术无法同时兼备高效处理网络数据报文的能力和较高的灵活性。
发明内容
本发明针对现有防火墙技术不能同时兼备高效处理网络数据报文的能力和较高的灵活性的技术问题,提供一种基于多核网络处理器的防火墙系统及实现方法,在多核网络处理器架构上实现防火墙,可以解决x86软件平台开源项目的防火墙性能不高和ASIC专用芯片架构的防火墙灵活性不够的技术问题。
为解决上述技术问题,本发明防火墙实现方法所采用的技术方案是一种基于多核网络处理器的防火墙实现方法,包括以下步骤步骤I、在多核网络处理器的一部分核上运行通用操作系统,在运行通用操作系统上加载通用防火墙模块、防火墙配置工具及防火墙规则处理模块;在多核网络处理器的其余核上运行专用操作系统,在运行专用操作系统的每ー个核上加载防火墙规则转换模块和专用防火墙模块;步骤2、通过防火墙配置工具添加防火墙规则,防火墙配置工具将所添加的防火墙规则解析后将防火墙规则提交给通用防火墙模块供其使用;
步骤3、防火墙规则处理模块将防火墙规则从通用防火墙模块中提取出来,并将其进行转换,转换后将防火墙规则写到多核网络处理器的共享内存中形成防火墙规则表,该规则表供专用防火墙模块使用;步骤4、当网络数据报文到来吋,将该网络数据报文发送给专用防火墙模块处理;防火墙规则转换模块通过从防火墙规则表中读取防火墙规则,并将所读取的防火墙规则转换成适合在专用防火墙模块上执行的形式,再交给专用防火墙模块来实现其防火墙功能;步骤5、对于专用防火墙模块处理不了的数据包则发送给通用防火墙模块处理。
优选地,步骤4所述专用防火墙模块实现其防火墙功能步骤如下步骤41 :收到网络数据报文后,对网络数据报文中的数据包进行分类和标记,按照设定的优先级,将网络数据报文放到对应的优先级队列中;步骤42 :采用负荷分担策略
将网络数据报文按照加载了专用防火墙模块的核的负载进行分发,使所有加载了专用防火墙模块的核工作负担达到均衡;步骤43 :所有加载了专用防火墙模块的核均通过防火墙规则表读取防火墙规则,实现防火墙功能。
优选地,步骤42所述负载分担策略的步骤如下当专用防火墙模块处于空闲状态时,按优先级从高到低顺序去获取优先权队列中的网络数据报文,如果优先级高的网络数据包存储队列中没有数据报文,则按优先级从高到低的队列依次往下获取,直到获取到为止。
所述专用防火墙模块的防火墙功能包括数据过滤、连接跟踪和网络地址转换。
优选地,步骤5在通用操作系统下的通用防火墙模块与专用操作系统下的专用防火墙模块共同达到防火墙的功能和性能合理优化组合。
步骤5包括以下步骤步骤51 :当专用防火墙模块接收到网络数据报文,依据网络数据报文的特征,读取防火墙规则表中的防火墙规则,如果专用防火墙模块不进行规则处理该网络数据报文,则将所接收的网络数据报文发送给通用防火墙模块处理;步骤52 :步骤51所述的网络数据报文被通用防火墙处理器完成后,将产生相关的新防火墙规则,并通知防火墙规则处理模块,将所产生的新防火墙规则更新到共享内存中的防火墙规则表;步骤53 :下次专用防火墙模块收到同类的网络数据报文,从更新后的防火墙规则表获取已更新的防火墙规则,完成防火墙功能的处理。
为解决上述技术问题,本发明防火墙系统所采用的技术方案是一种基于多核网络处理器的防火墙系统,包括多核网络处理器中集成的多个核在一部分核上运行通用操作系统,作为控制面,在其余部分核上运行专用操作系统,作为数据面;所有运行有专用操作系统加载专用防火墙模块的核是并行运行的;多核网络处理器设有共享内存,用来存放防火墙规则,供多个核加载了专用防火墙模块使用;运行通用操作系统的核上加载了通用防火墙模块、防火墙配置工具及防火墙规则处理模块;防火墙配置工具解析用户输入的
防火墙命令并将其提交给通用防火墙模块;防火墙规则处理模块从通用防火墙模块读取防火墙规则,然后将所读取的防火墙规则转换成在专用防火墙模块使用的形式,最后将转换后的防火墙规则写到多核网络处理器中的共享内存中构成防火墙规则表;
运行专用操作系统的每一个核上加载了防火墙规则转换模块,以及用于数据过滤、连接跟踪和网络地址转换的专用防火墙模块;防火墙规则转换模块读取防火墙规则表的防火墙规则,并将所读取的防火墙规则转换成在专用防火墙模块上执行的形式后交给专用防火墙模块来实现其防火墙功能;当有网络数据报文到来时,首先经过专用防火墙模块的处理,绝大多数的网络数据报文,专用防火墙模块处理完成;对于专用防火墙模块处理不了的网络数据报文则交给通用防火墙模块处理,并产生相关的新防火墙规则,通知防火墙规则转换模块,将新的防火墙规则更新到共享内存中的防火墙规则表,下次专用防火墙模块接收到同类的网络数据报文,则从更新后的防火墙规则表获取已更新的防火墙规则,完成防火墙功能的处理,无需再将该网络报文转发到通用防火墙模块处理。
与现有技术相比,本发明的有益效果是I、运行在专用操作系统上的防火墙模块能够处理占网络数据包绝大部分的常规包,在专用操作系统上的代码执行更加简单和高效。
所有运行专用操作系统的,加载专用防火墙模块的核是并行运行的,对数据报文进行并行的处理,以达到性能倍増的目的。
由于专用操作系统上的专用防火墙模块处理不了的网络数据报文(也叫例外包,或异常包)只占所有网络数据包的极少数,所以这不会对系统的性能造成很大的影响。
因此,本发明ー种基于多核网络处理器的防火墙实现方法可以解决x86软件平台开源项目架构的防火墙性能不高和ASIC专用芯片架构的防火墙灵活性不够的技术问题,从而可以实现兼具高性能和高灵活性的防火墙。
2、将运行通用操作
系统的核作为控制面,将运行专用操作系统的核作为数据面。
前者作为系统的控制管理,为用户提供接ロ配置管理的接ロ,同时在通用操作系统下的通用防火墙模块,具有完善、全面、最新特征的防火墙功能。
后者主要用于高速的数据业务处理,在专用操作系统的专用防火墙模块,相比通用操作系统的通用防火墙模块,具有精筒、高效的特点。
3、为了使得用户通过防火墙配置工具添加的规则能够立即被专用防火墙模块使用,采取消息机制来通知所述运行在通用操作系统中的防火墙规则处理模块,使其能够当用户通过防火墙配置工具添加规则后,立即把通用防火墙规则从该操作系统下的通用防火墙模块中提取出来并进行转换后写入到共享内存的防火墙规则中,这样可以保证通用操作系统上的防火墙规则和专用操作系统上的专用防火墙模块规则的一致性。
且运行在专用操作系统上的所有专用防火墙模块都是共用同一份从共享内存中读取出来的防火墙规则表的数据,从而可以保存上次防火墙规则捜索的结果索引,提高防火墙规则查询的命中率;还能保存最近使用规则在高速缓存cache中,减少访问内存的概率,提高读取防火墙规则的速度。
4、运行专用操作系统的所有核都运行相同的专用防火墙模块,各个核对网络数据报文是并行处理的,每个核彼此独立工作,没有相互关联,能达到高速并行工作。
5、基于多核网络处理器的多核并发处理特性,同时利用通用防火墙模块功能的完备性、灵活性、时效性和专用防火墙模块性能的并发性、高效性,有效平衡了防火墙功能和性能的关系,达到了防火墙的功能和性能的提升。
图I为本发明的系统框图;图2为本发明实现过程的流程图;图3为专用操作系统实现其防火墙功能的示意图;图4为负荷分担策略实现的流程图。
具体实施例方式下面结合实施例及附图对本发明作进ー步详细的描述,但本发明的实施方式不限于此。
实施例如图I所示,本发明基于多核网络处理器的
防火墙系统,该系统将多核网络处理器中集成的η个核分成两部分,第O m 个核运行通用操作系统,作为控制面;第m+1 n(m+l ^ η)个核运行专用操作系统,作为数据面,在专用操作系统上的专用防火墙代码运行更加简单、更加高效。
通用操作系统指的是具有多种类型操作特征的操作系统,它可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能;相应地,专用操作系统指的是具有ー种专用类型操作特征的操作系统,只具有处理某种类型数据的功能,本专用操作系统是针对网络数据报文流程定制设计,设计了专用处理处理流程,对网络数据报文具有高效并行处理计算,并行转发数据,并行加解密等能力。
在通用操作系统上运行有其自带的完备功能的通用防火墙模块I以及与其配套使用的防火墙配置工具2,该防火墙配置工具2负责解析用户输入的防火墙命令并将其提交给通用防火墙模块I。
在通用操作系统上还运行有ー个防火墙规则处理模块3,该防火墙规则处理模块3负责从通用操作系统的读取防火墙规则,然后将所读取的防火墙规则转换成适合在专用操作系统的专用防火墙模块使用的形式,最后将转换后的防火墙规则写到多核网络处理器中的共享内存中,这些转换后的防火墙规则便构成共享内存中的防火墙规则表4,该防火墙规则表4供运行专用操作系统的加载专用防火墙模块的核使用。
在专用操作系统上则运行有ー个防火墙规则转换模块5和另外ー个专用防火墙模块6。
所有运行专用操作系统的核,均加载了相同的专用防火墙模块6 ;加载在运行专用操作系统的核上的专用防火墙模块6具有以下防火墙功能包过滤(过滤数据包,进行防火墙规则匹配和目标处理)、网络地址转换(根据用户配置情況,实现源IP地址、目的IP地址和IP地址伪装)及跟踪连接(用来跟踪和记录连接状态,实现有状态的防火墙和加速防火墙的转发性能)。
基于多核网络处理器的防火墙功能主要就是依靠专用操作系统上的专用防火墙模
块6来实现。
防火墙规则转换模块5通过从共享内存中读取防火墙规则表4的防火墙规则,并将所读取的防火墙规则转换成适合在专用操作系统上高效执行的形式后交给专用防火墙模块6来实现其防火墙功能。
所有专用操作系统上运行的专用防火墙模块都是共用相同的ー份防火墙规则表,即防火墙规则表4。
当有网络数据包到来时,首先经过运行在专用操作系统上的专用防火墙模块6
的处理,所有运行有专用操作系统的核是并行运行的,由多个核并行处理数据包,这样就可以使得防火墙的性能得到极大提升。
运行在专用操作系统上的专用防火墙模块6可以处理在所有网络数据包中占绝大部分的常规包,而对于专用防火墙模块6处理不了的极少数数据报文则交给通用操作系统下的防火墙模块I处理。
通用操作系统下的通用防火墙模块收到了来自专用防火墙模块的异常数据报文,则完成处理后,产生了新的防火墙规则,将更新通知防火墙规则处理模块3,将新的防火墙规则添加共享内存中的防火墙规则4。
下次专用防火墙模块6收到同类的数据报文,专用防火墙模块6不再将该报文转发给通用防火墙模块I,加速整个防火墙的处理速度。
专用防火墙模块相比通用防火墙模块,适用于多核网络处理器,优化了处理规则,简化了处理流程,特别是多个专用防火墙模块并发运行时,相比通用防火墙模块在效率上大大提升。
通用防火墙模块在功能完备上较专用防火墙更全面,更完善。
如图2所示,本实施方式的基于多核网络处理器的防火墙实现方法,基于上述防火墙系统,包括如下步骤步骤SI :输入防火墙规则用户通过通用操作系统中的防火墙配置工具2输入防火墙规则,防火墙配置工具2将防火墙规则解析后提交给该通用操作系统下的通用防火墙模块I供其使用。
步骤S2 :提取防火墙规则运行在通用操作系统中的防火墙规则处理模块3通过专用接ロ从通用防火墙模块I提取出防火墙规则。
步骤S3 :转换防火墙规则并写入共享内存,防火墙规则处理模块
3提取出防火墙规则后将其转换成适合在专用操作系统上专用防火墙模块6使用的形式,然后将转换后的防火墙规则写到多核网络处理器的共享内存的防火墙规则表4中。
步骤S4 :当网络数据报文到来时,专用操作系统中防火墙规则转换模块5通过从防火墙规则表4中读取防火墙规则,并将所读取的防火墙规则转换成适合在专用操作系统上高效执行的形式后交给该专用操作系统下的专用防火墙模块6来实现其防火墙功能。
每个运行专用操作系统的核上运行的专用防火墙模块都是相同的,所有运行在专用操作系统上的专用防火墙模块都是共用同一份从共享内存中读取的防火墙规则表,即防火墙规则表4。
步骤
S5 :对于那些专用操作系统上的专用防火墙模块处理不了的数据包则交给通用操作系统上的通用防火墙模块处理。
通用操作系统的通用防火墙模块对该报文实施防火墙过滤、跟踪连接、网络地址转换处理。
通用防火墙模块处理完成后,产生的新的防火墙规则,更新共享内存中的防火墙规则4。
在本实施方式一种基于多核网络处理器的防火墙实现方法中,为了使得用户通过防火墙配置工具添加的规则能够立即被到运行在专用操作系统的专用防火墙模块使用,采取消息通知机制来通知所述运行在通用操作系统中的防火墙规则处理模块,使其能够当用户通过防火墙配置工具添加规则后立即把防火墙规则从通用防火墙模块中提取出来并进行转换后写入到共享内存中,这样可以保证通用操作系统上的防火墙规则和专用操作系统上的防火墙规则的一致性、高效性。
如图3
所示,在本发明的实现过程中,在数据面部分主要由数据报文输入模块301、专用操作系统302、数据报文输出模块303及防火墙规则表4实现,其中专用操作系统302上主要由多个均加载了专用防火墙模块6的核321完成数据报文的过滤、连续跟踪及地址转换等处理,多个防火墙模块的核同时并行运行。
专用操作系统实现其防火墙功能的步骤如下步骤S41 :数据报文输入模块301收
到来自物理端ロ过来的网络数据报文,对数据报文进行分类和标记,按照设定的优先级,放到相应优先级的队列中,进行缓存。
步骤S42:数据报文输入模块301在将网络数据报文发到加载了专用防火墙模块6的核321的时候,采用专用的负荷分担策略,将网络数据报文按照加载了专用防火墙模块6的核321的负载进行分发,使所有加载了专用防火墙模块6
的核321的工作负担达到均衡。
所有加载了专用防火墙模块6的核321是彼此独立工作,没有相互关联,能达到高速并行エ作。
步骤S43 :所有加载了专用防火墙模块6的核321均通过防火墙规则表4读取防火墙规则,实现网络数据包过滤、连接跟踪和地址转换的功能。
步骤S44 :完成防火墙处理后,加载了专用防火墙模块6的核321将数据包发送到数据报文输出模块303,进行相关流量控制、流量整形,放入到优先级队列中,缓存后,发送到物理网络接ロ。
在本发明中,采用了专用的负载分担策略来满足达到在专用操作系统下多个专用防火墙模块的并行运行的目的。
如图4所示,在专用操作系统下,设计了专用的队列,按照数据包分类标记,分类原则为QoSm :服务等级Qum:队列数量QoSm ^ Qum放入到优先级队列402中缓存,整个优先级队列402由具有不同优先级的多个数据包缓存队列模块421构成。
每个核上加载了ー个专用防火墙模块6,多个专用防火墙模块6构成了整个防火墙403。
数据报文输入模块301
收到来自物理网络接ロ的数据报文,对报文进行分类、标记,按照用户优先级将数据报文放入到优先级队列402中所对应的数据报文缓存队列模块421中,数据包围缓存队列模块421是将相同优先级的数据报文缓存起来,为防火墙模块来获取数据包做好准备。
实现负载分担的步骤如下在专用操作系统下的多个专用防火墙模块,当专用防火墙模块处于空闲状态时,去获取存储队列模块中的数据报文。
此处的策略是,空闲的专用防火墙模块获取数据包是从优先级高
的数据包存储队列模块421中获取,如果优先级高的数据包存储队列模块421
中没有数据报文,则按优先级从高到低依次往下获取,直到获取到为止。
这样,所有的专用防火墙模块6就可以达到一个有效的负荷分担效果,当系统的负载
很高的情况下,专用防火墙模块的负荷分担效果尤为明显。
上述实施例为本发
明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任
何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置換方式,都包含在本发明的保护范围之内。
权利要求
1.一种基于多核网络处理器的防火墙实现方法,其特征在于,包括如下步骤
步骤I、在多核网络处理器的一部分核上运行通用操作系统,在通用操作系统
上加载通用防火墙模块、防火墙配置工具及防火墙规则处理模块;在多核网络
处理器的其余部分核上运行专用操作系统,在运行专用操作系统的每ー个核上
加载防火墙规则转换模块和专用防火墙模块;步骤2、通过防火墙配置工具
添加防火墙规则,防火墙配置工具将所添加的防火墙规则解析后将防火墙规则
提交给通用防火墙模块供其使用;步骤3、防火墙规则处理模块将防火墙规
则从通用防火墙模块中提取出来并将其进行转换,转换后将防火墙规则写到多
核网络处理器的共享内存中形成防火墙规则表;步骤4、当网络数据报文到
来吋,将该网络数据报文发送给专用防火墙模块处理;防火墙规则转换模块通
过从防火墙规则表中读取防火墙规则,并将所读取的防火墙规则转换成适合在
专用防火墙模块上执行的形式后交给专用防火墙模块来实现其防火墙功能;
步骤5、对于专用防火墙模块处理不了的数据包则发送给通用防火墙模块处理。
2.根据权利要求I所述的基于多核网络处理器的防火墙实现方法,其特征在于,步骤4所述专用防火墙模块实现其防火墙功能的步骤如下步骤41 :收到网
络数据报文后,对网络数据报文中的数据包进行分类和标记,按照设定的优先级,放到优先级队列中;步骤42 :采用负荷分担策略将网络数据报文按照加载了专用防火墙模块的核的负载进行分发,使所有加载了专用防火墙模块的核的工作负担达到均衡;步骤43 :所有加载了专用防火墙模块的核均通过防火墙规则表读取防火墙规则,实现防火墙功能。
3.根据权利要求2所述的基于多核网络处理器的防火墙实现方法,其特征在于,步骤42所述负载分担策略的步骤如下当专用防火墙模块处于空闲状态时,按优先级从高到低去获取优先权队列中的网络数据报文,如果优先级高的网络数据报文存储模块中没有数据报文,则按优先级从高到低依次往下获取,直到获取到为止。
4.根据权利要求I所述的基于多核网络处理器的防火墙实现方法,其特征在于所述专用防火墙模块的防火墙功能包括包过滤过滤数据包,进行防火墙规则匹配和目标处理;网络地址转换根据用户配置情況,实现源IP地址、目的IP 地址和IP地址伪装;跟踪连接用来跟踪和记录连接状态,实现有状态的防火墙和加速防火墙的转发性能。
5.根据权利要求I所述的基于多核网络处理器的防火墙实现方法,其特征在于所述步骤5包括以下步骤步骤51 :当专用防火墙模块接收到网络数据报文,依据网络数据报文的特征,读取防火墙规则表中的防火墙规则,如果专用防火墙模块不进行规则处理该网络数据报文,则将所接收的网络数据报文发送给通用防火墙模块处理;步骤52 :步骤51所述的网络数据报文被通用防火墙模块处理完成后,将产生相关的新防火墙规则,并通知防火墙规则处理模块,将所产生的新防火墙规则更新到防火墙规则表;步骤53 :下次专用防火墙模块收到同类的网络数据报文,从更新后的防火墙规则表中获取已更新的防火墙规则,。