本发明涉及防火墙技术领域,尤其是涉及一种基于openstack框架的虚拟防火墙构建的方法及存储介质。
背景技术:
随着云计算服务的高速发展,以openstack框架为基础的云计算平台也越来越受到瞩目。其中,openstack原本是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。openstack为私有云和公有云提供可扩展的弹性的云计算服务,它提供了一个部署云的操作平台或工具集,成为了构建云过程中作为节点控制的主要框架。同时,基于云计算的方式导致数据的边界化正在逐步消失,云计算中面临的威胁更多、攻击面更大、面临的安全问题已经成为制约云计算发展的瓶颈,网络恶意攻击流量一旦进入虚拟云平台内部,将带来致命性的网络瘫痪,这使得人们愈加依赖虚拟防火墙技术的使用。
目前,在基于openstack框架部署私有云平台的应用场景中,引入的虚拟防火墙技术一般包括以下两种方式:第一种是在基于openstack原生的路由服务中添加数据包规则表,通过该表中的规则来实现对进出虚拟网络数据包的控制;第二种是引入vpp矢量数据包处理服务来替代openstack的数据包处理机制,其中,vpp全称vectorpacketprocessing,是一种由思科公司提供的矢量数据包处理工具,在vpp矢量数据包处理服务中设置有数据包处理规则(即访问控制规则),vpp矢量数据包处理服务基于该方式实现对虚拟网络中的数据包进行控制。然而,在实际应用中,第一种方式虽然具有较好的处理效果,但由于openstack框架原生的路由服务在基于数据包规则表进行数据包控制时,其转发过程会受到设置的虚拟路由的带宽限制,从而形成瓶颈限制,使得在控制数据包的过程中转发效率受到影响;而与之对应的第二种方式虽然利用vpp矢量数据包处理服务解决了转发效率的问题,但基于其现有的数据包处理规则(即访问控制规则)在同一个网络下是相同的,当同一网络下的不同用户构建了两个不同的虚拟机时无法设置不同的数据包处理规则,难以满足不同用户使用不同处理规则的需要。因此,现有的openstack框架下的虚拟防火墙难以满足转发效率和差异化设置兼顾的需要。
技术实现要素:
本发明的目的在于提供一种基于openstack框架的虚拟防火墙构建方法及计算机可读存储介质,解决了现有技术难以满足转发效率和差异化设置兼顾的问题。
第一方面,本发明提供一种基于openstack框架的虚拟防火墙构建的方法,其中包括:
通过预设规则对目标数据包服务的防火墙规则进行修改,得到修改后的目标数据包服务,所述修改后的目标数据包服务通过修改后的防火墙规则进行数据包控制,所述修改后的目标数据包服务中设置有转发性能高于所述openstack框架的路由服务的转发栈,所述修改后的目标数据包服务中的防火墙规则设置有防火墙配置界面,所述防火墙配置界面用于根据不同的用户在不同的虚拟网络下设置符合自身要求的数据包处理规则;
根据所述修改后的目标数据包服务替换所述openstack框架的路由服务。
进一步的,所述目标数据包服务为vpp矢量数据包处理服务;所述修改后的vpp矢量数据包处理服务中设置有基于数据平面开发框架dpdk构建的转发栈。
进一步的,所述通过预设规则对目标数据包服务的防火墙规则进行修改,具体包括:
对所述vpp矢量数据包处理服务中虚拟路由器的实现代码进行修改,得到修改后的虚拟器,并为所述修改后的虚拟器创建虚拟路由转发表索引;
对所述vpp矢量数据包处理服务中数据包控制的下发规则流程代码进行修改,并将修改后的下发规则与所述虚拟路由转发索引绑定;
设置所述vpp矢量数据包处理服务的防火墙配置界面,用以绑定对应的虚拟路由转发索引,所述防火墙配置界面用于对每个虚拟路由转发索引的防火墙规则进行配置,所述防火墙配置界面中包含有处理数据包时的判断条件及处理方式。
进一步的,所述判断条件包括判断参数以及参数判断规则,其中所述判断参数包括协议信息、端口信息以及地址信息,所述参数判断规则是根据用户基于所述防火墙配置界面输入的操作命令确定的。
进一步的,所述处理方式包括予以转发及忽略转发请求。
进一步的,在根据所述修改后的目标数据包服务替换所述openstack框架的路由服务之后,所述方法还包括:
当检测到三层转发请求时,启用所述修改后的目标数据包服务对所述三层转发请求对应的数据包进行访问控制。
进一步的,所述当检测到三层转发请求时,启用所述修改后的目标数据包服务对所述三层转发请求对应的数据包进行访问控制,具体包括:
通过所述修改后的目标数据包服务判断所述三层转发请求确定访问目标;
根据所述访问目标对应的虚拟路由器转发索引确定防火墙规则;
根据所述防火墙配置规则确定所述三层转发请求对应的数据包是否应予转发;
若应转发,则将所述三层转发请求对应的数据包转发至所述访问目标;
若不应转发,则忽略所述三层转发请求对应的数据包。
第二方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的方法。
本发明提供的基于openstack框架的虚拟防火墙构建方法,通过预设规则对目标数据包服务的防火墙规则进行修改,得到修改后的目标数据包服务,然后根据所述修改后的目标数据包服务替换所述openstack框架的路由服务,从而实现了基于openstack框架的虚拟防火墙构建,由于所述修改后的目标数据包服务通过修改后的防火墙规则进行数据包控制,且所述修改后的目标数据包服务中设置有转发性能高于所述openstack框架的路由服务的转发栈,因此可以确保在替换了所述openstack框架的路由服务后的虚拟防火墙在进行数据包控制的过程中,能够高于openstack框架的转发效率。同时,所述修改后的目标数据包服务中的防火墙规则设置有防火墙配置界面,所述防火墙配置界面用于根据不同的用户在不同的虚拟网络下设置符合自身要求的数据包处理规则,这就确保了修改后的服务在后续数据包控制的过程中,能够基于不同的用户在配置界面中为自己的虚拟机设置不用的数据包控制规则,满足了不同用户设置不同数据包控制规则的差异化需求,从而确保了构建后的基于openstack框架的虚拟防火墙实现了转发效率和差异化设置两者兼顾的效果。
相应地,本发明实施例提供的装置、电子设备以及计算机可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于openstack框架的虚拟防火墙构建的方法流程图;
图2为本发明实施例提供的一种基于openstack框架的虚拟防火墙构建方法具体执行步骤的流程图;
图3为本发明实施例提供的一种基于openstack框架的虚拟防火墙构建方法基于虚拟防火墙的数据包控制的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供的一种基于openstack框架的虚拟防火墙构建方法,如图1所示,包括以下步骤:
101、通过预设规则对目标数据包服务的防火墙规则进行修改,得到修改后的目标数据包服务。
102、根据所述修改后的目标数据包服务替换所述openstack框架的路由服务。
其中,在上述步骤中,所述修改后的目标数据包服务通过修改后的防火墙规则进行数据包控制,并且所述修改后的目标数据包服务中设置有转发性能高于所述openstack框架的路由服务的转发栈。另外,所述修改后的目标数据包服务中的防火墙规则设置有防火墙配置界面,所述防火墙配置界面用于根据不同的用户在不同的虚拟网络下设置符合自身要求的数据包处理规则。
通过转发性能的更高的修改后的目标服务来代替openstack框架下原有的路由服务,可以确保在利用虚拟防火墙控制数据包的过程中,解决原有路由服务转发性能受到带宽影响的问题,利用转发栈实现了更加高速转发效率的功能。而且,在修改后的目标服务中设置有可基于不同的用户在配置界面中为自己的虚拟机设置不用的数据包控制规则,满足了不同用户设置不同数据包控制规则的差异化需求。
在一种可能的实施方式中,所述目标数据包服务为vpp矢量数据包处理服务;所述修改后的vpp矢量数据包处理服务中设置有基于数据平面开发框架dpdk构建的转发栈:
在一种可能的实施方式中,前述实施例中步骤101、通过预设规则对目标数据包服务的防火墙规则进行修改,在执行时可以如图2所示,具体包括:
201、对vpp矢量数据包处理服务中虚拟路由器的实现代码进行修改,得到修改后的虚拟器,并为所述修改后的虚拟器创建虚拟路由转发表索引。
202、对所述vpp矢量数据包处理服务中数据包控制的下发规则流程代码进行修改,并将修改后的下发规则与所述虚拟路由转发索引绑定。
203、设置所述vpp矢量数据包处理服务的防火墙配置界面,用以绑定对应的虚拟路由转发索引。
其中,所述防火墙配置界面用于对每个虚拟路由转发索引的防火墙规则进行配置,所述防火墙配置界面中包含有处理数据包时的判断条件及处理方式。
这样,通过将vpp矢量数据包处理服务中的路由器的实现代码进行修改,可以确保在原vpp矢量数据包处理服务中新建不同的虚拟器,即修改后的虚拟器,并为每个虚拟器和修改后的下发规则通过索引进行绑定,确保了在用户后续利用防火墙规则配置界面配置符合自己需要的防火墙规则时能够与对应的虚拟器相对应,并在后续进行数据包控制时利用下发规则调用与之对应的防火墙规则,从而实现了每个用户可根据自己需要设置与其对应的虚拟器以及对应的防火墙规则的效果。
在一种可能的实施方式中,所述判断条件包括判断参数以及参数判断规则,其中所述判断参数包括协议信息、端口信息以及地址信息,所述参数判断规则是根据用户基于所述防火墙配置界面输入的操作命令确定的。
需要说明的是,用户在设置过程中可以选择上述判断参数中的任意一种或多种,例如当仅选取端口信息时,则在后续的虚拟防火墙对数据包进行控制过程中可对数据包的端口进行检测,以确定是否符合用户设置的参数判断规则。
在一种可能的实施方式中,所述处理方式包括予以转发及忽略转发请求。这样,通过设置不同的处理方式可以确保防火墙能够基于处理方式自行对数据包进行控制和处理,避免在存在问题时向用户询问带来的影响。在一种可能的实施方式中,在按照上述步骤所述方式构建了基于openstack框架的虚拟防火墙之后,还可以通过于openstack框架的虚拟防火墙对跨网络间访问数据包进行控制,即当检测到需要利用防火墙进行数据包控制时,还包括按照下述步骤执行,其中包括:
当检测到三层转发请求时,启用所述修改后的目标数据包服务对所述三层转发请求对应的数据包进行访问控制。
其中,由于三层转发是跨越网络间的不同节点之间的数据交互,而在防火墙对网络中的数据包进行控制的过程中,其防范的重点也是跨网络间的节点之间的数据交互,因此,在检测到存在跨网之间(其中包括虚拟网络之间)的数据包时,则触发防火墙的访问控制机制,这时则可以启动修改后的目标数据包服务(也就是虚拟防火墙功能的启动),并利用之前设置好的防火墙规则队数据包进行访问控制。
在一种可能的实施方式中,所述当检测到三层转发请求时,启用所述修改后的目标数据包服务对所述三层转发请求对应的数据包进行访问控制,其执行方式可如图3所示,具体包括:
301、通过修改后的目标数据包服务判断所述三层转发请求确定访问目标。
302、根据所述访问目标对应的虚拟路由器转发索引确定防火墙规则。
303、根据所述防火墙配置规则确定所述三层转发请求对应的数据包是否应予转发。其中,根据不同的确定结果,其后续执行的步骤可依据确定结果分别执行304或305。
304、若应转发,则将所述三层转发请求对应的数据包转发至所述访问目标。
305、若不应转发,则忽略所述三层转发请求对应的数据包。
通过利用访问目标确定目标所对应的虚拟路由器,可以按照该虚拟路由器基于虚拟路由器转发索引所绑定的防火墙规则,并按照下发规则触发对应的防火墙控制功能,从而判断是否应该对当前的三层转发请求的数据包进行转发,实现了不同用户在不同虚拟路由构架的网络下被不同网络的节点访问时的数据包的控制功能,实现了防火墙的检测功能。
另外,在基于前述方法所构建了基于openstack框架的虚拟防火墙后,其利用修改后的vpp矢量数据包处理服务执行数据包控制时的具体实施方案可如下述示例所示:
1:根据用户需求,可以分别创建两个虚拟机网络,如net1192.168.10.1/24以及net2192.168.20.1/24;
2:网络创建成功后,用户可以基于上述两个网络粉笔创建的对应的网络虚拟器vm1以及vm2,同时建立对应的索引;
3:创建一个虚拟路由器,并连接上述网络;
4:根据用户需求,在防火墙配置界面中设置每个用户所需的防火墙规则,其判断时的判断参数可以包括协议信息,端口信息,地址信息(可以为ip地址),同时处理方式包括转发以及丢弃;
5:在路由器界面,用户可从已创建的防火墙安全策略规则中选择所需的防火墙规则并与自身的虚拟器的索引进行绑定;
6:当存在从虚拟机vm1访问虚拟机vm2的访问操作,这个时候openstack框架的虚拟防火墙会检测到三层转发请求对应的数据包上,此时该openstack框架的虚拟防火墙会启用基于修改后的vpp矢量数据包服务,检测数据包的访问目标为vm2,同时获取按照索引对应下发规则所下发vm2的防火墙规则,并按其规则对数据包的ip地址信息、端口信息、协议信息的判断参数进行提取,并与下发的防火墙规则进行匹配;
7:如果基于防火墙规则确定允许转发,则直接转发该三层转发请求的数据包至vm2,反之,如果基于防火墙规则确定不允许转发,则丢弃该三层转发请求的数据包。
对应于上述方法,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述方法的步骤。
本发明实施例提供的基于openstack框架的虚拟防火墙构建方法及存储介质,通过预设规则对目标数据包服务的防火墙规则进行修改,得到修改后的目标数据包服务,然后根据所述修改后的目标数据包服务替换所述openstack框架的路由服务,从而实现了基于openstack框架的虚拟防火墙构建,由于所述修改后的目标数据包服务通过修改后的防火墙规则进行数据包控制,且所述修改后的目标数据包服务中设置有转发性能高于所述openstack框架的路由服务的转发栈,因此可以确保在替换了所述openstack框架的路由服务后的虚拟防火墙在进行数据包控制的过程中,能够高于openstack框架的转发效率。同时,所述修改后的目标数据包服务中的防火墙规则设置有防火墙配置界面,所述防火墙配置界面用于根据不同的用户在不同的虚拟网络下设置符合自身要求的数据包处理规则,这就确保了修改后的服务在后续数据包控制的过程中,能够基于不同的用户在配置界面中为自己的虚拟机设置不用的数据包控制规则,满足了不同用户设置不同数据包控制规则的差异化需求,从而确保了构建后的基于openstack框架的虚拟防火墙实现了转发效率和差异化设置两者兼顾的效果。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
又例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,再例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
1.一种基于openstack框架的虚拟防火墙构建方法,其特征在于,包括:
通过预设规则对目标数据包服务的防火墙规则进行修改,得到修改后的目标数据包服务,所述修改后的目标数据包服务通过修改后的防火墙规则进行数据包控制,所述修改后的目标数据包服务中设置有转发性能高于所述openstack框架的路由服务的转发栈,所述修改后的目标数据包服务中的防火墙规则设置有防火墙配置界面,所述防火墙配置界面用于根据不同的用户在不同的虚拟网络下设置符合自身要求的数据包处理规则;
根据所述修改后的目标数据包服务替换所述openstack框架的路由服务。
2.根据权利要求1所述的基于openstack框架的虚拟防火墙构建方法,其特征在于,所述目标数据包服务为vpp矢量数据包处理服务;所述修改后的vpp矢量数据包处理服务中设置有基于数据平面开发框架dpdk构建的转发栈。
3.根据权利要求2所述的基于openstack框架的虚拟防火墙构建方法,其特征在于,所述通过预设规则对目标数据包服务的防火墙规则进行修改,具体包括:
对所述vpp矢量数据包处理服务中虚拟路由器的实现代码进行修改,得到修改后的虚拟器,并为所述修改后的虚拟器创建虚拟路由转发表索引;
对所述vpp矢量数据包处理服务中数据包控制的下发规则流程代码进行修改,并将修改后的下发规则与所述虚拟路由转发索引绑定;
设置所述vpp矢量数据包处理服务的防火墙配置界面,用以绑定对应的虚拟路由转发索引,所述防火墙配置界面用于对每个虚拟路由转发索引的防火墙规则进行配置,所述防火墙配置界面中包含有处理数据包时的判断条件及处理方式。
4.根据权利要求3所述的一种基于openstack框架的虚拟防火墙构建方法,其特征在于,所述判断条件包括判断参数以及参数判断规则,其中所述判断参数包括协议信息、端口信息以及地址信息,所述参数判断规则是根据用户基于所述防火墙配置界面输入的操作命令确定的。
5.根据权利要求4所述的一种基于openstack框架的虚拟防火墙构建方法,其特征在于,所述处理方式包括予以转发及忽略转发请求。
6.根据权利要求1-5中任一项所述的一种基于openstack框架的虚拟防火墙构建方法,其特征在于,在根据所述修改后的目标数据包服务替换所述openstack框架的路由服务之后,所述方法还包括:
当检测到三层转发请求时,启用所述修改后的目标数据包服务对所述三层转发请求对应的数据包进行访问控制。
7.根据权利要求6所述的基于openstack框架的虚拟防火墙构建方法,其特征在于,所述当检测到三层转发请求时,启用所述修改后的目标数据包服务对所述三层转发请求对应的数据包进行访问控制,具体包括:
通过所述修改后的目标数据包服务判断所述三层转发请求确定访问目标;
根据所述访问目标对应的虚拟路由器转发索引确定防火墙规则;
根据所述防火墙配置规则确定所述三层转发请求对应的数据包是否应予转发;
若应转发,则将所述三层转发请求对应的数据包转发至所述访问目标;
若不应转发,则忽略所述三层转发请求对应的数据包。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至7任一项所述的方法。
技术总结