CN108989194B - 分布式IPSec网关 - Google Patents

分布式IPSec网关 Download PDF

Info

Publication number
CN108989194B
CN108989194B CN201710401488.2A CN201710401488A CN108989194B CN 108989194 B CN108989194 B CN 108989194B CN 201710401488 A CN201710401488 A CN 201710401488A CN 108989194 B CN108989194 B CN 108989194B
Authority
CN
China
Prior art keywords
gateway
traffic
ipsec
node
esp
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
CN201710401488.2A
Other languages
English (en)
Other versions
CN108989194A (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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201710401488.2A priority Critical patent/CN108989194B/zh
Priority to PCT/US2018/030333 priority patent/WO2018222323A1/en
Priority to US16/605,685 priority patent/US11503004B2/en
Priority to EP18727098.8A priority patent/EP3632057B1/en
Publication of CN108989194A publication Critical patent/CN108989194A/zh
Application granted granted Critical
Publication of CN108989194B publication Critical patent/CN108989194B/zh
Priority to US17/986,510 priority patent/US20230079033A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • 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/0272Virtual private networks
    • 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/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Abstract

在本文公开了一种分布式IPSec网关技术,将IPSec网关的控制层和数据层进行分离,在数据层中运行多个网关处理节点来处理入向ESP/AH流量的数据包和/或出向IP流量的数据包,在控制层中处理IKE信息交互以及对数据层中的各个网关处理节点进行流量导引。通过控制层和数据层进行分离设计,从而实现了分布式IPSec网关。

Description

分布式IPSec网关
背景技术
虚拟云网络服务使得云使用者能够在公有云(云提供者的云网络)上拥有自己的私有网络(以下简称虚拟私有云网络)。在云技术领域中,IPSec(Internet ProtocolSecurity,Internet协议安全性)网关为云租户中的云使用者提供了远程接入他们的虚拟私有云网络的VPN(Virtual Private Network,虚拟专用网络)连接。
发明内容
提供本发明实施例内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
在本文公开了一种分布式IPSec网关技术,将IPSec网关的控制层和数据层进行分离,在数据层中运行多个网关处理节点来处理入向ESP(Encapsulating SecurityPayload,封装安全负载)/AH(Authentication Header,认证头)流量的数据包和/或出向IP流量的数据包,在控制层中处理IKE(Internet Key Exchange,因特网密钥交换)信息交互以及对数据层中的各个网关处理节点进行流量导引。通过控制层和数据层进行分离设计,从而实现了分布式IPSec网关。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
图1为应用了本发明实施例的分布式IPSec网关的云网络系统的示例框图。
图2为IPSec隧道的示意结构框图。
图3为本发明实施例的IPSec隧道迁移过程的示例流程图。
图4为本发明实施例的网关处理节点的结构框图。
图5为本发明实施例的分布式IPSec网关的系统结构框图。
图6为本发明实施例的计算设备的结构框图。
图7为本发明实施例的分布式IPSec网关的处理流程的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
术语说明
IPSec:Internet Protocol Security,Internet协议安全性,IPSec是一种开放标准的框架结构,通过使用加密的安全服务以确保在Internet协议(IP)网络上进行保密而安全的通讯。
ESP:Encapsulating Security Payload,封装安全负载。
AH:Authentication Header,认证头。
SA:security association,安全关联。
IKE:Internet Key Exchange Protocol,Internet密钥交换协议。
IP:Internet Protocol,网络互连协议。
SPI:Security Parameter Index,安全参数索引。
DH:Diffie-Hellman,一种密钥一致性算法。
Nonce:Number used once,Nonce是一个只被使用一次的任意或非重复的随机数。
本文中,术语“技术”可以指代例如(一个或多个)系统、(一个或多个)方法、计算机可读指令、(一个或多个)模块、算法、硬件逻辑(例如,现场可编程门阵列(FPGA))、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑电子设备(CPLD)和/或上述上下文以及在本文档通篇中所允许的(一项或多项)其它技术。
整体概述
如图1所示,其为应用了本发明实施例的分布式IPSec网关的云网络系统的示例框图100。在框图100中包括了云提供者的云网络101和多个云租户的本地网络102,在云提供者的云网络101中,包括多个云租户租用的云租户的虚拟私有云网络107。云租户的本地网络102通过云租户IPSec网关104接入互联网(Internet)105后,再通过云提供者的分布式IPSec网关106接入到云租户的虚拟私有云网络107,从而在云租户的本地网络102和云租户的虚拟私有云网络107之间建立了一条IPSec隧道,实现了云租户的本地网络102和云租户的虚拟私有云网络107之间的VPN连接。
在本文中所提出的技术方案中,云提供者的IPSec网关为分布式的IPSec网关,采用了控制层108和数据层109分离的架构。在数据层109中设置有多个网关处理节点(GPN,Gateway Processing Node)110,每个网关处理节点通过一个虚拟机(VM,VirtualMachine)111来运行,用来处理至少一条IPSec隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包。在一些例子中,数据层109设置了虚拟机资源池112,虚拟机资源池112中的虚拟机111用来运行上述网关处理节点110。
在控制层108中设置有网关管理节点(GMN,Gateway Management Node)113,用于与多个云租户IPSec网关104进行信息交互生成多条IPSec隧道的IPSec SA,并发送给处理相应IPSec隧道的数据包的网关处理节点110,此外,网关管理节点113还对数据层109中的各个网关处理节点110进行流量导引,以调整各个网关处理节点处理的IPSec隧道的数据包的负载量,从而最大效率地利用虚拟机资源。具体地,网关管理节点113通过生成流量导引规则的方式对数据层109的IPSec隧道的流量进行导引,生成的流量导引规则发送到数据层109的网关输入节点(GIN,Gateway Ingress Node)114和网关输出节点(GEN,GatewayEgress Node)115,网关输入节点114和网关输出节点115根据流量导引规则进行流量导引。
下面对应用了本发明实施例的分布式IPSec网关的云网络系统的各个部分以及主要数据处理过程分别进行详细说明。
IPSec隧道
如图2所示,其为IPSec隧道的示意结构框图200。IPSec隧道201建立在云租户IPSec网关104和云提供者的分布式IPSec网关106之间,在该IPSec隧道201中传输有IKE流量202和ESP/AH流量,由于ESP/AH流量是通过单向的IPSec SA(包括入向IPSec SA和出向IPSec SA)进行加密和解密的,因此,在图中区分为入向ESP/AH流量203和出向ESP/AH流量204。
IPSec协议是一种站点到站点的VPN连接标准,IPSec协议通过对IP数据包进行加密和认证的机制来确保对等的IPSec网关之间的安全通信。对于站点到站点的VPN连接,IPSec网关对IP数据包进行加密后,在两个对等的IPSec网关之间进行传输,从而形成IPSec隧道。IPSec协议主要包括IKE协议和ESP/AH协议,下面将分别介绍这两个IPSec协议。
IKE协议主要用于两个对等IPSec网关之间的认证,以及在两个对等的IPSec网关之间建立用于安全通信的共享属性(shared attributes)。该共享属性称作SA(securityassociation,安全关联),SA是通过IPSec网关之间的协商产生的,SA包括加密套件(ciphersuite)和对称密钥(symmetric key)。
通过IPSec网关之间的信息交互会产生两类SA:IKE SA和ESP/AH SA。IKE SA是通过IPSec网关之间的初始信息交互而产生的,IKE SA用于对IKE流量202进行双向的加密和解密,在IKE SA产生后,IPSec网关之间的信息交互就会通过IKE SA进行加密,通过IKE SA进行加密的信息交互称作IKE信息交互。通过后续的IKE信息交互会进一步产生IPSec SA(也称作CHILD SA,子SA),IPSec SA用于对ESP/AH流量进行加密和解密,IPSec SA包括对入向ESP/AH流量的数据包进行解密的入向IPSec SA和对出向IP流量的数据包进行加密的出向IPSec SA。
ESP/AH协议用于使用IPSec SA对IPSec网关之间传输的数据包进行加密和解密处理,从而保证数据传输的可靠性、完整性以及数据来源真实性。使用出向IPSec SA对来自云租户的虚拟私有云网络107的出向IP流量的数据包进行加密后,产生出向ESP/AH流量204的数据包,并通过IPSec隧道向云租户IPSec网关104传输。使用入向IPSec SA对来自云租户IPSec网关104的入向ESP/AH流量的数据包进行解密,产生入向IP流量的数据包并传输给云租户的虚拟私有云网络107。
以上介绍了IPSec隧道的基本结构,下面将分别介绍一下本发明实施例的分布式IPSec网关106的控制层108和数据层109。
IPSec网关的结构
在传统的IPSec网关体系中,在云提供者的云网络中,一方面,为了为各个云租户提供本地网络到虚拟私有云网络的IPSec隧道连接,云提供者为每一个云租户设置一个IPSec网关,每个IPSec网关通过一个虚拟机来运行,分配给各个云租户的用来运行IPSec网关的虚拟机是彼此隔离的,无法共享,并且,对于分配给每个云租户的虚拟机都要满足与云租户签约中承诺的峰值VPN流量要求。另一方面,各个云租户对于各自的虚拟私有云网络的使用率是不同的,即使对于同一个云租户来说,在不同的时间段,对虚拟私有云网络的使用率也不同。这样,分配给各个云租户的虚拟机资源没有得到充分的利用,甚至有时会造成大量云资源的浪费。
仍然参考图1,本发明实施例的设置在云提供者的云网络101的IPSec网关,通过控制层108和数据层109分离的架构,实现了分布式IPSec网关106,将多个云租户的IPSec隧道集中到一个分布式IPSec网关106进行处理,通过数据层109的多个虚拟机111以分布式的方式处理各个IPSec隧道的流量,并通过控制层108进行合理地调控,从而最大化地利用虚拟机资源。
如图1所示,本发明实施例的分布式IPSec网关106整体上被划分为控制层108和数据层109,其中,控制层108包括网关管理节点(GMN),数据层109包括网关输入节点114和网关输出节点115以及多个网关处理节点110,网关处理节点110通过虚拟机资源池112中的虚拟机111来运行。在本发明实施例的分布式IPSec网关106的架构中,数据层109中的网关处理节点110以及运行网关处理节点110的虚拟机111不再专属于各个租户,而是根据IPSec隧道的数量和IPSec隧道中的数据包的多少,由网关管理节点113进行调配。下面对分布式IPSec网关106的控制层108和数据层109分别进行说明。
分布式IPSec网关的控制层
分布式IPSec网关106的控制层108包括网关管理节点113,网关管理节点113的功能包括如下几方面:
1)与云租户IPSec网关104进行信息交互生成IKE SA和IPSec SA,并向数据层109的网关处理节点110发送IPSec SA。
在一条新的IPSec隧道建立初期,网关管理节点113先与云租户IPSec网关104进行初始信息交互,生成与云租户IPSec网关104对应的IPSec隧道的IKE SA,并使用IPSec隧道的IKE SA与该云租户IPSec网关104进行进一步的IKE信息交互,生成IPSec隧道的IPSecSA。然后,将该IPSec SA发送给处理该IPSec隧道的流量的网关处理节点110。
对于已经建立的IPSec隧道,也会周期性的进行密钥更新,在密钥更新时,也会进行上述的与云租户IPSec网关104进行信息交互的过程,生成新的IKE SA和IPSec SA,并向数据层109的网关处理节点110发送新的IPSec SA。在一些例子中,IKE SA和IPSec SA可以采用不同的密钥更新周期,IPSec SA的更新周期可以比IKE SA更新周期更短。
此外,在出现网关处理节点110故障或者其他导致已经建立的IPSec隧道出现传输的故障的情况下,也会重新执行IPSec隧道的建立过程,从而也会触发上述的与云租户IPSec网关104进行信息交互生成IKE SA和IPSec SA以及向数据层109的网关处理节点110发送IPSec SA的过程。
2)对数据层109的多个网关处理节点110进行流量导引。
在一些例子中,流量导引的具体方式可以为:网关管理节点113生成流量导引规则并发送规则到数据层109的网关输入节点114和/或网关输出节点115,从而实现流量导引。其中,流量导引规则可以包括入向ESP/AH流量导引规则和/或出向IP流量导引规则。
网关管理节点113将入向ESP/AH流量导引规则发送给网关输入节点114,入向ESP/AH流量导引规则用来规定各个IPSec隧道的入向ESP/AH流量由哪个网关处理节点110来处理,网关输入节点114在接收到某一IPSec隧道的入向ESP/AH流量的数据包后,根据入向ESP/AH流量导引规则将该入向ESP/AH流量的数据包转发给处理该IPSec隧道的入向ESP/AH流量的网关处理节点110。
在一些例子中,入向ESP/AH流量导引规则可以包括SPI(Security ParameterIndex,安全参数索引)和网关处理节点110的IP地址之间的映射关系。SPI是在IPSec SA协商过程中产生的,SPI用于标识该ESP/AH流量的数据包所使用的密钥,在入向ESP/AH流量的数据包中包含SPI。
网关管理节点113将出向IP流量导引规则发送给网关输出节点115,出向IP流量导引规则用来规定来自各个虚拟私有云网络107的出向IP流量应该通过哪个IPSec隧道进行传输,即应该导引到哪个网关处理节点110进行处理,网关输出节点115在接收到来自某个虚拟私有云网络107的出向IP流量的数据包后,根据出向IP流量导引规则将该出向IP流量的数据包转发给相应IPSec隧道的出向IP流量的网关处理节点110。
在一些例子中,出向IP流量导引规则可以包括流量选择器(Traffic Selector)的网络信息与网关处理节点110的IP地址之间的映射关系。其中,流量选择器的网络信息可以包括能够标识网络流的一些基本信息,这些信息也可以用于确定出向IP流量通过哪条IPSec隧道进行传输,例如数据包的5元组信息:源IP地址、目的IP地址、源端口、目的端口、协议类型。
网关管理节点113会在IPSec隧道建立时或者IPSec隧道发生迁移时,生成流量导引规则并进行发送。此外,对于入向ESP/AH流量导引规则,由于在密钥更新时,也会更新SPI,因此,在每次秘钥更新后,网关管理节点113也会生成新的入向ESP/AH流量导引规则并发送给网关输入节点114。
3)对数据层109的网关处理节点110的负载进行调控
在一些例子中,网关管理节点113还会监测运行各个网关处理节点110的虚拟机111的负载情况。基于对各个虚拟机111的负载情况的监测,网关管理节点113执行如下调控操作:
在建立新的IPSec隧道时,网关管理节点113在数据层109中选择一个有负载余量的虚拟机111所运行的网关处理节点110来处理新建立的IPSec隧道的流量,并将生成的IPSec SA发送给该网关处理节点110。此外,网关管理节点113还要更新流量导引规则,并将新的流量导引规则发送给网关输入节点114和/或网关输出节点115,从而将新的IPSec隧道的流量导向到相应的网关处理节点110。
网关处理节点110还会根据虚拟机111的负载情况确定是否需要进行IPSec隧道迁移,如果某个运行网关处理节点110的虚拟机111的负载超过预设的负载阈值,则需要启动IPSec隧道迁移控制,将IPSec隧道迁移到有负载余量的虚拟机111的网关处理节点110上。
此外,在建立新的IPSec隧道时或者在需要进行IPSec隧道迁移时,如果网关管理节点113没有找到有负载余量的虚拟机111,则网关管理节点113向云提供者请求新的虚拟机资源,以运行新的网关处理节点110来处理IPSec隧道的流量。
4)对虚拟机资源池112的虚拟机资源配置进行调配
在一些例子中,数据层109可以包括用于运行网关处理节点110的虚拟机资源池112,每个网关处理节点110通过虚拟机资源池112中的一个虚拟机111来运行。考虑到IPSec隧道的流量的波动性以及IPSec隧道数量的波动性,在一些例子中,虚拟机资源池112中的虚拟机111的数量一般会被配置为大于网关处理节点110的数量。虚拟机资源池112中包括如下状态的虚拟机111:已经启动并且用于正在运行网关处理节点110的活跃状态、已经启动并且用于准备运行网关处理节点110的非活跃状态,以及关闭状态。其中,非活跃状态的虚拟机111是处于待机状态的虚拟机,作为虚拟机资源池112的扩容储备,由于该虚拟机111是处于开启状态,当需要增加网关处理节点110时,可以迅速地运行新的网关处理节点110,不需要执行启动虚拟机的过程。
基于这样的虚拟机资源池112的设计,网关处理节点110可以根据已经建立的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量以及各个虚拟机111的负载能力,对一个或多个虚拟机111的状态进行切换。
虚拟机111的状态切换至少包括如下情形:
情形一、由于各个云租户的本地网络102和云租户的虚拟私有云网络107之间的数据传输量是存在波动的(取决于云租户对于虚拟私有云网络107的使用情况),因此,IPSec隧道的入向ESP/AH流量和/或出向IP流量存在波动。
当活跃状态的虚拟机111的负载能力无法满足已经建立的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量时,需要增加活跃状态的虚拟机111的数量来运行新的网关处理节点110,以分担已经建立的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量,在这种情况下,可以选择虚拟机资源池112中一个或多个非活跃状态的虚拟机111来运行新的网关处理节点110,从而使得该一个或多个非活跃状态的虚拟机111切换为活跃状态的虚拟机111。在新的网关处理节点110运行后,将部分已经建立的IPSec隧道迁移至新的网关处理节点110,从而分担已有的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量。
反之,当一个或多个活跃状态的虚拟机111的负载能力存在较大负载余量,则可以通过IPSec隧道迁移机制,将各个IPSec隧道进行调整,使得一个或多个活跃状态的虚拟机111处理的IPSec隧道的数量为零,则可以将该一个或多个活跃状态的虚拟机111切换为非活跃状态的虚拟机111。另外,当某个处于活跃状态的虚拟机111所处理的IPSec隧道关闭了,则可以将该活跃状态的虚拟机111切换为非活跃状态的虚拟机111。
情形二、在需要建立新的IPSec隧道情况下,各个活跃状态的虚拟机111的负载余量均无法满足该新的IPSec隧道的流量处理要求时,或者在需要进行IPSec隧道迁移的情况下,各个活跃状态的虚拟机111的负载余量均无法满足被迁移的IPSec隧道流量处理要求时,网关处理节点110选择非活跃状态的虚拟机111来运行新的网关处理节点110,从而将该非活跃状态的虚拟机111切换为活跃状态的虚拟机111,以增加IPSec隧道的流量处理能力。在新的网关处理节点110运行后,便可以用来处理上述新的IPSec隧道或者被迁移的IPSec隧道的入向ESP/AH流量和/或出向IP流量。
下面再详细介绍一下虚拟机资源池112的资源配置管理的算法模型
表一:上述算法模型中的相关参数说明
参数 含义
σi IPSec隧道i可能使用的虚拟机的最大资源量
αi IPSec隧道i当前使用的虚拟机的资源量
βj 网关处理节点j当前使用的虚拟机的资源量
Ui IPSec隧道i使用的虚拟机的资源量的概率分布
ε 无法履行承诺吞吐量的概率的容忍度
Y 全部IPSec隧道使用的总计虚拟机的资源量的概率分布
C 虚拟机资源池中的全部虚拟机的资源量
TH 虚拟机的负载阈值
在上述的分布式的IPSec网关中,每个IPSec隧道的流量由一个网关处理节点110来处理,而一个网关处理节点110可以处理多个IPSec隧道的流量。每个网关处理节点110的处理能力取决于运行该网关处理节点110的虚拟机111的负载能力。表中所说的虚拟机的资源量反映了云提供者为虚拟机111所配置的资源情况,可以包括例如虚拟机的处理器的性能指标、虚拟机的内存大小等等,这里的资源量是为了便于评估虚拟机的处理能力而对虚拟机的资源配置进行的量化处理,具体的量化方式可以根据实际需要而定,在本文中不做特别限定,虚拟机的资源量决定了虚拟机的负载能力。
为了便于说明上述算法模型,设定虚拟机资源池112中的虚拟机111均具有相同的负载能力,并且将运行各个网关处理节点110的虚拟机111的负载能力归一化为1。
各个IPSec隧道使用的虚拟机的最大资源量σ
每个IPSec隧道使用的虚拟机111的最大资源量是有限制的,在一些例子中,在云提供者与云租户之间签订的服务协议中约定了IPSec隧道的流量限制,在IPSec隧道的流量限制确定的情况下,该IPSec隧道可能使用的虚拟机111的最大资源量也就确定了。在上述算法模型中,将IPSec隧道可能占用的虚拟机111的最大资源量用σ表示。在某一个网关处理节点110中,设网关处理节点110处理的IPSec隧道的数量为m,对于其中一个IPSec隧道i(i为正整数,1≤i≤m),其可能使用的虚拟机111的最大资源量用σi表示,由于将运行各个网关处理节点110的虚拟机111的负载能力归一化为1,则σi的范围为0<σi<1。
网关处理节点110当前使用的虚拟机的资源量β
在网关处理节点110中,每个IPSec隧道当前使用的虚拟机111的资源量会周期性地进行计算,例如在网关处理节点110中,每隔时间τ计算一次该网关处理节点110所处理的每个IPSec隧道当前使用的虚拟机111的资源量α,对于其中一个IPSec隧道i(1≤i≤m),其当前使用的虚拟机111的资源量为αi,并假设IPSec网关中网关处理节点的总量为p,则该网关处理节点j(1≤j≤p)当前使用的虚拟机111的资源量可以通过如下公式求得:
Figure BDA0001309818200000111
IPSec隧道使用的虚拟机的资源量的概率分布U
IPSec隧道使用的虚拟机111的资源量可能随着时间的推移而变化的。考虑到这一点,而引入了IPSec隧道i使用的虚拟机111的资源量的概率分布Ui。Ui是αi的概率密度函数,记作Ui(x)(0<x<αi),用来表示在某个时刻其中一个IPSec隧道i可能的使用的虚拟机111的资源量。
无法履行承诺吞吐量的概率的容忍度ε
在云租户与云提供者之间签订的服务协议中,云提供者向云租户承诺了IPSec隧道的吞吐量,并且约定了云租户能够接受的无法履行服务协议中承诺吞吐量的概率,也就是无法履行承诺吞吐量的概率的容忍度ε。例如,ε=0.01,表示分布式IPSec网关106应该有99%的有效时间确保IPSec隧道的性能,也就是说分布式IPSec网关106在99%的有效时间中要确保承诺的吞吐量。如果在某一时段由于运行网关处理节点110的虚拟机111的负载能力不足(即网关处理节点110没有足够的虚拟机资源可用)而导致了丢包,从而使得IPSec隧道的流量没能达到承诺的吞吐量,则分布式IPSec网关106应当保证这些时段之和占全部有效时间的比例小于ε。
全部IPSec隧道使用的总计虚拟机的资源量的概率分布Y
假设IPSec网关中的全部IPSec隧道的数量为n,则全部IPSec隧道使用的总计虚拟机111的资源量的概率分布Y,可以通过各个IPSec隧道使用的虚拟机111的资源量的概率分布U进行求和而求得,具体公式如下:
Figure BDA0001309818200000121
由于U是离散的概率分布,各个IPSec隧道使用的资源量的概率分布是彼此独立的,基于公式(2),可以进一步计算任意两个IPSec隧道使用的虚拟机111的资源量的概率分布U的卷积,具体公式如下:
Figure BDA0001309818200000122
其中,U(k)为第k个IPSec隧道使用的资源量的概率分布,n为IPSec网关中全部IPSec隧道的数量,z为卷积Y的函数变量,当取z=n时,通过上述公式(3)可以递归地将n个IPSec隧道进行求和以得到全部IPSec隧道使用的总计虚拟机111的资源量的概率分布Y。
最少数量的虚拟机资源量
在能够保证无法履行承诺吞吐量的概率Pr小于容忍度ε的条件下,可以计算出虚拟机资源池112中需要配置的最少的虚拟机111的资源量。计算公式如下:
Pr(Y>C)≤ε 公式(4)
其中,C是虚拟机资源池112中的虚拟机111的资源总量,如前面所提到的,在上述算法模型中,设定了虚拟机资源池112中的虚拟机111均具有相同的负载能力,并且将各个虚拟机111的负载能力归一化为1,因此,C可以是虚拟机资源池112中的配置的虚拟机111的数量。ε是给定的数值(事先通过服务协议进行了约定),Y可以利用公式(2)或者公式(3)求得。由此,我们可以求出需要配置的虚拟机111的数量C,通过上述公式(4)求出的C是保证无法履行承诺吞吐量的概率小于容忍度ε的最低值,在实际应用中,确保实际配置的虚拟机111的数量大于C,以使得无法履行承诺吞吐量的概率被控制在小于ε的范围内,从而能够满足云租户对于IPSec隧道的吞吐量的要求。
如前面所介绍的,在上述的虚拟机资源池112中可以包括活跃状态的虚拟机111、非活跃状态的虚拟机111以及关闭状态的虚拟机111。由于激活处于关闭状态的虚拟机111需要一定的延时,在一些例子中,为能够更好地保证吞吐量承诺,将C定义为虚拟机资源池112中所配置的活跃状态和非活跃状态虚拟机111的总数量。因此,在实际应用中,通过动态地对虚拟机111的状态进行调整,使得活跃状态和非活跃状态的虚拟机111的总数量大于C,从而更好地满足云租户对于IPSec隧道的吞吐量的要求。
通过上述算法模型,在保证无法履行承诺吞吐量的概率小于ε的前提下,可以配置较少数量的虚拟机111,从而达到虚拟机资源的优化使用。
进一步地,在一些例子中,还考虑了虚拟机111的负载阈值TH(TH小于1,例如设定为90%),则虚拟机资源池112中应当配置的活跃状态和非活跃状态的虚拟机111的总数量应当大于C/TH,从而能够更加稳妥地确保云租户对于IPSec隧道的吞吐量的要求。
5)IPSec隧道迁移控制
IPSec隧道的触发条件:
网关管理节点113监测各个虚拟机111的负载量,当发现虚拟机111中运行的网关处理节点110所处理的IPSec隧道的流量总量超出了该虚拟机111的负载量的负载阈值TH时,将会触发IPSec隧道迁移控制,将该网关处理节点110所处理的多个IPSec隧道中的一个或多个IPSec隧道,迁移到有负载余量的虚拟机111所运行的网关处理节点110上,从而实现虚拟机111的负载均衡。
检测热区网关处理节点110:
在设定虚拟机111的负载阈值TH时,将负载阈值TH设定为大于IPSec网关中全部IPSec隧道中最大的αi,从而能够保证该虚拟机111运行的网关处理节点110具有良好的运行效率。
网关管理节点113如果发现某个网关处理节点110当前使用的虚拟机111的资源量βj大于TH,则将该网关处理节点110j视为需要进行IPSec隧道迁移的网关处理节点110(下文中称作热区网关处理节点110)。在热区网关处理节点110确定后,会将热区网关处理节点110中的一条或多条IPSec隧道迁移到有负载余量的虚拟机111所运行的网关处理节点110上(下文称作相对空闲的网关处理节点110),以使得βj小于于TH
为了尽量减少IPSec隧道的迁移数量,按照αi的大小对热区网关处理节点110中的IPSec隧道进行了排序,然后可以选出满足下面公式(5)的条件的αi最大的K(K为正整数,1≤K≤m)条IPSec隧道进行迁移。
Figure BDA0001309818200000141
通过这样的IPSec隧道的选择机制,能够在迁移IPSec隧道数量较少的前提下,实现各个虚拟机111的负载均衡。
如果没有找到合适的相对空闲的网关处理节点110,则将会选择非活跃状态的虚拟机111来运行新的网关处理节点110,并将需要迁移的IPSec隧道迁移到该新的网关处理节点110上,由此,该非活跃状态的虚拟机111也切换为活跃状态的虚拟机111。
IPSec隧道的迁移过程:
IPSec隧道迁移控制处理包括IPSec SA的更新和发送,以及流量导引规则的更新和发送。在一些例子中,网关管理节点113利用IKE密钥更新流程来进行IPSec隧道迁移。如图3所示,其为本发明实施例的IPSec隧道迁移过程的示例流程图300。IPSec隧道迁移过程包括:
S301:网关管理节点113向云租户IPSec网关104发送创建IPSec SA的请求,该请求中携带有一个新的DH(Diffie-Hellman,一种密钥一致性算法)值;
S302:网关管理节点113接收到云租户IPSec网关104返回的创建IPSec SA的响应,该响应中包含DH值和响应的Nonce(Number used once,Nonce是一个只被使用一次的任意或非重复的随机数)。网关管理节点113将响应中包含的DH值和响应的Nonce发送给源网关处理节点(当前处理被迁移的IPSec隧道的流量的网关处理节点110),该源网关处理节点根据DH值和Nonce生成新的IPSec SA,并发送给网关管理节点113。新的IPSec SA包括新的入向IPSec SA和新的出向IPSec SA。
S303:网关管理节点113将该新的IPSec SA发送给目标网关处理节点(接收被迁移的IPSec隧道的网关处理节点110)。此外,网关管理节点113还要生成新的入向ESP/AH流量导引规则和/或新的出向IP流量导引规则,并将新的入向ESP/AH流量导引规则发送给网关输入节点114和/或将新的出向IP流量导引规则发送给网关输出节点115。
S304:网关输出节点115和网关输入节点114根据新的流量导引规则执行流量导引。
具体地,网关输出节点115根据新的出向IP流量导引规则,将被迁移的IPSec隧道对应的出向IP流量导引至目标网关处理节点。目标网关处理节点使用新的出向IPSec SA对出向IP流量进行加密,生成出向ESP/AH流量,并向云租户IPSec网关104传输。
网关输入节点114根据新的入向ESP/AH流量导引规则,将被迁移的IPSec隧道对应的入向ESP/AH流量导引至目标网关处理节点。目标网关处理节点使用新的入向IPSec SA对入向ESP/AH流量进行解密,并发送给对应的云租户的虚拟私有云网络107。
需要说明的是,在IPSec隧道的迁移过程中,旧的IPSec SA没有被销毁,源网关处理节点仍然使用旧的IPSec SA进行加密和解密操作,因此,能够实现IPSec隧道的无缝迁移,不会影响IPSec隧道的传输性能。分布式IPSec网关的数据层
仍然参考图1,分布式IPSec网关106的数据层109包括网关输入节点114、网关输出节点115以及多个网关处理节点110,每个网关处理节点110通过虚拟机资源池112中的一个虚拟机111来运行。下面分别介绍分布式IPSec网关106的数据层109的各个部分的主要功能和结构。
虚拟机资源池
在一些例子中,虚拟机资源池112中的虚拟机111的数量一般会被配置为大于网关处理节点110的数量,以适应IPSec隧道的流量的波动性以及IPSec隧道数量的波动性。如前面所说明的,虚拟机资源池112包括活跃状态的虚拟机111、非活跃状态的虚拟机111以及关闭状态的虚拟机111。活跃状态的虚拟机111是正在运行网关处理节点110的虚拟机111,用来处理当前各个IPSec隧道的流量。非活跃状态的虚拟机111是处于待机状态的虚拟机111,其已经启动,但还未运行网关处理节点110,非活跃状态的虚拟机111被分布式IPSec网关106的服务进程所控制,是可以随时开始运行网关处理节点110的虚拟机111。由于非活跃状态的虚拟机111已经启动,因此,当使用非活跃状态的虚拟机111运行一个新的网关处理节点110时,不需要再执行虚拟机111的启动过程,从而可以迅速地运行新的网关处理节点110以执行IPSec隧道的流量处理。关闭状态的虚拟机111还未被启动,也没有被任何服务进程所占用,因此,关闭状态的虚拟机111实际上并未占用云提供者的虚拟机资源。在虚拟机资源池112中,实际占用云提供者的虚拟机资源的是非活跃状态的虚拟机111和活跃状态的虚拟机111。在一些例子中,虚拟机资源池112中也可以不包括处于关闭状态的虚拟机111,而是只包括非活跃状态的虚拟机111和活跃状态的虚拟机111,当需要增加非活跃状态的虚拟机111时,可以直接向云服务器的操作系统申请虚拟机资源,并初始化为非活跃状态的虚拟机111加入到虚拟机资源池112中。
基于上述的虚拟机资源池112的配置方式,网关管理节点113会监测各个网关处理节点110的运行状况,具体监测各个网关处理节点110处理的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量,并判断网关处理节点110处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和是否超过运行该网关处理节点110的虚拟机111的负载能力阈值,如果超过,则启动隧道迁移控制。具体地,网关管理节点113可以从各个网关处理节点110周期性地获取其运行状况的相关数据,各个网关处理节点110也可以向网关管理节点113主动上报运行状况的相关数据,从而实现网关管理节点113对各个网关处理节点110的运行状况的监测。对网关处理节点110的负载监控和IPSec隧道的迁移过程在前面对于控制层108的介绍中已经进行了说明,在此不再赘述。
此外,在一些例子中,网关处理节点110也可以主动监测自身所处理的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量,并判断其全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和是否超过自身所在的虚拟机111的负载能力阈值,如果超过,则向网关管理节点113发起IPSec隧道迁移请求,从而触发网关管理节点113IPSec隧道迁移控制。
网关处理节点110
如图4所示,其为本发明实施例的网关处理节点110的示意结构框图400。网关处理节点110的主要处理包括对数据包进行加密和封装和/或解密和解封装,具体来说,一方面,网关处理节点110对IPSec隧道的入向ESP/AH流量的数据包进行解密和解封装处理生成入向IP流量的数据包,并将入向IP流量的数据包向云租户的虚拟私有云网络107发送;另一方面,网关处理节点110对出向IP流量的数据包进行加密和封装处理生成出向ESP/AH流量的数据包,并将出向ESP/AH流量的数据包通过互联网向云租户的本地网络102发送。每个网关处理节点110可以处理一条或多条IPSec隧道的流量,具体处理的IPSec隧道的条数取决于各个IPSec隧道所传输的数据量以及虚拟机111的负载能力阈值。
网关处理节点110包括一个或多个RSS单元(Receive side scaling,接收端缩放)401、分发器(dispatcher)402、一个或多个工作单元(worker)403以及一个或多个发送器(sender)404。
网关输入节点114和网关输出节点115根据网关管理节点113发送的流量导引规则,将接收到的数据包的目的IP地址修改为相应的网关处理节点110的IP地址,并通过网卡发送给相应的网关处理节点110。RSS单元401从网卡(NIC)中获取网关输入节点114和网关输出节点115发送来的数据包,并将其存储到云服务器的操作系统的内核和用户空间之间的共享存储空间,该共享存储空间是操作系统分配给网关处理节点110的共享存储空间,为了与后面提到的分配给网关输入节点114和网关输出节点115的共享存储空间相区分,将分配给网关处理节点110的共享存储空间称作第一共享存储空间405。网关处理节点110的工作进程和内核进程都可以访问该第一共享存储空间405,从而能够避免网关处理节点110的工作进程和内核进程之间对数据包的重复复制。此外,网关处理节点110中还可以设置有过滤器驱动(Filter Driver),其设置有循环队列,该循环队列中包含有指向存储在第一共享存储空间405中的数据包的指针。
分发器402用于生成数据包处理任务向各个工作单元403进行分发,数据包处理任务包括对数据包进行加密和封装、解密和解封装。工作单元403用于执行相应的数据包处理任务,各个工作单元403之间是彼此独立并行工作的。发送器404用于向IPSec网关外发送工作单元403处理过的数据包。
具体地,分发器402以轮询的方式不断地从过滤器驱动公布的循环队列中取出数据包的指针,从而触发生成数据包处理任务。在处理出向IP流量的数据包时,分发器402会确定ESP/AH序列号,具体可以基于数据包的5元组信息(源IP地址、目的IP地址、源端口、目的端口、协议类型)为数据包分配适当的ESP/AH序列号。由于分发器402是唯一保持有数据包计数器的工作进程,因此,可以保证IPSec隧道的数据包的唯一性。分发器402还可以保持一个缓冲器阵列406,用来缓存将要向分布式IPSec网关106外发送的加密和封装后、解密和解封装后的数据包。
分发器402用任务结构(Task structure)将数据包的指针、序列号以及缓冲器阵列406的索引封装起来生成数据包处理任务,其中缓冲器阵列406的索引指向用来放置工作单元403处理后的数据包的缓冲器阵列406中的具体缓冲器。由于各个工作单元403的处理性能是大致相同的,因此,分发器402可以以轮询的方式将该数据包处理任务放入到工作单元403的数据包处理任务队列407中。
工作单元403依次处理其数据包处理任务队列407中的任务,在数据包处理的过程中,根据数据包处理任务中的数据包的指针获取待处理的数据包,在将数据包处理完成后,根据数据包处理任务中的缓冲器阵列406的索引将处理完的数据包放入到缓冲器阵列406中的指定位置。
当缓冲器阵列406被填满(或者装载到预设的比例)或者发生时间溢出时,分发器402向发送器404的数据包发送任务队列408中压入数据包发送请求,发送器404依次处理其数据包发送任务队列408中数据包发送请求,将经过工作单元403处理后的、存储在缓冲器阵列406中的数据包向IPSec网关外发送。
在一些例子中,分发器402、工作单元403以及发送器404都也以工作进程的方式存在,并且分发器402、工作单元403以及发送器404的角色也可以进行适当切换。例如,当全部的工作单元403都被数据包处理任务填满,则分发器402可以将数据包处理任务压入到自己的任务队列中,然后按照顺序从任务队列中提取出数据包处理任务并执行。再例如,除了专门的发送器404之外,工作单元403本身可以兼具有发送器404的功能,工作单元403可以设置两个任务队列,其中一个任务队列为数据包处理任务队列407,另一个为数据包发送任务队列408,在一般情况下,工作单元403只处理数据包处理任务队列407中的数据包处理任务,数据包发送任务队列408中没有任务,当发送器404的数据包发送任务队列408被填满了,则分发器402可以向工作单元403的数据包发送任务队列408中压入数据包发送请求,使得工作单元403转变为发送器404执行数据包发送任务。
网关输入节点和网关输出节点
网关输入节点114和网关输出节点115用于进行IPSec隧道的流量的导向。网关输入节点114根据网关管理节点113发送的入向ESP/AH流量导引规则,将接收到的入向ESP/AH流量的数据包发送给相应的网关处理节点110,网关输出节点115根据网关管理节点113发送的出向IP流量导引规则,将接收到的出向IP流量的数据包发送给相应网关处理节点110。
在一些例子中,网关管理节点113发送的流量导引规则可以包括各个IPSec隧道与网关处理节点110的映射关系,从而实现入向ESP/AH流量的数据包和出向IP流量的数据包到具体网关处理节点110的导引作用。
网关输入节点114和网关输出节点115接收到的数据包存储在云服务器的操作系统的内核和用户空间之间的共享存储空间中,该共享存储空间是操作系统分配给网关输入节点114和网关输出节点115的共享存储空间,为了与分配给网关处理节点110的共享存储空间相区分,将分配给网关输入节点114和网关输出节点115的共享存储空间称作第二共享存储空间,该第二共享存储空间同样能够避免网关输入节点114和网关输出节点115的工作进程和内核进程之间对数据包的重复复制。在接收到数据后,网关输入节点114和网关输出节点115会从该第二共享存储空间中提取出数据包,并将数据包的目的IP地址改写为应该处理该数据包的网关处理节点110的IP地址,并将这些数据包转发给相应的网关处理节点110。
对于入向ESP/AH流量,网关输入节点114需要区分不同IPSec隧道的ESP/AH流量,从而将不同IPSec隧道的ESP/AH流量的数据包分配给相应的网关处理节点110来处理。网关管理节点113发送给网关输入节点114的入向ESP/AH流量导引规则中包含了SPI和网关处理节点110的IP地址之间的映射关系,网关输入节点114在收到ESP/AH流量的数据包后,根据数据包携带的SPI在入向ESP/AH流量导引规则中进行查找,获取到与该SPI对应的网关处理节点110的IP地址,并将ESP/AH流量的数据包的目的IP地址修改为网关处理节点110的IP地址,然后向对应的网关处理节点110发送该ESP/AH流量的数据包。
对于出向IP流量,网关输出节点115可以通过出向IP流量的数据包中携带的流量选择器的网络信息(数据包的5元组信息)来确定将出向IP流量导引到哪个网关处理节点110进行处理。网关管理节点113发送给网关输出节点115的出向IP流量导引规则中包含了流量选择器与网关处理节点110的IP地址之间的映射关系,网关输出节点115接收到出向IP流量的数据包后,根据该数据包中携带的流量选择器在出向IP流量导引规则中进行查找,获取到与该流量选择器对应的网关处理节点110的IP地址,并将出向IP流量的数据包目的IP地址修改为网关处理节点110的IP地址,然后向对应的网关处理节点110发送该出向IP流量的数据包。
具体实现示例
如图5所示,其为本发明实施例的分布式IPSec网关的系统结构框图500。在框图500中包括:网关管理节点113和多个网关处理节点110,其中,
网关管理节点113用于:生成多条IPSec隧道的IPSec SA,并发送给处理相应IPSec隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包的网关处理节点110,以及在多个网关处理节点110之间进行入向ESP/AH流量导引和/或出向IP流量导引;
各个网关处理节点110用于:使用网关管理节点113发送的IPSec SA,对接收到的入向ESP/AH流量的数据包进行处理,生成入向IP流量的数据包,和/或,对接收到的出向IP流量的数据包进行处理,生成出向ESP/AH流量的数据包。
进一步地,框图500中还可以包括网关输入节点114和/或网关输出节点115,
在网关管理节点113中,在多个网关处理节点110之间进行入向ESP/AH流量导引和/或出向IP流量导引包括:
生成用于在多个网关处理节点110之间进行入向ESP/AH流量导引的入向ESP/AH流量导引规则,并将入向ESP/AH流量导引规则发送给网关输入节点114,和/或,生成用于在多个网关处理节点110之间进行出向IP流量导引的出向IP流量导引规则,将出向IP流量导引规则发送给网关输出节点115,
网关输入节点114用于接收入向ESP/AH流量的数据包并根据入向ESP/AH流量导引规则,将接收到的入向ESP/AH流量的数据包发送给相应的网关处理节点110;
网关输出节点115用于接收出向IP流量的数据包并根据出向IP流量导引规则,将接收到的出向IP流量的数据包发送给相应的网关处理节点110。
在一些例子中,上述的网关处理节点110的具体结构可以采用图4所示的结构。此外,关于框图500中各个部分的具体功能实现,在前面已经进行了详细说明,同样适用于框图500中的各个部分。在一些例子中,图5所示的系统结构可以通过多个的服务器以分布式架构的方式实现,例如网关管理节点113、网关处理节点110、网关输入节点114和网关输出节点115可以分别通过独立的服务器来实现,服务器之间通过网络通讯来建立连接,以实现本发明实施例的分布式网关的功能。
另外,在一些例子中,上述图1、图2、图4以及图5涉及的各个组件或者模块,例如图1中示出的分布式IP Sec网关中的网关管理节点113、网关处理节点110、网关输入节点114、网关输出节点115等,以及图3所示流程图中的一个或多个步骤,可以通过软件程序、硬件电路,也可以通过软件程序和硬件电路相结合的方式来实现。例如,上述各个组件或者模块或者节点以及一个或多个步骤都可在芯片上系统(SoC)中实现。SoC可包括:集成电路芯片,该集成电路芯片包括以下一个或多个:处理单元(如中央处理单元(CPU)、微控制器、微处理单元、数字信号处理单元(DSP)等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和可任选的嵌入的固件。
如图6所示,其为发明实施例的计算设备600的结构框图。计算设备600包括:存储器601和处理器602。
存储器601,用于存储程序。除上述程序之外,存储器601还可被配置为存储其它各种数据以支持在计算设备600上的操作。这些数据的示例包括用于在计算设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器601可以由任何类型的易失性或非易失性存储电子设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
存储器601耦合至处理器602并且包含存储于其上的指令,所说的指令在由处理器602执行时使计算设备执行动作,该动作包括:
配置网关管理节点113以用于:生成多条IPSec隧道的IPSec SA,并发送给处理相应IPSec隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包的网关处理节点110,以及在多个网关处理节点110之间进行入向ESP/AH流量导引和/或出向IP流量导引;
配置多个网关处理节点110以用于:使用网关管理节点113发送的IPSec SA,对接收到的入向ESP/AH流量的数据包进行处理,生成入向IP流量的数据包,和/或,对接收到的出向IP流量的数据包进行处理,生成出向ESP/AH流量的数据包。
在一些例子中,上述的动作还可以包括:
配置网关输入节点114和/或网关输出节点115,
在网关管理节点113中,在多个网关处理节点110之间进行入向ESP/AH流量导引和/或出向IP流量导引包括:生成用于在多个网关处理节点110之间进行入向ESP/AH流量导引的入向ESP/AH流量导引规则,并将入向ESP/AH流量导引规则发送给网关输入节点114,和/或,生成用于在多个网关处理节点110之间进行出向IP流量导引的出向IP流量导引规则,将出向IP流量导引规则发送给网关输出节点115,
网关输入节点114用于接收入向ESP/AH流量的数据包并根据入向ESP/AH流量导引规则,将接收到的入向ESP/AH流量的数据包发送给相应的网关处理节点110;
网关输出节点115用于接收出向IP流量的数据包并根据出向IP流量导引规则,将接收到的出向IP流量的数据包发送给相应的网关处理节点110。
在一些例子中,网关管理节点110进一步用于维护用于运行网关处理节点110的虚拟机资源池112,对虚拟机资源池112的虚拟机资源配置进行调配,其中,每个网关处理节点110通过虚拟机资源池112中的一个虚拟机111来运行。
在一些例子中,虚拟机资源池112中的多个虚拟机111包括如下状态:已经启动并且用于正在运行网关处理节点110的活跃状态、已经启动并且用于准备运行网关处理节点110的非活跃状态,
对虚拟机资源池112的虚拟机资源配置进行调配包括:
在建立新的IPSec隧道时或者在需要进行IPSec隧道迁移时,如果网关管理节点113在活跃状态的虚拟机111中没有找到有负载余量的虚拟机111,则从非活跃状态的虚拟机111中选择虚拟机111来运行新的网关处理节点110,以处理新的IPSec隧道的流量或者被迁移的IPSec隧道迁移的流量。
在一些例子中,对虚拟机资源池112的虚拟机资源配置进行调配包括:
根据已经建立的各个IPSec隧道对应的云提供者向云租户所承诺的性能要求以及各个虚拟机111的负载能力,对虚拟机资源池112中的虚拟机资源配置进行调整,使得虚拟机资源池112中的资源配置能够满足已经建立的IPSec隧道的性能要求的总和。
在一些例子中,网关管理节点113还用于执行从源网关处理节点110到目标网关处理节点110的IPSec隧道迁移控制,IPSec隧道迁移控制包括:
网关管理节点113生成被迁移的隧道的新的IPSec SA,并将该新的IPSec SA发送给目标网关处理节点110;
生成新的入向ESP/AH流量导引规则和/或新的出向IP流量导引规则,并将新的入向ESP/AH流量导引规则发送给网关输入节点114和/或将新的出向IP流量导引规则发送给网关输出节点115,
其中,在IPSec隧道迁移过程中,源网关处理节点110使用旧的IPSec SA处理被迁移的隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包。
其中,上述的IPSec隧道迁移控制可以在IKE密钥更新的过程中进行。
在一些例子中,网关管理节点113还进一步用于对网关处理节点110处理的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量进行监测,并判断该网关处理节点110处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和是否超过运行该网关处理节点110的虚拟机111的负载能力阈值,
如果入向ESP/AH流量和/或出向IP流量的总和超过运行该网关处理节点110的虚拟机111的处理负载阈值,则执行隧道迁移控制。
在一些例子中,网关管理节点113还进一步用于计算网关处理节点110所处理的各个IPSec隧道入向ESP/AH流量和/或出向IP流量与虚拟机111的负载能力阈值的差值,并且基于该差值对网关处理节点110所处理的多个IPSec隧道进行排序,并按照差值由高到低的顺序,选择需要进行迁移的IPSec隧道,直到该网关处理节点110处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和小于负载能力阈值。
对于上述的处理操作,在前面的实施例中已经进行了详细说明,对于上述的处理操作的详细内容同样也适用于计算设备600中,即可以将前面实施例中提到的具体处理操作,以程序的方式写入在存储器601,并通过处理器602来进行执行。
进一步地,如图6所示,计算设备600还可以包括:通信组件603、电源组件604、音频组件605、显示器606、芯片组607等其它组件。图6中仅示意性给出部分组件,并不意味着计算设备600只包括图6所示组件。
此外,通信组件603可以被配置为便于计算设备600和其他计算设备之间有线或无线方式的通信。计算设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件603经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件603还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件604,为计算设备的各种组件提供电力。电源组件604可以包括电源管理系统,一个或多个电源,及其他与为计算设备生成、管理和分配电力相关联的组件。
音频组件605被配置为输出和/或输入音频信号。例如,音频组件605包括一个麦克风(MIC),当计算设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器601或经由通信组件603发送。在一些实施例中,音频组件605还包括一个扬声器,用于输出音频信号。
显示器606包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
上述的存储器601、处理器602、通信组件603、电源组件604、音频组件605以及显示器606可以与芯片组607连接。芯片组607可以提供处理器602与计算设备600中的其余组件之间的接口。此外,芯片组607还可以提供计算设备600中的各个组件对存储器601的访问接口以及各个组件间相互访问的通讯接口。
示例过程
如图7所示,其为本发明实施例的IPSec网关的处理流程的示意图700。图7所示的处理流程可以基于上述包括运行网关管理节点113、多个网关处理节点110的IPSec网关,该处理流程包括:
S701:网关管理节点113生成多条IPSec隧道的IPSec SA,并发送给处理相应IPSec隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包的网关处理节点110,以及在多个网关处理节点110之间进行入向ESP/AH流量导引和/或出向IP流量导引。其中,在一些例子中,进行入向ESP/AH流量导引和/或出向IP流量导引可以采用流量导引规则的方式实现。
在一些例子中,IPSec网关还可以包括运行网关输入节点114和/或网关输出节点115,则网关管理节点113可以生成用于在多个网关处理节点110之间进行入向ESP/AH流量导引的入向ESP/AH流量导引规则,并将入向ESP/AH流量导引规则发送给网关输入节点114,和/或,生成用于在多个网关处理节点110之间进行出向IP流量导引的出向IP流量导引规则,将出向IP流量导引规则发送给网关输出节点115。网关输入节点114和/或网关输出节点115根据相应的流量导引规则实现入向ESP/AH流量导引和/或出向IP流量导引。
S702:各个网关处理节点110使用网关管理节点113发送的IPSec SA,对接收到的入向ESP/AH流量的数据包进行处理,生成入向IP流量的数据包,和/或,对接收到的出向IP流量的数据包进行处理,生成出向ESP/AH流量的数据包。
在一些例子中,网关管理节点113维护用于运行网关处理节点110的虚拟机资源池112,对虚拟机资源池112的虚拟机资源配置进行调配,其中,每个网关处理节点110通过虚拟机资源池112中的一个虚拟机111来运行。
在一些例子中,虚拟机资源池112中的多个虚拟机111包括如下状态:已经启动并且用于正在运行网关处理节点110的活跃状态、已经启动并且用于准备运行网关处理节点110的非活跃状态,
对虚拟机资源池112的虚拟机资源配置进行调配包括:
在建立新的IPSec隧道时或者在需要进行IPSec隧道迁移时,如果网关管理节点113在活跃状态的虚拟机111中没有找到有负载余量的虚拟机111,则从非活跃状态的虚拟机111中选择虚拟机111来运行新的网关处理节点110,以处理新的IPSec隧道的流量或者被迁移的IPSec隧道迁移的流量。
在一些例子中,对虚拟机资源池112的虚拟机资源配置进行调配可以包括:根据已经建立的各个IPSec隧道对应的云提供者向云租户所承诺的性能要求以及各个虚拟机111的负载能力,对虚拟机资源池112中的虚拟机资源配置进行调整,使得虚拟机资源池112中的资源配置能够满足已经建立的IPSec隧道的性能要求的总和。
在一些例子中,网关管理节点113还执行从源网关处理节点110到目标网关处理节点110的IPSec隧道迁移控制,IPSec隧道迁移控制包括:
网关管理节点113生成被迁移的隧道的新的IPSec SA,并将该新的IPSec SA发送给目标网关处理节点110;
生成新的入向ESP/AH流量导引规则和/或新的出向IP流量导引规则,并将新的入向ESP/AH流量导引规则发送给网关输入节点114和/或将新的出向IP流量导引规则发送给网关输出节点115,
其中,在IPSec隧道迁移过程中,源网关处理节点110使用旧的IPSec SA处理被迁移的隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包。其中,IPSec隧道迁移控制可以在IKE密钥更新的过程中进行。
在一些例子中,网关管理节点113,还可以对网关处理节点110处理的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量进行监测,并判断该网关处理节点110处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和是否超过运行该网关处理节点110的虚拟机111的负载能力阈值,
如果入向ESP/AH流量和/或出向IP流量的总和超过运行该网关处理节点110的虚拟机111的处理负载阈值,则执行隧道迁移控制。
在一些例子中,网关管理节点113还可以计算网关处理节点110所处理的各个IPSec隧道入向ESP/AH流量和/或出向IP流量与虚拟机111的负载能力阈值的差值,并且基于该差值对网关处理节点110所处理的多个IPSec隧道进行排序,并按照差值由高到低的顺序,选择需要进行迁移的IPSec隧道,直到该网关处理节点110处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和小于负载能力阈值。
上述的方法所涉及的处理流程的具体技术内容,在前面的实施例中已经进行了详细说明,具体可以参见前述的说明。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (20)

1.一种计算设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时使所述计算设备执行动作,所述动作包括:
配置网关管理节点以用于:生成多条IPSec隧道的IPSec SA,并发送给处理相应IPSec隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包的网关处理节点,以及在多个所述网关处理节点之间进行入向ESP/AH流量导引和/或出向IP流量导引;
以及配置多个网关处理节点以用于:使用所述网关管理节点发送的IPSec SA,对接收到的入向ESP/AH流量的数据包进行处理,生成入向IP流量的数据包,和/或,对接收到的出向IP流量的数据包进行处理,生成出向ESP/AH流量的数据包。
2.根据权利要求1所述的计算设备,其中,所述动作还包括:配置网关输入节点和/或网关输出节点;
所述网关管理节点,进一步用于生成用于在所述多个网关处理节点之间进行入向ESP/AH流量导引的入向ESP/AH流量导引规则,并将所述入向ESP/AH流量导引规则发送给所述网关输入节点,和/或,生成用于在所述多个网关处理节点之间进行出向IP流量导引的出向IP流量导引规则,将所述出向IP流量导引规则发送给所述网关输出节点,
配置网关输入节点以用于接收入向ESP/AH流量的数据包,并根据所述入向ESP/AH流量导引规则,将接收到的入向ESP/AH流量的数据包发送给相应的网关处理节点;
配置网关输出节点以用于接收出向IP流量的数据包,并根据所述出向IP流量导引规则,将接收到的出向IP流量的数据包发送给相应的网关处理节点。
3.根据权利要求1所述计算设备,其中,所述网关管理节点进一步用于维护用于运行所述网关处理节点的虚拟机资源池,对所述虚拟机资源池的虚拟机资源配置进行调配,其中,每个所述网关处理节点通过所述虚拟机资源池中的一个虚拟机来运行。
4.根据权利要求3所述的计算设备,其中,所述虚拟机资源池中的多个虚拟机包括如下状态:已经启动并且用于正在运行网关处理节点的活跃状态、已经启动并且用于准备运行网关处理节点的非活跃状态,
所述对虚拟机资源池的虚拟机资源配置进行调配包括:
在建立新的IPSec隧道时或者在需要进行IPSec隧道迁移时,如果网关管理节点在活跃状态的虚拟机中没有找到有负载余量虚拟机,则从所述非活跃状态的虚拟机中选择虚拟机来运行新的网关处理节点,以处理新的IPSec隧道的流量或者被迁移的IPSec隧道迁移的流量。
5.根据权利要求3或4所述的计算设备,其中,所述对虚拟机资源池的虚拟机资源配置进行调配包括:
根据已经建立的各个IPSec隧道对应的云提供者向云租户所承诺的性能要求以及各个虚拟机的负载能力,对所述虚拟机资源池中的虚拟机资源配置进行调整,使得虚拟机资源池中的资源配置能够满足已经建立的IPSec隧道的所述性能要求的总和。
6.根据权利要求2所述的计算设备,其中,所述网关管理节点还进一步用于执行从源网关处理节点到目标网关处理节点的IPSec隧道迁移控制,所述IPSec隧道迁移控制包括:
所述网关管理节点生成被迁移的隧道的新的IPSec SA,并将该新的IPSec SA发送给目标网关处理节点;
生成新的入向ESP/AH流量导引规则和/或新的出向IP流量导引规则,并将所述新的入向ESP/AH流量导引规则发送给所述网关输入节点和/或将所述新的出向IP流量导引规则发送给所述网关输出节点,
其中,在IPSec隧道迁移过程中,源网关处理节点使用旧的IPSec SA处理被迁移的隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包。
7.根据权利要求6所述的计算设备,其中,在IKE密钥更新的过程中,进行所述IPSec隧道迁移控制。
8.根据权利要求1所述的计算设备,其中,
所述网关管理节点还进一步用于对网关处理节点处理的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量进行监测,并判断该网关处理节点处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和是否超过运行该网关处理节点的虚拟机的负载能力阈值,
如果所述入向ESP/AH流量和/或出向IP流量的总和超过运行该网关处理节点的虚拟机的负载能力阈值,则执行隧道迁移控制。
9.根据权利要求8所述的计算设备,其中,
所述网关管理节点,还进一步用于计算网关处理节点所处理的各个IPSec隧道入向ESP/AH流量和/或出向IP流量与所述虚拟机的负载能力阈值的差值,基于该差值对所述网关处理节点所处理的多个IPSec隧道进行排序,并选择需要进行迁移的IPSec隧道,直到该网关处理节点处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和小于所述负载能力阈值。
10.一种在IPSec网关中实现的方法,所述IPSec网关包括网关管理节点和多个网关处理节点,所述方法包括:
所述网关管理节点生成多条IPSec隧道的IPSec SA,并发送给处理相应IPSec隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包的网关处理节点,以及在所述多个网关处理节点之间进行入向ESP/AH流量导引和/或出向IP流量导引;
各个所述网关处理节点使用所述网关管理节点发送的IPSec SA,对接收到的入向ESP/AH流量的数据包进行处理,生成入向IP流量的数据包,和/或,对接收到的出向IP流量的数据包进行处理,生成出向ESP/AH流量的数据包。
11.根据权利要求10所述的方法,其中,所述IPSec网关还包括:网关输入节点和/或网关输出节点,所述方法还包括:
所述网关管理节点在多个网关处理节点之间进行入向ESP/AH流量导引和/或出向IP流量导引包括:生成用于在所述多个网关处理节点之间进行入向ESP/AH流量导引的入向ESP/AH流量导引规则,并将所述入向ESP/AH流量导引规则发送给所述网关输入节点,和/或,生成用于在所述多个网关处理节点之间进行出向IP流量导引的出向IP流量导引规则,将所述出向IP流量导引规则发送给所述网关输出节点,
所述网关输入节点接收入向ESP/AH流量的数据包并根据所述入向ESP/AH流量导引规则,将接收到的入向ESP/AH流量的数据包发送给相应的网关处理节点;
所述网关输出节点接收出向IP流量的数据包并根据所述出向IP流量导引规则,将接收到的出向IP流量的数据包发送给相应的网关处理节点。
12.根据权利要求10所述的方法,还包括:所述网关管理节点维护用于运行所述网关处理节点的虚拟机资源池,对所述虚拟机资源池的虚拟机资源配置进行调配,其中,每个所述网关处理节点通过所述虚拟机资源池中的一个虚拟机来运行。
13.根据权利要求12所述的方法,其中,所述虚拟机资源池中的多个虚拟机包括如下状态:已经启动并且用于正在运行网关处理节点的活跃状态、已经启动并且用于准备运行网关处理节点的非活跃状态,
所述对虚拟机资源池的虚拟机资源配置进行调配包括:
在建立新的IPSec隧道时或者在需要进行IPSec隧道迁移时,如果网关管理节点在活跃状态的虚拟机中没有找到有负载余量的虚拟机,则从非活跃状态的虚拟机中选择虚拟机来运行新的网关处理节点,以处理新的IPSec隧道的流量或者被迁移的IPSec隧道迁移的流量。
14.根据权利要求12或13所述的方法,其中,所述对虚拟机资源池的虚拟机资源配置进行调配包括:
根据已经建立的各个IPSec隧道对应的云提供者向云租户所承诺的性能要求以及各个虚拟机的负载能力,对所述虚拟机资源池中的虚拟机资源配置进行调整,使得虚拟机资源池中的资源配置能够满足已经建立的IPSec隧道的所述性能要求的总和。
15.根据权利要求11所述的方法,其中,所述网关管理节点还执行从源网关处理节点到目标网关处理节点的IPSec隧道迁移控制,所述IPSec隧道迁移控制包括:
所述网关管理节点生成被迁移的隧道的新的IPSec SA,并将该新的IPSec SA发送给目标网关处理节点;
生成新的入向ESP/AH流量导引规则和/或新的出向IP流量导引规则,并将所述新的入向ESP/AH流量导引规则发送给所述网关输入节点和/或将所述新的出向IP流量导引规则发送给所述网关输出节点,
其中,在IPSec隧道迁移过程中,源网关处理节点使用旧的IPSec SA处理被迁移的隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包。
16.根据权利要求15所述的方法,其中,在IKE密钥更新的过程中,进行所述IPSec隧道迁移控制。
17.根据权利要求10所述的方法,其中,
所述网关管理节点还对所述网关处理节点处理的各个IPSec隧道的入向ESP/AH流量和/或出向IP流量进行监测,并判断该网关处理节点处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和是否超过运行该网关处理节点的虚拟机的负载能力阈值,
如果所述入向ESP/AH流量和/或出向IP流量的总和超过运行该网关处理节点的虚拟机的负载能力阈值,则执行隧道迁移控制。
18.根据权利要求17所述的方法,其中,
所述网关管理节点还计算所述网关处理节点所处理的各个IPSec隧道入向ESP/AH流量和/或出向IP流量与所述虚拟机的负载能力阈值的差值,并且基于该差值对所述网关处理节点所处理的多个IPSec隧道进行排序,并按照所述差值由高到低的顺序,选择需要进行迁移的IPSec隧道,直到该网关处理节点处理的全部IPSec隧道的入向ESP/AH流量和/或出向IP流量的总和小于所述负载能力阈值。
19.一种用于网络管理的系统,包括网关管理节点和多个网关处理节点,
所述网关管理节点被配置以生成多条IPSec隧道的IPSec SA,并发送给处理相应IPSec隧道的入向ESP/AH流量的数据包和/或出向IP流量的数据包的网关处理节点,以及在所述多个网关处理节点之间进行入向ESP/AH流量导引和/或出向IP流量导引;
各个所述网关处理节点被配置以使用所述网关管理节点发送的IPSec SA,对接收到的入向ESP/AH流量的数据包进行处理,生成入向IP流量的数据包,和/或,对接收到的出向IP流量的数据包进行处理,生成出向ESP/AH流量的数据包。
20.根据权利要求19所述的系统,其中,还包括网关输入节点和/或网关输出节点,
在所述网关管理节点中,所述在多个网关处理节点之间进行入向ESP/AH流量导引和/或出向IP流量导引包括:
生成用于在所述多个网关处理节点之间进行入向ESP/AH流量导引的入向ESP/AH流量导引规则,并将所述入向ESP/AH流量导引规则发送给所述网关输入节点,和/或,生成用于在所述多个网关处理节点之间进行出向IP流量导引的出向IP流量导引规则,将所述出向IP流量导引规则发送给所述网关输出节点,
所述网关输入节点被配置以接收入向ESP/AH流量的数据包并根据所述入向ESP/AH流量导引规则,将接收到的入向ESP/AH流量的数据包发送给相应的网关处理节点;
所述网关输出节点被配置以接收出向IP流量的数据包并根据所述出向IP流量导引规则,将接收到的出向IP流量的数据包发送给相应的网关处理节点。
CN201710401488.2A 2017-05-31 2017-05-31 分布式IPSec网关 Active CN108989194B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201710401488.2A CN108989194B (zh) 2017-05-31 2017-05-31 分布式IPSec网关
PCT/US2018/030333 WO2018222323A1 (en) 2017-05-31 2018-05-01 Distributed ipsec gateway
US16/605,685 US11503004B2 (en) 2017-05-31 2018-05-01 Distributed IPSec gateway
EP18727098.8A EP3632057B1 (en) 2017-05-31 2018-05-01 Distributed ipsec gateway
US17/986,510 US20230079033A1 (en) 2017-05-31 2022-11-14 Distributed ipsec gateway

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710401488.2A CN108989194B (zh) 2017-05-31 2017-05-31 分布式IPSec网关

Publications (2)

Publication Number Publication Date
CN108989194A CN108989194A (zh) 2018-12-11
CN108989194B true CN108989194B (zh) 2021-07-09

Family

ID=62244551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710401488.2A Active CN108989194B (zh) 2017-05-31 2017-05-31 分布式IPSec网关

Country Status (4)

Country Link
US (2) US11503004B2 (zh)
EP (1) EP3632057B1 (zh)
CN (1) CN108989194B (zh)
WO (1) WO2018222323A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397136B2 (en) 2016-08-27 2019-08-27 Nicira, Inc. Managed forwarding element executing in separate namespace of public cloud data compute node than workload application
US10778579B2 (en) 2017-08-27 2020-09-15 Nicira, Inc. Performing in-line service in public cloud
US11095617B2 (en) * 2017-12-04 2021-08-17 Nicira, Inc. Scaling gateway to gateway traffic using flow hash
US11347561B1 (en) 2018-04-30 2022-05-31 Vmware, Inc. Core to resource mapping and resource to core mapping
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US11374794B2 (en) * 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
JP7014130B2 (ja) * 2018-11-02 2022-02-01 日本電信電話株式会社 負荷平準化装置、負荷平準化方法および負荷平準化プログラム
CN111385259B (zh) * 2018-12-28 2023-09-01 中兴通讯股份有限公司 一种数据传输方法、装置、相关设备及存储介质
US11196726B2 (en) 2019-03-01 2021-12-07 Cisco Technology, Inc. Scalable IPSec services
CN110011892B (zh) * 2019-03-15 2022-04-05 平安科技(深圳)有限公司 一种虚拟专用网络的通信方法及相关装置
US11368298B2 (en) 2019-05-16 2022-06-21 Cisco Technology, Inc. Decentralized internet protocol security key negotiation
KR20200133478A (ko) * 2019-05-20 2020-11-30 삼성전자주식회사 클라우드 시스템에서 자원을 조정하기 위한 장치 및 방법
US11277343B2 (en) 2019-07-17 2022-03-15 Vmware, Inc. Using VTI teaming to achieve load balance and redundancy
US11336629B2 (en) * 2019-11-05 2022-05-17 Vmware, Inc. Deterministic load balancing of IPSec packet processing
WO2021088018A1 (zh) * 2019-11-08 2021-05-14 华为技术有限公司 一种业务流的路由方法、装置及系统
US11509638B2 (en) 2019-12-16 2022-11-22 Vmware, Inc. Receive-side processing for encapsulated encrypted packets
CN111585800B (zh) * 2020-04-29 2022-06-28 平安科技(深圳)有限公司 基于虚拟私有云的网关节点的配置方法、装置和介质
US20210392121A1 (en) * 2020-06-11 2021-12-16 Microsoft Technology Licensing, Llc Ike and ipsec state migration
US11902264B2 (en) 2020-06-22 2024-02-13 Vmware, Inc. Path selection for data packets encrypted based on an IPSEC protocol
CN113852590A (zh) * 2020-06-28 2021-12-28 中兴通讯股份有限公司 一种大容量设备支持tcp动态迁移的方法、装置、设备和存储介质
CN111800436B (zh) * 2020-07-29 2022-04-08 郑州信大捷安信息技术股份有限公司 IPSec隔离网卡设备及安全通信方法
CN113194097B (zh) * 2021-04-30 2022-02-11 北京数盾信息科技有限公司 一种安全网关的数据处理方法、装置及安全网关
GB2612355A (en) * 2021-10-29 2023-05-03 Vodafone Group Services Ltd System and methods for routing internet protocol, IP, traffic
US11863514B2 (en) 2022-01-14 2024-01-02 Vmware, Inc. Performance improvement of IPsec traffic using SA-groups and mixed-mode SAs
US11956213B2 (en) 2022-05-18 2024-04-09 VMware LLC Using firewall policies to map data messages to secure tunnels

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014093155A1 (en) * 2012-12-13 2014-06-19 Alcatel Lucent A new architecture for cellular networks
CN105828315A (zh) * 2016-03-11 2016-08-03 北京北方烽火科技有限公司 服务网关选择方法及系统
CN106161289A (zh) * 2015-03-23 2016-11-23 中兴通讯股份有限公司 一种基于sdn的网关中控制报文的处理方法及系统
CN106161174A (zh) * 2015-04-22 2016-11-23 中兴通讯股份有限公司 一种网关虚拟化方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083344A1 (en) * 2000-12-21 2002-06-27 Vairavan Kannan P. Integrated intelligent inter/intra networking device
US7526658B1 (en) 2003-01-24 2009-04-28 Nortel Networks Limited Scalable, distributed method and apparatus for transforming packets to enable secure communication between two stations
US7643488B2 (en) 2006-09-29 2010-01-05 Nortel Networks Limited Method and apparatus for supporting multiple customer provisioned IPSec VPNs
US7844719B2 (en) 2007-02-13 2010-11-30 Cisco Technology, Inc. Tunnel availability detection with reduced control plane overhead
US8375436B2 (en) 2010-04-22 2013-02-12 Palo Alto Research Center Incorporated Session migration over content-centric networks
US20120096269A1 (en) * 2010-10-14 2012-04-19 Certes Networks, Inc. Dynamically scalable virtual gateway appliance
US8972555B2 (en) * 2011-03-04 2015-03-03 Unisys Corporation IPsec connection to private networks
US8464335B1 (en) 2011-03-18 2013-06-11 Zscaler, Inc. Distributed, multi-tenant virtual private network cloud systems and methods for mobile security and policy enforcement
US9203784B2 (en) 2012-04-24 2015-12-01 Cisco Technology, Inc. Distributed virtual switch architecture for a hybrid cloud
WO2014169251A1 (en) * 2013-04-12 2014-10-16 Huawei Technologies Co., Ltd. Service chain policy for distributed gateways in virtual overlay networks
US9391801B2 (en) 2013-08-13 2016-07-12 Vmware, Inc. Virtual private networks distributed across multiple cloud-computing facilities
US9503371B2 (en) 2013-09-04 2016-11-22 Nicira, Inc. High availability L3 gateways for logical networks
US9686237B2 (en) 2014-08-19 2017-06-20 International Business Machines Corporation Secure communication channel using a blade server
US9930587B2 (en) * 2015-09-18 2018-03-27 Huawei Technologies Co., Ltd. Distributed virtual gateways
EP3151599A1 (en) * 2015-09-30 2017-04-05 Apple Inc. Authentication failure handling for cellular network access through wlan
US10868803B2 (en) * 2017-01-13 2020-12-15 Parallel Wireless, Inc. Multi-stage secure network element certificate provisioning in a distributed mobile access network
US10506082B2 (en) * 2017-03-09 2019-12-10 Fortinet, Inc. High availability (HA) internet protocol security (IPSEC) virtual private network (VPN) client

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014093155A1 (en) * 2012-12-13 2014-06-19 Alcatel Lucent A new architecture for cellular networks
CN106161289A (zh) * 2015-03-23 2016-11-23 中兴通讯股份有限公司 一种基于sdn的网关中控制报文的处理方法及系统
CN106161174A (zh) * 2015-04-22 2016-11-23 中兴通讯股份有限公司 一种网关虚拟化方法及系统
CN105828315A (zh) * 2016-03-11 2016-08-03 北京北方烽火科技有限公司 服务网关选择方法及系统

Also Published As

Publication number Publication date
US11503004B2 (en) 2022-11-15
US20230079033A1 (en) 2023-03-16
EP3632057A1 (en) 2020-04-08
US20200351254A1 (en) 2020-11-05
EP3632057B1 (en) 2023-09-20
CN108989194A (zh) 2018-12-11
WO2018222323A1 (en) 2018-12-06

Similar Documents

Publication Publication Date Title
CN108989194B (zh) 分布式IPSec网关
US11171936B2 (en) Method, device, and system for offloading algorithms
JP6097467B1 (ja) 無線端末にipネットワークへのアクセスを提供するための通信システム及び通信方法
EP3528429A1 (en) Quantum key relay method and device based on centralized management and control network
US20170142591A1 (en) System and methods for network management and orchestration for network slicing
CN110896371B (zh) 一种虚拟网络设备及相关方法
US10944646B2 (en) Enabling multiple provider software defined network programming using blockchain distributed ledgers
US11683160B2 (en) Encrypted group communications
US10498529B1 (en) Scalable node for secure tunnel communications
US11146385B2 (en) Security communication method in NFV environment and system thereof
US20190028559A1 (en) Tcp fast open hardware support in proxy devices
CN114788241B (zh) 提供网络管理与切片管理之间的接口
WO2023185804A1 (zh) 用于vpn的多流负载均衡方法、装置、系统及存储介质
Li et al. 6G cloud-native system: Vision, challenges, architecture framework and enabling technologies
CN116647425B (zh) 一种OVN架构的IPSec-VPN实现方法、装置、电子设备和存储介质
US11363653B2 (en) Ad hoc service switch-based control of ad hoc networking
CN113645283B (zh) 一种多链路通信方法、装置、存储介质及电子设备
US11516663B2 (en) Systems and methods for secure endpoint connection and communication
CN107547478B (zh) 报文传输方法、装置及系统
KR20180104376A (ko) 소프트웨어 정의 네트워크에서 보안 기능을 지원하는 방법 및 이를 위한 네트워크 장치 및 소프트웨어 정의 컨트롤러
US20240106647A1 (en) Methods and systems of a packet orchestration to provide data encryption at the ip layer, utilizing a data link layer encryption scheme
US20220038443A1 (en) Methods and systems of a packet orchestration to provide data encryption at the ip layer, utilizing a data link layer encryption scheme
Kumar et al. quicSDN: Transitioning from TCP to QUIC for southbound communication in software-defined networks
JP2017005672A (ja) 無線端末に外部ネットワークへのアクセスを提供するための通信システム及び通信方法
JP2017005667A (ja) 無線端末に外部ネットワークへのアクセスを提供するための通信システム及び通信方法

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