CN112351034B - 防火墙设置方法、装置、设备及存储介质 - Google Patents
防火墙设置方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112351034B CN112351034B CN202011230049.8A CN202011230049A CN112351034B CN 112351034 B CN112351034 B CN 112351034B CN 202011230049 A CN202011230049 A CN 202011230049A CN 112351034 B CN112351034 B CN 112351034B
- Authority
- CN
- China
- Prior art keywords
- flow table
- firewall
- information
- logic
- table information
- 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
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/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种防火墙设置方法、装置、设备及存储介质,本申请支持用户通过客户端调用防火墙服务接口,创建包含有逻辑防火墙信息的防火墙模型,将逻辑防火墙信息翻译成逻辑流表信息,该逻辑流表信息是以流表形式记录的逻辑防火墙信息,将逻辑流表信息翻译成交换机能够执行的指令,由交换机执行所述指令,以实现防火墙功能。本申请采用流表来实现逻辑防火墙信息,通过流表仅需要很少的资源即可实现防火墙功能,相比于现有的通用软件防火墙大大降低了资源的占用率。并且,当有新的防火墙规则出现时,仅需要针对该新增规则添加一条新的流表信息,经过翻译后即可被交换机执行,不需要对已有的防火墙进行重新部署,使得防火墙更新更加简单、快捷。
Description
技术领域
本申请涉及互联网安全技术领域,更具体的说,是涉及一种防火墙设置方法、装置、设备及存储介质。
背景技术
防火墙是一种安全设备,它在网络的出口或者入口处。所有的内网向外网的流量或者外网流向内网的流量都必须经过防火墙,防火墙根据自身配置的规则,决定是否放行数据包。因此防火墙能够针对数据包做过滤,起到保护内网的作用。
现有的防火墙一般是基于软件编程实现的通用软件防火墙,如iptables,ipfire,clearOS等,这种通过软件编程由代码形成的软件防火墙,其部署的时候会占据大量的计算资源以及内存资源。并且防火墙功能是固定的,当有新的防火墙规则出现时,需要重新开发新的软件防火墙,并重新部署,操作复杂。
发明内容
鉴于上述问题,提出了本申请以便提供一种防火墙设置方法、装置、设备及存储介质,以解决现有通用软件防火墙所存在的部署占据资源量大,且更新方式复杂的问题。具体方案如下:
一种防火墙设置方法,包括:
接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型;
将所述逻辑防火墙信息翻译成逻辑流表信息,所述逻辑流表信息是以流表形式记录的逻辑防火墙信息;
将所述逻辑流表信息翻译成交换机能够执行的指令,并由所述交换机执行所述指令,以实现防火墙功能。
优选地,所述接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型,包括:
响应客户端调用防火墙服务接口并创建防火墙模型的请求,将客户端所创建的包含有逻辑防火墙信息的防火墙模型插入软件定义网络SDN的北向数据库中。
优选地,所述将所述逻辑防火墙信息翻译成逻辑流表信息,包括:
调用软件定义网络SDN的流表翻译中间件,将所述逻辑防火墙信息翻译成逻辑流表信息;
将所述逻辑流表信息插入SDN的南向数据库中。
优选地,所述将所述逻辑流表信息翻译成交换机能够执行的指令,包括:
调用所述SDN的控制器,从所述南向数据库中读取插入的所述逻辑流表信息,并将所述逻辑流表信息翻译成交换机能够执行的指令。
优选地,所述交换机上承载有虚拟交换机、虚拟路由器和防火墙,所述防火墙、所述虚拟路由器和所述虚拟交换机依次连接,且所述虚拟交换机与部署的虚拟机连接;
所述虚拟路由器通过流表实现,所述南向数据库中存储有所述虚拟路由器的流表;
所述将所述逻辑流表信息插入SDN的南向数据库中,包括:
将所述逻辑流表信息插入所述南向数据库中所述虚拟路由器的流表中。
优选地,所述逻辑流表信息包括用于实现虚拟路由器的入口方向的防火墙的入口方向逻辑流表信息,以及,用于实现虚拟路由器的出口方向的防火墙的出口方向逻辑流表信息;
所述将所述逻辑流表信息插入所述南向数据库中所述虚拟路由器的流表中,包括:
将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中,以及,
将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中。
优选地,所述将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中,包括:
将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中,用于实现路由功能的各条流表项之前的位置;
所述将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中,包括:
将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中,用于实现路由功能的各条流表项之后的位置。
优选地,所述逻辑流表信息包含基于用户设置的第一防火墙规则,即过滤满足用户设置的过滤规则的数据包,并放行不满足用户设置的过滤规则的数据包。
优选地,所述逻辑流表信息还包括基于状态匹配的第二防火墙规则,即针对基于所述第一防火墙规则过滤的数据包,对所述数据包的状态进行匹配,若确定与设定目标状态匹配,则将所述数据包丢弃,否则,将所述数据包放行。
一种防火墙设置装置,包括:
防火墙创建单元,用于接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型;
逻辑防火墙信息翻译单元,用于将所述逻辑防火墙信息翻译成逻辑流表信息,所述逻辑流表信息是以流表形式记录的逻辑防火墙信息;
逻辑流表信息翻译单元,用于将所述逻辑流表信息翻译成交换机能够执行的指令,并由所述交换机执行所述指令,以实现防火墙功能。
一种防火墙设置设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如上所述的防火墙设置方法的各个步骤。
一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的防火墙设置方法的各个步骤。
借由上述技术方案,本申请支持用户通过客户端调用防火墙服务接口,并创建包含有逻辑防火墙信息的防火墙模型,进而将逻辑防火墙信息翻译成逻辑流表信息,该逻辑流表信息是以流表形式记录的逻辑防火墙信息,将所述逻辑流表信息翻译成交换机能够执行的指令,进而可以由所述交换机执行所述指令,以实现防火墙功能。本申请采用OpenFlow通信协议下的流表来实现逻辑防火墙信息,通过流表仅需要很少的资源即可实现防火墙功能,相比于现有的通用软件防火墙大大降低了资源的占用率。并且,当有新的防火墙规则出现时,仅需要针对该新增规则添加一条新的流表信息,经过翻译后即可被交换机执行,不需要对已有的防火墙进行重新部署,使得防火墙更新更加简单、快捷。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例提供的防火墙设置方法的一流程示意图;
图2示例了一种私有云总体网络拓扑架构示意图;
图3示例了另一种私有云总体网络拓扑架构示意图;
图4示例了一种防火墙模型数据组成结构示意图;
图5示例了一种基于SDN实现防火墙设置的过程示意图;
图6为本申请实施例公开的一种防火墙设置装置结构示意图;
图7为本申请实施例提供的防火墙设置设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种防火墙设置方案,能够基于OpenFlow通信协议下的流表来实现防火墙的功能,通过在网络中添加防火墙,能够对进出流量进行过滤,从而实现保护内网的功能。
流的概念是指,把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流。比如:将访问同一个地址的数据视为一个流。
流一般是由网络管理员定义的,可以根据不同的流执行不同的策略,在OpenFlow中,数据都是作为流进行处理的。所以流表就是针对特定流的策略表项的集合,负责数据包的查找和转发。
本申请采用流表来实现防火墙的功能,流表仅需要几条很少的资源即可实现防火墙的功能,相比于现有的通用软件防火墙大大降低了资源的占用率。并且,当有新的防火墙规则出现时,仅需要针对该新增规则添加一条新的流表信息,经过翻译后即可被交换机执行,不需要对已有的防火墙进行重新部署,使得防火墙更新更加简单、快捷。
接下来,结合图1所述,本申请的防火墙设置方法可以包括如下步骤:
步骤S100、接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型。
具体的,当用户需要使用防火墙功能时,可以通过客户端调用防火墙服务接口,从而创建一个防火墙模型,创建的防火墙模型可以包括逻辑防火墙信息,该逻辑防火墙信息可以包含防火墙所关联的网络、接口信息,此外,逻辑防火墙信息还可以包括防火墙规则,防火墙规则可以是默认的防火墙规则,也可以是用户添加的防火墙规则。
步骤S110、将所述逻辑防火墙信息翻译成逻辑流表信息,所述逻辑流表信息是以流表形式记录的逻辑防火墙信息。
具体的,本申请方案中通过流表的形式来实现防护墙功能,因此,需要将用户创建的防火墙模型中的逻辑防火墙信息翻译成逻辑流表信息,该逻辑流表信息是以流表形式记录的逻辑防火墙信息。
步骤S120、将所述逻辑流表信息翻译成交换机能够执行的指令,并由所述交换机执行所述指令,以实现防火墙功能。
具体的,逻辑流表信息需要进一步经过翻译,以翻译成能够被数据面的交换机执行的指令,该指令可以包括规则、动作等。通过交换机执行翻译后的指令,可以实现防火墙功能,也即完成了防火墙的设置过程。
其中,交换机可以是软件交换机,其可以在通用的软件平台上通过流表的方式对数据包进行操作。
本申请实施例提供的防护墙设置方法,支持用户通过客户端调用防火墙服务接口,并创建包含有逻辑防火墙信息的防火墙模型,进而将逻辑防火墙信息翻译成逻辑流表信息,该逻辑流表信息是以流表形式记录的逻辑防火墙信息,将所述逻辑流表信息翻译成交换机能够执行的指令,进而可以由所述交换机执行所述指令,以实现防火墙功能。本申请采用OpenFlow通信协议下的流表来实现逻辑防火墙信息,通过流表仅需要很少的资源即可实现防火墙功能,相比于现有的通用软件防火墙大大降低了资源的占用率。并且,当有新的防火墙规则出现时,仅需要针对该新增规则添加一条新的流表信息,经过翻译后即可被交换机执行,不需要对已有的防火墙进行重新部署,使得防火墙更新更加简单、快捷。
进一步的,基于流表实现的防火墙能够卸载到一些具有硬件卸载功能的网卡上,使得防火墙的性能获得极大提升。
可选的,上述逻辑流表信息可以包含基于用户设置的第一防火墙规则,即过滤满足用户设置的过滤规则的数据包,并放行不满足用户设置的过滤规则的数据包。
示例如用户设置的过滤规则为:
nw_src=192.168.12.2,action=drop
该条过滤规则标识,表示将原地址为192.168.12.2的数据包丢弃。
进一步可选的,上述逻辑流表信息还可以进一步包括基于状态匹配的第二防火墙规则,即针对基于前述第一防火墙规则过滤的数据包,对该数据包的状态进行匹配,若确定与设定目标状态匹配,则将数据包丢弃,否则,将数据包放行。
其中,对于满足用户设置的过滤规则的数据包,可以存储至conntrack模块,该模块是linux内核中用于记录状态的模块。则可以对conntrack模块中存储的数据包进行状态匹配。
下面示例了一条第二防火墙规则:
tcp,state=established,action=drop
该条规则表示匹配到状态为established的数据包时,将数据包丢弃。
本申请的防火墙设置方案可以对物理网络拓扑设置防火墙,除此之外,还可以对云网络拓扑设置防火墙,以实现云防火墙的功能,能够对VPC(virtual private cloud,虚拟私有云)中进出的流量进行保护。在用户申请虚拟机时,可以为其创建一个虚拟私有云,然后将申请的虚拟机都部署在VPC中,在需要上网时,可以通过路由器,挂载一个外部网络,这个外部网络可以是我们平时理解的公有网络或者是运营商网络,其总体网络拓扑架构如图2所示。
在图2中,虚拟交换机、虚拟路由器和防火墙部署在载体交换上,该载体交换机可以是软件平台模拟的软件交换机,如OVS(openvswitch)。
虚拟机连接到虚拟交换机,虚拟交换机连接到虚拟路由器。虚拟路由器的外面就是防火墙,该防火墙可以是虚拟防火墙,虚拟防护墙安置在内部和外部网络的连线上,所有的南北向流量都必须进出虚拟防火墙。南北向流量即虚拟机向外网的流量或外部网络向虚拟机的流量。
当虚拟机需要访问外部网络流量的时候,流量首先从虚拟机到达虚拟交换机,然后从虚拟交换机到达虚拟路由器,最后流量达到虚拟防火墙,在虚拟防火墙中,本申请可以设计规则,例如丢掉某一个网络的数据包,或者放行某一个网段的数据包。因为流表能够对数据包进行丢弃或者放行,所以它能够达到对网络流量进行保护的效果。并且,由于流表是分布在所有的计算节点上的,因此无论虚拟机位于什么位置,程序能够为其分配相应的保护流表,使得防火墙部署更加方便。
本申请实施例进一步提供了另一种防火墙在网络拓扑结构中的设置方式,如图3所示。
图3示例的拓扑结构中,将一个外部网络连接虚拟路由器的口加入到防火墙中,此时可以对虚拟路由器下所连接的内网进行保护,该内部包含多个子网络,分别是虚拟交换机1、虚拟交换机2和虚拟交换机3所在的子网络。当其中任意一个子网络想要向外网发出流量时,其必须通过防火墙,因此作用于外网的防火墙能够对所有挂接在同一个虚拟路由器上的子网流量进行保护。
进一步的,本申请实施例提供了一种防火墙模型设计结构,如图4所示。
客户端通过调用防火墙服务接口所创建的防火墙模型,可以理解为创建了一个防火墙安全组,防火墙安全组当中包含有ports选项,该ports选项用于记录防火墙作用于哪些端口上,这里的端口一般就是网络连接虚拟路由器的端口。防火墙安全组当中包含有Firewall_policy(防火墙策略),防火墙策略与防火墙安全组的对应关系可以是1:2,也即一个防火墙安全组可以包含有两条防火墙策略。防火墙策略中含有一个变量:Firewallgroup,其用于记录这条防火墙策略所属的防火墙安全组。防火墙策略中包含有Firewallrules(防火墙规则),防火墙策略与防火墙规则的关系可以是1:n,即一条防火墙策略当中可以包含若干条防火墙规则。防火墙规则里面包含一些动作action,action规定了对数据包所执行的动作。
本申请的一个实施例中,可以通过软件定义网络(Network,SDN DefinedSoftware)来实现防火墙的设置过程。
具体的,SDN中包含有北向数据库、流表翻译中间件、南向数据库及控制器几部分。
其中,以控制器为核心,其与应用层间交互的数据存储在北向数据库中,与数据转发层间交互的数据存储在南向数据库中。
在此基础上,前述步骤S100,接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型的过程,具体可以包括:
响应客户端调用防火墙服务接口并创建防火墙模型的请求,将客户端所创建的包含有逻辑防火墙信息的防火墙模型插入SDN的北向数据库中。
前述步骤S110,将所述逻辑防火墙信息翻译成逻辑流表信息的过程,可以包括:
首先,调用SDN的流表翻译中间件,将所述逻辑防火墙信息翻译成逻辑流表信息。
其次,将所述逻辑流表信息插入SDN的南向数据库中。
前述步骤S120,将所述逻辑流表信息翻译成交换机能够执行的指令的过程,可以包括:
调用SDN的控制器,从所述南向数据库中读取插入的所述逻辑流表信息,并将所述逻辑流表信息翻译成交换机能够执行的指令。
进一步参照图5,其示例了基于SDN实现防火墙设置的过程示意图。
如图5所示,该过程可以包括:
步骤S10、客户端可以通过调用防火墙服务提供的接口,创建防火墙模型。
具体的,创建的防火墙模型可以包括逻辑防火墙信息。对于创建的防火墙模型可以插入到北向数据库中。
步骤S11、流表翻译中间件从北向数据库中读取防火墙模型的逻辑防火墙信息。
步骤S12、流表翻译中间件将读取的逻辑防火墙信息翻译成逻辑流表信息,并插入到南向数据库中。
步骤S13、控制器从南向数据库中读取插入的逻辑流表信息。
步骤S14、控制器将读取的逻辑流表信息翻译成交换机能够执行的指令,并将指令推送至交换机。
步骤S15、交换机执行指令,以实现防火墙的生效。
在本申请的一些实施例中,设置的防火墙可以是云防火墙,也即用于对部署的虚拟私有云进行流量保护。如图2、图3所示的,可以通过软件平台模拟出软件交换机,作为载体交换机,载体交换机上承载有虚拟交换机、虚拟路由器和防火墙,防火墙、虚拟路由器和虚拟交换机依次连接,且虚拟交换机与部署的虚拟机连接。
其中,虚拟路由器通过流表实现。具体的,用于实现虚拟路由器功能的流表可以存储在南向数据库中。
在此基础上,本申请可以将防火墙功能与虚拟路由器功能结合在一起,实现基于流表的安全网关功能。
具体的,前述将逻辑流表信息插入SDN的南向数据库中的过程,具体可以包括:
将逻辑流表信息插入南向数据库中所述虚拟路由器的流表中。
通过将用于实现防火墙功能的逻辑流表信息插入用于实现虚拟路由器的流表中,实现了将防火墙功能与虚拟路由器功能的结合。
对于虚拟路由器的流表,其可以按照路由器的入口方向和出口方向,分别划分为入口流表和出口流表。入口流表用于实现虚拟路由器的入口流量的路由处理功能,出口流表用于实现虚拟路由器的出口流量的路由处理功能。
下述表1示例了一种虚拟路由器的入口流表结构,表2示例了一种虚拟路由器的出口流表结构。
0 lr_in_admission |
1 lr_in_ip_input |
2 lr_in_defrag |
3 lr_in_unsnat |
4 lr_in_dnat |
5 lr_in_nd_ra_options |
6 lr_in_nd_ra_response |
7 lr_in_ip_routing |
8 lr_in_arp_resolve |
9 lr_in_gw_redirect |
10 lr_in_arp_request |
表1
其中,上述入口流表中各条流表项的意义介绍如下:
0号流表项lr_in_admission,0号流表项是负责安全职责的流表,过滤一些非它所希望看到的数据包,例如丢弃掉一些广播包。
1号流表项lr_in_ip_input,1号流表项是逻辑路由器功能的核心,它包含回复icmp包,回复针对逻辑路由器口的arp包或者回复tcp reset包和icmp不可达包。
2号流表项lr_in_defrag,这张表项主要解决数据包分片问题,在收到一个分片数据包的时候,这张流表项会将该数据包送入到conntrack模块,由conntrack模块进行数据处理。
3号流表项lr_in_unsnat,该流表项的作用是逆源地址转换(SNAT),当内部的数据包流量经过源地址转换(SNAT)功能出去之后,回来的数据包需要经过该表项将外部流量变成内部流量。
4号流表项lr_in_dnat,该流表项的作用是将外部流量转换为内部流量。
5号流表项lr_in_nd_ra_options,6号流表项lr_in_nd_ra_response,这两张流表项主要作用是处理IPv6相关的邻居发现包,在ipv6邻居发现功能中起作用。
7号流表项lr_in_ip_routing,该流表项的作用就是实现路由功能。
8号流表项为地址解析功能,当一个数据包要跨网段的时候,例如从一个网段到达另外一个网段,它的源物理地址和目的物理地址需要变换,8号流表项就是执行此项功能。
9号流表项lr_in_gw_redirect,该流表项的作用是执行分布式路由功能。
10号流表项lr_in_arp_request,该流表项的作用是发现本地没有缓存目的地址的物理地址时,发送一个arp请求包以便学习到与目的地址对应的物理地址。
需要说明的是,上述各流表项的名称可以根据用户的定义而调整,表1仅仅示例了一种可选的名称定义。
上面的入口流表实现了路由器的入口路由功能,但是却没有防火墙功能,为了实现防火墙功能,本申请可以在上述已有的入口流表中添加用于实现防火墙功能的逻辑流表信息,后文详细进行说明。
进一步,表2示例了一种虚拟路由器的出口流表结构。
0 lr_out_undnat |
1 lr_out_snat |
2 lr_out_egr_loop |
3 lr_out_delivery |
表2
其中,上述出口流表中各条流表项的意义介绍如下:
0号流表项lr_out_undnat,是逆目的地址转换(DNAT)的意思,当外部机器访问内网机器,做了目的地址转换,而内部机器回复外部机器就需要经过逆目的地址转换,这张表项就是内部回复外部机器请求时,内部地址向外部地址转换的作用。
1号流表项lr_out_snat是源地址转换的意思,将内部发起的请求转换为外部发起的请求。
2号流表项lr_out_egr_loop用于指示路由器是否要把包重新注入进该路由器进行处理。
3号流表项lr_out_delivery用于在实际运行中将数据包送往实际的物理端口,数据包处理到底这个流表项表面已经做好了所有的发送准备。
需要说明的是,上述各流表项的名称可以根据用户的定义而调整,表2仅仅示例了一种可选的名称定义。
上面的出口流表实现了路由器的出口路由功能,但是却没有防火墙功能,为了实现防火墙功能,本申请可以在上述已有的出口流表中添加用于实现防火墙功能的逻辑流表信息,后文详细进行说明。
进一步的,用于实现防火墙功能的逻辑流表信息也可以包括两种,分别是用于实现虚拟路由器的入口方向的防火墙的入口方向逻辑流表信息,以及,用于实现虚拟路由器的出口方向的防火墙的出口方向逻辑流表信息。
为了实现防火墙与虚拟路由器的结合,本申请实施例中可以将所述入口方向逻辑流表信息插入南向数据库中所述虚拟路由器的入口流表中。以及,将所述出口方向逻辑流表信息插入南向数据库中所述虚拟路由器的出口流表中。
需要说明的是,为了保证不影响虚拟路由器的入口路由功能,本申请实施例中可以将所述入口方向逻辑流表信息插入所述虚拟路由器的入口流表中,用于实现路由功能的各条流表项之前的位置。
以上述表1示例的入口流表为例,基于前述对各条流表项功能的介绍可知,流表项1-10均是为了实现入口路由功能,因此,可以选择将入口方向逻辑流表信息插入表1中流表项1之前,如插入到0号流表项和1号流表项之间。
一种示例的情况下,入口方向逻辑流表信息包括两条流表项,分别定义为lr_in_pre_firewall和lr_in_firewall,则插入入口方向逻辑流表信息后的路由器入口流表结构如下表3所示:
0 lr_in_admission |
1 lr_in_pre_firewall |
2 lr_in_firewall |
3 lr_in_ip_input |
4 lr_in_defrag |
5 lr_in_unsnat |
6 lr_in_dnat |
7 lr_in_nd_ra_options |
8 lr_in_nd_ra_response |
9 lr_in_ip_routing |
10 lr_in_arp_resolve |
11 lr_in_gw_redirect |
12 lr_in_arp_request |
表3
同理,为了保证不影响虚拟路由器的出口路由功能,本申请实施例中可以将所述出口方向逻辑流表信息插入所述虚拟路由器的出口流表中,用于实现路由功能的各条流表项之后的位置。
以上述表2示例的出口流表为例,基于前述对各条流表项功能的介绍可知,流表项0-2均是为了实现出口路由功能,因此,可以选择将出口方向逻辑流表信息插入表2中流表项2之后,如插入到2号流表项和3号流表项之间。
一种示例的情况下,出口方向逻辑流表信息包括两条流表项,分别定义为lr_out_pre_firewall和lr_out_firewall,则插入出口方向逻辑流表信息后的路由器出口流表结构如下表4所示:
0 lr_out_undnat |
1 lr_out_snat |
2 lr_out_egr_loop |
3 lr_out_pre_firewall |
4 lr_out_firewall |
5 lr_out_delivery |
表4
下面对本申请实施例提供的防火墙设置装置进行描述,下文描述的防火墙设置装置与上文描述的防火墙设置方法可相互对应参照。
参见图6,图6为本申请实施例公开的一种防火墙设置装置结构示意图。
如图6所示,该装置可以包括:
防火墙创建单元11,用于接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型;
逻辑防火墙信息翻译单元12,用于将所述逻辑防火墙信息翻译成逻辑流表信息,所述逻辑流表信息是以流表形式记录的逻辑防火墙信息;
逻辑流表信息翻译单元13,用于将所述逻辑流表信息翻译成交换机能够执行的指令,并由所述交换机执行所述指令,以实现防火墙功能。
可选的,上述防火墙创建单元接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型的过程,可以包括:
响应客户端调用防火墙服务接口并创建防火墙模型的请求,将客户端所创建的包含有逻辑防火墙信息的防火墙模型插入软件定义网络SDN的北向数据库中。
可选的,上述逻辑防火墙信息翻译单元将所述逻辑防火墙信息翻译成逻辑流表信息的过程,可以包括:
调用软件定义网络SDN的流表翻译中间件,将所述逻辑防火墙信息翻译成逻辑流表信息;
将所述逻辑流表信息插入SDN的南向数据库中。
可选的,上述逻辑流表信息翻译单元将所述逻辑流表信息翻译成交换机能够执行的指令的过程,可以包括:
调用所述SDN的控制器,从所述南向数据库中读取插入的所述逻辑流表信息,并将所述逻辑流表信息翻译成交换机能够执行的指令。
可选的,所述交换机上承载有虚拟交换机、虚拟路由器和防火墙,所述防火墙、所述虚拟路由器和所述虚拟交换机依次连接,且所述虚拟交换机与部署的虚拟机连接,所述虚拟路由器通过流表实现,所述南向数据库中存储有所述虚拟路由器的流表。在此基础上,上述逻辑防火墙信息翻译单元将所述逻辑流表信息插入SDN的南向数据库中的过程,可以包括:
将所述逻辑流表信息插入所述南向数据库中所述虚拟路由器的流表中。
可选的,上述逻辑流表信息可以包括用于实现虚拟路由器的入口方向的防火墙的入口方向逻辑流表信息,以及,用于实现虚拟路由器的出口方向的防火墙的出口方向逻辑流表信息。在此基础上,上述逻辑防火墙信息翻译单元将所述逻辑流表信息插入所述南向数据库中所述虚拟路由器的流表中的过程,可以包括:
将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中,以及,
将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中。
可选的,上述逻辑防火墙信息翻译单元将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中的过程,可以包括:
将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中,用于实现路由功能的各条流表项之前的位置。
进一步,上述逻辑防火墙信息翻译单元将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中的过程,可以包括:
将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中,用于实现路由功能的各条流表项之后的位置。
可选的,上述逻辑流表信息可以包含基于用户设置的第一防火墙规则,即过滤满足用户设置的过滤规则的数据包,并放行不满足用户设置的过滤规则的数据包。
进一步可选的,上述逻辑流表信息还可以包括基于状态匹配的第二防火墙规则,即针对基于所述第一防火墙规则过滤的数据包,对所述数据包的状态进行匹配,若确定与设定目标状态匹配,则将所述数据包丢弃,否则,将所述数据包放行。
本申请实施例提供的防火墙设置装置可应用于防火墙设置设备,如服务器、云端等。可选的,图7示出了防火墙设置设备的硬件结构框图,参照图7,防火墙设置设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型;
将所述逻辑防火墙信息翻译成逻辑流表信息,所述逻辑流表信息是以流表形式记录的逻辑防火墙信息;
将所述逻辑流表信息翻译成交换机能够执行的指令,并由所述交换机执行所述指令,以实现防火墙功能。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型;
将所述逻辑防火墙信息翻译成逻辑流表信息,所述逻辑流表信息是以流表形式记录的逻辑防火墙信息;
将所述逻辑流表信息翻译成交换机能够执行的指令,并由所述交换机执行所述指令,以实现防火墙功能。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种防火墙设置方法,其特征在于,包括:
接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型;
调用软件定义网络SDN的流表翻译中间件,将所述逻辑防火墙信息翻译成逻辑流表信息,将所述逻辑流表信息插入SDN的南向数据库中,所述逻辑流表信息是以流表形式记录的逻辑防火墙信息;
调用所述SDN的控制器,从所述南向数据库中读取插入的所述逻辑流表信息,并将所述逻辑流表信息翻译成交换机能够执行的指令,并由所述交换机执行所述指令,以实现防火墙功能;
其中,所述交换机上承载有虚拟交换机、虚拟路由器和防火墙,所述防火墙、所述虚拟路由器和所述虚拟交换机依次连接,且所述虚拟交换机与部署的虚拟机连接;
所述虚拟路由器通过流表实现,所述南向数据库中存储有所述虚拟路由器的流表;
所述将所述逻辑流表信息插入SDN的南向数据库中,包括:
将所述逻辑流表信息插入所述南向数据库中所述虚拟路由器的流表中。
2.根据权利要求1所述的方法,其特征在于,所述接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型,包括:
响应客户端调用防火墙服务接口并创建防火墙模型的请求,将客户端所创建的包含有逻辑防火墙信息的防火墙模型插入软件定义网络SDN的北向数据库中。
3.根据权利要求1所述的方法,其特征在于,所述逻辑流表信息包括用于实现虚拟路由器的入口方向的防火墙的入口方向逻辑流表信息,以及,用于实现虚拟路由器的出口方向的防火墙的出口方向逻辑流表信息;
所述将所述逻辑流表信息插入所述南向数据库中所述虚拟路由器的流表中,包括:
将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中,以及,
将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中。
4.根据权利要求3所述的方法,其特征在于,所述将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中,包括:
将所述入口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的入口流表中,用于实现路由功能的各条流表项之前的位置;
所述将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中,包括:
将所述出口方向逻辑流表信息插入所述南向数据库中所述虚拟路由器的出口流表中,用于实现路由功能的各条流表项之后的位置。
5.根据权利要求1所述的方法,其特征在于,所述逻辑流表信息包含基于用户设置的第一防火墙规则,即过滤满足用户设置的过滤规则的数据包,并放行不满足用户设置的过滤规则的数据包。
6.根据权利要求5所述的方法,其特征在于,所述逻辑流表信息还包括基于状态匹配的第二防火墙规则,即针对基于所述第一防火墙规则过滤的数据包,对所述数据包的状态进行匹配,若确定与设定目标状态匹配,则将所述数据包丢弃,否则,将所述数据包放行。
7.一种防火墙设置装置,其特征在于,包括:
防火墙创建单元,用于接收客户端通过调用防火墙服务接口所创建的包含有逻辑防火墙信息的防火墙模型;
逻辑防火墙信息翻译单元,用于调用软件定义网络SDN的流表翻译中间件,将所述逻辑防火墙信息翻译成逻辑流表信息,将所述逻辑流表信息插入SDN的南向数据库中,所述逻辑流表信息是以流表形式记录的逻辑防火墙信息;
逻辑流表信息翻译单元,用于调用所述SDN的控制器,从所述南向数据库中读取插入的所述逻辑流表信息,并将所述逻辑流表信息翻译成交换机能够执行的指令,并由所述交换机执行所述指令,以实现防火墙功能;
其中,所述交换机上承载有虚拟交换机、虚拟路由器和防火墙,所述防火墙、所述虚拟路由器和所述虚拟交换机依次连接,且所述虚拟交换机与部署的虚拟机连接;
所述虚拟路由器通过流表实现,所述南向数据库中存储有所述虚拟路由器的流表;
所述将所述逻辑流表信息插入SDN的南向数据库中,包括:
将所述逻辑流表信息插入所述南向数据库中所述虚拟路由器的流表中。
8.一种防火墙设置设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~6中任一项所述的防火墙设置方法的各个步骤。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~6中任一项所述的防火墙设置方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011230049.8A CN112351034B (zh) | 2020-11-06 | 2020-11-06 | 防火墙设置方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011230049.8A CN112351034B (zh) | 2020-11-06 | 2020-11-06 | 防火墙设置方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112351034A CN112351034A (zh) | 2021-02-09 |
CN112351034B true CN112351034B (zh) | 2023-07-25 |
Family
ID=74429790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011230049.8A Active CN112351034B (zh) | 2020-11-06 | 2020-11-06 | 防火墙设置方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112351034B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI773200B (zh) * | 2021-03-18 | 2022-08-01 | 中華電信股份有限公司 | 容器服務基礎設施供裝管理系統、方法及電腦可讀媒介 |
CN113612807B (zh) * | 2021-10-09 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种分布式防火墙定义方法及系统 |
CN114826791B (zh) * | 2022-06-30 | 2023-03-31 | 苏州浪潮智能科技有限公司 | 一种防火墙设置方法、系统、设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935604A (zh) * | 2015-06-29 | 2015-09-23 | 南京邮电大学 | 一种基于OpenFlow协议的SDN防火墙系统和方法 |
CN108322467A (zh) * | 2018-02-02 | 2018-07-24 | 云宏信息科技股份有限公司 | 基于ovs的虚拟防火墙配置方法、电子设备及存储介质 |
CN110381025A (zh) * | 2019-06-14 | 2019-10-25 | 浙江大学 | 一种软件定义防火墙系统的实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10154009B2 (en) * | 2015-08-11 | 2018-12-11 | At&T Intellectual Property I, L.P. | Providing a basic firewall using a virtual networking function |
KR102160187B1 (ko) * | 2018-11-20 | 2020-09-25 | 광주과학기술원 | 에스디엔의 방화벽 전개 장치, 에스디엔의 방화벽 전개 방법, 및 이 장치 또는 방법이 적용되는 네트워크 |
-
2020
- 2020-11-06 CN CN202011230049.8A patent/CN112351034B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935604A (zh) * | 2015-06-29 | 2015-09-23 | 南京邮电大学 | 一种基于OpenFlow协议的SDN防火墙系统和方法 |
CN108322467A (zh) * | 2018-02-02 | 2018-07-24 | 云宏信息科技股份有限公司 | 基于ovs的虚拟防火墙配置方法、电子设备及存储介质 |
CN110381025A (zh) * | 2019-06-14 | 2019-10-25 | 浙江大学 | 一种软件定义防火墙系统的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112351034A (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112351034B (zh) | 防火墙设置方法、装置、设备及存储介质 | |
AU2014302620B2 (en) | System and method for distribution of policy enforcement point | |
US9025468B1 (en) | Custom routing decisions | |
US9246791B2 (en) | Method and apparatus for routing and forwarding between virtual routers within a single network element | |
JP4323523B2 (ja) | 適合性ネットワークブリッジ | |
US8559429B2 (en) | Sequential frame forwarding | |
US9183028B1 (en) | Managing virtual computing nodes | |
EP3465997B1 (en) | Packet forwarding using vendor extension in a software-defined networking (sdn) system | |
US10798062B1 (en) | Apparatus, system, and method for applying firewall rules on packets in kernel space on network devices | |
US11329959B2 (en) | Virtual routing and forwarding (VRF)-aware socket | |
US20230073630A1 (en) | Method and system for propagating network traffic flows between end points based on service and priority policies | |
EP0967759B1 (en) | Broadcast traffic reduction in a communications network | |
CN113472917A (zh) | 一种数据报文的网络地址转换方法、设备及介质 | |
CN110022263B (zh) | 一种数据传输的方法及相关装置 | |
Boye | Netfilter connection tracking and NAT implementation | |
CN102763376A (zh) | 用于电信网络环境中共同组动作过滤的方法和系统 | |
CN115118655B (zh) | 跨网络报文转发方法、装置、电子设备及可读存储介质 | |
JP2007150641A (ja) | パケット通信装置及びネットワークシステム | |
US8561166B2 (en) | Efficient implementation of security applications in a networked environment | |
WO2022089027A1 (zh) | 发送报文的方法、装置、系统及存储介质 | |
WO2023185502A1 (zh) | 流量回注方法及防护系统 | |
WO2021219217A1 (en) | Updating routing information | |
JP2004120642A (ja) | ルータ装置、及び転送制御方法 | |
CN116137632A (zh) | 一种报文处理方法、装置及设备 | |
CN117728978A (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 |