CN107005555B - 上下文感知的分布式防火墙 - Google Patents
上下文感知的分布式防火墙 Download PDFInfo
- Publication number
- CN107005555B CN107005555B CN201580064410.5A CN201580064410A CN107005555B CN 107005555 B CN107005555 B CN 107005555B CN 201580064410 A CN201580064410 A CN 201580064410A CN 107005555 B CN107005555 B CN 107005555B
- Authority
- CN
- China
- Prior art keywords
- firewall
- rules
- address
- nodes
- cidr
- 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
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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了上下文感知的分布式防火墙方案。任务是为一组网络地址提供防火墙保护的防火墙引擎应用与和机器相关联的一组地址相关的防火墙规则的精简集。管理程序实现允许每一个虚拟机的过滤器从所有接收到的规则中快速识别相关规则的搜索结构。搜索结构被构造为二进制前缀树,每一个节点对应于IP CIDR(无类别域间路由)块。对相关规则的查询根据所查询的IP地址遍历搜索结构的节点并且收集与遍历的节点相关联的所有规则。
Description
背景技术
在软件定义数据中心(SDDC)环境中,分布式网络防火墙正在取代传统的防火墙,以便满足粒度和可扩展性的新要求。通常,防火墙控制器被部署在每一个管理程序上,以保护在管理程序上运行的虚拟机(VM),并且集中式管理组件将防火墙规则分发到SDDC中的所有防火墙控制器。经常,每一个防火墙控制器接收到针对整个数据中心的大的规则集。防火墙控制器然后将所有规则应用到数据中心中的每一个受保护的VM。图1图示数据中心100中的分布式防火墙方案,其中防火墙规则的完整集被应用到每一个VM。在这种情况下,因为必须对照整个规则集检查每一个网络分组,所以大的规则集会对防火墙引擎造成显著的负担。此外,因为规则集被复制到每一个受保护的VM,所以它还消耗大量的存储器。
发明内容
本发明的一些实施例提供了上下文感知的分布式防火墙方案,其中任务是为一组网络地址提供防火墙保护的防火墙引擎应用与和机器相关联的一组网络地址相关的防火墙规则的精简集。在一些实施例中,由在主机机器上运行的管理程序或虚拟化软件实现防火墙控制器,并且由防火墙控制器保护的网络地址对应于由管理程序托管的VM的网络地址。这些防火墙控制器中的一些或全部是允许主机机器操作VM的管理程序的一部分。防火墙控制器又通过提供与这些VM的网络地址相关的规则来保护那些VM。
在一些实施例中,每一个主机机器接收关于数据中心中的所有规则的防火墙配置消息。但是,主机机器的管理程序/防火墙控制器只识别用于其每一个VM的相关规则,使得管理程序将只需要应用识别出的相关规则来对传入分组进行检查。在一些实施例中,管理程序实现允许每一个VM的过滤器从所有接收到的规则中快速识别相关规则的搜索结构。
在一些实施例中,搜索结构用于识别与VM或一组VM相关的限定规则(由IP CIDR块指定的规则)。搜索结构的每一个节点对应于IP CIDR块。如果规则的源地址字段或目的地地址字段指定节点的IP CIDR块,那么规则与节点相关联。如果若干规则在它们的地址字段中指定相同的IP CIDR块,那么对应于该IP CIDR块的节点将与该若干规则相关联。在一些实施例中,搜索结构被构造为二进制前缀树。
为了使用搜索结构来识别用于VM的相关规则,一些实施例使用VM的IP地址来查询搜索结构。查询遍历搜索结构的节点,并且收集与遍历的节点相关联的所有规则。如果搜索结构中的节点(i)其CIDR块包含所查询的IP地址并且(ii)其所有祖先节点也被遍历,那么该节点将被遍历。
前面的发明内容旨在用作对本发明的一些实施例的简要介绍。它并不意味着是本文档中所公开的所有发明性主题的介绍或概述。以下的具体实施方式和具体实施方式所参考的附图将进一步描述在发明内容中所描述的实施例以及其它实施例。因此,为了理解本文档所描述的所有实施例,需要对发明内容、具体实施方式和附图进行全面地阅读。此外,因为可以在不脱离本主题的精神的情况下以其它特定形式来体现所要求保护的主题,所以所要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节的限制,而是要由所附权利要求来限定。
附图说明
本发明的新颖特征在所附权利要求中阐述。但是,为了解释的目的,在以下图中阐述本发明的数个实施例。
图1图示数据中心中的分布式防火墙方案,其中防火墙规则的完整集被应用到每一个VM。
图2图示分布式防火墙体系架构,其中每一个分布式防火墙控制器仅为它正在保护的网络地址使用精简的相关规则集。
图3图示在管理程序中实现的用于保护正在那些管理程序上操作的VM的上下文感知的防火墙控制器。
图4图示管理程序,该管理程序从网络管理器接收防火墙规则的完整集并且识别与管理程序的每一个VM相关的规则。
图5概念性地图示用于通过仅识别和应用相关规则来执行防火墙过滤操作的过程。
图6图示其中每一个规则仅具有作为源地址和目的地地址的IP CIDR块的防火墙规则。
图7图示用于从集中的合格规则中高效地识别相关规则的搜索结构。
图8图示使用搜索树来识别用于数个示例IP地址的相关规则。
图9概念性地图示用于使用防火墙规则的搜索树来识别与IP地址相关的合格规则的过程。
图10概念性地图示用于构建用于识别相关规则的前缀树搜索结构并更新到本地防火墙控制器的过程。
图11图示正在操作用于托管虚拟机的虚拟化软件的示例主机机器。
图12概念性地图示实现本发明的一些实施例的电子***。
具体实施方式
在以下描述中,出于解释的目的阐述了许多细节。但是,本领域普通技术人员将认识到的是,可以在不使用这些具体细节的情况下实践本发明。在其它的情况下,以框图的形式示出众所周知的结构和设备,以便防止用不必要的细节模糊本发明的描述。
本发明的一些实施例提供了上下文感知的分布式防火墙方案,其中任务是为一组网络地址提供防火墙保护的防火墙引擎应用与和机器相关联的一组网络地址相关的防火墙规则的精简集。对于一些实施例,本发明通过基于VM的网络地址减少在每一个VM上加载的规则来解决由大的规则集引起的挑战。在一些实施例中,VM的网络地址用于确定用于VM的所有相关防火墙规则。
在一些实施例中,当VM连接到网络时,其将自己呈现为具有一个或多个有效的网络地址,以便参与到网络通信中。管理程序检测VM的网络地址,然后识别防火墙规则,该防火墙规则的已定义的网络地址是VM的网络地址的超集。这些识别出的规则是与VM相关的防火墙规则。这些规则被应用到VM,并且防火墙引擎将仅使用这些规则来检查VM的网络流量。通常,用于数据中心的防火墙规则的总数可以相当大,范围从数万到数十万。但是,用于单个VM的防火墙规则的数量相当小,不超过一百个。因此,基于精简的相关规则集的分布式防火墙可以在存储器和处理时间方面实现显著的节省。
在一些实施例中,管理程序中的防火墙引擎将所有防火墙规则的网络地址存储在类特里(trie)的数据结构中。在检测到新VM的网络地址后,防火墙引擎查找规则特里并寻找其地址是VM的网络地址的超集的所有规则。然后它将这些规则应用到VM。防火墙引擎将仅使用附属于VM的规则来检查该VM的网络流量。
下面描述本发明的数个更详细的实施例。部分I描述用于实现上下文感知的分布式防火墙方案的***体系架构。部分II描述促进识别用于本地防火墙控制器的相关规则的搜索结构。部分III描述用作VM的主机机器的示例计算设备。最后,部分IV描述实现本发明的一些实施例的电子***。
I.体系架构
图2图示分布式防火墙体系架构,其中每一个分布式防火墙控制器为它正在保护的网络地址仅使用精简的相关规则集。一些实施例将这些分布式防火墙控制器称为是上下文感知的,这是因为这些防火墙控制器中的每一个都知道其必须保护的网络地址,并且又仅使用与其知道的网络地址相关的规则集。
该图图示实现分布式防火墙方案的数据中心200。如所图示的,数据中心200采用若干分布式(或本地)防火墙控制器211-219。这些防火墙控制器中的每一个的任务是保护一个或多个网络地址(即,与这些网络地址相关联的网络节点)。如所图示的,防火墙控制器211的任务是保护网络地址A、B和C,并且防火墙控制器219的任务是保护网络地址X、Y和Z。
数据中心200具有防火墙规则的完整集205。每一个规则具有源字段和目的地字段。每一个源字段/目的地字段指定网络地址、网络地址的范围(诸如,CIDR块)、或网络地址的集合(诸如,容器)。具有分别落在规则的源字段和目的地字段内的源地址和目的地地址的分组受规则的指定动作/要求的约束。
这些规则用于保护数据中心200中的所有网络地址(例如,在数据中心的所有主机机器上运行的所有VM)。如所图示的,一些规则适用于由防火墙控制器211保护的地址(地址A、B和C由规则1、2、3、1001和1002保护),而一些规则适用于由防火墙控制器219保护的地址(地址X、Y和Z由规则1001、1002、2001和2002保护)。但是,与其中每一个防火墙控制器必须检查数据中心100的整个规则集的图1的分布式防火墙方案不同,图2的数据中心200中的每一个防火墙控制器是上下文感知的,并且仅检查用于它正在保护的网络地址的规则集205的相关子集。
如所图示的,上下文感知的防火墙控制器211仅提供分别用于地址A、B和C的规则的子集221、222和223。因此,地址A的防火墙仅检查规则1、2和1001,地址B的防火墙仅检查规则1、3和1002,地址C的防火墙仅检查2和3,等等。同样,上下文感知防火墙控制器219仅提供分别用于地址X、Y和Z的规则的子集227、228和229。因此,地址X的防火墙仅检查规则1001、2001和2002,地址Y的防火墙仅检查规则1002和2001,地址Z的防火墙仅检查规则2002,等等。
在一些实施例中,防火墙控制器211-219由在主机机器上运行的管理程序或虚拟化软件实现,并且由防火墙控制器保护的网络地址对应于由管理程序托管的VM的网络地址。这些防火墙控制器中的一些或全部是允许主机机器操作VM的管理程序的一部分。防火墙控制器又通过提供与这些VM的网络地址相关的规则来保护那些VM。对于一些实施例,图3图示在管理程序中实现的用于保护正在那些管理程序上操作的VM的上下文感知的防火墙控制器。
图3图示具有用于保护整个数据中心的集中式防火墙规则305的集合的数据中心300。集中式防火墙规则305由数据中心300的网络管理器310维护。数个主机机器311-319位于数据中心300中。网络管理器310和主机机器311-319通过物理网络基础设施390互连,这允许网络管理器向主机机器中的每一个发送控制平面消息,包括防火墙配置消息。数据中心300中的主机机器311-319操作VM A至Z,并且集中式防火墙规则305包括用于保护所有那些VM的规则。
每一个主机机器操作允许主机机器托管一个或多个VM的管理程序或虚拟化软件。如所图示的,主机机器311托管VM A、B和C,主机机器312托管VM D、E和F,并且主机机器319托管VM X、Y和Z。每一个主机机器的虚拟化软件还操作用于保护其正在托管的VM的分布式防火墙控制器(的本地副本)。每一个管理程序基于与VM相关的规则的精简集为其VM中的每一个执行防火墙操作。例如,主机机器311的虚拟化软件仅为VM A使用与VM A相关的防火墙规则,为VM B使用与VM B相关的防火墙规则,等等。由于不需要搜索不相关的防火墙规则,因此每一个管理程序实现的分布式防火墙控制器能够在分组处理时间和存储器使用方面实现显著的节省。
不同的实施例使用不同的方法来确保每一个分布式防火墙控制器仅考虑相关规则。在一些其它实施例中,数据中心的网络管理器得知哪些VM正在被特定的分布式防火墙控制器保护。网络管理器然后识别用于那些VM的相关规则,并将仅包含识别出的相关规则的防火墙配置消息发送到特定的分布式防火墙控制器。因此,每一个主机机器只存储用于它正在托管的VM的相关规则。
在一些实施例中,每一个主机机器接收关于数据中心中的所有规则的防火墙配置消息。如图3所图示的,每一个主机机器311-319从网络管理器310接收数据中心防火墙规则305中的所有规则。但是,主机机器的管理程序/防火墙控制器仅识别用于其每一个VM的相关规则,使得管理程序将只需要应用识别出的相关规则来对传入分组进行检查。图4图示管理程序,该管理程序从网络管理器接收防火墙规则的完整集并且识别与管理程序的每一个VM相关的规则。
如所图示的,用于数据中心300中的每一个主机机器的管理程序包括本地防火墙控制器、搜索结构和用于管理程序的VM的一组过滤器。例如,主机机器311运行管理程序,包括本地防火墙控制器421、搜索结构431和分别用于其VM A、B和C的一组过滤器441-443。本地防火墙控制器421从网络管理器310接收控制平面消息。控制平面消息包括用于整个数据中心的防火墙规则。本地防火墙控制器421又使用接收到的防火墙规则来构建包括数据中心300的整个防火墙规则集的搜索结构431。管理程序311的每一个过滤器(过滤器441-443)又使用搜索结构431来查询与其对应的VM的IP地址相关的规则。VM的相关规则是其源地址或目的地地址包含该VM的IP地址或与该VM的IP地址完全相同的那些规则。
在一些实施例中,当受保护的VM的虚拟NIC(网络接口控制器)连接到管理程序的L2虚拟交换机时,管理程序创建过滤器作为逻辑网络自省(introspection)实体。这种过滤器包含防火墙规则集,并且允许防火墙控制器对照规则检查经过虚拟NIC的所有网络分组。在从网络管理器接收到新的防火墙配置消息之后,管理程序将用新规则对所有受保护的VM的过滤器进行编程。在一些实施例中,管理程序不是将所有接收到的规则传递到内核中的每一个适用的过滤器,而是实现允许每一个VM的过滤器从所有接收到的规则中快速识别相关规则的搜索结构(诸如,用于管理程序311的搜索结构431)。将在下面部分II中进一步描述用于识别相关规则的搜索结构。
图5概念性地图示用于通过仅识别和应用相关规则来执行防火墙过滤操作的过程500。在一些实施例中,该过程由在主机机器上运行的管理程序执行。具体而言,在一些实施例中,过程500由VM的过滤器模块执行。
当过程接收(在510处)VM的分组时,该过程开始。该过程然后使用(在520处)防火墙规则搜索结构来基于VM的IP地址识别与VM相关的规则。在一些实施例中,过滤器高速缓存相关规则,并且当防火墙规则已被更新时,例如,当管理程序从网络控制器接收到防火墙配置消息时,仅使用防火墙规则搜索结构来更新其高速缓存的规则。
该过程然后识别(在530处)接收到的分组的源地址字段和目的地地址字段,并且通过应用VM的相关规则对传入分组执行(在540处)防火墙操作(例如,阻止、允许等)。在一些实施例中,该过程浏览相关规则并且应用那些具有分别包含传入分组的源字段和目的地字段的源字段和目的地字段的规则。然后过程500结束。
II.搜索结构
如所提到的,防火墙规则的地址字段可以指定网络地址、网络地址的范围或网络地址的集合。不同的实施例使用针对不同类型的地址字段优化的不同类型的搜索结构。例如,一些实施例使用基于容器的搜索结构,该基于容器的搜索结构针对被指定为网络地址的容器的地址字段优化。于2014年6月4日提交的标题为“Efficient PacketClassification for Dynamic Containers”的美国专利申请No.14/295,553描述了用于使用容器来指定源地址和/或目的地地址的规则的搜索结构。美国专利申请No.14/295,553通过引用被结合于此。
在一些实施例中,防火墙规则使用IP CIDR块来指定源地址和目的地地址,并且管理程序中的本地防火墙控制器使用搜索结构,该搜索结构为了在使用IP CIDR块来指定源地址和目的地地址的规则当中寻找相关规则而优化。CIDR(无类别域间路由)记号是IP地址及其相关联路由前缀的紧凑表示。该记号由IP地址和前缀大小构建,后者相当于路由前缀掩码中的前导“1”比特的数量。IP地址根据IPv4或IPv6的标准来表示。之后跟随着分隔符,斜杠('/')字符,并且前缀大小被表示为十进制数。该地址可以表示单个不同的接口地址或整个网络的起始地址。例如,IP CIDR块192.168.100.0/24指定路由前缀192.168.100.0和子网掩码255.255.255.0(即,24个前导“1”比特)。换句话说,记号192.168.100.0/24表示包括从192.168.100.0到192.168.100.255的地址范围的子网。对于一些实施例,单独的IP地址可以被认为是/32CIDR块(即,具有用于整个子网掩码的“1”比特)。
在一些实施例中,如果规则的源地址和目的地地址两者都被定义为IP CIDR块,但VM的IP地址不落在任何一个IP CIDR块中,那么该规则被认为与VM无关。来自或去往该VM的任何IP分组将不匹配不相关的规则,这是因为分组的源地址和目的地地址都将与规则的源地址和目的地地址不匹配。相反,如果VM的IP地址落在规则的源IP CIDR块或目的地IPCIDR块的任何一个中,那么该规则与VM相关,并且因此必须用于检查来自或去往VM的分组。因此,在一些实施例中,本地防火墙控制器基于这种标准寻找与VM相关的所有规则。
一些实施例将防火墙规则分类为两种类别:合格规则和不合格规则。如果规则的源地址和目的地地址两者都被定义为IP CIDR块(或一组IP CIDR块),并且IP CIDR块既不是广播地址也不是多播地址,那么该规则是合格的。所有其它规则都是不合格规则。不合格规则通常落入以下类别:
·规则的任何一个地址或两个地址未被定义,这意味着它们是通配符地址。
·规则的任何一个地址或两个地址具有否定标志。
·规则的任何一个地址或两个地址是广播或多播地址。
·规则的任何一个地址或两个地址是非IP地址。
在一些实施例中,无论受保护的VM的IP地址如何,所有不合格规则都由管理程序的本地防火墙控制器使用。换句话说,在一些实施例中,本地防火墙控制器将所有不合格规则视为相关规则,而不管受保护的VM的IP地址如何。但是,防火墙***通常具有比不合格规则多得多的合格规则。因此,在一些实施例中,本地防火墙控制器使用搜索结构来高效地寻找合格的相关规则。
图6图示示例防火墙规则集600。防火墙规则集600包括合格规则601-608(具有ID为1至8的规则),每一个规则仅具有IP CIDR块作为源地址和目的地地址。例如,规则601将IP CIDR块192.168.17.0/24指定为其源地址,并且将CIDR块192.168.101.0/28指定为其目的地地址。规则606分别指定IP地址192.168.17.5和192.168.17.247作为源地址和目的地地址,但是这些相当于在其子网掩码中具有32个1的CIDR块(即192.168.17.5/32和192.168.17.247/32)。
防火墙规则集600的IP CIDR块都属于子网192.0.0.0/8。由合格规则集中的规则使用的IP CIDR块是192.0.0.0/8的子集或子网。图6还概念性地图示由集600中的规则指定的一些不同IP CIDR之间的逻辑关系。例如,VM 192.168.101.2在子网192.168.101.0/28中,其是由规则601、605和607使用的IP CIDR。子网192.168.101.0/28又是由规则602使用的子网192.168.0.0/16的子集。因此,规则601、602、605和607是用于具有IP地址192.168.101.2的VM的相关的合格的防火墙规则。
图7图示用于从集600中的合格规则中高效地识别相关规则的搜索结构700。搜索结构700包括节点701-714。每一个节点对应于IP CIDR块。如果规则的源地址字段或目的地地址字段指定节点的IP CIDR块,那么规则与该节点相关联。如果两个(或更多个)规则都在其地址字段中指定相同的IP CIDR块,那么对应于该IP CIDR块的节点将与这些规则相关联(例如,通过包括这些规则的链表)。例如,规则601(规则ID 1)、605(规则ID 5)和607(规则ID 7)都指定IP CIDR块192.168.101.0/28作为源地址或目的地地址。在前缀树700中,节点708对应于IP CIDR块192.168.101.0/28,并且因此节点708与具有ID 1、5和7的规则相关联。如所图示的,节点702、703、704、705、708、710、711、712、713和714都是与来自集600的一个或多个合格规则相关联的节点。
搜索结构700被构造为二进制前缀树或特里(即,具有基数2的帕特里夏树(Patricia tree)),其中每一个节点最多具有两个子节点。在一些实施例中,每一个子节点的CIDR块是父节点的CIDR的子网。例如,节点707和711是节点706的子节点。节点707(192.168.64.0/18)的CIDR块和节点711(192.168.17.0/24)的CIDR块都是由节点706(192.168.0.0/17)的CIDR块包含的子网。因此,搜索树700中的任何节点对应于包含其后代节点的所有IP CIR块的IP CIDR块(例如,根节点701的CIDR块(192.0.0.0/8)包含前缀树中所有其它节点702-713的CIDR块)。
在一些实施例中,每一个节点的IP CIDR块可以被表示为前缀二进制串,该前缀二进制串的长度由“/”记号确定的。例如,节点706的CIDR 192.168.0.0/17可以被表示为17比特长的前缀二进制串11000000101010000。又可以通过用后缀子串附加父节点的前缀串得到节点的每一个子节点。例如,节点707(192.168.64.0/18)的CIDR可以通过将1比特后缀子串“1”附加到父节点706的前缀串得到(即,11000000101010000_1)。另一个子节点711(192.168.17.0/24)的CIDR可以通过将7比特后缀子串“0010001”附加到父节点706的前缀二进制串得到(即,11000000101010000_0010001)。用于子节点的附加串又变为子节点的前缀二进制串,其又可以附加后缀子串以得到孙子节点的前缀串,以此类推。因此,除了根节点701之外,搜索树700中的每一个节点都与后缀子串相关联。例如,节点701与8比特后缀子串1100000相关联,节点705与8比特后缀子串10101000相关联,节点706与1比特后缀子串0相关联,节点711与7比特后缀子串0010001相关联,并且节点712与8比特后缀子串11110111相关联。每一个节点的二进制串或CIDR块可以通过将其所有祖先节点的后缀子串附加到根节点导出。例如,节点712的CIDR块192.168.17.247是节点701、705、706、711和712的所有后缀子串的附加结果(1100000_10101000_0_0010001_11110111)。
对于在搜索树中具有两个子节点的节点,一个子节点位于“1”路径上,并且另一个子节点位于“0”路径上。更准确地说,在一些实施例中,一个子节点与以“0”开始的后缀子串相关联,并且另一个子节点与以“1”开始的后缀子串相关联。例如,节点706具有与后缀子串“1”相关联的“1”子节点707和与后缀子串“0010001”相关联的“0”子节点711。当遍历用于特定IP地址或CIDR块的搜索树时,如果“1”路径的后缀串匹配特定IP地址或CIDR块中的对应比特,那么遍历将采用“1”路径。同样,如果“0”路径的后缀串匹配特定IP地址或CIDR块的对应比特,那么遍历将采用“0”路径。如果“1”路径或“0”路径都不具有对IP地址或CIDR块的匹配后缀串,那么遍历终止。
如上所述,搜索树700用于促进高效识别与VM或一组VM相关的合格规则(由IPCIDR块指定的规则)。为了使用搜索树识别用于VM的相关规则,一些实施例使用VM的IP地址来查询搜索树。查询遍历搜索树的节点,并且收集与遍历的节点相关联的所有规则。如果搜索树中的节点(i)其CIDR块包含所查询的IP地址并且(ii)其所有祖先节点也被遍历,那么该节点将被遍历。
图8图示使用搜索树700来识别用于数个示例IP地址的相关规则。基于VM的IP地址为VM进行每一个搜索或查询。第一示例使用前缀树700寻找用于IP地址192.168.101.2的相关规则。由于IP地址192.168.101.2(11000000101010000110010100000010)被解析为用于确定搜索树的遍历路径的二进制子串,遍历遵循节点701、705、706、707、708、709的路径。具体而言,该地址被解析为与遍历的节点701、705、706、707、708、709的后缀子串匹配的子串(11000000_10101000_0_1_1001010000_0010)。沿此路径,与遍历的节点705、708和709相关联的规则(规则2、1、5、7)被收集并被识别为与IP地址192.168.101.2相关的规则。因为节点709没有子节点,所以遍历在节点709处结束。节点709也是具有包含被查询的IP地址的CIDR块的最后一个节点(节点709的CIDR与所查询的IP地址192.168.101.2一致)。
第二示例使用前缀树700寻找用于具有IP地址192.66.113.9的VM的相关规则。由于IP地址192.66.113.9(11000000010000100111000100001001)被解析为用于确定搜索树的遍历路径的二进制子串,遍历遵循节点701、702和703的路径。具体而言,IP地址的最高有效部分(11000000_0100001001_1)用于匹配节点701、702和703的后缀子串。沿此路径,与节点702和703相关联的规则(规则2、5、8)被收集并被识别为与IP地址192.66.113.9相关的规则。因为节点703没有子节点,所以遍历在节点703处结束。节点703也是具有包含被查询的IP地址的CIDR块的最后一个节点(子网192.66.96.0/19包含IP地址192.66.113.9)。
第三示例使用前缀树700寻找用于IP地址192.168.128.100的相关规则。由于IP地址192.168.128.100(11000000101010001000000001100100)被解析为用于确定搜索树的遍历路径的二进制子串,遍历遵循节点701和705的路径。具体而言,IP地址的最高有效部分(11000000_10101000)用于匹配节点701和705的后缀子串。沿此路径,与节点705相关联的规则(规则2)被收集并被识别为与IP地址192.168.128.100相关的规则。因为节点705的子节点(706和714)都不能包含所查询的IP地址(192.168.128.100既不落在192.168.0.0/17内又不落在192.168.165.201内),所以遍历在节点705处结束。这也是因为所查询的IP地址192.168.128.100不能遵循节点705的“1”路径或“0”路径,因为对应的子节点的后缀子串与IP地址192.168.128.100中的对应比特不匹配。
对于一些实施例,图9概念性地图示用于使用防火墙规则的搜索树来识别与IP地址相关的合格规则(在一些实施例中不合格规则被视为相关)的过程900。在一些实施例中,IP地址是在主机机器的管理程序上运行的VM的IP地址,并且管理程序执行过程900,以便识别作为其分布式防火墙程序的一部分用于保护VM的相关规则。在一些实施例中,用于VM的过滤器模块作为管理程序的一部分执行过程900。在一些实施例中,该过程由管理程序中的搜索结构管理模块执行,该管理程序接收对IP地址的查询并且又产生用于所查询的IP地址的相关规则。
当过程900接收到(在910处)基于IP地址的对相关规则的查询时,过程900开始。在一些实施例中,该过程接收用作相关规则查询的基础的IP地址。该过程然后确定(在920处)搜索结构的根节点是否包含所查询的IP地址。如果不包含,那么过程900终止,这是因为在搜索中没有其它节点可能包含所查询的IP地址。如果根节点确实包含所查询的IP地址,那么该过程然后将根节点设置为(在930处)当前遍历的节点并且进行到940。
在940处,如果存在,那么该过程收集与当前遍历的节点相关联的规则。该过程然后确定(在950处)所查询的IP地址是否能够遵循到当前遍历的节点的“1”子节点的“1”路径。如果能,那么该过程进行到955。否则,该过程进行到960以确定IP地址是否能够遵循到当前遍历的节点的“0”子节点的“0”路径。如果能,那么该过程进行到965。否则,该过程进行到970。
在955处,该过程将当前遍历的节点设置为“1”子节点并且进行到940。相反,在965处,该过程将当前遍历的节点设置为“0”子节点并进行到940。在一些实施例中,如果子节点的后缀子串与所查询的IP地址的对应比特匹配,那么所查询的IP地址能够遵循到子节点的路径。当子节点被遍历时,这意味着子节点的CIDR块包含所查询的IP地址。
在970处,该过程已经确定所查询的IP地址不能遍历当前节点的子节点。在一些实施例中,这是因为子节点都不包含所查询的IP地址,或者因为当前节点没有子节点。在任何一种情况下,当前节点是对应于包含所查询的IP地址的CIDR块的最后一个节点。因此,该过程报告在遍历防火墙搜索结构期间收集到的所有规则作为与所查询的IP地址相关或适用于所查询的IP地址的规则。过程970然后结束。查询实体(即,用于VM的管理程序或过滤器)然后采用报告的规则作为被识别用于保护VM的相关防火墙规则(合格规则)。
在一些实施例中,当管理程序从网络管理器接收到防火墙配置更新消息时,管理程序构建和更新前缀树搜索结构(诸如,搜索树700)。构建的树然后被提供给VM的过滤器作为用于高效识别相关规则的搜索结构。对于一些实施例,图10概念性地图示用于构建用于识别相关规则的前缀树搜索结构并更新到本地防火墙控制器的过程1000。在一些实施例中,过程1000由执行本地防火墙控制器的管理程序执行。一些实施例连续执行过程1000以动态地保持其搜索结构最新,使得VM的过滤器将能访问防火墙规则的最新集。
当该过程从网络管理器(例如,310)接收到(在1010处)防火墙规则时,该过程开始。在一些实施例中,规则是从网络管理器接收到的防火墙配置消息的一部分。该过程然后在接收到的规则中从源地址字段和目的地地址字段识别(在1020处)合格的IP CIDR块。
该过程然后基于规则的CIDR块遍历(在1030处)防火墙规则搜索树。在一些实施例中,这种遍历是基于接收到的规则的CIDR块的二进制串(而不是基于如在过程900中的受保护VM的IP地址的二进制串),即,通过将子节点的子串与规则的CIDR块中的对应比特进行比较来决定是采取“0”路径还是“1”路径等。
该过程然后确定(在1040处)其是否能够从遍历中为规则的CIDR块在搜索结构中定位节点。与其中搜索是用于识别具有包含所查询的IP地址的CIDR块的节点的过程900中用于寻找相关规则的遍历不同,这里在过程1000中的遍历是用于寻找恰好与规则的CIDR块匹配的节点。如果该过程能够在搜索结构中找到与规则的CIDR块匹配的节点,那么该过程进行到1050。否则,该过程进行到1045。
在1045处,因为搜索结构没有与规则的CIDR块对应的现有节点,所以该过程将与规则的CIDR块对应的新节点添加或***到搜索结构中。在一些实施例中,该过程重新组织搜索结构,使得可以维护树的二进制前缀结构。在一些实施例中,这种重新组织需要在防火墙中添加不与任何规则对应的存根节点,诸如搜索树700中的节点706和707。在添加用于接收到的规则的CIDR块的新节点之后,该过程进行到1050。
在1050处,该过程将接收到的规则与节点(从操作1045新添加的节点或从操作1040定位的节点)相关联。该过程然后确定(在1060处)在接收到的规则中是否存在更多合格的CIDR块。如果存在,那么该过程返回到1020以或者在搜索结构中定位现有节点或者为规则中的其他CIDR块向搜索结构添加新节点。否则,过程1000终止,并且构建的搜索树被更新并且可用于使用于识别相关规则。
在一些实施例中,如在部分II中描述的搜索结构是在数据中心的网络管理器处实现的。网络管理器在其防火墙规则数据库中构建和更新用于合格规则的搜索结构。搜索结构然后用于识别与各个VM相关的规则,该识别基于来自各个管理程序对那些VM的查询或基于网络管理器自己的记录。标识出的相关规则然后被传递给那些VM的主机机器。
III.计算设备
如之前提到的,本发明的一些实施例由在用作主机机器的计算设备上运行的虚拟化软件或管理程序实现。对于一些实施例,图11图示正在操作虚拟化软件1105的示例主机机器1100。虚拟化软件1105允许主机机器托管虚拟机1111-1114以及将虚拟机连接到物理网络1190。这个物理网络1190可以跨越一个或更多数据中心,并且包括各种物理交换机和路由器。
如所图示的,主机1100能够通过物理NIC(PNIC)1195访问物理网络1190。虚拟化软件1105用作托管的VM 1111-1114与物理NIC 1195(以及其它物理资源,诸如处理器和存储器)之间的接口。VM中的每一个包括用于通过虚拟化软件1105访问网络的虚拟NIC(VNIC)。VM中的每一个VNIC负责在VM和虚拟化软件1105之间交换分组。在一些实施例中,VNIC是由虚拟NIC仿真器实现的物理NIC的软件抽象。在一些实施例中,VM的VNIC还包括用于识别相关防火墙规则并将那些防火墙规则应用于过滤分组的防火墙过滤器。
虚拟化软件1105管理VM 1111-1114的操作,并且包括用于管理VM对物理网络的访问(在一些实施例中,通过实现VM连接到的逻辑网络)的数个组件。如所图示的,虚拟化软件1105包括物理交换元件1120、物理路由元件1130、控制器接口1140、上下文感知的分布式防火墙模块1150以及上行链路模块1170。
控制器接口1140从控制器或控制器集群1160接收控制平面消息。在一些实施例中,这些控制平面消息包括用于配置虚拟化软件和/或虚拟机的各种组件(诸如,物理交换元件1120和物理路由元件1130)的配置数据。在一些实施例中,控制平面消息还包括用于防火墙配置的消息,例如,包括对存储在主机机器1100处的防火墙规则的更新的消息。
上下文感知的分布式防火墙模块1150从控制器接口1150接收防火墙规则更新(或防火墙配置消息)。上下文感知的分布式防火墙模块1150还基于接收到的防火墙规则建立搜索结构。使得搜索结构对于VM(或其VNIC中的其对应过滤器)可访问,因此可以如以上部分I和II中描述的那样高效地识别用于执行防火墙操作的相关规则。
物理交换元件1120(或受管理的物理交换元件MPSE)向物理NIC 1195和从物理NIC1195传递网络数据,该物理NIC 1195与物理网络1190对接。物理交换元件还包括多个虚拟端口(vPort),该物理交换元件将物理NIC与VM 1111-1114、物理路由元件1130和控制器接口1140通信地互连。在一些实施例中,每一个虚拟端口与唯一的L2MAC地址相关联。物理交换元件在连接到其虚拟端口的任何两个网络元件之间执行L2链路层分组转发。物理交换元件还在连接到其虚拟端口中的任何一个端口的任何网络元件和物理网络1190上可达的L2网络元件(例如,在另一个主机上运行的另一个VM)之间执行L2链路层分组转发。
物理路由元件1130(或受管理的物理路由元件MPRE)对从物理交换单元1120上的虚拟端口接收到的数据分组执行L3路由(例如,通过执行L3IP地址到L2MAC地址解析)。在一些实施例中,物理路由元件1130附接到的虚拟端口是宿端口(sink port)。每一个路由数据分组然后被发送回到物理交换单元1120,以根据解析的L2MAC地址转发到数据分组目的地。这个目的地可以是连接到物理交换单元1120上的虚拟端口的另一个VM,或者是物理网络1190上可达的L2网络元件(例如,在另一个主机上运行的另一个VM、物理非虚拟化机器,等等)。
上行链路模块1170在物理交换元件1120和物理NIC 1195之间中继数据。在一些实施例中,上行链路模块1170允许主机机器1100用作封装覆盖网络(诸如,VXLAN和VLAN)的隧道端点。VXLAN是一种覆盖网络封装协议。由VXLAN封装创建的覆盖网络有时被称为VXLAN网络,或简称为VXLAN。当主机1100上的VM将数据分组(例如,以太网帧)发送到在相同VXLAN网络中但是在不同主机上的另一个VM时,在将分组发送到物理网络之前,上行链路模块1170使用VXLAN网络的VNI和VTEP的网络地址封装数据分组。分组通过物理网络被隧道化到目的地主机(即,封装使得底层分组对于中间网元是透明的)。上行链路模块1170还对传入的VXLAN分组进行解封装,并只将原始的内部数据分组转发到目的地VM。
在本文档中,术语“分组”是指跨网络发送的特定格式的比特集合。本领域普通技术人员将认识到的是,术语分组在本文中可以用于指可以跨网络发送的比特的各种格式化集合,诸如以太网帧、TCP段、UDP数据报、IP分组,等等。
贯穿本说明书涉及包括虚拟机(VM)的计算和网络环境。但是,虚拟机只是数据计算节点(DCN)或数据计算端节点(也被称为可寻址节点)的一个示例。DCN可以包括非虚拟化物理主机、虚拟机、在主机操作***之上运行而不需要管理程序或单独的操作***的容器、以及管理程序内核网络接口模块。
在一些实施例中,VM使用由虚拟化软件(例如,管理程序、虚拟机监视器,等等)虚拟化的主机的资源在主机上与其自己的客户操作***一起操作。租户(即VM的所有者)可以选择在客户操作***之上要操作哪些应用。另一方面,一些容器是在主机操作***之上运行而不需要管理程序或单独的客户操作***的结构。在一些实施例中,主机操作***使用命名空间将容器彼此隔离,并且因此提供在不同容器内操作的不同应用组的操作***级隔离。这种隔离类似于在虚拟化***硬件的管理程序虚拟化环境中提供的VM隔离,并且因此可以被视为隔离在不同容器中操作的不同应用组的虚拟化形式。这种容器比VM更轻量。
在一些实施例中,管理程序内核网络接口模块是包括具有管理程序内核网络接口和接收/传输线程的网络堆栈的非VM DCN。管理程序内核网络接口模块的一个示例是作为VMware公司的ESXiTM管理程序的一部分的vmknic模块。
本领域普通技术人员将认识到的是,虽然本说明书涉及VM,但是给出的示例可以是任何类型的DCN,包括物理主机、VM、非-VM容器和管理程序内核网络接口模块。事实上,在一些实施例中,示例网络可以包括不同类型的DCN的组合。
IV.电子***
许多上述特征和应用被实现为软件过程,该软件过程被指定为记录在计算机可读存储介质(也被称为计算机可读介质)上的一组指令。当这些指令被(一个或多个)处理单元(例如,一个或多个处理器、处理器核心、或其它处理单元)执行时,它们使得该(一个或多个)处理单元执行在指令中指示的动作。计算机可读介质的示例包括,但不限于,CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM,等等。计算机可读介质不包括无线传递或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”是指包括驻留在只读存储器中的固件或者可以被读入到存储器中用于被处理器处理的存储在磁存储设备中的应用。此外,在一些实施例中,若干软件发明可以被实现为更大程序的子部分,同时保持独特的软件发明。在一些实施例中,若干软件发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任意组合在本发明的范围之内。在一些实施例中,当软件程序被安装以在一个或多个电子***上操作时,软件程序定义执行该软件程序的操作的一个或多个特定的机器实现。
图12概念性地图示实现本发明的一些实施例的电子***1200。电子***1200可以用于执行任何上述控制、虚拟化或操作***应用。电子***1200可以是计算机(例如,桌面计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机,等等)、电话、PDA或任何其它种类的电子设备。这种电子***包括用于各种其它类型的计算机可读介质的各种类型的计算机可读介质和接口。电子***1200包括总线1205、(一个或多个)处理单元1210、***存储器1225、只读存储器1230、永久存储设备1235、输入设备1240、以及输出设备1245。
总线1205统一地表示通信连接电子***1200的众多内部设备的所有***、外设和芯片组总线。例如,总线1205将(一个或多个)处理单元1210与只读存储器1230、***存储器1225、永久存储设备1235通信地连接。
从这些各种存储器单元中,(一个或多个)处理单元1210检索要执行的指令和要处理的数据,以便执行本发明的过程。(一个或多个)处理单元在不同实施例中可以是单个处理器或多核心处理器。
只读存储器(ROM)1230存储由(一个或多个)处理单元1210和电子***的其它模块所需要的静态数据和指令。另一方面,永久存储设备1235是读与写(read-and-write)存储器设备。这个设备是即使当电子***1200关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(诸如,磁盘或光盘及其对应的盘驱动器)作为永久存储设备1235。
其它实施例使用可移除存储设备(诸如,软盘、闪存驱动器等)作为永久存储设备。与永久存储设备1235类似,***存储器1225是读与写存储器设备。但是,与存储设备1235不同,***存储器是易失性读与写存储器,诸如随机存取存储器。***存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的过程被存储在***存储器1225、永久存储设备1235、和/或只读存储器1230中。从这些各种存储器单元中,(一个或多个)处理单元1210检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
总线1205还连接到输入设备和输出设备1240和1245。输入设备使得用户能够将信息和选择命令传递到电子***。输入设备1240包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备1245显示由电子***生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括用作输入设备和输出设备两者的的设备,诸如触摸屏。
最后,如在图12中所示,总线1205还通过网络适配器(未示出)将电子***1200耦合到网络1265。以这种方式,计算机可以是计算机的网络(诸如,局域网(“LAN”)、广域网(“WAN”)、或内联网、或网络的网络,诸如互联网)的一部分。电子***1200的任何或所有组件可以与本发明结合使用。
一些实施例包括电子组件,诸如微处理器、在机器可读或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储设备和存储器。这种计算机可读介质的一些示例包括RAM、ROM、只读压缩盘(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM,双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡、小型SD卡、微型SD卡等)、磁和/或固态硬盘驱动器、只读和可记录盘、超密度光盘、任何其它光或磁介质、以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括机器代码(诸如由编译器产生的),以及包括由计算机、电子组件、或使用解释器的微处理器执行的更高级代码的文件。
虽然以上讨论主要涉及执行软件的微处理器或多核处理器,但是一些实施例由一个或多个集成电路(诸如,专用集成电路(ASIC)或现场可编程门阵列(FPGA))来执行。在一些实施例中,这种集成电路执行存储在电路自身上的指令。
如在本说明书中所使用的,术语“计算机”、“服务器”、“处理器”以及“存储器”都是指电子或其它技术设备。这些术语不包括人或人群。出于本说明书的目的,术语显示或正在显示意味着在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“多个计算机可读介质”和“机器可读介质”被完全限制为以由计算机可读的形式存储信息的、有形的、物理的对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂信号。
虽然已经参考许多特定细节描述本发明,但是本领域普通技术人员将认识到的是,在不脱离本发明的精神的情况下,可以以其它特定形式体现本发明。此外,多个图(包括图5、9和10)概念性地图示过程。可以不以与所示出和描述的确切顺序执行这些过程的特定操作。可以不在一系列连续的操作中执行特定操作,并且不同的特定操作可以在不同的实施例中执行特定操作。此外,可以使用数个子过程来实现,或者作为较大的宏过程的一部分来实现过程。因此,本领域普通技术人员将理解的是,本发明不受上述说明性细节的限制,而是由所附权利要求来限定。
Claims (20)
1.一种用于主机机器操作多个数据计算节点(DCN)的方法,所述方法包括:
接收用于保护包括所述主机机器的数据中心中的多个DCN的防火墙规则集;
将对应于接收到的防火墙规则集的节点集***到搜索树结构中,所述搜索树结构用于识别与在所述主机机器上操作的DCN相关的规则;
通过使用所述搜索树结构,识别与所述多个DCN中的特定DCN相关的防火墙规则集,相关规则集包括指定匹配所述特定DCN的地址的源地址或目的地地址的规则;以及
使用识别出的相关规则,对去往所述特定DCN的分组或来自所述特定DCN的分组执行防火墙操作。
2.如权利要求1所述的方法,其中所述搜索树结构是二进制前缀树。
3.如权利要求1所述的方法,其中所述搜索树结构用于识别使用无类别域间路由(CIDR)块来指定源地址字段和目的地地址字段的相关规则。
4.如权利要求3所述的方法,其中对去往所述特定DCN的分组或来自所述特定DCN的分组执行防火墙操作还基于不使用无类别域间路由(CIDR)块来指定源地址字段和目的地地址字段的防火墙规则。
5.如权利要求3所述的方法,其中***的节点集对应于用于指定所述接收到的防火墙规则集的CIDR块集。
6.如权利要求1所述的方法,其中所述防火墙规则集是从所述计算设备位于的所述数据中心的网络管理器接收到的,其中由所述网络管理器指定所述接收到的防火墙规则集用于保护所述数据中心中的DCN。
7.一种用于主机机器操作多个数据计算节点(DCN)的方法,所述方法包括:
接收用于保护数据中心中的DCN的防火墙规则集,其中所述数据中心包括所述计算设备;
在搜索树结构中定位对应于接收到的防火墙规则集的节点集,并且将所述接收到的防火墙规则集与定位的节点相关联,所述搜索树结构用于识别与在所述计算设备上操作的DCN相关的规则;
通过使用所述搜索树结构,识别与所述多个DCN中的特定DCN相关的防火墙规则集,相关规则集包括指定匹配所述特定DCN的地址的源地址或目的地地址的规则;以及
通过使用识别出的相关规则,对去往所述特定DCN的分组或来自所述特定DCN的分组执行防火墙操作。
8.如权利要求7所述的方法,其中定位对应于所述接收到的防火墙规则集的所述节点集包括对于所述接收到的防火墙规则集中的每一个特定规则,根据用于指定接收到的特定规则的无类别域间路由(CIDR)块的二进制串遍历所述搜索树结构。
9.如权利要求7所述的方法,其中所述搜索树结构用于识别使用无类别域间路由(CIDR)块来指定源地址字段和目的地地址字段的相关规则。
10.如权利要求9所述的方法,其中对去往所述特定DCN的分组或来自所述特定DCN的分组执行防火墙操作还基于不使用无类别域间路由(CIDR)块来指定源地址字段和目的地地址字段的防火墙规则。
11.如权利要求7所述的方法,其中所述防火墙规则集是从所述主机机器位于的所述数据中心的网络管理器接收到的,其中由所述网络管理器指定所述接收到的防火墙规则集用于保护所述数据中心中的DCN。
12.一种用于识别防火墙规则的方法,所述方法包括:
接收对适用于特定IP地址的防火墙规则的查询;
在包括多个节点的前缀树中识别适用于所述特定IP地址的防火墙规则,每一个节点对应于无类别域间路由(CIDR)块,所述识别包括:
遍历所述防火墙规则的所述前缀树,其中所述节点中的至少一些中的每一个节点与使用所述节点的CIDR块指定的一个或多个防火墙规则相关联,其中所述遍历包括根据所述特定IP地址的二进制串遍历节点;
识别与遍历的节点相关联的防火墙规则作为适用于所述特定IP地址的防火墙规则;以及
通过使用识别出的可适用的规则,对去往所述特定IP地址的分组或来自所述特定IP地址的分组执行防火墙操作。
13.如权利要求12所述的方法,其中识别与所述遍历的节点相关联的所述防火墙规则包括从至少两个不同的遍历的节点收集防火墙规则。
14.如权利要求12所述的方法,其中每一个CIDR块对应于IP子网。
15.如权利要求12所述的方法,其中所述遍历的节点中的每一个节点对应于包含所述特定IP地址的CIDR块。
16.如权利要求12所述的方法,其中每一个节点与后缀子串相关联,其中遍历所述前缀树包括选择与匹配所述特定IP地址的二进制串中的对应比特的后缀子串相关联的当前遍历的节点的子节点。
17.如权利要求16所述的方法,其中在所述当前遍历的节点的子节点都不与匹配所述特定IP地址的二进制串中的对应比特的后缀子串相关联时,所述遍历终止。
18.如权利要求12所述的方法,其中将CIDR块指定为源地址或目的地地址的防火墙规则与对应于所述CIDR块的前缀树中的节点相关联。
19.一种计算设备,所述计算设备包括用于执行如权利要求1-18中的任意一个所述的方法的构件。
20.一种存储程序的计算机可读的存储介质,其中当所述程序由设备的处理单元执行时执行如权利要求1-18中的任意一个所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010465888.1A CN111464566B (zh) | 2014-12-02 | 2015-04-24 | 介质、设备、***和用于网络管理器计算机的方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/558,561 US9692727B2 (en) | 2014-12-02 | 2014-12-02 | Context-aware distributed firewall |
US14/558,561 | 2014-12-02 | ||
PCT/US2015/027632 WO2016089441A1 (en) | 2014-12-02 | 2015-04-24 | Context-aware distributed firewall |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010465888.1A Division CN111464566B (zh) | 2014-12-02 | 2015-04-24 | 介质、设备、***和用于网络管理器计算机的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107005555A CN107005555A (zh) | 2017-08-01 |
CN107005555B true CN107005555B (zh) | 2020-06-26 |
Family
ID=53059497
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010465888.1A Active CN111464566B (zh) | 2014-12-02 | 2015-04-24 | 介质、设备、***和用于网络管理器计算机的方法 |
CN201580064410.5A Active CN107005555B (zh) | 2014-12-02 | 2015-04-24 | 上下文感知的分布式防火墙 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010465888.1A Active CN111464566B (zh) | 2014-12-02 | 2015-04-24 | 介质、设备、***和用于网络管理器计算机的方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9692727B2 (zh) |
EP (1) | EP3228060B1 (zh) |
CN (2) | CN111464566B (zh) |
WO (1) | WO2016089441A1 (zh) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10193771B2 (en) | 2013-12-09 | 2019-01-29 | Nicira, Inc. | Detecting and handling elephant flows |
US9967199B2 (en) | 2013-12-09 | 2018-05-08 | Nicira, Inc. | Inspecting operations of a machine to detect elephant flows |
US9215213B2 (en) | 2014-02-20 | 2015-12-15 | Nicira, Inc. | Method and apparatus for distributing firewall rules |
US9692727B2 (en) | 2014-12-02 | 2017-06-27 | Nicira, Inc. | Context-aware distributed firewall |
US10320921B2 (en) | 2014-12-17 | 2019-06-11 | Vmware, Inc. | Specializing virtual network device processing to bypass forwarding elements for high packet rate applications |
US9699060B2 (en) * | 2014-12-17 | 2017-07-04 | Vmware, Inc. | Specializing virtual network device processing to avoid interrupt processing for high packet rate applications |
US10530697B2 (en) * | 2015-02-17 | 2020-01-07 | Futurewei Technologies, Inc. | Intent based network configuration |
US9807117B2 (en) * | 2015-03-17 | 2017-10-31 | Solarflare Communications, Inc. | System and apparatus for providing network security |
US9787641B2 (en) * | 2015-06-30 | 2017-10-10 | Nicira, Inc. | Firewall rule management |
US9806948B2 (en) | 2015-06-30 | 2017-10-31 | Nicira, Inc. | Providing firewall rules for workload spread across multiple data centers |
US11038845B2 (en) * | 2016-02-23 | 2021-06-15 | Nicira, Inc. | Firewall in a virtualized computing environment using physical network interface controller (PNIC) level firewall rules |
US10873566B2 (en) | 2016-02-23 | 2020-12-22 | Nicira, Inc. | Distributed firewall in a virtualized computing environment |
US9990222B2 (en) | 2016-03-18 | 2018-06-05 | Airwatch Llc | Enforcing compliance rules against hypervisor and virtual machine using host management component |
US10135727B2 (en) | 2016-04-29 | 2018-11-20 | Nicira, Inc. | Address grouping for distributed service rules |
US10348685B2 (en) | 2016-04-29 | 2019-07-09 | Nicira, Inc. | Priority allocation for distributed service rules |
US11171920B2 (en) | 2016-05-01 | 2021-11-09 | Nicira, Inc. | Publication of firewall configuration |
US11425095B2 (en) | 2016-05-01 | 2022-08-23 | Nicira, Inc. | Fast ordering of firewall sections and rules |
US11082400B2 (en) | 2016-06-29 | 2021-08-03 | Nicira, Inc. | Firewall configuration versioning |
US11258761B2 (en) | 2016-06-29 | 2022-02-22 | Nicira, Inc. | Self-service firewall configuration |
US10158606B2 (en) * | 2016-08-16 | 2018-12-18 | The Boeing Company | Firewall filter rules generation |
US20180063088A1 (en) * | 2016-09-01 | 2018-03-01 | Airwatch Llc | Hypervisor network profiles to facilitate vpn tunnel |
US10419321B2 (en) | 2016-10-31 | 2019-09-17 | Nicira, Inc. | Managing resource consumption for distributed services |
US10567440B2 (en) | 2016-12-16 | 2020-02-18 | Nicira, Inc. | Providing application visibility for micro-segmentation of a network deployment |
US11258681B2 (en) | 2016-12-16 | 2022-02-22 | Nicira, Inc. | Application assessment and visibility for micro-segmentation of a network deployment |
US10834085B2 (en) * | 2017-04-14 | 2020-11-10 | Nxp Usa, Inc. | Method and apparatus for speeding up ACL rule lookups that include TCP/UDP port ranges in the rules |
US10917384B2 (en) * | 2017-09-12 | 2021-02-09 | Synergex Group | Methods, systems, and media for modifying firewalls based on dynamic IP addresses |
US10742673B2 (en) | 2017-12-08 | 2020-08-11 | Nicira, Inc. | Tracking the dynamics of application-centric clusters in a virtualized datacenter |
CN108471397B (zh) * | 2018-01-31 | 2020-12-15 | 华为技术有限公司 | 防火墙配置、报文发送方法和装置 |
US11296960B2 (en) | 2018-03-08 | 2022-04-05 | Nicira, Inc. | Monitoring distributed applications |
US10848552B2 (en) * | 2018-03-29 | 2020-11-24 | Hewlett Packard Enterprise Development Lp | Determining whether to perform address translation to forward a service request or deny a service request based on blocked service attributes in an IP table in a container-based computing cluster management system |
US11128530B2 (en) | 2018-03-29 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Container cluster management |
US11895087B2 (en) | 2018-08-21 | 2024-02-06 | International Business Machines Corporation | Adjusting firewall parameters based on node characteristics |
US11134057B2 (en) * | 2018-08-27 | 2021-09-28 | The Boeing Company | Systems and methods for context-aware network message filtering |
US11252192B1 (en) | 2018-09-28 | 2022-02-15 | Palo Alto Networks, Inc. | Dynamic security scaling |
US11165828B2 (en) * | 2019-02-28 | 2021-11-02 | Cisco Technology, Inc. | Systems and methods for on-demand flow-based policy enforcement in multi-cloud environments |
US11310202B2 (en) | 2019-03-13 | 2022-04-19 | Vmware, Inc. | Sharing of firewall rules among multiple workloads in a hypervisor |
CN111698110B (zh) * | 2019-03-14 | 2023-07-18 | 深信服科技股份有限公司 | 一种网络设备性能分析方法、***、设备及计算机介质 |
US11178105B2 (en) * | 2019-04-26 | 2021-11-16 | Vmware, Inc. | Secure enclave-based guest firewall |
US11176157B2 (en) | 2019-07-23 | 2021-11-16 | Vmware, Inc. | Using keys to aggregate flows at appliance |
US10911335B1 (en) | 2019-07-23 | 2021-02-02 | Vmware, Inc. | Anomaly detection on groups of flows |
US11743135B2 (en) | 2019-07-23 | 2023-08-29 | Vmware, Inc. | Presenting data regarding grouped flows |
US11349876B2 (en) | 2019-07-23 | 2022-05-31 | Vmware, Inc. | Security policy recommendation generation |
US11398987B2 (en) | 2019-07-23 | 2022-07-26 | Vmware, Inc. | Host-based flow aggregation |
US11340931B2 (en) | 2019-07-23 | 2022-05-24 | Vmware, Inc. | Recommendation generation based on selection of selectable elements of visual representation |
US11436075B2 (en) | 2019-07-23 | 2022-09-06 | Vmware, Inc. | Offloading anomaly detection from server to host |
US11288256B2 (en) | 2019-07-23 | 2022-03-29 | Vmware, Inc. | Dynamically providing keys to host for flow aggregation |
US11188570B2 (en) | 2019-07-23 | 2021-11-30 | Vmware, Inc. | Using keys to aggregate flow attributes at host |
US11140090B2 (en) | 2019-07-23 | 2021-10-05 | Vmware, Inc. | Analyzing flow group attributes using configuration tags |
CN110336841A (zh) * | 2019-08-09 | 2019-10-15 | 深圳证券交易所 | 防火墙规则的检测方法、检测装置及可读存储介质 |
US11588854B2 (en) | 2019-12-19 | 2023-02-21 | Vmware, Inc. | User interface for defining security groups |
CN111193746B (zh) * | 2019-12-31 | 2022-12-06 | 奇安信科技集团股份有限公司 | 安全策略的匹配方法、装置、电子设备和介质 |
US11321213B2 (en) | 2020-01-16 | 2022-05-03 | Vmware, Inc. | Correlation key used to correlate flow and con text data |
FR3110795A1 (fr) * | 2020-05-25 | 2021-11-26 | Orange | Procédé de configuration d’un équipement pare-feu dans un réseau de communication, procédé de mise à jour d’une configuration d’un équipement pare-feu, dispositif, équipement d’accès, équipement pare-feu et programmes d’ordinateur correspondants. |
US11829793B2 (en) | 2020-09-28 | 2023-11-28 | Vmware, Inc. | Unified management of virtual machines and bare metal computers |
US11606310B2 (en) | 2020-09-28 | 2023-03-14 | Vmware, Inc. | Flow processing offload using virtual port identifiers |
US11785032B2 (en) | 2021-01-22 | 2023-10-10 | Vmware, Inc. | Security threat detection based on network flow analysis |
US11991187B2 (en) | 2021-01-22 | 2024-05-21 | VMware LLC | Security threat detection based on network flow analysis |
CN113079180B (zh) * | 2021-04-20 | 2023-03-10 | 成都安恒信息技术有限公司 | 一种基于执行上下文的防火墙细粒度访问控制方法及*** |
US11997120B2 (en) | 2021-07-09 | 2024-05-28 | VMware LLC | Detecting threats to datacenter based on analysis of anomalous events |
US11831667B2 (en) | 2021-07-09 | 2023-11-28 | Vmware, Inc. | Identification of time-ordered sets of connections to identify threats to a datacenter |
US11792151B2 (en) | 2021-10-21 | 2023-10-17 | Vmware, Inc. | Detection of threats based on responses to name resolution requests |
US12015591B2 (en) | 2021-12-06 | 2024-06-18 | VMware LLC | Reuse of groups in security policy |
US11995024B2 (en) | 2021-12-22 | 2024-05-28 | VMware LLC | State sharing between smart NICs |
CN114301680B (zh) * | 2021-12-29 | 2024-05-07 | 山石网科通信技术股份有限公司 | 一种安全策略的匹配方法及装置、存储介质 |
CN114465771B (zh) * | 2021-12-30 | 2024-04-05 | 奇安信科技集团股份有限公司 | 基于防火墙流量自动推荐安全策略的方法、装置及防火墙 |
US11899594B2 (en) | 2022-06-21 | 2024-02-13 | VMware LLC | Maintenance of data message classification cache on smart NIC |
US11928367B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Logical memory addressing for network devices |
US11928062B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Accelerating data message classification with smart NICs |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388030A (zh) * | 2007-09-14 | 2009-03-18 | 数据连接有限公司 | 数据库和数据库处理方法 |
CN101651622A (zh) * | 2008-08-14 | 2010-02-17 | 丛林网络公司 | 用于具有基于区域的防火墙的路由器中的多播的安全服务 |
Family Cites Families (105)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7055173B1 (en) | 1997-12-19 | 2006-05-30 | Avaya Technology Corp. | Firewall pooling in a network flowswitch |
SE513828C2 (sv) * | 1998-07-02 | 2000-11-13 | Effnet Group Ab | Brandväggsapparat och metod för att kontrollera nätverksdatapakettrafik mellan interna och externa nätverk |
US7107612B1 (en) * | 1999-04-01 | 2006-09-12 | Juniper Networks, Inc. | Method, apparatus and computer program product for a network firewall |
US6587466B1 (en) * | 1999-05-27 | 2003-07-01 | International Business Machines Corporation | Search tree for policy based packet classification in communication networks |
US7016980B1 (en) * | 2000-01-18 | 2006-03-21 | Lucent Technologies Inc. | Method and apparatus for analyzing one or more firewalls |
US7039641B2 (en) * | 2000-02-24 | 2006-05-02 | Lucent Technologies Inc. | Modular packet classification |
US6496935B1 (en) | 2000-03-02 | 2002-12-17 | Check Point Software Technologies Ltd | System, device and method for rapid packet filtering and processing |
US6880089B1 (en) | 2000-03-31 | 2005-04-12 | Avaya Technology Corp. | Firewall clustering for multiple network servers |
US7389358B1 (en) | 2000-09-13 | 2008-06-17 | Fortinet, Inc. | Distributed virtual system to support managed, network-based services |
US8095668B2 (en) | 2001-11-09 | 2012-01-10 | Rockstar Bidco Lp | Middlebox control |
US20030123456A1 (en) * | 2001-12-28 | 2003-07-03 | Denz Peter R. | Methods and system for data packet filtering using tree-like hierarchy |
CN1232922C (zh) * | 2002-02-20 | 2005-12-21 | 华北计算机***工程研究所 | 一种改进防火墙性能的方法 |
US7349382B2 (en) | 2002-08-10 | 2008-03-25 | Cisco Technology, Inc. | Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base |
FR2844415B1 (fr) | 2002-09-05 | 2005-02-11 | At & T Corp | Systeme pare-feu pour interconnecter deux reseaux ip geres par deux entites administratives differentes |
US20050022017A1 (en) | 2003-06-24 | 2005-01-27 | Maufer Thomas A. | Data structures and state tracking for network protocol processing |
KR100586461B1 (ko) * | 2003-10-15 | 2006-06-08 | 임혜숙 | 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체 |
US8316128B2 (en) | 2004-01-26 | 2012-11-20 | Forte Internet Software, Inc. | Methods and system for creating and managing identity oriented networked communication |
US7610621B2 (en) * | 2004-03-10 | 2009-10-27 | Eric White | System and method for behavior-based firewall modeling |
GB2418110B (en) | 2004-09-14 | 2006-09-06 | 3Com Corp | Method and apparatus for controlling traffic between different entities on a network |
CN100359889C (zh) * | 2004-10-29 | 2008-01-02 | 江苏南大苏富特软件股份有限公司 | 基于策略树的报文分组过滤及管理方法 |
CA2594020C (en) * | 2004-12-22 | 2014-12-09 | Wake Forest University | Method, systems, and computer program products for implementing function-parallel network firewall |
US20070016946A1 (en) * | 2005-07-15 | 2007-01-18 | University Of Texas System | System and method of querying firewalls |
US7721299B2 (en) | 2005-08-05 | 2010-05-18 | Red Hat, Inc. | Zero-copy network I/O for virtual hosts |
WO2007099276A1 (en) | 2006-03-02 | 2007-09-07 | British Telecommunications Public Limited Company | Message processing methods and systems |
US8838756B2 (en) | 2009-07-27 | 2014-09-16 | Vmware, Inc. | Management and implementation of enclosed local networks in a virtual lab |
US8365294B2 (en) | 2006-06-30 | 2013-01-29 | Intel Corporation | Hardware platform authentication and multi-platform validation |
US20160248813A1 (en) * | 2006-08-23 | 2016-08-25 | Threatstop, Inc. | Method and system for propagating network policy |
US8204982B2 (en) | 2006-09-14 | 2012-06-19 | Quova, Inc. | System and method of middlebox detection and characterization |
GB0623101D0 (en) | 2006-11-20 | 2006-12-27 | British Telecomm | Secure network architecture |
US20080189769A1 (en) | 2007-02-01 | 2008-08-07 | Martin Casado | Secure network switching infrastructure |
US20080267177A1 (en) | 2007-04-24 | 2008-10-30 | Sun Microsystems, Inc. | Method and system for virtualization of packet encryption offload and onload |
US8875272B2 (en) | 2007-05-15 | 2014-10-28 | International Business Machines Corporation | Firewall for controlling connections between a client machine and a network |
JP4740897B2 (ja) | 2007-05-24 | 2011-08-03 | 株式会社日立製作所 | 仮想ネットワーク構成方法及びネットワークシステム |
US8370919B2 (en) | 2007-06-26 | 2013-02-05 | Microsoft Corporation | Host firewall integration with edge traversal technology |
US7855982B2 (en) | 2007-11-19 | 2010-12-21 | Rajesh Ramankutty | Providing services to packet flows in a network |
US7945647B2 (en) | 2007-12-10 | 2011-05-17 | Oracle America, Inc. | Method and system for creating a virtual network path |
GB2459433B (en) * | 2008-03-07 | 2012-06-06 | Hewlett Packard Development Co | Distributed network connection policy management |
US8261317B2 (en) * | 2008-03-27 | 2012-09-04 | Juniper Networks, Inc. | Moving security for virtual machines |
US8099615B2 (en) | 2008-06-30 | 2012-01-17 | Oracle America, Inc. | Method and system for power management in a virtual machine environment without disrupting network connectivity |
US8352391B1 (en) * | 2008-08-20 | 2013-01-08 | Juniper Networks, Inc. | Fast update filter |
US7921197B2 (en) | 2008-11-19 | 2011-04-05 | Vmware, Inc. | Dynamic configuration of virtual machines |
WO2010070906A1 (ja) | 2008-12-18 | 2010-06-24 | 日本電気株式会社 | 通信装置、通信システム、通信制御方法及び通信制御プログラム |
US7948986B1 (en) | 2009-02-02 | 2011-05-24 | Juniper Networks, Inc. | Applying services within MPLS networks |
WO2010115060A2 (en) * | 2009-04-01 | 2010-10-07 | Nicira Networks | Method and apparatus for implementing and managing virtual switches |
US9621516B2 (en) * | 2009-06-24 | 2017-04-11 | Vmware, Inc. | Firewall configured with dynamic membership sets representing machine attributes |
US8578374B2 (en) | 2009-07-16 | 2013-11-05 | Ca, Inc. | System and method for managing virtual machines |
US8490150B2 (en) | 2009-09-23 | 2013-07-16 | Ca, Inc. | System, method, and software for enforcing access control policy rules on utility computing virtualization in cloud computing systems |
US8442048B2 (en) | 2009-11-04 | 2013-05-14 | Juniper Networks, Inc. | Methods and apparatus for configuring a virtual network switch |
US9552497B2 (en) | 2009-11-10 | 2017-01-24 | Mcafee, Inc. | System and method for preventing data loss using virtual machine wrapped applications |
JP5476261B2 (ja) | 2010-09-14 | 2014-04-23 | 株式会社日立製作所 | マルチテナント型情報処理システム、管理サーバ及び構成管理方法 |
US8705342B2 (en) * | 2010-10-15 | 2014-04-22 | Brookhaven Science Associates, Llc | Co-scheduling of network resource provisioning and host-to-host bandwidth reservation on high-performance network and storage systems |
US20120198541A1 (en) * | 2011-02-02 | 2012-08-02 | Reeves Randall E | Methods and apparatus for preventing network intrusion |
US9471384B2 (en) * | 2012-03-16 | 2016-10-18 | Rackspace Us, Inc. | Method and system for utilizing spare cloud resources |
US8959569B2 (en) | 2011-03-18 | 2015-02-17 | Juniper Networks, Inc. | Security enforcement in virtualized systems |
JP5824911B2 (ja) | 2011-06-29 | 2015-12-02 | 富士通株式会社 | 情報処理装置、情報処理プログラムおよび管理方法 |
US8516241B2 (en) * | 2011-07-12 | 2013-08-20 | Cisco Technology, Inc. | Zone-based firewall policy model for a virtualized data center |
US10277510B2 (en) * | 2011-08-02 | 2019-04-30 | Cavium, Llc | System and method for storing lookup request rules in multiple memories |
US9900224B2 (en) | 2011-08-04 | 2018-02-20 | Midokura Sarl | System and method for implementing and managing virtual networks |
US9602404B2 (en) * | 2011-08-17 | 2017-03-21 | Nicira, Inc. | Last-hop processing for reverse direction packets |
US9319459B2 (en) | 2011-09-19 | 2016-04-19 | Cisco Technology, Inc. | Services controlled session based flow interceptor |
EP2748713B1 (en) * | 2011-11-15 | 2021-08-25 | Nicira Inc. | Load balancing and destination network address translation middleboxes |
US8830834B2 (en) | 2011-12-21 | 2014-09-09 | Cisco Technology, Inc. | Overlay-based packet steering |
US8660129B1 (en) | 2012-02-02 | 2014-02-25 | Cisco Technology, Inc. | Fully distributed routing over a user-configured on-demand virtual network for infrastructure-as-a-service (IaaS) on hybrid cloud networks |
US8954964B2 (en) | 2012-02-27 | 2015-02-10 | Ca, Inc. | System and method for isolated virtual image and appliance communication within a cloud environment |
US20160323245A1 (en) * | 2012-04-11 | 2016-11-03 | Varmour Networks, Inc. | Security session forwarding following virtual machine migration |
US20130283263A1 (en) * | 2012-04-19 | 2013-10-24 | Dincloud, Inc. | System and method for managing resources in a virtual machine environment |
US9237128B2 (en) * | 2013-03-15 | 2016-01-12 | International Business Machines Corporation | Firewall packet filtering |
US8879550B2 (en) | 2012-05-08 | 2014-11-04 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for packet classification |
US9304801B2 (en) | 2012-06-12 | 2016-04-05 | TELEFONAKTIEBOLAGET L M ERRICSSON (publ) | Elastic enforcement layer for cloud security using SDN |
US9104492B2 (en) | 2012-09-04 | 2015-08-11 | Wisconsin Alumni Research Foundation | Cloud-based middlebox management system |
US9571507B2 (en) | 2012-10-21 | 2017-02-14 | Mcafee, Inc. | Providing a virtual security appliance architecture to a virtual cloud infrastructure |
US8949418B2 (en) * | 2012-12-11 | 2015-02-03 | International Business Machines Corporation | Firewall event reduction for rule use counting |
US9130901B2 (en) * | 2013-02-26 | 2015-09-08 | Zentera Systems, Inc. | Peripheral firewall system for application protection in cloud computing environments |
US9578061B2 (en) * | 2013-03-13 | 2017-02-21 | FireMon, LLC | System and method for modeling a networking device policy |
US9270704B2 (en) | 2013-03-13 | 2016-02-23 | FireMon, LLC | Modeling network devices for behavior analysis |
US9407519B2 (en) | 2013-03-15 | 2016-08-02 | Vmware, Inc. | Virtual network flow monitoring |
US10341296B2 (en) * | 2013-09-13 | 2019-07-02 | Vmware, Inc. | Firewall configured with dynamic collaboration from network services in a virtual network environment |
US9467473B2 (en) * | 2013-09-19 | 2016-10-11 | Microsoft Technology Licensing, Llc | System and method for compact form exhaustive analysis of security policies |
EP3055783A4 (en) * | 2013-10-10 | 2017-08-23 | Cloudistics, Inc. | Adaptive overlay networking |
EP3072263B1 (en) * | 2013-11-18 | 2017-10-25 | Telefonaktiebolaget LM Ericsson (publ) | Multi-tenant isolation in a cloud environment using software defined networking |
CN103561133B (zh) * | 2013-11-19 | 2016-08-24 | 中国科学院计算机网络信息中心 | 一种ip地址归属信息索引方法及快速查询方法 |
US9432284B2 (en) * | 2014-01-08 | 2016-08-30 | Cavium, Inc. | Method and apparatus for compiling search trees for processing request keys based on a key size supported by underlying processing elements |
US9268855B2 (en) * | 2014-01-08 | 2016-02-23 | Cavium, Inc. | Processing request keys based on a key size supported by underlying processing elements |
US9647947B2 (en) * | 2014-01-10 | 2017-05-09 | Cavium, Inc. | Block mask register key processing by compiling data structures to traverse rules and creating a new rule set |
US9560081B1 (en) * | 2016-06-24 | 2017-01-31 | Varmour Networks, Inc. | Data network microsegmentation |
US9215213B2 (en) * | 2014-02-20 | 2015-12-15 | Nicira, Inc. | Method and apparatus for distributing firewall rules |
US9215210B2 (en) * | 2014-03-31 | 2015-12-15 | Nicira, Inc. | Migrating firewall connection state for a firewall service virtual machine |
US9503427B2 (en) * | 2014-03-31 | 2016-11-22 | Nicira, Inc. | Method and apparatus for integrating a service virtual machine |
US9906494B2 (en) * | 2014-03-31 | 2018-02-27 | Nicira, Inc. | Configuring interactions with a firewall service virtual machine |
US9729512B2 (en) * | 2014-06-04 | 2017-08-08 | Nicira, Inc. | Use of stateless marking to speed up stateful firewall rule processing |
US9825913B2 (en) * | 2014-06-04 | 2017-11-21 | Nicira, Inc. | Use of stateless marking to speed up stateful firewall rule processing |
US9774537B2 (en) * | 2014-09-30 | 2017-09-26 | Nicira, Inc. | Dynamically adjusting load balancing |
US9692727B2 (en) | 2014-12-02 | 2017-06-27 | Nicira, Inc. | Context-aware distributed firewall |
US9294442B1 (en) * | 2015-03-30 | 2016-03-22 | Varmour Networks, Inc. | System and method for threat-driven security policy controls |
US9497165B2 (en) * | 2015-03-26 | 2016-11-15 | International Business Machines Corporation | Virtual firewall load balancer |
US9756015B2 (en) * | 2015-03-27 | 2017-09-05 | International Business Machines Corporation | Creating network isolation between virtual machines |
US9380027B1 (en) * | 2015-03-30 | 2016-06-28 | Varmour Networks, Inc. | Conditional declarative policies |
US10009381B2 (en) * | 2015-03-30 | 2018-06-26 | Varmour Networks, Inc. | System and method for threat-driven security policy controls |
US10044676B2 (en) * | 2015-04-03 | 2018-08-07 | Nicira, Inc. | Using headerspace analysis to identify unneeded distributed firewall rules |
US10142287B2 (en) * | 2015-04-06 | 2018-11-27 | Nicira, Inc. | Distributed network security controller cluster for performing security operations |
US10536357B2 (en) * | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
US10033766B2 (en) * | 2015-06-05 | 2018-07-24 | Cisco Technology, Inc. | Policy-driven compliance |
US9806948B2 (en) * | 2015-06-30 | 2017-10-31 | Nicira, Inc. | Providing firewall rules for workload spread across multiple data centers |
US9787641B2 (en) * | 2015-06-30 | 2017-10-10 | Nicira, Inc. | Firewall rule management |
US10298489B2 (en) * | 2015-07-24 | 2019-05-21 | International Business Machines Corporation | Adding multi-tenant awareness to a network packet processing device on a software defined network (SDN) |
-
2014
- 2014-12-02 US US14/558,561 patent/US9692727B2/en active Active
-
2015
- 2015-04-24 CN CN202010465888.1A patent/CN111464566B/zh active Active
- 2015-04-24 WO PCT/US2015/027632 patent/WO2016089441A1/en active Application Filing
- 2015-04-24 EP EP15721473.5A patent/EP3228060B1/en active Active
- 2015-04-24 CN CN201580064410.5A patent/CN107005555B/zh active Active
-
2017
- 2017-06-26 US US15/633,384 patent/US10205703B2/en active Active
-
2019
- 2019-01-15 US US16/248,732 patent/US10581801B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388030A (zh) * | 2007-09-14 | 2009-03-18 | 数据连接有限公司 | 数据库和数据库处理方法 |
CN101651622A (zh) * | 2008-08-14 | 2010-02-17 | 丛林网络公司 | 用于具有基于区域的防火墙的路由器中的多播的安全服务 |
Also Published As
Publication number | Publication date |
---|---|
US20170366504A1 (en) | 2017-12-21 |
CN111464566B (zh) | 2022-07-22 |
US20160156591A1 (en) | 2016-06-02 |
US10581801B2 (en) | 2020-03-03 |
EP3228060A1 (en) | 2017-10-11 |
US20190166096A1 (en) | 2019-05-30 |
US9692727B2 (en) | 2017-06-27 |
CN107005555A (zh) | 2017-08-01 |
WO2016089441A1 (en) | 2016-06-09 |
EP3228060B1 (en) | 2023-08-16 |
CN111464566A (zh) | 2020-07-28 |
US10205703B2 (en) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107005555B (zh) | 上下文感知的分布式防火墙 | |
US11894996B2 (en) | Technologies for annotating process and user information for network flows | |
US11115382B2 (en) | Global objects for federated firewall rule management | |
US10608993B2 (en) | Firewall rule management | |
CN109076028B (zh) | 异构软件定义网络环境中的微分段 | |
CN107646103B (zh) | 对容器的逻辑处理 | |
US10148696B2 (en) | Service rule console for creating, viewing and updating template based service rules | |
CN115174470B (zh) | 逻辑路由器 | |
US20190014039A1 (en) | Forwarding element implementation for containers | |
US9553807B2 (en) | Batch processing of packets | |
US10374827B2 (en) | Identifier that maps to different networks at different datacenters | |
EP3643012B1 (en) | Validating endpoint configurations between nodes | |
US10560375B2 (en) | Packet flow information invalidation in software-defined networking (SDN) environments | |
US10700933B2 (en) | Validating tunnel endpoint addresses in a network fabric | |
US10862850B2 (en) | Network-address-to-identifier translation in virtualized computing environments | |
US10805160B2 (en) | Endpoint bridge domain subnet validation | |
US11882052B2 (en) | Updating flow cache information for packet processing |
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 |