CN104202351B - 分布式虚拟安全装置以及使用虚拟机的基于流的转发系统 - Google Patents

分布式虚拟安全装置以及使用虚拟机的基于流的转发系统 Download PDF

Info

Publication number
CN104202351B
CN104202351B CN201410300904.6A CN201410300904A CN104202351B CN 104202351 B CN104202351 B CN 104202351B CN 201410300904 A CN201410300904 A CN 201410300904A CN 104202351 B CN104202351 B CN 104202351B
Authority
CN
China
Prior art keywords
virtual machine
packet
virtual
network system
machine
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
Application number
CN201410300904.6A
Other languages
English (en)
Other versions
CN104202351A (zh
Inventor
蒋东毅
尚进
於大维
林蔡宗
谢军
张晔
陈怀临
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanshi Network Communication Technology Co Ltd
Original Assignee
Hillstone Networks Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hillstone Networks Co Ltd filed Critical Hillstone Networks Co Ltd
Publication of CN104202351A publication Critical patent/CN104202351A/zh
Application granted granted Critical
Publication of CN104202351B publication Critical patent/CN104202351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种分布式虚拟安全装置以及使用虚拟机的基于流的转发系统。由具有使用多个虚拟机实现的多个处理单元的网络系统执行的方法,包括:在多个虚拟机中的第一虚拟机处接收第一数据包,其中第一虚拟机用于通过接口从网络接收第一数据包并具有会话处理能力;基于关于第一数据包的一个或多个信息使用数学算法来计算第一值;以及使用所计算的第一值来识别网络系统中的多个虚拟机的第二虚拟机。

Description

分布式虚拟安全装置以及使用虚拟机的基于流的转发系统
技术领域
本申请总体涉及网络安全设备及系统,比如防火墙和安全设备,更具体地,涉及云安全虚拟装置。本申请描述的实施例用于云和数据中心应用。
背景技术
网络装置,比如高端分布式安全网关,用于保护网络免受各种攻击,进行入侵检测和预防,从而提供高性能数据包路由,以及其他应用服务。在某些情况下,此网络装置可以包括用于执行不同数据包处理功能的多处理单元。这些处理单元可以由中心CPU管理,该中心CPU托管用于存储所有多处理单元的所有信息的集中式数据库。
本申请的发明人考虑采用使用分布式数据库的网络系统,而不是集中式数据库的网络系统来处理数据包可能是期望的。同样,本申请的发明人认为使用虚拟机来实现如上网络系统可能是期望的。
发明内容
一种由具有使用多个虚拟机实现的多个处理单元的网络系统执行的方法,包括:在多个虚拟机中的第一虚拟机处接收第一数据包,其中第一虚拟机用于通过接口从网络接收第一数据包并具有会话处理能力;基于关于第一数据包的一个或多个信息使用数学算法来计算第一值;以及使用所计算的第一值来识别网络系统中的多个虚拟机的第二虚拟机。
可选地,一个或多个信息包括源IP地址、目的IP地址、源端口标识符、目的端口标识符、以及协议信息的一个或组合。
可选地,虚拟机中的至少两个用于执行各自不同的数据包处理功能。
可选地,所述方法进一步包括至少部分基于关于第一数据包的一组信息来从所识别的第二虚拟机获取数据,这组信息是用于计算第一值的一个或多个信息的超集。
可选地,用于获取数据的这组信息包括源IP地址、目的IP地址、源端口、目的端口、以及协议信息,其中用于计算第一值的一个或多个信息包括这组信息的子集。
可选地,从所识别的第二虚拟机获取数据的动作包括从与第二虚拟机相关联的数据库获取数据。
可选地,所述方法进一步包括从所识别的第二虚拟机接收数据,其中接收数据的动作由网络系统中的多个虚拟机中与使用所计算的第一值识别的第二虚拟机不同的第三虚拟机执行。
可选地,虚拟机中的至少一部分具有与此相关联的各数据库,并且所述方法进一步包括将关于第一数据包的数据存储在数据库中与所识别的第二虚拟机相关联的一个数据库处。
可选地,数据库中的至少一个不具有数据副本。
可选地,所述方法进一步包括:网络系统接收第二数据包;基于关于第二数据包的一个或多个信息来计算第二值;以及使用所计算的第二值来识别多个虚拟机的第三虚拟机。
可选地,所述方法进一步包括:至少部分基于第一数据包来创建数据包处理会话,所述数据包处理会话表示数据包处理方案。
可选地,第一虚拟机是DVIOM虚拟机,数据包处理会话由DVIOM虚拟机创建。
可选地,所述方法进一步包括将数据包处理会话存储在与接收第一数据包的第一虚拟机相关联的第一会话数据库中。
可选地,数据包处理会话还存储在输出第一数据库的另一个虚拟机的第二会话数据库中。
可选地,所述方法进一步包括:在第一虚拟机处接收第二数据包;根据数据包处理会话在第一虚拟机处处理第二数据包;以及从第一虚拟机输出第二数据包。
可选地,第一虚拟机是DVIOM虚拟机。
可选地,所述方法进一步包括:在第一虚拟机处接收第二数据包;将第二数据包传输至第三虚拟机;根据数据包处理会话在第三虚拟机处处理第二数据包;以及从第三虚拟机输出第二数据包。
可选地,第一虚拟机是DVIOM虚拟机,第三虚拟机是第二DVIOM虚拟机。
可选地,网络系统用于在慢通道或快通道中执行数据包处理,在慢通道中处理第一数据包的同时执行计算第一值的动作和使用所计算的第一值来识别第二虚拟机的动作。
可选地,虚拟机中的至少一部分具有与此相关联的各数据库,并且所述方法进一步包括以分布方式将数据包和/或关于数据包的信息存储在数据库之中。
一种网络系统包括:彼此通信连接的多个虚拟机;其中多个虚拟机中的第一虚拟机用于通过接口从网络接收第一数据包并具有会话处理能力;并且其中第一虚拟机用于:基于关于第一数据包的一个或多个信息使用数学算法来计算第一值;以及使用所计算的第一值来识别多个虚拟机的第二虚拟机。
可选地,一个或多个信息包括源IP地址、目的IP地址、源端口标识符、目的端口标识符、以及协议信息的一个或组合。
可选地,虚拟机中的至少两个用于执行各自不同的数据包处理功能。
可选地,第一虚拟机用于至少部分基于关于第一数据包的一组信息来从所识别的第二虚拟机获取数据,这组信息是用于计算用于识别第二虚拟机的第一值的一个或多个信息的超集。
可选地,用于获取数据的这组信息包括源IP地址、目的IP地址、源端口、目的端口、以及协议信息,并且其中用于计算第一值的一个或多个信息包括这组信息的子集。
可选地,第一虚拟机用于通过从与第二虚拟机相关联的数据库获取数据来从所识别的第二虚拟机获取数据。
可选地,所述网络系统进一步包括与至少一部分的虚拟机相关联的各数据库,其中数据库的与所识别的第二虚拟机相关联的这个数据库用于存储关于第一数据包的数据。
可选地,数据库中的至少一个不具有数据副本。
可选地,第一虚拟机用于:基于关于第二数据包的一个或多个信息来计算第二值;以及使用所计算的第二值来识别多个虚拟机的第三虚拟机。
可选地,虚拟机中的一个用于至少部分基于第一数据包来创建数据包处理会话,所述数据包处理会话表示数据包处理方案。
可选地,第一虚拟机是DVIOM虚拟机,并用于创建数据包处理会话。
可选地,所述网络系统进一步包括用于存储数据包处理会话的第一会话数据库,所述第一会话数据库与接收第一数据包的第一虚拟机相关联。
可选地,所述网络系统进一步包括用于存储数据包处理会话的第二会话数据库,所述第二会话数据库与输出第一数据包的另一虚拟机相关联。
可选地,第一虚拟机用于:接收第二数据包;根据数据包处理会话处理第二数据包;以及从第一虚拟机输出第二数据包。
可选地,第一虚拟机是DVIOM虚拟机。
可选地,第一虚拟机用于接收第二数据包,以及将第二数据包传输至第三虚拟机;并且其中第三虚拟机用于根据数据包处理会话处理第二数据包,以及从第三虚拟机输出第二数据包。
可选地,第一虚拟机是第一DVIOM虚拟机,第三虚拟机是第二DVIOM虚拟机。
可选地,第二数据包在第三虚拟机处输出,并且其中数据包处理会话存储在接收第二数据包的第一虚拟机中,以及输出第二数据包的第三虚拟机中。
可选地,网络系统用于在慢通道或快通道中执行数据包处理,第一虚拟机用于在慢通道中处理第一数据包的同时执行计算第一值的动作和使用所计算的第一值来识别第二虚拟机的动作。
可选地,第一虚拟机提供第一应用处理功能,第二虚拟机提供第二应用处理功能。
可选地,第一虚拟机提供I/O功能,第二虚拟机提供应用处理功能。
可选地,所述网络系统进一步包括与多个虚拟机中的至少一部分的虚拟机相关联的各数据库,其中数据包和/或关于数据包的信息以分布方式存储在数据库之中。
一种网络系统包括:彼此通信连接的多个机器,所述多个机器包括至少一个虚拟机和至少一个实体机;其中多个机器的第一机器用于通过接口从网络接收第一数据包并具有会话处理能力;其中第一机器用于:基于关于第一数据包的一个或多个信息使用数学算法来计算第一值;以及使用所计算的第一值来识别多个虚拟机的第二虚拟机。
可选地,至少一个虚拟机是第一机器。
可选地,至少一个实体机是第一机器。
可选地,至少一个虚拟机包括第一虚拟机和第二虚拟机。
可选地,第一虚拟机是第一机器,第二虚拟机是第二机器。
可选地,至少一个实体机包括第一实体机和第二实体机。
可选地,第一实体机是第一机器,第二实体机是第二机器。
可选地,至少一个虚拟机包括多个DVIOM虚拟机。
可选地,至少一个虚拟机包括多个DVSSM虚拟机。
可选地,至少一个实体机包括用于通过各I/O接口与网络交接的多个实体机。
可选地,至少一个实体机包括用于提供防火墙安全功能的多个实体机。
通过阅读接下来详细描述的实施例,其他及进一步的方面和特征将变得显而易见。
附图说明
附图示出了本设计和实施例的实用性,其中相同的元件采用通用的引用编号表示。这些附图不一定按比例绘制。为了更好的了解获得上述及其他优点和目标的方式,将呈现实施例的更具体的描述,在附图中示出了所述实施例。这些附图只描述了典型的实施例,因此并不能视为本发明范围的限制。
图1示出了根据某些实施例的使用多个虚拟机实现的网络系统;
图2示出了图1的网络系统,特别示出了在慢通道中处理数据包的网络系统;
图3A示出了图1的网络系统,特别示出了在快通道中处理数据包的网络系统;
图3B示出了图1的网络系统,特别示出了以另一快通道的方式处理数据包的网络系统;
图4示出了根据某些实施例的数据包处理的方法;
图5示出了图1的网络系统的分布式数据库配置;
图6示出了与分布式数据库配置对照的集中式数据库配置;
图7示出了与分布式数据库配置对照的全同步数据库配置;
图8示出了分布式数据库中的数据包处理的实例;
图9A示出了使用虚拟机和实体机实现的网络系统;
图9B示出了使用虚拟机和实体机实现的另一网络系统;
图9C示出了使用虚拟机和实体机实现的另一网络系统;
图10示出了计算机系统的实例,本申请描述的实施例可以利用该计算机系统来实现。
具体实施方式
下文将参照图形描述各种实施例。应注意的是,图形不按比例绘制并且类似结构或功能的元件在所有图形中用类似参考编号表示。还应注意的是,图形仅为了方便实施例的描述。图形不用作详尽描述本发明或限制本发明的范围。另外,所示的实施例不必具有所示的所有方面或优点。即使未如此示出,或未如此明确地所述,结合具体实施例描述的方面或优点不一定局限于此实施例且可以在任意其他实施例中实施。
图1示出了根据某些实施例的网络系统10。在所示的实施例中,网络系统10是具有基于流的转发能力的防火墙系统。在其他实施例中,网络系统10可以是其他类型的网络系统。网络系统10包括彼此通过云架构40通信耦合的多个虚拟机(VM)30。在所示的实施例中,通信耦合虚拟机30的云架构40可以是互联网,或任意网络。在所示的实例中,示出了四个虚拟机30(虚拟机30a-30d)。然而,应理解,在其他实施例中,可能具有四个以上的虚拟机30或四个以下的虚拟机30。如图中所示,虚拟机30a,30b是各分布式虚拟I/O模块(DVIOM),虚拟机30c,30d是各分布式虚拟安全服务模块(DVSSM)。系统10进一步包括与DVIOM虚拟机30a,30b相关联的多个接口(INT)36。在某些实施例中,从DVIOM角度看INT 36可以是虚拟逻辑接口。在其他实施例中,DVINT可以是任何种类的接口,包括物理接口、聚合接口或隧道接口。
系统10进一步包括第一虚拟控制面模块(VCPM)12以及第二虚拟控制面模块14。VCPM是在虚拟机和/或实体设备上运行控制处理的软件模块。其功能包括将配置推向分布式数据面(即,DVIOM和DVSSM虚拟机)以配置系统10的组件,收集虚拟机30的操作所涉及的状态和统计,监控系统10中组件的运行状况,运行所需的应用协议及其他管理任务,或前述的组合。在所示的实施例中,VCPM 12和VCPM 14都用于利用彼此操作以在虚拟机和/或实体设备上提供控制处理。在其他实施例中,VCPM 12用于提供控制处理功能,VCPM 14是备用装置,因此当VCPM 12坏掉了,VCPM 14可以继续提供相同的控制处理功能。在其他实施例中,VCPM 12和VCPM 14可以一起运行以提供控制处理功能。VCPM可以在虚拟机、一组虚拟机、实体设备或一组实体设备上运行。
在某些实施例中,DVIOM是使用软件实现的虚拟机。DVIOM可以用于从接口(例如,虚拟接口和/或实体接口)接收数据包,将数据包传输至接口,或这两者。DVIOM还可以用于执行数据包处理。DVIOM可以执行有状态的基于流的数据包处理并确保对客户虚拟机的业务处理亲合力。在某些实施例中,当DVIOM从入口INT 36接收具体业务流(流)的第一数据包时,首先基于某个算法(例如,负载均衡算法、散列算法等)执行上下文(会话)查找。如果不存在会话,DVIOM然后通过慢通道处理传输将进行IDS、策略、路由、NAT及其他应用如UTM、IDP处理的数据包。系统10然后针对该流建立会话。当在DVIOM上接收属于相同流的后继数据包时,会话查找会导致匹配,且数据包将根据会话上下文中存储的信息经受快通道处理。
在某些实施例中,DVSSM可以用于提供安全防火墙服务。借助非限制性实例,DVSSM可以执行任意期望的安全处理,如策略查找、NAT、路由查找、IDS、IDP、UTM、和/或可以涉及深度数据包检测的其他处理。同样,在某些实施例中,DVSSM虚拟机30可以用于执行一个或多个网络处理功能,比如防火墙功能、网络安全监控(比如入侵检测)、和/或网络安全防范,包括但不限于入侵防护、反病毒、URL阻塞、QoS等。DVSSM还可以执行其他应用处理并为一个或多个数据包创建会话。还可以管理会话建立并与DVIOM一起执行更新。
在某些实施例中,系统10的组件可以使用一个或多个数据中心(DC)来实现,或可从一个或多个DC提供。例如,在一个实现中,系统10的组件(VCPM、DVIOM、DVSSM、INT)可以在数据中心中的架处(例如,在外围处)实现。同样,DVIOM可以放置在更靠近其虚拟机用户的地方,从DC架构角度,以节约带宽,然而DVSSM可以放置在任意地方。同样,在某些实施例中,不同虚拟机30可以位于不同地理位置(例如,房间中的不同站点,不同房间,不同建筑,不同城市,不同国家等)。因此,当系统10被实现为分布式虚拟安全装置时,从逻辑观点来看,仍然是一个安全装置。
在某些实施例中,系统10进一步包括与至少一部分虚拟机30相关联的多个数据库。例如,在某些实施例中,DVSSM虚拟机30可以具有各个不同的数据库(例如,RTO数据库和/或会话数据库)。在其他实施例中,DVIOM虚拟机30可能也具有各个不同的数据库。虚拟机30的数据库可以是与实现虚拟机30的设备相关联的本地数据库。在其他实施例中,虚拟机30的数据库可以是与实现虚拟机30的虚拟软件相关联的数据库。例如,数据库可以是虚拟软件提供商处的非瞬态介质,或与运行虚拟软件的设备通信耦合的非瞬态介质。在一个实现中,数据库可以位于数据中心(DC),或者可以位于与数据中心通信的其他位置。
虚拟机实现的网络系统10用于以至少两种方式(即,慢通道及快通道)处理数据包。图2示出了网络系统10以慢通道的方式处理数据包。首先,数据包在DVIOM虚拟机30a处通过INT 36之一被接收,如箭头200a所表示的。DVIOM虚拟机30a然后查找其会话数据库以查看是否事先为数据包建立会话。如果不存在先前的会话,则DVIOM虚拟机30a向下游传递数据包以便在慢通道中进行处理。
如图中所示,数据包由虚拟机30a传递至云架构40,如箭头200b所表示的,然后云架构40将数据包传递至虚拟机30c,30d中的一个(实例中为虚拟机30c),如箭头200c所表示的。在某些实施例中,接收数据包的虚拟机30a可以使用关于数据包的一个或多个信息来计算散列值,并使用散列值来识别将数据包传输至此的DVSSM虚拟机30c。在一个实现中,关于数据包的一个或多个信息可以是包括源IP地址、目的IP地址、源端口、目的端口以及协议信息的5元组。在其他实施例中,关于数据包的一个或多个信息可以是上述信息的子集,或者可以具有其他类型的信息。
在虚拟机30c接收数据包之后,DVSSM虚拟机30c可以执行会话查找以查看是否可以针对数据包找到会话(例如,通过查找局部会话数据库)。如果没有找到会话,则DVSSM虚拟机30c处理数据包(例如,执行策略查找、反病毒检查和/或任意其他网络安全检查等),并创建会话202。在某些实施例中,可以基于策略、ALG、NAT等来执行会话的创建。
在创建会话202之后,虚拟机30c然后将数据包传递至云架构40,如箭头200d所表示的。云架构40然后将数据包传递至DVIOM虚拟机30b,如箭头200e所表示的。虚拟机30b然后传递数据包以输出(例如,出口接口之外)。
在某些实施例中,创建的会话202可以表示数据包处理方案。例如,在某些实施例中,会话202可以具有用于表示用于处理属于相同会话的数据包的不同参数的数据结构。会话202中的信息可以由一个或多个DVSSM虚拟机30确定。
在所示的实施例中,创建的会话202可以由虚拟机30c传输至接收数据包的虚拟机30a,使得会话202可以存储在与对应虚拟机30a相关联的数据库处。创建的会话202还可以由虚拟机30c传输至输出数据包的虚拟机30b(例如,经由云架构40),其中数据包可以存储在与对应虚拟机30b相关联的数据库处。会话存储在DVIOM虚拟机30a,30b处,使得当数据包来自任意一个方向(例如,在虚拟机30b处接收以便在虚拟机30a处输出,或在虚拟机30a处接收以便在虚拟机30b处输出)时,会话信息不管在虚拟机30a处或在虚拟机30b处都可用。如图中所示,创建的会话202还可以由虚拟机30c传输至DVSSM虚拟机30d(例如,通过云架构40)以便为另一个虚拟机30d存储在数据库中。例如,DVSSM虚拟机30c可以基于I/O卡中使用的散列信息(例如,5元组)来识别DVSSM虚拟机30d。在某些实施例中,创建的会话202可以与值相关联,这个值可以使用关于数据包的信息来确定,其中这个值稍后被用作查找会话202的索引。例如,在某些实施例中,从数据包获得的5元组(即,源IP地址、目的IP地址、源端口、目的端口、协议信息)可以用于确定值,比如散列值,然后可以存储创建的会话202,与散列值相关联。
在创建会话202之后,下次当网络系统10接收属于相同会话的数据包时,数据包可以在快通道中进行处理。图3A示出了网络系统10以快通道的方式处理数据包。首先,在DVIOM虚拟机30a处接收数据包,如箭头200a所表示的。虚拟机30a然后查找其会话数据库以查看是否事先为数据包建立会话。如果不存在先前的会话,则虚拟机30a向下游传递数据包以便在慢通道中进行处理,如参照图2所讨论的。在图3A中所示的所示实例中,存在所创建的先前会话202。因此,数据包不是经由云架构40传递至DVSSM虚拟机30(例如,虚拟机30c或30d),在这种情况下,根据事先存储在虚拟机30a的数据库中的会话202规定的数据包处理方案由接收数据包的虚拟机30a处理数据包。然后将数据包传递至云架构40(如箭头200b所表示的),该云架构40然后将数据包传递至另一个DVIOM虚拟机30b(如箭头200c所表示的)。数据包然后在虚拟机30b处从端口输出,如箭头200d所表示的。如图中所示,在快通道中,数据包不必经受DVSSM虚拟机30的处理以建立新会话,因此,快通道的处理速度比慢通道的处理速度快。
应注意的是,在某些实施例中,在快通道中,数据包可以从同一个DVIOM虚拟机30中输入和输出,如图3B所示。首先,在DVIOM虚拟机30a处接收数据包,如箭头200a所表示的。虚拟机30a然后查找会话数据库以查看是否事先为数据包建立会话。如果不存在先前的会话,则虚拟机30a向下游传递数据包以便在慢通道中进行处理,如参照图2所讨论的。在图3B中所示的所示实例中,存在所创建的先前会话202。因此,数据包不是经由云架构40传递至DVSSM虚拟机30(例如,虚拟机30c或30d),在这种情况下,根据事先存储在虚拟机30a的数据库处的会话202规定的数据包处理方案由接收数据包的虚拟机30a处理数据包。数据包然后在虚拟机30a处从端口输出,如箭头200b所表示的。如图中所示,在快通道中,数据包不必经受DVSSM虚拟机30的处理以建立新会话,因此,快通道的处理速度比慢通道的处理速度快。
在其他实施例中,第一(或慢)通道和快通道都可以由DVIOM虚拟机30来处理。在这些情况下,DVSSM虚拟机30负责会话的位置跟踪、选通处理、锥形NAT处理等。如果DVIOM虚拟机30(例如,虚拟机30a或30b)识别新流且没有找到会话,则DVIOM向DVSSM虚拟机30(例如,虚拟机30c或30d)发送询问。
在进一步实施例中,一个或多个DVIOM虚拟机可以用于创建会话。因此,会话的创建可以由DVSSM虚拟机30、DVIOM虚拟机30或者两者的组合来执行。
因此,根据部署要求和配置,业务处理情报(TPI)可以由DVIOM、DVSSM或这两者提供。在某些实施例中,如果TPI由DVIOM提供,则DVIOM将执行慢通道和快通道处理,并且是业务处理的主力(例如,DVIOM可以在对应的CPU上执行第一通道处理)。在这种情况下,DVSSM主要有助于管理会话,跟踪会话及其他资源如针孔、锥形NAT,监控DVIOM的运行状况,收集统计和记录等。
另一方面,如果TPI由DVSSM提供,则DVIOM将执行会话查找并使用某些一致的、平衡的散列算法将没有会话的这些新数据包发送至DVIOM。DVSSM将执行第一通道处理,包括设置会话并执行应用处理。DVSSM然后将创建的会话推送至DVOM。当DVIOM稍后接收新数据包时,DVIOM将执行会话查找。如果会话查找导致匹配,则DVIOM将执行快速数据包转发并通过接口直接将数据包发送至出口(即,没有通过DVSSM虚拟机)。
在某些情况下,数据包在DVIOM虚拟机30b处可以从接口接收,并沿如图3B所示的快速通道配置的相反方向在与DVIOM虚拟机30a相关联的端口处传输。在这些情况下,因为会话202还存储在虚拟机30b的数据库中,所以虚拟机30b可以查找数据库以查看是否事先为数据包建立会话。如果事先建立会话,则数据包根据由事先存储在虚拟机30b的数据库处的会话202规定的数据包处理方案由虚拟机30b处理。然后将数据包传递至云架构40,该云架构40然后将数据包传递至虚拟机30a以便从与虚拟机30a相关联的出口接口中输出。在其他实施例中,会话可以由要输出数据包的虚拟机30a处理。在这些情况下,虚拟机30b将数据包转发至虚拟机30a以便进行处理。
在某些情况下,当虚拟机30a接收新数据包时,可能会漏掉虚拟机30a处的会话202。在这些情况下,通过云架构40将数据包传递至DVSSM虚拟机30中的一个(例如,基于从关于新数据包的(例如在新数据包中的)一个或多个信息确定的散列值)。虚拟机30c可以确定存在会话,因为其存储在与虚拟机30c相关联的数据库中。在这些情况下,仍然可以根据快通道配置进行数据包处理。具体地,根据事先创建的会话202处理数据包,并通过云架构40将数据包从DVSSM虚拟机30c传递至DVIOM虚拟机30b以便输出数据包,而不创建新会话。虚拟机30c还可以将会话202副本发送回先前接收用于存储在与虚拟机30a相关联的数据库中的数据包的虚拟机30a,从而虚拟机30a可以在将来访问先前漏掉的会话202。
同样,在某些情况下,会话202可以规定数据包由一个或多个DVSSM虚拟机30处理。在这些情况下,可以将数据包传递至一个或多个虚拟机30以便进行快通道处理。例如,在某些实施例中,接收数据包的虚拟机30a可以执行会话查找。虚拟机30a可以发现数据包的会话,其中会话202规定数据包由某个DVSSM虚拟机30(例如,虚拟机30c)处理。然后根据会话202将数据包与会话ID一起转发至DVSSM虚拟机30c。当虚拟机30c接收数据包和会话ID时,虚拟机30c通过会话ID来验证会话。如果发现会话,则虚拟机30c根据会话来处理数据包。在处理数据包之后,虚拟机30c将数据包传递至DVIOM虚拟机(例如,虚拟机30b)以便输出数据包。
如上述实例中所示,创建会话202是有利的,因为会话202包含要对具体数据包做的所有信息。当数据包在慢通道中处理时,网络系统10收集需要对数据包做的信息。网络系统10建立会话202(包含在数据包上需要做什么的信息)。这样,未来数据包不需要经受慢通道处理,网络系统10可以查找会话以处理快通道配置中的未来数据包。
正如所讨论的,在慢通道数据包处理配置期间,创建会话202。在该过程中,可以确定不同网络参数。可以存在表示不同网络参数的不同类型的RTO。借助非限制性实例,不同RTO类型可以分别表示流会话、VPN SA、应用层网关(ALG)门、锥形网络地址转换(NAT)映射、会话限制、AD计数、syn攻击计数、具有通配符的门、IP作用进入等。
在某些实施例中,RTO可以以分布方式存储在各不同的DVSSM虚拟机30的不同数据库处。在这个配置中,每个DVSSM虚拟机30有一个可以是假设全局数据库的子集的数据库。虚拟机30的数据库可以是与实现虚拟机30的设备相关联的本地数据库。在其他实施例中,虚拟机30的数据库可以是与在虚拟机30上运行的虚拟软件相关联的数据库。例如,数据库可以是虚拟软件提供商处的非瞬态介质,或与运行虚拟软件的设备通信耦合的非瞬态介质。在一个实现中,数据库可以位于数据中心(DC),或者可以位于与数据中心通信的其他位置。因此,分布式数据库配置可以指在不同地理位置的多个数据库,或者可以指分布在虚拟机30之间的多个数据库(其中数据库可以在相同数据中心,或者可以位于不同位置)。
在分布式数据库配置中,因为不存在管理所有信息的中心管理,所以需要特殊技术来识别与某个虚拟机30相关联的数据库以便存储,获取并对存储在其中的信息进行操作。图4示出了处理数据包以识别分布式数据库配置中的虚拟机30的方法400。首先,数据包由网络系统10接收(项目402)。接下来,基于关于数据包的一个或多个信息使用数学算法(例如,散列算法)来计算散列值(项目404)。在某些实施例中,散列值的计算可以由DVSSM虚拟机30中的一个,或DVIOM虚拟机30中的一个,或者两者执行。借助非限制性实例,关于数据包的一个或多个信息可以是源IP地址、目的IP地址、源端口、目的端口以及协议信息中的一个或组合。在获得散列值之后,散列值可以用于识别虚拟机30(项目406)。例如,在某些实施例中,散列值本身可以是虚拟机30的标识。在其他实施例中,散列值可以被用作查找虚拟机30的对应标识的索引。在所示的实施例中,散列值用于存储和/或查找存储在与网络系统10相关联的分布式数据库系统中(例如,以识别存储某个信息的虚拟机30)。
在某些实施例中,在虚拟机30已经在分布式数据库系统中进行识别之后,所识别的虚拟机30(例如,其对应数据库)然后可以用于存储关于数据包的信息。在其他实施例中,在已经识别虚拟机30之后,可以获取已经存储在虚拟机30的对应数据库中的信息。在进一步实施例中,在已经识别虚拟机30之后,可以操作(例如,更新、删除等)存储在虚拟机30的对应数据库中的信息。
应注意的是,因为每个虚拟机30(例如,DVIOM、DVSSM等)都具有与此相关联的对应数据库,所以可以通过确定虚拟机30的标识、与虚拟机30相关联的数据库的标志(其可以相同或不同)、或虚拟软件的示例的标识来完成识别虚拟机30的动作。在某些实施例中,与对应虚拟机30相关联的数据库可以被视为虚拟机30的一部分。
在分布式数据库配置中,每个RTO都只存储在对应的一个虚拟机30的RTO数据库中,该虚拟机可以使用散列值进行唯一识别,如图5所示。在其他实施例中,每个RTO都可以存储在数个RTO数据库中(例如,出于冗余目的),但数量小于整个网络系统10的RTO数据库的总数,使得系统仍然可以被视为分布式数据库系统,而不是全同步数据库系统。
在图5中所示的分布式数据库系统中,一个虚拟机30(在该实例中为“VM-3”)可以通过首先识别要从中获取信息的数据库来从另一虚拟机30(在该实例中为“VM-2”)的数据库获取信息。这可以通过基于密钥使用散列算法来计算散列值而完成,如参考图4的方法所讨论的。例如,散列算法可以使用密钥中的值的子集,或密钥中的所有值来计算散列值。散列值然后可以用于识别要从中获取信息的数据库。在某些实施例中,散列值本身是数据库的标识。在其他实施例中,散列值可以是可用于查找数据库的标识的索引(比如,通过查找表)。因为虚拟机30具有与此相关联的对应数据库,所以数据库的识别可以通过识别虚拟机30来完成,反之亦然。在这些情况下,散列值可以表示数据库的标识,和/或对应虚拟机30的标志。因此,在该说明书中,引用数据库的标识可以指与对应数据库相关联的虚拟机的标识,反之亦然。同样,因为数据库也与实现虚拟机30的对应虚拟机相关联,所以数据库的识别还可以通过识别实现虚拟机30的虚拟软件的示例来完成,反之亦然。在这些情况下,散列值可以表示实现对应虚拟机30的虚拟软件的示例的标识。因此,在该说明书中,引用数据库的标识可以指实现虚拟机30的虚拟软件的示例的标识,反之亦然。
在识别要从中获取信息的数据库之后,密钥然后可用于从数据库获取信息。在某些实施例中,密钥的一部分可以用于计算用于识别数据库/虚拟机30(例如,DVIOM、DVSSM等)/实现虚拟机的虚拟软件示例的散列值,全密钥用于从数据库查找所需的信息(例如,全密钥可以直接被用作索引,或可以进行散列处理以获得散列值,该散列值然后被用作索引)。
在某些实施例中,用于网络系统10的分布式数据库操作的上述密钥可以使用包括(1)源IP地址、(2)目的IP地址、(3)源端口、(4)目的端口以及(5)协议信息的5元组进行构建。5元组中的任意信息可以具有固定值、一系列值、或“通配符”标识符。在某些实施例中,密钥的5元组中有至少一个固定值。在某些实施例中,如果所有5元组都是固定的,则5元组被用作密钥。此密钥可以用于查找关于会话、VPN SA等的信息。在其他实施例中,如果5元组中的值的子集是固定的,则只有5元组中的固定值(或固定值的子集)可以被用作密钥。例如,如果目的IP地址是固定的,则目的IP地址可以被用作密钥。此密钥可以用于查找关于锥形NAT、ALG门、基于目的地IP的会话限制等的信息。在另一实例中,如果源IP地址是固定的,则源IP地址被用作密钥。此密钥可以用于查找关于锥形NAT、ALG门、基于源IP的会话限制等的信息。在其他实施例中,在罕见的情况下,密钥可以不包含固定值(例如,5元组的每一个是一系列值或是通配符值)。在这些情况下,信息可以完全填充至所有数据库(如全同步数据库配置中的信息)。
如上述实施例中所示,网络系统10的分布式数据库配置是有利的,因为其容量可以与虚拟机30的数量一起线性扩展。同样,当虚拟机30的数量可能增加时,数据库操作开销保持不变。此外,与集中式数据库配置(其中所有信息存储在一个如图6中所示的集中式数据库中)和全同步数据库配置(其中每个RTO数据库都具有相同信息的副本,使得信息可以在如图7中所示的虚拟机处进行获取)相比,此分布式数据库可能需要较少的资源来进行维护和同步。这是因为在网络系统10中,RTO信息由各虚拟机30(例如,DVIOM、DVSSM等)局部存储并管理。因此,与其中有中心CPU记录所有虚拟机中的所有信息以了解整个系统,并在网络系统10中相应地分配工作的集中式数据库不同,不需要任何中心管理。同样,网络系统10的分布式数据库配置是有利的,因为即使虚拟机30坏掉,网络系统10仍然可以是起作用的,原因是其他虚拟机30可以继续基于先前描述的分布式数据库配置来执行数据库处理。这与集中式数据库配置形成对比,在该配置中如果中心CPU坏掉,则整个系统变得不起作用。
同样,使用虚拟机30实现的网络系统10是有利的。首先,虚拟机实现的系统10可以为云安全提供100%软件解决方案。这不再需要部署管理和维护可能困难且昂贵的多个硬件装置。在一个实现中,VCPM、DVIOM、DVSSM全部都是用于实现分布在数据中心云之间的虚拟机的软件模块。从部署的角度看这可以提供很大的灵活性。虚拟机实现的网络系统10还可以提供较低的最初投资,用户可以在系统10扩展时进行支付。在某些情况下,数据中心云服务可以包括按需服务,通过在虚拟机上运行这些服务装置,可以根据服务需求轻松添加、删除和/或迁移。虚拟机实现的系统10还为管理提供方便。在某些实施例中,标准管理接口平台可以用于减轻管理负担。同样,虚拟机实现的系统10提供灵活性,因为DVIOM和DVSSM可以根据需要添加或删除。系统10还提供高带宽和可扩展性。在某些实施例中,系统10可以轻松进行扩展以支持几十兆兆位或更多。此外,系统10自然地提供负载平衡。具体地,利用该系统10,负载平衡使用平衡的且一致的散列算法在INT和DVIOM上自然实现。
另外,由于DVIOM和DVSSM是实现虚拟机的软件组件,因此高带宽和可扩展性可通过添加更多DVIOM虚拟机30和/或DVSSM虚拟机30来轻松实现。这也消除了另一种解决方案涉及的带宽限制和延迟,这个解决方案中使用了单个虚拟机安全装置。具体地,在不同的技术中,可以使用在虚拟机上运行的多个虚拟网关。在这种情况下,用户可以具有其自身的虚拟安全网关,其中需要检查并保护的业务可以被重定向至虚拟网关。然而,在这个技术中,可能难以管理这些虚拟机。同样,由于虚拟安全网关具有有限的带宽,因此添加更多网关将造成更大的延迟。
同样,系统10是有利的,因为存在关于控制面的系统级的知识。这减轻了配置管理以及系统监控和其他管理任务的负担。
在系统10的分布式数据库配置中,因为不存在管理一切的中心CPU,并且因为网络信息分别存储在各虚拟机30(例如,DVIOM、DVSSM等)的不同数据库处,所以网络系统10用于从不同数据库查找网络信息(例如,网络参数)。例如,在某些实施例中,当数据包由网络系统10接收时,对从数据包获得的5元组进行散列处理以获得散列值。散列值用于识别与流处理有关的数据库。然后向托管所识别的(基于散列值)数据库的另一虚拟机30发送询问(例如通过虚拟机30)以获取所需的网络信息。借助非限制性实例,网络信息可以是计数、映射、会话计数、会话限制等。例如,对于会话设置,询问可以请求当前会话的计数。如果由数据库返回的当前会话的计数小于规定的最大值,则应用处理单元30可以为数据包设置会话。同样,在某些实施例中,会话计数可以在对应数据库中更新。
图8示出了涉及ALG门(例如,FTP)插入的分布式数据库配置中的RTO数据库操作的实例。最初,不为具体的数据库设置门。作为慢通道处理的一部分,可以确定需要创建门。在某些实施例中,门可以由虚拟机30中的一个(在该实例中为“VM-3”)创建。同样,在某些实施例中,I/O卡可以使用5元组密钥(例如,密钥本身,或其散列值)来识别虚拟机30。在所示的实例中,创建的门可以与由创建门所为的数据包得出的5元组密钥相关联。5元组密钥可以具有格式:[dst-ip,*,dst-port,src-port,protocol],其中“dst-ip”表示目的IP地址,“dst-port”表示目的端口,“src-port”表示源端口,“*”表示通配符。5元组密钥表示创建门的唯一门ID。接下来,5元组密钥(“dst-ip”)的一部分用于计算散列值以识别与存储创建门的虚拟机30中的一个相关联的RTO数据库。在某些实施例中,计算散列值可以由VM-3执行。在实例中,所计算的散列值可以表示另一虚拟机30(在该实例中为“VM-2”)的标识。在这些情况下,将门与全局唯一门ID一起从VM-3发送至VM-2以存储在VM-2的数据库处。
在某些实施例中,当新数据包出现时,网络系统10可以为新数据包在VM-2托管的数据库中获取门信息。例如,在某些实施例中,当新数据包由网络系统10接收时,网络系统10可能找不到数据包的会话。网络系统10然后可以确定是否存在为数据包创建的门。如果存在门,则网络系统10可以创建会话。虚拟机30(例如,VM-3)可以使用密钥的“dst-ip”部分(根据处理新接收的数据包确定的)来计算散列值。散列值然后用于识别在此处存储有门信息的数据库。在该实例中,所识别的数据库是与虚拟机30“VM-2”相关联的数据库。虚拟机30“VM-3”然后可以将获取消息与5元组密钥一起发送至VM-2。当VM-2从VM-3接收询问以及5元组密钥时,VM-2使用5元组密钥查找其RTO数据库以查看是否存在匹配。如果存在,则VM-2可以将门信息发送回VM-3,并且VM-3可以为数据包创建会话。
同样,在某些实施例中,可以操作存储在与虚拟机30中的一个相关联的数据库处的门信息(例如,该门信息可以被更新、删除等)。例如,在某些实施例中,虚拟机30(例如,VM-3)可以使用密钥的“dst-ip”部分来计算散列值。散列值然后用于识别存储有门信息的数据库。在该实例中,所识别的数据库是与虚拟机30“VM-2”相关联的数据库。虚拟机“VM-3”然后将操作消息(例如,更新或删除消息)与门ID(其是全密钥)一起发送至VM-2。当VM-2从VM-3接收门ID时,VM-2查找其数据库以查看是否存在匹配。如果存在,则VM-2可以执行请求的操作,在完成操作之后可以将确认消息发送回VM-3。
应注意的是,RTO信息不限于先前实例中描述的门信息,并且可以存在其他类型的RTO信息。例如,RTO信息可以包括关于流会话的信息,在此情况下,5元组可以被用作密钥(例如,在散列操作中)以识别具有流会话信息的数据库/对应虚拟机30。
在另一实例中,RTO信息可以包括关于VPN SA的信息,在此情况下,5元组可以被用作密钥(例如,在散列操作中)以识别具有VPN SA信息的数据库/对应虚拟机30。在其他实施例中,源IP地址和/或目的IP地址可以被用作散列密钥来定位虚拟机以执行RTO查找。
在另一实例中,RTO信息可以包括关于全门的信息,在此情况下,5元组可以被用作密钥(例如,在散列操作中)以识别具有全门信息的数据库/对应虚拟机30。
在另一实例中,RTO信息可以包括关于会话限制的信息,该会话限制基于源IP或基于目的地IP。在此情况下,5元组中的源IP地址或目的IP地址可以用于(例如,在散列操作中)识别具有会话限制信息的数据库/对应虚拟机30。
在另一实例中,RTO信息可以包括关于AD计数的信息,在此情况下,5元组中的源IP地址或目的IP地址可以用于(例如,在散列操作中)识别具有AD计数信息的数据库/对应虚拟机30。
在又一实例中,RTO信息可以包括关于syn攻击(比如syn攻击计数)的信息,在此情况下,5元组中的源IP地址或目的IP地址可以用于(例如,在散列操作中)识别具有syn攻击信息的数据库/对应虚拟机30。
在另一实例中,RTO信息可以包括关于锥形NAT的信息(例如,映射信息)。在这些情况下,可以具有两个RTO条目,一个用于正向映射,另一个用于反向映射。原始源IP地址可以被用作密钥(例如,在第一散列操作中)以识别具有正向映射信息的数据库/对应虚拟机30,“NATed”源IP地址可以被用作密钥(例如,在第二散列操作中)以识别具有反向映射信息的数据库/对应虚拟机30。
在某些实施例中,除了会话RTO和SA RTO之外,具有相同目的IP地址或源IP地址的所有RTO可以存储在相同RTO数据库中。同样,在某些实施例中,对于具有固定目的IP地址和源IP地址的给定数据包,虚拟机30可以发出两个RTO数据库询问以获取数据包的所有相关RTO。例如,可以向通过对密钥中的目的IP地址进行散列处理所识别的虚拟机30(例如,VM-1)发出一个询问,并且可以向通过对密钥中的源IP地址进行散列处理所识别的另一个虚拟机30(例如,VM-2)发出另一个询问。
在上述实施例中,描述了网络系统10使用多个虚拟机30来实现。在其他实施例中,网络系统10可以使用虚拟机30和实体机来实现。例如,如图9A所示,在某些实施例中,先前描述的DVIOM虚拟机中的一个或多个(例如,全部)可以使用实体机900来实现。实体机900可以用于通过各I/O接口与网络交接。同样,在某些实施例中,实体机900可以用于创建会话和/或可以具有会话处理能力,如参照DVIOM虚拟机作出的类似讨论一样。
在其他实施例中,先前描述的DVSSM虚拟机中的一个或多个(例如,全部)可以使用实体机902来实现(图9B)。实体机902可以用于提供防火墙安全功能。
在更进一步的实施例中,DVIOM虚拟机中的一个或多个可以使用实体机900来实现,并且一个或多个DVSSM虚拟机可以使用实体机902来实现(图9C)。实体机900/902可以是计算机,或任意实体设备,其用于执行本申请描述的功能。
计算机系统架构
如上所述,网络系统10包括多个虚拟机30。在某些实施例中,每个虚拟机30可以使用一个计算机系统来实现。图10是示出了计算机系统1200的实施例的框图,本申请描述的实施例可以在其上实现。例如,在某些实施例中,计算机系统1200可以用于实现本申请描述的虚拟机的一个或多个功能。计算机系统1200包括总线1202或其他用于传送信息的通信机构,以及与总线1202耦合的用于处理信息的处理器1204。处理器1204可以用于执行本申请描述的各种功能。例如,在某些实施例中,处理器1204可以从用户接收输入以配置网络组件(例如,组件380)。
计算机系统1200还包括主存储器1206,比如随机存取存储器(RAM)或与总线1202耦合以存储信息和与处理器1204执行的指令耦合的其他动态存储设备。在处理器1204执行的指令期间,主存储器1206还可以用于存储临时变量或其他中间信息。计算机系统1200进一步包括只读存储器(ROM)1208或与总线1202耦合以存储处理器1204的静态信息和指令的其他静态存储设备。提供了数据存储设备1210,比如磁盘或光盘,并将其与总线1202耦合以存储信息和指令。
计算机系统1200可以经由总线1202与显示器1212,比如阴极射线管(CRT)或LCD监视器耦合,以便向用户显示信息。包括字母数字和其他键的输入设备1214与总线1202耦合以向处理器1204传送信息和命令选择。另一类型的用户输入设备是向处理器1204传送方向信息和命令选择并控制显示器1212上的光标运动的光标控制装置1216,比如鼠标、轨迹球或光标方向键。该输入设备在两个轴,即第一轴(例如,x)和第二轴(例如,y)上通常具有两个自由度,从而允许设备指定面板的位置。
计算机系统1200可以用于根据本申请描述的实施例执行各种功能。根据一个实施例,此用途由计算机系统1200响应于处理器1204执行包含在主存储器1206中的一个或多个指令的一个或多个序列来提供。可以将这些指令从另一个计算机可读介质读入主存储器1206,比如存储设备1210。主存储器1206中包含的指令序列的执行引起处理器1204执行本申请描述的处理步骤。多处理配置中的一个或多个处理器也可以用于执行主存储器1206中包含的指令序列。在可选实施例中,硬接线电路可以用来代替软件指令或结合软件指令以实现本申请描述的实施例的特征。因此,本申请描述的实施例不限于硬件电路和软件的任意特定组合。
本申请所使用的术语“计算机可读介质”指的是参与向处理器1204提供指令以便执行的任意介质。此介质可以呈现许多形式,包括但不限于非易失性介质、易失性介质以及传输介质。非易失性介质例如包括光盘或磁盘,比如存储设备1210。非易失性介质可以被视为非瞬态介质的实例。易失性介质包括动态存储器,比如主存储器1206。易失性介质可以被视为非瞬态介质的另一实例。传输介质包括同轴电缆、铜线以及光纤,包括组成总线1202的电线。传输介质还可以呈现声波或光波的形式,比如在无线电波和红外线数据通信期间产生的声波或光波的形式。
计算机可读介质的通用形式例如包括软盘、伸缩盘、硬盘、磁带、或任意其他磁性介质、CD-ROM、任意其他光学介质、穿孔卡、纸带、具有孔图案的任意其他实体介质、RAM、PROM、EPROM、FLASH-EPROM、任意其他存储芯片或墨盒、如下文描述的载波、或计算机可从中读取的任意其他介质。
各种形式的计算机可读介质可以涉及将一个或多个指令的一个或多个序列输送至处理器1204以便执行。例如,指令最初可以由远程计算机的磁盘携带。远程计算机可以将指令加载到动态存储器中并使用调制解调器在电话线上发送指令。计算机系统1200本地的调制解调器可以在电话线上接收数据并使用红外线发射器来将数据转换为红外线信号。与总线1202耦合的红外线检测器可以接收红外线信号中携带的数据并将数据置于总线1202上。总线1202将数据输送至主存储器1206,处理器1204从该主存储器1206接收并执行指令。在由处理器1204执行之前或之后,由主存储器1206接收的指令可以任选存储在存储设备1210上。
计算机系统1200还包括与总线1202耦合的通信接口1218。通信接口1218向与局部网络1222连接的网络链路1220提供双向数据通信耦合。例如,通信接口1218可以是集成服务数字网络(ISDN)卡或调制解调器以向对应类型的电话线提供数据通信连接。再如,通信接口1218可以是局域网(LAN)卡以向兼容的LAN提供数据通信连接。还可以实现无线链路。在任意此实现中,通信接口1218发送并接收携带表示各种类型的信息的数据流的电信号、电磁信号或光学信号。
网络链路1220通常通过一个或多个网络向其他设备提供数据通信。例如,网络链路1220可以通过局部网络1222向主机1224或装备1226比如辐射束源或与辐射束源操作耦合的交换机提供连接。在网络链路1220上传输的数据流可以包括电信号、电磁信号或光信号。通过各种网络的信号以及网络链路1220上并通过向计算机系统1200输送数据和从算机系统1200输送数据的通信接口1218的信号是传输信息的载波的示例性形式。计算机系统1200可以通过网络、网络链路1220以及通信接口1218发送消息并接收数据,包括程序代码。
应注意的是,当“数据包”在本申请中进行描述时,应理解其可以指从节点传输的原始数据包,或其副本。
应注意的是,术语“第一”、“第二”等用于指不同的事物,且不一定指事物的次序。
虽然已经示出并描述具体实施例,但应理解这些实施例非旨在限制要求保护的发明,对本领域技术人员来说显而易见的是,在不背离要求保护的本发明的精神和范围的情况下可以作出各种改变和修改。本说明书和附图相应地被认为是说明性的而不是限制意义上的。要求保护的发明旨在涵盖替代、修改和等同物。

Claims (51)

1.一种由具有使用多个虚拟机实现的多个处理单元的网络系统执行的方法,其特征在于,包括:
多个虚拟机中的第一虚拟机接收第一数据包,其中,所述第一虚拟机用于通过接口从网络接收所述第一数据包并具有会话处理能力;
基于关于所述第一数据包的一个或多个信息使用数学算法来计算第一值;以及
使用所计算的第一值来识别所述网络系统中的多个虚拟机中的第二虚拟机;
其中,所述多个虚拟机中的至少一部分具有与其相关联的各数据库,并且所述方法进一步包括:将关于所述第一数据包的数据存储在与所识别的第二虚拟机相关联的所述数据库中的一个中。
2.根据权利要求1所述的方法,其特征在于,所述的一个或多个信息包括源IP地址、目的IP地址、源端口标识符、目的端口标识符、以及协议信息中的一个或任意多个的组合。
3.根据权利要求1所述的方法,其特征在于,所述虚拟机中的至少两个用于执行各自不同的数据包处理功能。
4.根据权利要求1所述的方法,其特征在于,进一步包括:至少部分基于关于所述第一数据包的一组信息来从所识别的第二虚拟机获取数据,所述一组信息是用于计算所述第一值的一个或多个信息的超集。
5.根据权利要求4所述的方法,其特征在于,用于获取数据的所述一组信息包括源IP地址、目的IP地址、源端口、目的端口、以及协议信息,并且其中用于计算所述第一值的所述一个或多个信息包括所述一组信息的子集。
6.根据权利要求4所述的方法,其特征在于,从所识别的第二虚拟机获取数据的动作包括从与所述第二虚拟机相关联的数据库获取数据。
7.根据权利要求1所述的方法,其特征在于,进一步包括:从所识别的第二虚拟机接收数据,其中接收数据的动作由所述网络系统中的所述多个虚拟机中与使用所计算的第一值识别的所述第二虚拟机不同的第三虚拟机执行。
8.根据权利要求1所述的方法,其特征在于,所述数据库中的至少一个不具有数据副本。
9.根据权利要求1所述的方法,其特征在于,进一步包括:
所述网络系统接收第二数据包;
基于关于所述第二数据包的一个或多个信息来计算第二值;以及
使用所计算的第二值来识别所述多个虚拟机的第三虚拟机。
10.根据权利要求1所述的方法,其特征在于,进一步包括:
至少部分基于所述第一数据包来创建数据包处理会话,所述数据包处理会话表示数据包处理方案。
11.根据权利要求10所述的方法,其特征在于,所述第一虚拟机是DVIOM虚拟机,所述数据包处理会话由所述DVIOM虚拟机创建;其中,所述DVIOM是指分布式虚拟I/O模块。
12.根据权利要求10所述的方法,其特征在于,进一步包括:将所述数据包处理会话存储在与接收所述第一数据包的所述第一虚拟机相关联的第一会话数据库中。
13.根据权利要求12所述的方法,其特征在于,所述数据包处理会话还存储在输出所述第一数据包的多个虚拟机中的另一个虚拟机的第二会话数据库中。
14.根据权利要求10所述的方法,其特征在于,进一步包括:
所述第一虚拟机接收第二数据包;
根据所述数据包处理会话在所述第一虚拟机处理所述第二数据包;以及
从所述第一虚拟机输出所述第二数据包。
15.根据权利要求14所述的方法,其特征在于,所述第一虚拟机是DVIOM虚拟机,其中,所述DVIOM是指分布式虚拟I/O模块。
16.根据权利要求10所述的方法,其特征在于,进一步包括:
所述第一虚拟机接收第二数据包;
将所述第二数据包传输至第三虚拟机;
根据所述数据包处理会话在所述第三虚拟机处理所述第二数据包;以及
从所述第三虚拟机输出所述第二数据包。
17.根据权利要求16所述的方法,其特征在于,所述第一虚拟机是DVIOM虚拟机,所述第三虚拟机是第二DVIOM虚拟机,其中,所述DVIOM是指分布式虚拟I/O模块。
18.根据权利要求1所述的方法,其特征在于,所述网络系统用于在慢通道或快通道中执行数据包处理,在所述慢通道中处理所述第一数据包的同时执行计算所述第一值的动作和使用所计算的所述第一值来识别所述第二虚拟机的动作。
19.根据权利要求1所述的方法,其特征在于,多个所述虚拟机中的至少部分虚拟机具有与其相关联的各数据库,并且所述方法进一步包括:以分布方式将数据包和/或关于所述数据包的信息存储在多个所述数据库之中。
20.一种网络系统,其特征在于,包括:
彼此通信连接的多个虚拟机;
其中所述多个虚拟机中的第一虚拟机用于通过接口从网络接收第一数据包并具有会话处理能力;并且
其中所述第一虚拟机用于:
基于关于所述第一数据包的一个或多个信息使用数学算法来计算第一值;以及
使用所计算的第一值来识别所述多个虚拟机中的第二虚拟机;
其中,进一步包括:与多个所述虚拟机的至少一部分虚拟机相关联的各数据库,其中,与所识别的第二虚拟机相关联的数据库中的一个用于存储关于所述第一数据包的数据。
21.根据权利要求20所述的网络系统,其特征在于,所述一个或多个信息包括源IP地址、目的IP地址、源端口标识符、目的端口标识符、以及协议信息中的一个或任意多个的组合。
22.根据权利要求20所述的网络系统,其特征在于,多个所述虚拟机中的至少两个虚拟机用于执行各自不同的数据包处理功能。
23.根据权利要求20所述的网络系统,其特征在于,所述第一虚拟机用于至少部分基于关于所述第一数据包的一组信息来从所识别的第二虚拟机获取数据,所述一组信息是用于计算识别所述第二虚拟机的第一值的一个或多个信息的超集。
24.根据权利要求23所述的网络系统,其特征在于,用于获取数据的所述一组信息包括源IP地址、目的IP地址、源端口、目的端口、以及协议信息,并且其中用于计算所述第一值的一个或多个信息包括所述一组信息的子集。
25.根据权利要求20所述的网络系统,其特征在于,所述第一虚拟机用于通过从与所述第二虚拟机相关联的数据库获取数据来从所识别的第二虚拟机获取数据。
26.根据权利要求20所述的网络系统,其特征在于,所述数据库中的至少一个不具有数据副本。
27.根据权利要求20所述的网络系统,其特征在于,所述第一虚拟机用于:
基于关于第二数据包的一个或多个信息来计算第二值;以及
使用所计算的第二值来识别所述多个虚拟机的第三虚拟机。
28.根据权利要求20所述的网络系统,其特征在于,虚拟机中的一个用于至少部分基于第一数据包来创建数据包处理会话,所述数据包处理会话表示数据包处理方案。
29.根据权利要求28所述的网络系统,其特征在于,所述第一虚拟机是DVIOM虚拟机,并用于创建所述数据包处理会话,其中,所述DVIOM是指分布式虚拟I/O模块。
30.根据权利要求28所述的网络系统,其特征在于,进一步包括:用于存储所述数据包处理会话的第一会话数据库,所述第一会话数据库与接收所述第一数据包的所述第一虚拟机相关联。
31.根据权利要求30所述的网络系统,其特征在于,进一步包括:用于存储所述数据包处理会话的第二会话数据库,所述第二会话数据库与输出所述第一数据包多个所述虚拟机中的另一虚拟机相关联。
32.根据权利要求28所述的网络系统,其特征在于,所述第一虚拟机用于:
接收第二数据包;
根据所述数据包处理会话处理所述第二数据包;以及
从所述第一虚拟机输出所述第二数据包。
33.根据权利要求32所述的网络系统,其特征在于,所述第一虚拟机是DVIOM虚拟机,其中,所述DVIOM是指分布式虚拟I/O模块。
34.根据权利要求28所述的网络系统,其特征在于,所述第一虚拟机用于接收第二数据包,以及将所述第二数据包传输至第三虚拟机;并且
其中所述第三虚拟机用于根据所述数据包处理会话处理所述第二数据包,以及从所述第三虚拟机输出所述第二数据包。
35.根据权利要求34所述的网络系统,其特征在于,所述第一虚拟机是DVIOM虚拟机,所述第三虚拟机是第二DVIOM虚拟机,其中,所述DVIOM是指分布式虚拟I/O模块。
36.根据权利要求34所述的网络系统,其特征在于,所述第三虚拟机输出所述第二数据包,并且其中所述数据包处理会话存储在接收所述第二数据包的所述第一虚拟机中,以及存储在输出所述第二数据包的所述第三虚拟机中。
37.根据权利要求20所述的网络系统,其特征在于,所述网络系统用于在慢通道或快通道中执行数据包处理,所述第一虚拟机用于在所述慢通道中处理所述第一数据包的同时执行计算所述第一值的动作和使用所计算的第一值来识别所述第二虚拟机。
38.根据权利要求20所述的网络系统,其特征在于,所述第一虚拟机提供第一应用处理功能,所述第二虚拟机提供第二应用处理功能。
39.根据权利要求20所述的网络系统,其特征在于,所述第一虚拟机提供I/O功能,所述第二虚拟机提供应用处理功能。
40.根据权利要求20所述的网络系统,其特征在于,进一步包括:与多个所述虚拟机中的至少一部分虚拟机相关联的各数据库,其中数据包和/或关于数据包的信息以分布方式存储在多个数据库之中。
41.一种网络系统,其特征在于,包括:
彼此通信连接的多个机器,所述多个机器包括至少一个虚拟机和至少一个实体机;
其中所述多个机器中的第一机器用于通过接口从网络接收第一数据包并具有会话处理能力;并且
其中所述第一机器用于:
基于关于所述第一数据包的一个或多个信息使用数学算法来计算第一值;以及
使用所计算的第一值来识别多个虚拟机中的第二虚拟机;
其中,进一步包括:与多个所述机器的至少一部分虚拟机相关联的各数据库,其中,与所识别的第二虚拟机相关联的数据库中的一个用于存储关于所述第一数据包的数据。
42.根据权利要求41所述的网络系统,其特征在于,至少一个虚拟机是第一机器。
43.根据权利要求41所述的网络系统,其特征在于,至少一个实体机是第一机器。
44.根据权利要求41所述的网络系统,其特征在于,至少一个虚拟机包括第一虚拟机和第二虚拟机。
45.根据权利要求44所述的网络系统,其特征在于,所述第一虚拟机是第一机器,所述第二虚拟机是第二机器。
46.根据权利要求41所述的网络系统,其特征在于,至少一个实体机包括第一实体机和第二实体机。
47.根据权利要求46所述的网络系统,其特征在于,所述第一实体机是第一机器,所述第二实体机是第二机器。
48.根据权利要求41所述的网络系统,其特征在于,至少一个虚拟机包括多个DVIOM虚拟机,其中,所述DVIOM是指分布式虚拟I/O模块。
49.根据权利要求41所述的网络系统,其特征在于,至少一个虚拟机包括多个DVSSM虚拟机,其中,所述DVSSM是指分布式虚拟安全服务模块。
50.根据权利要求41所述的网络系统,其特征在于,至少一个实体机包括用于通过各I/O接口与网络交接的多个实体机。
51.根据权利要求41所述的网络系统,其特征在于,至少一个实体机包括用于提供防火墙安全功能的多个实体机。
CN201410300904.6A 2013-07-02 2014-06-26 分布式虚拟安全装置以及使用虚拟机的基于流的转发系统 Active CN104202351B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/934,119 US9311123B2 (en) 2013-07-02 2013-07-02 Distributed virtual security appliance and flow-based forwarding system using virtual machines
US13/934,119 2013-07-02
US13/934119 2013-07-02

Publications (2)

Publication Number Publication Date
CN104202351A CN104202351A (zh) 2014-12-10
CN104202351B true CN104202351B (zh) 2017-10-31

Family

ID=52087576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410300904.6A Active CN104202351B (zh) 2013-07-02 2014-06-26 分布式虚拟安全装置以及使用虚拟机的基于流的转发系统

Country Status (2)

Country Link
US (1) US9311123B2 (zh)
CN (1) CN104202351B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150134828A1 (en) * 2013-09-27 2015-05-14 Empire Technology Development Llc Infrastructure migration tool
US9727363B2 (en) 2014-04-30 2017-08-08 Dalian University Of Technology Virtual machine migration
WO2016030724A1 (en) * 2014-08-29 2016-03-03 Pismo Labs Technology Limited Methods and systems for transmitting packets through an aggregated connection
US10539381B2 (en) * 2015-12-28 2020-01-21 Coil Flow Max, Inc. Apparatus and method for cleaning HVAC cooling coils
CN109753226A (zh) * 2017-11-07 2019-05-14 阿里巴巴集团控股有限公司 数据处理系统、方法及电子设备
US11088944B2 (en) 2019-06-24 2021-08-10 Amazon Technologies, Inc. Serverless packet processing service with isolated virtual network integration
US11296981B2 (en) 2019-06-24 2022-04-05 Amazon Technologies, Inc. Serverless packet processing service with configurable exception paths
US11153195B1 (en) * 2020-06-08 2021-10-19 Amazon Techologies, Inc. Packet processing service configuration change propagation management
CN114553478A (zh) * 2022-01-13 2022-05-27 成都储迅科技有限责任公司 一种基于国密的云服务器访问固态硬盘的安全系统和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102318291A (zh) * 2011-07-14 2012-01-11 华为技术有限公司 一种业务流处理的方法、装置及系统
US8339959B1 (en) * 2008-05-20 2012-12-25 Juniper Networks, Inc. Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197553B2 (en) * 2002-04-19 2007-03-27 Nortel Networks Limited Network system having a virtual-service-module
US7882538B1 (en) 2006-02-02 2011-02-01 Juniper Networks, Inc. Local caching of endpoint security information
US8000329B2 (en) * 2007-06-29 2011-08-16 Alcatel Lucent Open platform architecture for integrating multiple heterogeneous network functions
US20090003375A1 (en) * 2007-06-29 2009-01-01 Martin Havemann Network system having an extensible control plane
US7886335B1 (en) 2007-07-12 2011-02-08 Juniper Networks, Inc. Reconciliation of multiple sets of network access control policies
US8307422B2 (en) * 2008-08-14 2012-11-06 Juniper Networks, Inc. Routing device having integrated MPLS-aware firewall
WO2011101902A1 (ja) * 2010-02-18 2011-08-25 株式会社日立製作所 情報通信処理システム、方法、及びネットワークノード
US10142218B2 (en) * 2011-01-14 2018-11-27 International Business Machines Corporation Hypervisor routing between networks in a virtual networking environment
US9143557B2 (en) * 2012-06-27 2015-09-22 Juniper Networks, Inc. Feedback loop for service engineered paths
US8953624B2 (en) * 2012-12-20 2015-02-10 Cisco Technology, Inc. Intelligent host route distribution for low latency forwarding and ubiquitous virtual machine mobility in interconnected data centers
CN103281333B (zh) 2013-06-17 2016-12-28 山石网科通信技术有限公司 数据流的转发方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8339959B1 (en) * 2008-05-20 2012-12-25 Juniper Networks, Inc. Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane
CN102318291A (zh) * 2011-07-14 2012-01-11 华为技术有限公司 一种业务流处理的方法、装置及系统

Also Published As

Publication number Publication date
US20150012917A1 (en) 2015-01-08
CN104202351A (zh) 2014-12-10
US9311123B2 (en) 2016-04-12

Similar Documents

Publication Publication Date Title
CN104202351B (zh) 分布式虚拟安全装置以及使用虚拟机的基于流的转发系统
CN103905433B (zh) 分布式网络防火墙以及基于流的转发系统
US11765057B2 (en) Systems and methods for performing end-to-end link-layer and IP-layer health checks between a host machine and a network virtualization device
KR101703088B1 (ko) Sdn 기반의 통합 라우팅 방법 및 그 시스템
EP2989749B1 (en) Network resource monitoring
US11178594B2 (en) Systems and methods for routing data
CN103477588B (zh) 刀片服务器中刀片间网络业务的分类和管理方法和系统
CN106416147B (zh) 一种用于软件定义协议网络节点的系统和方法
CN104717137A (zh) 管理覆盖网络中的数据流的方法和系统
US9900238B2 (en) Overlay network-based original packet flow mapping apparatus and method therefor
CN104519121A (zh) 计算机网络内的会话感知服务链
CN108092934A (zh) 安全服务系统及方法
CN104521199A (zh) 用于分布式虚拟交换机的适应性基础设施
CN103795622B (zh) 一种报文转发方法及其装置
CN106341330A (zh) 一种sdn控制器的拓扑发现方法及系统
CN106656905A (zh) 防火墙集群实现方法及装置
CN105681198A (zh) 一种业务链处理方法、设备及系统
JP2015032932A (ja) キャリア網における経路制御システム及び方法
KR101527377B1 (ko) Sdn 기반의 서비스 체이닝 시스템
CN107948087A (zh) 一种负载均衡的方法及设备
KR101841026B1 (ko) 최적 경로 설정을 위한 서비스 기능 체이닝 네트워크 시스템
CN112822037A (zh) 一种安全资源池的流量编排方法及系统
CN105517659A (zh) 一种数据包处理装置及方法
CN113630301B (zh) 基于智能决策的数据传输方法、装置、设备及存储介质
US20240106760A1 (en) Network device level optimizations for latency sensitive rdma traffic

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 215163 No. 181 Jingrun Road, Suzhou High-tech Zone, Jiangsu Province

Patentee after: SHANSHI NETWORK COMMUNICATION TECHNOLOGY CO., LTD.

Address before: 215163 3rd Floor, 7th Building, High-tech Software Park, 78 Keling Road, Suzhou Science and Technology City, Jiangsu Province

Patentee before: HILLSTONE NETWORKS

CP03 Change of name, title or address