混合云环境中的动态定义的虚拟私有网络隧道的制作方法

文档序号:12730301阅读:308来源:国知局
混合云环境中的动态定义的虚拟私有网络隧道的制作方法与工艺

本公开内总体上涉及“云”计算环境中的通信。更具体地,其涉及在混合云环境中动态地创建虚拟私有网络隧道。



背景技术:

新兴的信息技术(IT)递送模型是云计算,通过其将共享的资源、软件和信息通过因特网按需提供给计算机和其他设备。云计算可以显著降低IT成本和复杂性,同时改善工作负荷优化和服务递送。利用这种方式,应用实例可以被托管并且可以从那些通过传统Web浏览器在HTTP之上可访问的基于因特网的资源中获得。示例应用可以是提供一组公共消息收发功能的应用,诸如电子邮件、日历、联系人管理和即时消息收发。用户然后将通过因特网直接访问该服务。使用这种服务,企业将它的电子邮件、日历和/或协作基础架构放置在云中,并且最终用户将使用适当的客户端来访问他或她的电子邮件或执行日历操作。

使用硬件架构(所谓的裸机(bare metal)云托管)、或者使用其中应用在虚拟服务器内运行的虚拟化架构、或者所谓的被映射到数据中心设施中的物理服务器上的“虚拟机”(VM),云计算资源通常被安装在运行网络应用的大型服务器场中。虚拟机通常运行在管理程序之上,该管理程序是向虚拟机分配物理资源的控制程序。

已知组织将计算资源布置在混合云环境中,既包含在其中计算资源由组织所有并且仅为该组织提供服务的私有云、又包含在其中另一组织为包括操作该混合云的组织的多个“租户”提供计算服务的公共云。混合云模型的一个益处是具有可直接访问的预置私有基础架构,同时在高需求时刻提供对公共云环境的访问。然而,利用这种集成,需要两个环境之间的安全通信。建立通信的一种方式是通过专用虚拟公共网络(VPN)隧道。

下面的公开内容详细描述了在混合云环境中改进VPN通信的方式。



技术实现要素:

根据本公开内容,描述了一种用于管理混合云环境中的第一云和第二云之间的多个VPN隧道的方法、装置和计算机程序产品。在本发明的第一方面中,第一VPN代理中的方法管理混合云环境中的第一云和第二云之间的多个VPN隧道中的第一VPN隧道。VPN代理从VPN管理器接收请求。该请求包括针对多个VPN隧道中的第一VPN隧道的第一组要求。VPN代理根据第一组要求来创建第一VPN隧道。从VPN管理器接收包含第二组要求的修改请求。VPN代理根据第二组要求来调整第一VPN隧道。

在本发明的另一方面中,一种包括处理器和保持由处理器执行的计算机程序指令的计算机存储器的装置管理第一VPN隧道。该计算机程序指令包括从VPN管理器接收第一请求的程序代码。该请求包括针对多个VPN隧道中的第一VPN隧道的第一组要求。程序代码根据第一组要求来创建第一VPN隧道。由程序代码从VPN管理器接收第二请求。第二请求包括针对多个VPN隧道中的第二VPN隧道的第二组要求。程序代码根据第二组要求来创建第二VPN隧道。程序代码接收用于将第二VPN隧道合并到第一VPN隧道中的合并请求。程序代码合并第一VPN隧道和第二VPN隧道。该程序根据第二组要求来调整第一VPN隧道。

在本发明的另一方面中,一种在非暂时性计算机可读介质中的计算机程序产品当被处理器执行时管理混合云环境中的第一云和第二云之间的多个VPN隧道中的第一VPN隧道。计算机程序指令包括从VPN管理器接收第一请求的程序代码,该第一请求包括针对所述多个VPN隧道中的第一VPN隧道的第一组要求。程序代码根据第一组要求来创建第一VPN隧道。程序代码从VPN管理器接收第二请求。第二请求包括针对多个VPN隧道中的VPN隧道的第二组要求。程序代码根据第二组要求来修改第一VPN隧道。第一组要求针对来自第一云应用的业务,并且第二组要求针对来自第二云应用的业务,并且第一VPN隧道承载来自第一云应用和第二云应用的业务。程序代码接收针对第一VPN隧道的拆分请求。该程序代码将第一VPN隧道拆分为第一VPN隧道和第二VPN隧道。VPN代理根据针对第一云应用的业务的第一组要求来调整第一VPN隧道,并且根据针对第二云应用的业务的第二组要求来调整第二VPN隧道。

前面已经概述了所公开的主题内容的一些较为相关的特征。这些特征应当被解释为仅仅是例示性的。通过以不同的方式应用所公开的主题内容或者通过修改如将要描述的本发明,可以获得许多其他有益的结果。

附图说明

为了更完整地理解本发明及其优点,现在结合附图参考以下描述,其中:

图1描绘了在其中可以实现例示性实施例的示例性方面的分布式数据处理环境的示例性框图;

图2是在其中可以实现例示性实施例的示例性方面的数据处理系统的示例性框图;

图3图示了在其中可以实现所公开的主题内容的示例性云计算架构;

图4是本发明的优选实施例的高级流程图;

图5图示了在其中可以实现本发明的实施例的混合云环境;

图6图示了在其中可以向管理员用户显示VPN隧道和VPN属性的图形用户界面;

图7A至图7C分别描绘了响应于用户应用需求中的改变来改变属性、合并VPN隧道和拆分VPN隧道;

图8是本发明的一个实施例中的事件和日志管理的流程图;

图9是根据关于本发明的一个实施例的VPN隧道的创建和修改的流程图;以及

图10描绘了在由基于联合模型的两个不同VPN管理器管理的云环境之间创建VPN。

具体实施方式

混合云环境驱动对于在不同云托管环境之间的应用之间的安全通信的需要。随着应用和平台的数量增加,需要保证安全的通信路径的数量迅速增长。今天,客户经常安装专用VPN以在混合云环境中的不同云之间桥接,但是专用VPN带有许多缺点,包括有限的灵活性和在需要保证安全的环境中创建大的通信孔(通过打开防火墙以允许通信)。对于像跨混合云环境的事件管理这样的高粒度要求,可以将小日志从多个设备发送给中央服务器,然而传统的VPN选项需要在源设备和中央服务器之间打开宽的通信信道,该宽的通信信道远远超过传输少量数据所需的。本发明提供了一种基于针对混合云环境的应用要求和拓扑要求来提供与现有技术解决方案相比的更高度调整的VPN的手段。

“混合云环境”是如下云环境,该云环境既包含在其中计算资源由组织所有并且仅为该组织提供服务的私有云又包含在其中另一个组织为包括该组织的多个“租户”提供计算服务的公共云。

“节点”可以是能够通过网络中的通信信道发送、接收或转发信息的任何电子设备,客户端,服务器,对等体,服务,应用或其他对象。

“VPN代理”是在作为隧道的端点的两个节点之一处管理VPN隧道的应用。

“VPN管理器”是管理混合云环境中的VPN隧道的基础架构的云应用。在优选实施例中,VPN管理器还管理VPN代理的基础架构,VPN代理转而管理相应的VPN隧道。

“VPN隧道”是通过根据任何合适的加密隧道化协议封装数据的因特网协议(IP)分组来传送数据的两个节点之间的通信信道。

现在参考附图,特别是参考图1至图2。提供了在其中可以实现本公开内容的例示性实施例的数据处理环境的示例性示图。应当领会到,图1至图2仅仅是示例性的,并且不旨在断言或暗示关于在其中可以实现所公开的主题内容的各方面或实施例的环境的任何限制。在不脱离本发明的精神和范围的情况下,可以对所描绘的环境进行许多修改。

现在参考附图,图1描绘了在其中可以实现例示性实施例的各方面的示例性分布式数据处理系统的图形表示。分布式数据处理系统100可以包括在其中可以实现例示性实施例的各方面的计算机的网络。分布式数据处理系统100包含至少一个网络102,其是用于在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括连接,诸如有线、无线通信链路、或光纤电缆。

在所描绘的示例中,服务器104和服务器106连同存储装置单元108一起被连接到网络102。另外,客户端110,112和114也被连接到网络102。这些客户端110,112和114例如可以是个人计算机、网络计算机等。在所描绘的示例中,服务器104向客户端110,112和114提供诸如引导文件、操作系统映像和应用之类的数据。在所描绘的示例中,客户端110,112和114是到服务器104的客户端。分布式数据处理系统100可以包括未示出的附加的服务器、客户端和其他设备。

在所描述的示例中,分布式数据处理系统100是具有网络102的因特网,网络102表示使用传输控制协议/因特网协议(TCP/IP)协议套件来彼此通信的网络和网关的世界范围的集合。在互联网的核心处是在主要节点或主计算机之间的高速数据通信链路的主干,其由数千个商业、政府、教育和其他计算机系统组成,这些计算机系统路由数据和消息。当然,分布式数据处理系统100还可以被实现为包括多种不同类型的网络,例如,内联网、局域网(LAN)、广域网(WAN)等等。如上所述,图1旨在作为示例,而不是作为对所公开主题内容的不同实施例的架构限制,并且因此,图1中所示的特定元件不应被认为是关于在其中可以实现本发明的例示性实施例的环境的限制。

现在参考图2,示出了在其中可以实现例示性实施例的各方面的示例性数据处理系统的框图。数据处理系统200是诸如图1中的客户端110之类的计算机的示例,实现用于本公开内容的例示性实施例的过程的计算机可用代码或指令可以位于该数据处理系统200中。

现在参考图2,示出了在其中可以实现例示性实施例的数据处理系统的框图。数据处理系统200是诸如图1中的服务器104或客户端110之类的计算机的示例,对于例示性实施例而言,实现该过程的计算机可用程序代码或指令可以位于该数据处理系统200中。在这一例示性示例中,数据处理系统200包括通信结构202,其提供在处理器单元204、存储器206、持久存储装置208、通信单元210、输入/输出(I/O)单元212和显示器214之间的通信。

处理器单元204服务于执行用于可以被加载到存储器206中的软件的指令。取决于特定实现方式,处理器单元204可以是一个或多个处理器的集合或者可以是多处理器核。此外,处理器单元204可以使用一个或多个异构处理器系统被实现,其中主处理器与辅助处理器一起存在于单个芯片上。作为另一例示性示例,处理器单元204可以是包含多个相同类型的处理器的对称多处理器(SMP)系统。

存储器206和持久存储装置208是存储设备的示例。存储设备是能够在临时的基础上和/或在持久的基础上存储信息的任何硬件。在这些示例中,存储器206例如可以是随机存取存储器或任何其他合适的易失性或非易失性存储设备。持久存储装置208可以取决于特定实现方式而采用各种形式。例如,持久存储装置208可以包含一个或多个组件或设备。例如,持久存储装置208可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述各项的某种组合。由持久存储装置208使用的介质也可以是可移除的。例如,可移除硬盘驱动器可以被用于持久存储装置208。

在这些示例中,通信单元210提供与其他数据处理系统或设备的通信。在这些示例中,通信单元210是网络接口卡。通信单元210可以通过使用物理通信链路和无线通信链路中的任一个或两者来提供通信。

输入/输出单元212允许与可以被连接到数据处理系统200的其他设备输入和输出数据。例如,输入/输出单元212可以通过键盘和鼠标来提供用于用户输入的连接。此外,输入/输出单元212可以将输出发送给打印机。显示器214提供用于向用户显示信息的机制。

用于操作系统和应用或程序的指令位于持久存储装置208上。这些指令可以被加载到存储器206中以用于由处理器单元204执行。不同实施例的过程可以由处理器单元204使用计算机实现的指令来执行,这些计算机实现的指令可以位于诸如存储器206的存储器中。这些指令被称为可以由处理器单元204中的处理器读取和执行的程序代码、计算机可用程序代码或计算机可读程序代码。程序代码在不同的实施例中可以被体现在不同的物理或有形计算机可读介质上,诸如存储器206或持久存储装置208上。

程序代码216以功能形式位于计算机可读介质218上,其是可选择性地可移除的,并且可以被加载到或被传送到数据处理系统200上以用于由处理器单元204执行。在这些示例中,程序代码216和计算机可读介质218形成计算机程序产物220。在一个示例中,计算机可读介质218可以是诸如例如光盘或磁盘之类的有形形式,其被插入或被放置到作为持久存储装置208的一部分的驱动或其他设备中,以用于传送到存储设备上,诸如作为持久存储装置208的一部分的硬盘驱动上。在有形形式中,计算机可读介质218还可以采取持久存储装置的形式,诸如被连接到数据处理系统200的闪存、硬盘驱动或拇指驱动器。有形形式的计算机可读介质218也被称为计算机可记录存储介质。在一些实例中,计算机可记录介质218可以是不可移除的。

备选地,程序代码216可以从计算机可读介质218通过到通信单元210的通信链路和/或通过到输入/输出单元212的连接而被传送到数据处理系统200。在例示性示例中,通信链路和/或连接可以是物理或无线的。计算机可读介质还可以采取非有形介质的形式,诸如包含程序代码的通信链路或无线传输。针对数据处理系统200图示的不同组件不意味着对在其中可以实现不同实施例的方式提供架构限制。不同的例示性实施例可以在如下数据处理系统中被实现,该数据处理系统包括除了针对数据处理系统200图示的组件之外的或者是代替针对数据处理系统200图示的组件的组件。图2中示出的其他组件可以与所示的例示性示例不同。作为一个示例,数据处理系统200中的存储设备是可以存储数据的任何硬件装置。存储器206、持久存储装置208和计算机可读介质218是有形形式的存储设备的示例。

在另一示例中,总线系统可以被用来实现通信结构202,并且可以包括诸如系统总线或输入/输出总线之类的一个或多个总线。当然,总线系统可以使用任何合适类型的架构被实现,其提供在附接到总线系统的不同组件或设备之间的数据的传送。附加地,通信单元可以包括用于传输和接收数据的一个或多个设备,诸如调制解调器或网络适配器。此外,存储器例如可以是存储器206或者诸如在可以存在于通信结构202中的存储器控制器集线器中发现的高速缓存。

用于执行本发明的操作的计算机程序代码可以按照一种或多种编程语言的任何组合被编写,这些编程语言包括面向对象的编程语言,诸如JavaTM,Smalltalk,C++,C#,Objective-C等,以及传统的过程式编程语言。程序代码可以完全在用户计算机上执行,部分在用户计算机上执行,作为独立软件包执行,部分在用户计算机上部分在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))或者可以到外部计算机的连接(例如,通过使用因特网服务提供者的因特网)被连接到用户的计算机。

本领域的普通技术人员将领会到,图1至图2中的硬件可以取决于实现方式而改变。除了或代替图1至图2中描绘的硬件,还可以使用其他内部硬件或外围设备,诸如闪存、等效的非易失性存储器或光盘驱动等。此外,在不脱离所公开主题内容的精神和范围的情况下,例示性实施例的过程可以被应用于除了先前提到的SMP系统之外的多处理器数据处理系统。

如将看到的,在此所描述的技术可以在诸如图1中图示的标准客户端-服务器范例内协同操作,其中客户端机器与在一个或多个机器的集合上执行的因特网可访问的基于Web的门户通信。最终用户操作能够访问门户并与门户交互的因特网可连接的设备(例如,台式计算机,笔记本计算机,具有因特网能力的移动设备等)。通常,每个客户端或服务器机器是包括硬件和软件的诸如图2中图所的数据处理系统,并且这些实体通过诸如因特网、内联网、外联网、私有网络或任何其他通信介质或链路的网络而彼此通信。数据处理系统通常包括一个或多个处理器,操作系统,一个或多个应用和一个或多个实用程序。数据处理系统上的应用提供对Web服务的本地支持,包括但不限于对HTTP,SOAP,XML,WSDL,UDDI和WSFL等的支持。关于SOAP,WSDL,UDDI和WSFL的信息可从万维网联盟(W3C)获得,万维网联盟负责开发和维护这些标准;关于HTTP和XML的进一步信息的可从互联网工程任务组(IETF)获得。假定熟悉这些标准。

云计算是一种服务交付模型,用于对可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务)的共享池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源。这种云模型可以包括至少五个特征、至少三个服务模型和至少四个部署模型,所有这些都在Peter Mell和Tim Grance撰写的“Draft NIST Working Definition of Cloud Computing”(2009年10月7日)一文中有所描述和定义。

特别地,下面是典型的特征:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户端平台或厚客户端平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归池以使用多租户(multi-tenant)模型服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以快速扩展,并且迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监视、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

典型的服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户端接口(例如基于网络的电子邮件)从各种客户端设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。

典型的部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构是两个或更多云(私有云、共同体云或公共云)的合成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发业务分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。

代表性的云计算节点如图2所示。特别的,在一个云计算节点中具有计算机系统/服务器,其可与众多其他通用或专用计算系统环境或配置一起操作。众所周知,可以适于与计算机系统/服务器一起操作的计算系统、环境和/或配置的示例包括但不限于:个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

现在参考图3,通过额外的背景,示出了云计算环境提供的一系列功能性抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图所示,提供下列层和对应功能:

硬件和软件层300包括硬件和软件组件。硬件组件的示例包括:主机,例如系统;基于RISC(精简指令集计算机)架构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件。软件组件的示例包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。

虚拟层302提供一个抽象层,该层可以提供下列虚拟实体的示例:虚拟服务器、虚拟存储装置、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统、以及虚拟客户端。

在一个示例中,管理层304可以提供下述功能。资源供应功能:提供用于在云计算环境中执行任务的计算资源和其他资源的动态获取。计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为这些资源的消费提供帐单和发票。在一个示例中,这些资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其他资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。

工作负荷层306提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负荷或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及其他(如私有云中的企业特殊功能)。

首先应当理解,尽管本公开内容包括关于云计算的详细描述,但是在此记述的教导的实现方式不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境被实现。

混合云环境驱动针对在不同托管环境之间的应用之间的安全通信的需要。随着应用和平台的数量增加,安全通信路径的数量迅速增长。现有技术的专用VPN在需要被保护安全的环境中创建大的通信信道。许多传输需求是高粒度的需求,诸如事件管理,其中日志数据从许多设备被发给到中央服务器;传统VPN使用不需要的宽通信信道,并带来安全风险。在云之间传送少量数据的应用的其他示例包括试图在周期性基础上(例如,一个月一次)对数据进行同步的应用或者发送规则但小量的数据的监视应用。

现有技术的软件VPN可以通过为特定应用或特定云创建通信路径来部分地解决这种问题,然而,基于应用的解决方案通常仅应用于单个应用,可能难以管理,可能难以监视,并且不利于规模效率。

本发明包括如下实施例,这些实施例基于来自多个应用的应用要求来动态地部署和重新配置高度调整的VPN并为混合云环境提供最佳拓扑。

图4中以高级别图示了用于本发明的实施例的一般过程。如步骤401中所示,云应用无论它们是在私有云中还是公共云中,都与中央VPN管理器交互以请求隧道创建。中央VPN管理器可以被安装在公共云或私有云中,并作为SaaS、PaaS或IaaS能力被提供给组织。为了简单起见,示出了由单个云应用的请求产生的流。然而,在优选实施例中,多个云应用将与VPN管理器同时交互,并且图4中描绘的过程可以对于各个应用处于不同的阶段中。在步骤403中,请求创建VPN隧道的应用提供对VPN隧道的期望的要求,诸如协议、端口、带宽限制和其他特性(例如,安全质量和吞吐量能力)。

接下来,在步骤405中,VPN管理器提供VPN端点代理或简称为“VPN代理”,以用于安装在请求机器(做出请求的机器)或同一云中的另一机器上。在优选实施例中,VPN代理然后被安装在目标机器中。VPN端点代理可以稍微改变以适应请求机器的要求,例如,基于Linux的系统比对基于iOS的系统。在本发明的一些实施例中,VPN代理可以是专用的,被配置为不同类型,并且被分配给特定VPN隧道的VPN代理的类型根据用于VPN隧道的所请求的质量和能力而改变。在本发明的其他实施例中,使用通用的全特征VPN代理,其可以提供各种VPN隧道类型。取决于请求是该应用,或者驻留在同一机器上的另一个应用是否已作出在前请求,VPN代理可能已经存在于端点或附近的机器处。此外,本发明的实施例使用现有的代理(诸如Chef代理)或者到现有VPN控制器的API,而不是部署VPN代理。因此,在本发明的许多实施例中步骤405是可选的。在步骤407中,VPN代理与VPN管理器通信以接收如由应用先前请求的部署配置细节,并根据那些细节来部署VPN隧道。

如步骤409中所示,请求应用可以贯穿用于VPN隧道的应用生命周期改变期望的、所请求的安全质量和吞吐量能力。VPN隧道的“调整”可以改变隧道的安全和其他能力,或者如以下所讨论的,可以涉及合并或拆分VPN隧道以适应云应用的改变中的要求。例如,在改变VPN隧道的特性的情况下,VPN管理器可以指令VPN代理将VPN隧道从在部署期间使用的大VPN管道、双向、快速安全协议隧道改变到作为用于生产的小型单向、非常安全的VPN管道的VPN隧道。可以调整VPN网络以通过在最少数量的VPN隧道上仅允许授权的应用所需的业务和许可来优化安全。通过提供具有更高允许带宽的更多VPN隧道,可以按照可能的安全成本提高业务性能。在一个优选实施例中,应用将通信到VPN管理器,并且VPN管理器转而将通信到VPN隧道的两个端点上的VPN代理。这一步骤(即,动态地改变VPN隧道的吞吐量和安全质量)可以贯穿应用生命周期被重复。

如步骤411中所示,应用可以向VPN管理器提供VPN过滤器插件。VPN过滤器将用于过滤通过VPN隧道传输的业务。VPN过滤器通常通过列出应被允许或拒绝什么IP/端口的ACL字段来提供允许或拒绝在业务退出VPN隧道之后的该业务和在业务进入VPN隧道之前的该业务的能力。这一步骤可以作为请求步骤403的一部分,或者稍后作为改变安全质量的一部分(例如,作为步骤409中的改变请求的一部分被完成。在步骤403中最初请求的VPN过滤器可以被稍后被请求的VPN过滤器替代或被之补充。请求新的VPN过滤器的这一步骤可以贯穿应用程序生命周期被重复。当VPN隧道与其他VPN隧道合并或被拆分成多个VPN隧道时,可以响应于来自共享VPN隧道的通信带宽的其他应用的请求来修改特定VPN隧道上的VPN过滤器。

通过事件和业务记录,VPN管理器提供到VPN配置中的可见性,如步骤413所示。在本发明的最优选实施例中,提供事件记录。在一些实施例中,也提供业务记录。在一个优选实施例中,事件和业务记录是与VPN管理器相关的审计事件。在本发明的其他实施例中,与连接到其他应用的应用相关的事件可以经由VPN代理被记录。例如,由应用使用的带宽(包括带宽历史)可以由VPN代理记录。在再其他实施例中,应用通信业务可以由代理记录。安全相关事件将由安全操作中心(SOC)用于监视安全漏洞。下面结合图8更详细地描述事件和业务记录。

在本发明的优选实施例中,VPN管理器将跨现有VPN代理对业务进行路由和重新路由,并且部署新的VPN代理以在需要时优化业务流,步骤415。响应于检测到的业务下降,例如,使用被存储和监视的可用业务日志,如果两个VPN隧道上的用于业务的安全要求兼容,则VPN管理器可以指令VPN代理合并VPN隧道。该检测可以在监视应用业务的VPN代理处被执行。或者,合并VPN隧道可以响应于良好运行的应用,向VPN管理器发送它已经从部署阶段转换到生产阶段并因此需要较少带宽的消息。VPN管理器确定:鉴于预测的需求减少,存在合并VPN隧道的机会。备选地,来自新的或现有应用的新请求可以导致新的VPN代理被创建以处理新的预期负荷或需求。应用的安全要求可以随应用生命周期而改变,这可能会产生对新VPN代理的需求。这一步骤可能需要将不同的VPN代理重新分配给不同的VPN隧道,杀死不需要的VPN代理以及创建和提供新的VPN代理以处理合并的VPN隧道,或者如果新的业务被预期,则处理新的VPN隧道。

同样如步骤417中所示,由于在应用的生命周期期间由应用做出的请求,被监视的业务改变或者由于应用所驻留的机器中的改变,可能需要重新配置VPN隧道。当应用拓扑改变并且机器被移动时,VPN管理器将指令VPN代理根据需要重新配置、合并和拆分VPN。根据本发明,“拆分”VPN隧道涉及将来自先前由单个VPN隧道处理的现有应用或机器的业务重新路由到两个VPN隧道。相比之下,添加或创建新的VPN隧道满足来自先前未由VPN管理器服务而是仅涉及来自新源的业务的应用的新应用请求。VPN隧道的拆分可以包含来自新源的业务,但是被视为一个拆分,每个VPN隧道上的某些业务必须来自现有源。在一定程度上,VPN隧道的重新配置和重新配置VPN代理的前述步骤是类似的步骤,因为VPN代理可能需要与VPN隧道同时被重新配置和被重新分配,然而,在附图中,为了清楚起见,重新配置VPN代理和重新配置VPN隧道被示出为分离的步骤。

在本发明的优选实施例中,与端点处的VPN代理协调的VPN管理器的能力包括在混合云环境内的不同云之间创建新的VPN隧道的能力。VPN管理器具有配置隧道策略(诸如带宽阈值(最小和最大)和安全策略)的能力。VPN管理器具有与管理其他云环境的其他VPN管理器联合的能力。VPN管理器可以通过响应于新请求、应用生命周期中的改变、业务或网络重新配置改变来动态地合并或拆分VPN隧道从而优化VPN隧道基础架构,或者动态地配置用于现有VPN隧道的VPN隧道规范。VPN管理器使用VPN隧道策略来决定是否允许提议的优化,以及用于VPN服务的新的请求是否可以由现有的VPN隧道基础架构来适合,或者是否将需要合并、添加、拆分或重新配置VPN隧道。

创建和维护VPN隧道在现有技术中是公知的。可以根据由管理员或请求应用指定的要求来创建VPN隧道。VPN隧道可以由软件应用或由专用硬件设备创建。本发明解决的问题是:一旦被创建,现有技术的VPN隧道是静态的并且不适应云环境中的改变,诸如应用生命周期改变和网络拓扑改变。由于它们的静态性质,现有技术的VPN隧道比本发明的VPN隧道具有更多的安全暴露。本发明调整VPN隧道的基础架构以仅允许整个混合云环境内的云环境之间的必要业务。

下面提供所选择的例示性实施例的更详细的描述。如图5中所示,本发明的一个优选实施例被使用在混合云环境中,该混合云环境集成了托管私有云的预置基础架构501,IaaS基础架构上的云工作负荷503和SaaS环境中的应用505。该图还描绘了在通用云环境507中操作的VPN管理器508。在其中驻留有VPN管理器508的通用云环境507可以是私有云或公共云。机器A-机器D被示出为驻留在IaaS基础架构501中,机器E和机器F被示出为在SaaS环境505中,机器G-机器J被示出为在私有云501中,并且机器K和机器L被示出为在通用云环境507中。日志和事件管理器512被示出为驻留在机器M上。VPN管理器508驻留在机器K或机器L上。

如图5中所示,根据本发明的例示性实施例配置VPN隧道509和511。在本发明的这一实施例中,管理员使用用户接口来配置VPN隧道。在本发明的其他实施例中,VPN管理器知道应用直接向VPN管理器做出了请求。管理员使机器A与VPN管理器508联系,并请求至机器M的VPN隧道连接511,从而使得日志和事件信息可以被报告给日志和事件管理器512。作为这一请求的一部分,机器A提供针对VPN隧道的期望的要求513:

协议:SYSLOG(系统日志)

端口:541

源:10.1.1.5

目标:9.1.2.20

带宽:无限制

过滤器:A(/^app1[a-z]{0,10}$/)

安全策略A

本领域技术人员将领会到,可以给出其他参数作为VPN隧道要求,并且这些参数仅是例示性的。

包括安全策略是可选的。安全策略最有可能由VPN管理器感知应用包括。代替被提供的安全策略,VPN管理器将从由请求机器或应用提供的要求构造安全策略。此外,可以存在用于混合云环境内的各个云之间的通信的默认安全策略。在默认安全策略与被提供或所构造的安全策略之间发生冲突的情况下,VPN管理器可以经由用户接口向管理员发出警报,或者具有用于解决这样的冲突的规则,例如,被提供的安全策略优先于默认安全策略。尽管在本发明的实施例中安全要求和安全策略二者都可以被使用,但是在本发明的优选实施例中,这些术语具有以下含义。“安全要求”是请求机器需要存在于VPN隧道中的安全类型参数。安全要求的示例包括要使用的VPN协议和加密安全协议。“安全策略”将指示如何在VPN隧道中使用安全要求。它可能是一个授权——VPN只使用由请求者指定的安全要求。作为另一示例,如果请求者指定了安全要求,则是兼容协议的有限子集,如果由另一请求者请求或由另一VPN隧道使用,则该兼容协议的有限子集将形成用于加入现有VPN隧道或VPN隧道的合并的候选者的基础。备选地,安全策略可以是允许性的,其允许由来自相同云的请求者指定的任何安全要求被包括在VPN隧道中,但是如果没有被授权机器请求,则不包括其他安全协议。作为另一示例,安全策略可以声明某些安全要求在相同的VPN隧道中不兼容。因此,“安全策略”可以用于评估多个应用或多个VPN隧道的“安全要求”是否兼容。

在一个优选实施例中,如果VPN管理器508先前没有与机器M联系,则VPN管理器508等待来自机器M的连接。在这一实施例中,管理员向VPN管理器注册机器M。响应于请求或注册,VPN管理器508分别在机器M和机器A上安装VPN代理515,517。接下来,通过安装的VPN代理515,517进行动作,VPN管理器508用机器A请求513中的指定参数(syslog(系统日志),端口,单向,带宽等)配置机器A和机器M之间的VPN 511。也就是说,VPN管理器508向VPN代理发出VPN代理(或其他现有实体)执行的指令和配置要求。如本领域技术人员已知的,VPN隧道将使用选择的VPN安全技术(诸如因特网协议安全(IPsec)、安全套接层/传输层安全(SSL/TLS)或多协议标签交换(MPLS))以保护隧道。其他VPN安全协议包括数据报传输层安全(DTLS),微软点对点加密(MPPE)和安全外壳(SSH)协议。机器A中的VPN安全要求可以包括VPN安全协议的选择以及根据不同加密标准(诸如支持数据加密标准(DES)/三重DES(3DES)和具有不同密钥大小的高级加密标准(AES)或多播或群组加密标准)对数据进行加密的能力。VPN安全要求可以包括在加密之前根据诸如Lempel-Ziv-Stac(LZS)之类的标准来压缩数据的能力。

管理员接下来使机器B联系VPN管理器并请求至机器M的VPN连接。作为这一请求的一部分,机器B提供针对VPN的期望的要求519:

协议:SCP

端口:22

源:10.1.1.5

目标:9.1.2.20

带宽:无限制

过滤器:B(/^app2[a-z]{0,30}$/)

安全策略B

响应于该请求,VPN管理器508在机器B上安装VPN代理。VPN管理器标识源自机器A的预先存在的附近的VPN隧道511。在建立机器A和机器B的安全策略兼容之后,VPN管理器508经由机器B上的VPN代理来配置机器B,以将指定的业务发送给机器A。指定的业务是被安全策略允许的业务。例如,某些安全策略可以仅允许在VPN隧道上的http业务而不允许ftp业务。然后,VPN管理器508将A到M的VPN隧道511重新配置为包括来自机器B要求519的VPN过滤器。以这种方式,来自一个机器的现有VPN隧道511可以被重新配置为传递来自同一云503中的另一机器的业务。所得到的VPN隧道511具有以下属性521:单向,两个分组类型(每个来自应用中的一个应用),两个协议(syslog和SCP),来自两个源。用于VPN隧道的聚合VPN过滤器是更多的许可,因为它现在允许来自两个源和两个分组类型的业务,然而,在优选实施例中,VPN过滤器仍然检查正确的分组类型来自正确的机器。

在这一例示性实施例中,VPN管理器508可以管理在其中组织具有机器的多于两个云之间的VPN隧道。继续该示例,管理员请求从SaaS环境505中的通用SaaS应用到在私有云501中的日志和事件管理器512创建来自机器F的VPN隧道。管理员或通用SaaS应用程序所有者使用管理员提供的凭证向VPN管理器发出请求,以创建VPN隧道。该请求包含针对VPN的期望的要求523:

协议:SCP

端口:80

源:15.1.1.5

目标:9.1.2.20

带宽:无限制

过滤器:C(/app3[a-z]{0,50}$/)

响应于该请求,VPN管理器508在机器F上安装VPN代理522。通过VPN代理522,VPN管理器508用来自初始请求523的指定的过滤器来配置机器F和机器M之间的VPN隧道。

在本例示性实施例中,机器A和机器B通过VPN隧道511向机器M上的日志和事件管理器提供日志和事件数据,并且机器F通过VPN隧道509提供这样的数据。如图所示,共置的机器G和机器I还向日志和事件管理器提供日志和事件数据。由于机器G和机器I可以通过私有云501中的私有网络与机器M直接通信,因此不需要涉及VPN管理器508。

上述步骤提供了VPN隧道的初始配置的例示性示例。如下面将讨论的,由于应用的要求在它们的生命周期期间改变,因此良好行为的应用可以发出进一步的请求以改变针对隧道所需的参数。例如,在部署或其他高使用的周期期间,应用将需要通过隧道的高带宽。在其他时间,例如,在例行监视期间,应用将需要较低的带宽。应用可以发出更改请求的带宽的进一步请求。在备选实施例中,管理VPN隧道的VPN代理可以监视来自应用的集合的业务。如果监视的业务远低于被请求的,则VPN代理或VPN管理器可以识别将隧道与另一个合适隧道合并的机会,或者为较低带宽重新配置隧道。在寿命结束时,例如,当应用被卸载时,作为卸载过程的一部分,良好行为的应用将通知VPN管理器:不再需要VPN隧道。应用的安全要求也可以在它的生命周期期间改变。在本发明的其他实施例中,事件和记录信息被呈现给管理员,管理员可以基于来自事件和记录信息的感知的应用生命周期改变来发出用于改变VPN代理和VPN隧道配置的请求。

图6描绘了由VPN管理器提供的样本仪表板中的图形用户界面600中的管理员视图的一个实施例。本领域技术人员将领会到,根据本发明的教导可以提供其他备选的用户界面。在这一视图中,紧接在与图5关联地描述的初始配置之后示出了VPN隧道的当前状态视图。在当前状态视图的这一实施例中,仅描绘了现有VPN隧道、由VPN隧道连接的云和使用VPN隧道的机器,而混合云环境中的其他组件未被示出。当前状态视图的其他实施例将示出其他组件。私有网络601中的机器M被示出为通过VPN隧道611和VPN隧道609分别被耦合到IaaS基础架构603和SaaS环境605。来自机器A的请求的配置参数在面板613中被示出,而来自机器B的请求的配置参数在面板619中被示出。VPN隧道611的结果VPN参数在面板621中被示出。类似地,来自机器F的请求的配置参数在面板623中被示出,而用于VPN隧道609的结果VPN参数在面板625中被示出。在优选实施例中,面板613,619,621,623和625中的每个面板都可由系统管理员编辑。通过编辑请求的配置参数面板613,619或623中的一个面板,向VPN管理器发出对于由以下各项之一期望的VPN特性的新请求:机器或运行在机器上的应用。一旦该请求被执行,就将在适当的VPN参数面板621或625中示出对VPN特性的更新。

如果面板中没有足够的空间可用,则将呈现滚动控件,从而允许管理员滚动浏览所有可用参数。不可编辑的参数可以以灰化(greyed out)的方式被呈现。在本发明的优选实施例中设想了网络的其他视图。例如,可以呈现网络中的所有机器,从而使得可以创建新的VPN连接。点和拖动机制可以被用于定义新隧道。响应于管理员的点和拖动操作,可以在请求的配置面板中填充管理员可以编辑或提交的默认可编辑参数。在另一备选实施例中,可以呈现应用视图,该应用视图示出了在每个环境中操作的应用而不是机器。

警报可以被呈现。例如,在一个优选实施例中,VPN隧道611或VPN参数面板621以突出显示的方式被呈现,从而指示管理员注意的动作。例如,在界面中突出显示两个隧道可以指示用于合并两个隧道以提供更有效服务的机会。突出显示单个隧道可以指示吞吐量超过隧道的容量,或者由于新的一组要求与由先前请求创建的针对隧道的已经存在的VPN参数之间的冲突,针对服务的新的请求不能与现有的隧道相适应。如果突出显示的隧道被管理员选择,则可以在附加面板中呈现附加的详细信息,例如事件日志和吞吐量,这些是警报的原因。

VPN管理器将暴露选项以手动添加、删除和重新配置VPN代理和VPN隧道。在一个优选实施例中,用户接口(UI)将是UI+RESTAPI接口。基于Web的UI将使用REST API,或者外部应用可以直接使用REST API。

在图7A中,示出了VPN隧道的重新配置的例示性实施例。这一示例示出了使得VPN管理器708改变混合云的VPN隧道基础架构的网络拓扑改变的示例。在该示例中,它是从云中的一个云移除机器。其他网络拓扑改变包括添加或移除云应用,添加具有与另一机器相同的云应用的“克隆”机器例如用于负荷平衡,将云应用从一个机器移动到另一机器,以及将云应用从一个云移动到另一个云,例如,从私有云移动到公共云。在本发明的优选实施例中,这种网络拓扑改变将作为“事件”被发送给VPN管理器708,并且VPN管理器708将执行VPN隧道基础架构的自动重新配置或者作为一种情况向管理员呈现警报,该情况用于是VPN隧道重新配置的候选。

如由“X”所示,管理员从IaaS基础架构703移除机器A,其触发由机器A处理的机器B业务的重新配置。当管理员开始移除机器A时,机器A上的VPN代理704联系云707中的VPN管理器。VPN管理器分析VPN隧道711中的组的合VPN连接,在这种情况下,源自机器A的VPN隧道711也处理来自机器B的业务。VPN管理器708指令机器B上的VPN代理712以使用预先存在的需求(即,来自机器B和已经使用VPN隧道711的IaaS基础架构703中的任何其他机器的现有需求)来创建机器B到机器M的VPN隧道720。由于机器A被移除,它的要求毫不相关。在设置针对隧道的VPN过滤器时,仅使用机器B要求。在图附中,图示了当请求VPN服务时的机器B要求。机器B已经提供了针对VPN的期望的要求719:

协议:SCP

端口:22

源:10.1.1.5

目标:9.1.2.20

带宽:无限制

过滤器:B(/^app2[a-z]{0,30}$/)

安全策略B

如图所示,用于新VPN隧道720的VPN参数721不同于用于这一附图中的VPN隧道711或者图5中所示的组合的VPN隧道511的参数521。VPN隧道711被移除,如“X”所示。通过仅适合来自具有当前VPN隧道需求的识别的机器的请求的参数,提高了安全。

图7A还可以被用来讨论从机器A移除应用。在这种情况下,一旦创建了新的VPN隧道720,则VPN管理器708可选地移除A到MVPN隧道711。还可选地,VPN管理器708卸载机器A上的VPN代理704。这些可选步骤产生良好运行的系统,并且当没有订阅的、授权的应用驻留在机器A上时降低维护VPN隧道和VPN代理的安全风险。然而,备选实施例可以保持VPN隧道或VPN代理活跃,以减少在向VPN管理器做出新的应用请求的情况下启动新的VPN代理的开销。

在本发明的实施例中,存在用于合并和拆分VPN隧道的规则集合。基于安全的规则涉及由VPN隧道服务或潜在地由VPN隧道服务的每个应用的安全要求或策略是否与其他应用的安全要求或策略兼容。合并VPN隧道将以受兼容的候选VPN隧道服务的应用的安全要求为条件。在本发明的实施例中,基于应用的安全策略或用于云到云通信的VPN管理器的安全策略来解释安全要求的兼容性。例如,如果由于应用安全策略,一个VPN隧道仅允许http业务,并且另一VPN隧道仅允许ftp业务,则两个隧道不能被合并。但是,如果两个隧道都允许http业务或所有业务,则可以合并它们。作为另一示例,两个不同VPN隧道上的两个应用可能需要两种不同的安全或加密协议,并且对于两个云之间的通信有效的VPN管理器的安全策略要求使用单个加密协议。因此,应用安全要求或策略可以防止VPN隧道的合并,否则VPN隧道可能为了吞吐效率而被合并。

鉴于来自包含新的一组安全要求的应用的新请求,鉴于兼容性规则对当前VPN的评估可能导致当前VPN隧道被拆分。在优选实施例中,通过评估在用于直接冲突的两个VPN隧道上的VPN过滤器和安全要求来确定潜在合并的兼容性。如果发现冲突,则在一些实施例中,用户界面可向管理员显示候选VPN隧道以显示该冲突和使VPN隧道兼容所需的改变。以这种方式,管理员可以从安全角度来决定修改VPN过滤器、向当前VPN添加附加类型的业务或安全或加密协议是否可接受。在实施例中,当VPN隧道可以被拆分时的另一种情况是当使用共享VPN隧道的应用之一的安全要求改变时。例如,如果应用现在想要除了原始http业务之外还传输ftp业务,并且当前VPN隧道不允许ftp业务,则VPN隧道可以被拆分。作为另一示例,如果应用之一想要比当前VPN隧道更高级别的加密,则拆分当前VPN隧道可能是有意义的,而不是在所有业务上引起更高的开销。用于基于安全的参数以外的参数的基于其他兼容性的规则在本发明的其他实施例中被使用。

另一组规则基于VPN隧道的带宽或吞吐量。例如,带宽规则可以基于关于带宽的上阈值或下阈值。如果多个应用的业务正超过允许的隧道限制(带宽),则可以执行拆分VPN隧道。在这种情况下,VPN管理器将随后拆分隧道。如果一个或多个兼容的VPN隧道的带宽低于最小隧道带宽限制,则可以执行合并VPN隧道。

在图7B中,示出了合并VPN隧道的重新配置的例示性实施例。这一示例示出了来自机器A和机器B上的应用的要求已经因为带宽要求减少而改变、从而允许VPN隧道711和VPN隧道720的合并的情况。允许VPN隧道合并的另一种情况是用于应用之一的安全协议中的改变使得新的安全协议集合根据有效的安全策略是兼容的。如图所示,VPN隧道711在云701和云703之间被移除,因为另一VPN隧道720可以适应该聚合要求。在本发明的优选实施例中,在两个VPN隧道上的业务(除了安全要求之外)为了合并而必须兼容。在本发明的优选实施例中,VPN管理器708从被分配给机器A和机器B的VPN代理704和VPN代理712接收信息。VPN管理器在机器B上重新配置VPN代理712,以修改机器B到机器M VPN隧道720添加要求,即,来自已经使用VPN隧道711的机器A的现有要求。在该图中,示出了机器A要求739和机器B要求719。机器A提供针对VPN隧道的期望的要求739:

协议:SYSLOG

端口:541

源:10.1.1.5

目标:9.1.2.20

带宽:无限制

过滤器:A(/^app1[a-z]{0,10}$/)

机器B已提供了针对VPN的期望的要求719:

协议:SCP

端口:22

源:10.1.1.5

目标:9.1.2.20

带宽:无限制

过滤器:B(/^app2[a-z]{0,30}$/)

如图所示,当用于修改的VPN隧道720的VPN参数751支持单个应用时,用于修改的VPN隧道720的VPN参数751不同于来自单独的VPN隧道711和VPN隧道720的参数。通过仅适合来自识别的机器的请求的参数,提高了安全。在这一附图中,机器A上的VPN代理704将来自机器A的业务转发给机器B上的VPN代理712,从而使得VPN隧道720可以处理组合业务。

在图7C中,示出了拆分VPN隧道720的例示性实施例。在这一示例中,VPN隧道720不再足以处理来自机器A和机器B二者的通信。VPN隧道的拆分可以是管理员动作或VPN管理器感知应用的请求的结果,其指示它的要求已经改变或者即将改变。VPN管理器分析VPN隧道720中的组合VPN连接,其源自机器B还处理来自机器A的业务,并且可以经由用户界面向管理员显示警报。在这一示例中,从运行在机器A上的应用接收新的一组要求759,指示由于将需要双向VPN隧道以及新的安全加密协议的更新而导致的要求的预期增加。由于认识到这些新的要求759不能用VPN隧道720来实现,或者至少从VPN安全或吞吐量观点来看,响应于新的要求的VPN隧道720的修改不是最佳的,VPN管理器708重新配置机器A上的VPN代理704以使用新的要求来创建新的机器A到机器M VPN隧道763。因此,旧的VPN隧道720被“拆分”,因为来自机器A和机器B上的源的业务将由新的VPN隧道基础架构中的两个VPN隧道服务。

机器A提供针对VPN隧道763的期望的要求759:

协议:SYSLOG

加密协议:ECC

端口:541

源:10.1.1.5

目标:9.1.2.20

带宽:不限制双向

过滤器:A(/^app1[a-z]{0,10}$/)

机器B上的VPN代理712重新配置VPN隧道720,从而使得它仅使用机器B要求:

协议:SCP

端口:22

源:10.1.1.5

目标:9.1.2.20

带宽:无限制

过滤器:B(/^app2[a-z]{0,30}$/)

再次,通过仅适合来自识别的机器的请求的参数,提高了安全,因此用于修改的VPN隧道720的新的VPN参数761不同于针对图7B中所示的组合的VPN隧道720的参数751。类似地,用于新创建的VPN隧道757的VPN参数763仅反映针对机器A的要求759。

图8是VPN管理器的事件报告和记录操作的流程图。事件和业务记录允许VPN管理器理解哪些应用正在与哪些其他应用通信。它还允许VPN管理器理解哪些云正被互连,哪些数据正被传送。此外,事件报告和日志操作将允许由安全操作中心(SOC)检测策略违反或安全违规。

在步骤801中,VPN管理器等待要由VPN代理报告的事件。随着步骤803接收到事件,步骤805记录事件。VPN管理器在步骤807中确定接收的事件是否触发规则。为了触发规则,最新近接收的事件可能需要与已经被记录的事件相关。如前面所提及的,规则的一个示例是业务阈值规则。如果VPN上的业务超过或预计超过阈值,则VPN管理器将向VPN代理发出指令以将单个VPN隧道拆分为两个隧道。另一业务阈值规则是最小业务规则。如果相邻VPN隧道具有低于阈值的业务,则VPN管理器可以向VPN代理发出指令以合并VPN隧道。规则的另一示例是安全相关的规则。如果存在与VPN隧道相关的安全事件,则VPN管理器可以向VPN代理发出指令以改变针对隧道的安全参数。例如,针对正由VPN隧道服务的机器之一的检测到的入侵事件经历了有问题的事件,这些事件受到进一步审查。因此,VPN管理器可以向针对该隧道的VPN代理发出指令以更密切地监视来自该机器的事件,或者拆分该VPN隧道以使得可以监视来自受影响的机器的事件,即,来自新隧道的所有事件被监视,同时允许来自其他不受影响的机器的事件具有较低的入侵检测开销。

如果事件是由VPN管理器感知应用做出的修改请求,则默认规则可以符合该请求。在这种情况下,VPN管理器将向与修改请求一致的VPN代理发出指令。另一规则将评估修改请求是否与适当地针对该VPN隧道的安全策略一致,如果不一致,则提醒管理员采取进一步行动。

如果规则已由事件触发,则在步骤809中,VPN管理器将向VPN代理发出指令以适当地调整VPN隧道。如上面所说明的那样,调整VPN隧道包括修改VPN隧道上的参数、合并VPN隧道或将VPN隧道拆分成两个或更多个VPN隧道。在一个优选实施例中,规则将在用户界面中触发警报以允许管理员确认和/或修改到VPN代理的指令。过程返回以在步骤801中等待新的事件。

图9图示了根据本发明的一个实施例的优化业务流、合并和拆分VPN的过程。该过程开始于步骤901中,其中VPN管理器监视现有的VPN隧道。这一步骤包括监视吞吐量和上面结合图8描述的事件。在一个优选实施例中,在每个隧道端点处建立的VPN代理和订阅机器和/或应用向VPN管理器报告相关信息,步骤903。在这一步骤中还传输VPN管理器需要传递给VPN代理的任何指令。VPN管理器将向VPN代理传递的指令的示例包括:针对来自给定应用或机器的业务使用哪个VPN隧道、VPN隧道连接到哪个端点(例如,应用)、具有什么过滤器设置、VPN代理和代理配置相关数据,等等。

基于接收到的信息,在步骤905中,做出对现有VPN基础架构的改变是否被指示的决定。肯定的决定可以基于许多因素。首先,如上所述,可以存在基于新的管理员或应用的对VPN隧道设置的改变的请求。新请求可以涉及用于新应用或新机器的新连接或者对已经订阅的机器之间的现有VPN隧道的改变。第二,改变可以由通过VPN代理的吞吐量测量来指示。VPN隧道最初可以由应用在应用生命周期的部署阶段中创建,其中存在高带宽需求。因此,为了提供所需的带宽,创建分离的VPN隧道。稍后,在应用生命周期的生产阶段,应用的带宽要求较低,因此如果安全要求在应用之间兼容,则可以合并VPN隧道。第三,在应用生命周期结束时,当应用被移除时,用于该应用的VPN隧道和VPN代理可以被移除或被修改,以仅支持仍然驻留在端点处的那些应用。VPN代理报告VPN隧道未被充分利用,并且因此是用于与其他VPN隧道合并的候选。具有在其控制下的所有现有VPN隧道的映射的VPN管理器发出用于合并的所需命令,例如,对于将被关闭的VPN隧道的现有一组要求被发送给控制第一VPN隧道的第一VPN代理以保持打开、将第一VPN隧道的VPN特性改变为那些新要求的命令、将通信从当前正在控制要被关闭的第二VPN隧道的第二VPN代理转发给第一VPN代理的命令等等。

该改变可以是由于新的带宽或安全要求而需要被拆分VPN隧道的指示。先前合并的VPN隧道通常是用于拆分成多个隧道的主要候选。在应用生存期期间,存在这样的时段:在该时段中,带宽或安全需求例如在更新期间或响应于云应用之一的指示的入侵而改变,即,需要特殊的安全处理。VPN隧道需要被拆分的另一原因是由于附加的机器或应用的新请求。假设在上面参考图5描述的示例中,VPN隧道511足以服务机器A和机器B,然而,针对机器C和机器D的VPN服务做出了应用或管理员请求,并且单个VPN隧道不能满足针对所有四个机器的带宽要求。一个选择可能是创建服务于机器C和机器D的新的VPN隧道。然而,VPN管理器可以确立针对机器A和机器C的要求比机器A和机器B更加兼容,并且因此使一个VPN隧道服务于机器A和机器C并且使第二VPN隧道服务于机器B和机器D将是更加高效的。如果没有指示改变,则过程返回到监视VPN隧道,步骤901。

在步骤907中,确定是否可以利用VPN隧道的现有集合来实现改变。一般来说,这样会更有效率,而且被云安全攻击的可能性较低,两个云之间保持的VPN隧道更少。进行对请求的带宽、当前带宽和当前隧道的可用带宽比较。进行对现有的和请求的安全参数的比较以确定由相应的应用请求的安全参数的兼容性。如果可以使用现有VPN隧道(包括现有VPN隧道的合并),则向现有VPN代理发出期望的要求以对VPN隧道进行任何所需的改变。如果可以使用VPN隧道,则很可能在请求的计算机中已经安装了VPN代理。然而,如果需要新的VPN代理,例如,在使用专用而不是通用VPN代理的实施例中,则在步骤911中VPN管理器将它们发送给机器端点。然后,该过程继续监视现有VPN基础架构,步骤901。

另一方面,如果改变需要新的VPN隧道,则过程然后在步骤913中确定是否已经安装了VPN代理。如果否,则在步骤915中,VPN管理器将新的VPN代理发送给需要它的端点。在步骤917中,通过新的和/或现有VPN代理创建新的VPN隧道。新的VPN隧道可以被认为是现有隧道的拆分。然后,该过程返回到步骤901以监视VPN基础架构的可能的改变。

在本发明的优选实施例中,中央VPN管理器由单个系统或云提供者控制。例如,在云环境中,对于IaaS和PaaS提供者来说,将如本发明所启用的VPN能力提供到那些环境中将是有价值的。

联合模型可以被使用,其中一个VPN管理器由一个云提供者提供,并且云提供者使用类似于联合身份(OAuth,OpenID等)的模型来在客户端网络和其他云网络之间创建信任模型。当属于一个组织的应用想要VPN隧道时,它可以使用与组织VPN服务器的联合类型认证以具有与云提供者VPN管理器建立的信任。

在图10中图示了一个实施例。用于第一组织的应用驻留在第一云组1001之一中的机器M上,并且需要创建VPN隧道以与在属于不同组织的第二云组1003之一中的机器F通信。云组1001中的机器之间的VPN隧道由VPN管理器1005管理,而云组1003中的VPN隧道由VPN管理器1007管理。

然后,当应用想要VPN隧道时,它们向它们自己的VPN提供者服务器做出请求,例如,机器M上的应用联系VPN管理器1005。VPN管理器1005将与它的对应的VPN管理器1007通信以建立新的VPN隧道1011。因此,客户端将使用VPN隧道与其他受信客户端通信以提供接入点和加密。VPN隧道可以流过中央服务器,或者VPN管理器可以生成附加的轻量级隧道。类似于上文针对混合云环境内的VPN隧道的描述,在两个云环境1001和1003之间被管理的VPN隧道可以被重新配置、合并和拆分以适应应用在它们的生命周期期间的需要。

上述主题内容提供了许多优点。在优选实施例中,VPN隧道的合并和拆分允许网络优化。当对VPN的位置和组合做出决定时,VPN管理器可以考虑可用带宽、可用机器计算、网络拓扑和VPN开销。现有技术使用专用VPN隧道来在云环境之间提供安全。通过监视给定VPN隧道上的吞吐量,VPN管理器可以建议创建附加的VPN隧道以拆分处理大量业务的VPN,或者建议合并终止于同一云内的位置处的未充分利用的VPN。

当被集成到云环境中时,利用足够的权限,VPN管理器可以自动部署专用机器以卸载VPN业务。如果VPN管理器具有云管理员的凭据可用,则它可以使用该凭证在云中自动创建VM并将其专用于处理VPN业务,从而创建新的VPN管理器以共享负荷。这将有助于缓解运行VPN管理器的现有机器上的负荷,并且还使得VPN管理器对于混合云更具可扩展性。所有或一些VPN代理然后将开始与新的VPN管理器通信。在另一实施例中,VPN管理器还可以取决于可用性而卸载到专用VPN设备。如果VPN管理器检测到VPN设备,则它可以安装(或使用已经安装的)VPN管理器,然后以类似于云VM的方式,VPN管理器可以开始将业务卸载到VPN设备,以减轻现有VPN管理器上的一些工作负荷。尽管本发明在本发明的一些优选实施例中可以是及其自主的,但是管理员可以通过用户界面手动调整VPN隧道。在本发明的自主实施例中,可以提供用户界面以向管理员警告由VPN管理器采取的动作。管理员可以检查由代理检测到的事件的日志以及由VPN管理器采取或指示要由VPN管理器采取的随后动作,以调整自主策略或拒绝由VPN管理器采取的动作。管理员可以安装物理VPN设备,并配置VPN管理器以默认显式地使用这些设备。

在备选实施例中,并非上面讨论的基于代理的管理,VPN管理器可以利用云API或利用现有代理(诸如Chef客户端代理)来重新配置VPN隧道的端点。在这些实施例中,由VPN代理采取的上述动作作为替代由其他网络实体采取,所述其他网络实体诸如是Chef代理或者已驻留在云基础架构中的其他VPN控制机制。当使用云API时,云中可能有基于软件的联网可用,其可用来针对连接到软件定义的网络(SDN)的所有VM创建VPN隧道,而不是在每台机器上部署代理。

如上所述,应用可以随着应用的生命周期的改变而改变用于VPN隧道的VPN参数。例如,在应用部署过程期间,应用可能需要不同的通信带宽和安全协议。例如,在产品安装期间可能需要在VPN隧道之上的SSH协议,但在产品运行时期间不需要。应用可以向VPN管理器提供针对动态VPN隧道重新配置的新的一组要求。

VPN管理器响应于由组织网络内的一组应用或机器提供的详细且动态的需求来提供动态VPN部署、管理和重新配置。通过允许多个灵活VPN隧道的合并和拆分,改善了混合云的效率和安全。此外,组织可以使用本发明来提供与由合作伙伴或其他受信实体控制的云环境联合的VPN隧道化能力。通过在属于不同组织的VPN管理器之间建立信任,VPN能力的联合允许应用利用现有的信任关系,而不需要应用本身加入多个组织。

本发明的实施例允许响应于云托管的硬件的自动部署和移除来改变VPN隧道拓扑,以用于更有效的管理和卸载VPN活动。VPN技术的选择响应于环境改变和请求应用的要求。通过利用云基础架构(API,自动部署工具),VPN管理器可以用最少的附加基础架构来管理VPN隧道。本发明的实施例基于应用生命周期来响应地改变通信,诸如基于应用驱动的命令来实时改变允许的协议。通过连续监视由管理员或应用的集合提供的VPN隧道要求,本发明的实施例提供动态VPN隧道重新配置。

本发明相对于现有技术具有许多优点。本发明响应于由应用提供的详细且动态的需求来提供动态VPN部署、管理和重新配置。此外,多个VPN管理器可以管理不同云中的VPN,并且通过在VPN管理器之间建立信任的联合VPN能力,应用可以利用现有的信任关系从来自不同云的受信VPN管理器请求VPN。

将多个灵活VPN隧道组合成单个VPN隧道提高了云间通信的效率和安全。如果需要,还可以实现组合的VPN的拆分以满足新的需求。在本发明的实施例中,用于提供VPN功能的硬件被自动部署和移除以用于更有效的管理。被选择用于创建给定隧道的VPN技术响应于由应用所指定的要求和云环境。在使用专用VPN代理的情况下,专用VPN代理被配置为提供由请求VPN隧道的应用或机器请求的要求。云基础架构本身是灵活的,从而允许任务在机器之间的重新分配。通过按需将这样的资源动态地分配给附加的管理VPN,可以在VPN管理过程(API,自动部署工具)中利用这种灵活性。

VPN隧道可以基于应用生命周期而被响应地改变以提供对通信信道的扩展或限制,以及基于应用驱动的命令实时地改变在VPN隧道中的允许的协议。在本发明的优选实施例中,VPN代理连续地监视由管理员或应用或者应用的集合提供的VPN要求以及由应用要求的实际吞吐量,以用于动态的VPN重新配置。如所描述的,这里的方式可以手动地或以自动化的方式、整体地或部分地被实现。

虽然优选的操作环境和用例已被描述,但是这里的技术可以被使用在期望部署服务的任何其他操作环境中。

如上所述,上述功能可以被实现为独立的方法,例如,由一个或多个硬件处理器执行的一个或多个基于软件的功能,或者它可以作为被管理的服务(包括作为经由SOAP/XML接口的web服务)可用。在此描述的特定硬件和软件实现细节仅用于例示性目的,而并不旨在于限制描述的主题内容的范围。

更一般地,在公开的主题内容的情境中的计算设备都是包括硬件和软件的数据处理系统(诸如图2中所示的),并且这些实体通过网络彼此通信,所述网络诸如是因特网、内联网、外联网、私有网络或任何其他通信介质或链路。数据处理系统上的应用提供对Web和其他已知服务和协议的本地支持,包括但不限于对HTTP,FTP,SMTP,SOAP,XML,WSDL,UDDI和WSFL等的支持。关于SOAP,WSDL,UDDI和WSFL的信息可从万维网联盟(W3C)获得,万维网联盟负责开发和维护这些标准;关于HTTP,FTP,SMTP和XML的进一步信息可从互联网工程任务组(IETF)获得。

除了基于云的环境之外,在此描述的技术可以在包括简单n层架构、网络门户、联合系统等的各种服务器侧架构中被实现或者结合这些服务器侧架构被实现。

更一般地,在此描述的主题内容可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元件的实施例的形式。在优选实施例中,受信平台模块功能在软件中被实现,其包括但不限于固件、常驻软件、微代码等。此外,下载和删除接口和功能可以采用从计算机可用或计算机可读介质可访问的计算机程序产品的形式,其提供由计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合被使用的程序代码。为了这一描述的目的,计算机可用或计算机可读介质可以是可以包含或存储由指令执行系统、装置或设备使用或与其结合使用的程序的任何装置。介质可以是电、磁、光、电磁、红外或半导体系统(或装置或设备)。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前示例包括压缩盘只读存储器(CD-ROM)、压缩盘读/写(CD-R/W)和DVD。计算机可读介质是有形的非暂时性项目。

计算机程序产品可以是具有用于实现一个或多个所描述的功能的程序指令(或程序代码)的产品。这些指令或代码在通过网络从远程数据处理系统被下载之后可以被存储在数据处理系统中的计算机可读存储介质中。或者,那些指令或代码可以被存储在服务器数据处理系统中的计算机可读存储介质中,并且适于通过网络被下载到远程数据处理系统,以用于在远程系统内的计算机可读存储介质中使用。

在代表性实施例中,技术在专用计算平台中被实现,优选地在由一个或多个处理器执行的软件中被实现。软件被保持在与一个或多个处理器相关联的一个或多个数据存储器或存储器中,并且软件可以被实现为一个或多个计算机程序。总的来说,这一专用硬件和软件包括上述功能。

在优选实施例中,在此提供的功能被实现为对现有云计算部署管理解决方案的附件或扩展。

虽然以上描述了由本发明的某些实施例执行的操作的特定顺序,但是应当理解,这种顺序是示例性的,因为选实施例可以按照不同的顺序执行操作、组合某些操作、重叠某些操作等。说明书中对给定实施例的引用指示描述的实施例可以包括特定特征、结构或特性,但每个实施例可以不必包括特定特征、结构或特性。

最后,虽然已经分离地描述了系统的给定组件,但是本领域普通技术人员将理解,一些功能可以在给定指令、程序序列、代码部分等中被组合或共享。

已经描述了我们的发明,我们现在要求保护的如下。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1