通过禁用不必要的功能改进虚拟化应用性能的制作方法

文档序号:13350427阅读:109来源:国知局
通过禁用不必要的功能改进虚拟化应用性能的制作方法

本申请一般涉及安全数据通信。更具体地,本申请涉及用于改进这种安全数据通信的性能的技术。



背景技术:

本节介绍可以有助于更好地理解本发明的各方面。因此,本节的说明将以此为基础进行阅读,不应被理解为承认哪些是现有技术或者哪些不是现有技术。

网络功能虚拟化(nfv)使用信息技术(it)虚拟化相关的技术以将网络节点功能的类别虚拟化为可以连接以创建通信服务的构造块。实现nfv设计的服务提供商将实现一个或多个虚拟化网络功能(vnf)(即,软件实现网络功能)。通常按顺序应用多个vnf以提供指定的服务。

合法拦截(li)是为了分析或证明的目的而合法获得诸如网络管理信息或通信内容的通信数据的任务。合法拦截可以包括代表执法机构(lea)、行政机关、情报部门或其它授权机构拦截电讯。

部署在通用标准硬件上的网络功能的虚拟化预计将显著地降低部署和维护成本,并且还预计将减少产品开发时间。尽管如此,仍然需要通过禁用不必要的功能(诸如加密)来实现改进的性能的nfv环境。此外,还需要用于在虚拟化环境中执行合法拦截(li)的改进的技术。



技术实现要素:

本发明的说明性实施例提供了用于通过禁用不必要的功能(诸如不必要的加密和解密操作)来改进虚拟化应用性能的技术和装置。例如,在一个实施例中,由管理程序执行的方法包括以下步骤:获得对加密和解密第一虚拟机与第二虚拟机之间的通信中的一个或多个的请求;确定第一和第二虚拟机是否在同一个主机上作为管理程序执行(例如,通过评估通信的上下文);以及如果第一和第二虚拟机在同一个主机上执行,则处理通信而无需加密或解密通信。可以通过将通信的未加密版本转发到授权机构来执行合法拦截。

在一个示例性实施例中,当通信遍历第一虚拟机与第二虚拟机之间的交换机和/或路由器时,通信的未加密版本被放置在管理程序和目标虚拟机中的一个或多个的缓冲器内的队列中,并且随机值和全零值中的一个或多个被返回到调用者。然后,通信的未加密版本被定位在队列中,并被返回到目标虚拟机。

在另一个实施例中,提供了一种制造产品,其包括其中具有编码的一个或多个软件程序的可执行代码的有形处理器可读存储介质。一个或多个软件程序在由至少一个处理设备执行时,实现上述方法的步骤。

在又一个实施例中,一种装置,其包括存储器和被配置为执行上述方法的步骤的至少一个硬件设备。

本发明的这些和其它特征和优点将从附图和以下详细的描述中变得更加显而易见。

附图说明

图1示出其中实现本发明的一个或多个实施例的示例性虚拟化环境;

图2示出与图1中的给定的加密管道的上下文有关的示例性伪代码;

图3和图4分别示出根据本发明的一个实施例的用于加密系统调用和解密系统调用的示例性伪代码;

图5示出其中可以实现本发明的一个或多个实施例的具有一个或多个虚拟交换机和/或路由器的可替代的示例性虚拟化环境;

图6和图7分别示出在图5中的示例性虚拟化环境中使用的用于加密系统调用和解密系统调用的示例性伪代码;

图8示出在其上实现本发明的一个或多个实施例的处理平台。

具体实施方式

本发明的说明性实施例将在此参考示例性虚拟化环境、计算系统、通信系统、处理平台、网络、网络节点、网络元件和相关联的通信协议来描述。然而,应当理解,本发明的实施例不限于与所描述的特定布置一起使用,而是更普遍地适用于期望通过禁用不必要的功能(诸如不必要的加密和解密功能)来提供改进的性能的任何虚拟化环境。

本发明的各方面认识到,在虚拟化环境中,通常对共享公共主机并且因此处于同一个管理程序的控制之下的两个虚拟机之间的业务(traffic)执行冗余的加密和解密操作。根据本发明的一个实施例,对共享公共主机的两个虚拟机之间的业务禁用冗余的加密和解密操作。例如,在一个示例性实施例中,管理程序应用内省技术以在运行时检查通信的上下文,以确定对指定的通信是否需要进行加密和/或解密操作。

图1示出了其中可以实现本发明的一个或多个实施例的示例性虚拟化环境100。如在图1中所示,至少两个示例性虚拟机110-1和110-2位于同一个主机150上。两个示例性虚拟机110-1和110-2使用管理程序120实现并通过加密管道135进行通信。管理程序120在主机150的物理基础设施上运行。加密管道135的参数包括上下文140。加密管道135例如可以应用网际协议安全(ipsec)以通过对通信会话的每个ip分组进行认证和加密来保护加密管道135上的网际协议(ip)通信。在进一步的变形中,加密管道135例如可以应用传输层安全(tls)来保护加密管道135。然而,应当注意,本发明可以应用于端点之间的所有可能的隧道协议,这对于本领域的普通技术人员是显而易见的。

可以用于实现本发明的一个或多个实施例中的管理程序120和系统的其它部分的商业化管理程序平台的示例是kvm(基于内核的虚拟机)管理程序或xen管理程序。此外,如在下面结合图5进一步所讨论的,示例性管理程序120可以可选地具有相关联的虚拟基础设施管理系统,诸如云业务流程和管理系统(例如,来自阿尔卡特-朗讯(法国,布洛涅-比扬古)的cloudbandtmnfv平台)或操作支持系统(诸如来自阿尔卡特-朗讯(法国,布洛涅-比扬古)的服务感知管理器(serviceawaremanager)tm(sam))。底层物理机器(例如,主机150)可以包括一个或多个包括存储产品的分布式处理平台。

示例性虚拟化环境100还包括在管理程序120的控制下在虚拟机110-1、110-2上运行的一个或多个应用(未示出)。

如在下面结合图2进一步所讨论的,加密管道135的示例性上下文140包括两个示例性虚拟机110-1和110-2的ip地址、加密管道135所需的加密键控材料、端口号(例如,在tls的情况下)和其它隧道参数。

然而,在图1中的实施例中,在两个虚拟机110-1和110-2共享公共主机150的情况下,加密管道135上不涉及实际联网,因为“消息”是管理程序120的存储器的片段。在一个示例性实现中,两个示例性虚拟机110-1与110-2之间的通信被暂时存储在消息缓冲器130中以用于传送。从源虚拟机(诸如虚拟机110-1)接收的每个协议数据单元(即,每个消息)用常规技术被传递到管理程序120,其对所接收的消息进行加密并将加密的消息存储在消息缓冲器130中。然后,管理程序120复制消息缓冲器130中的内容,并对加密的消息进行解密,以用于传送到目标虚拟机,诸如虚拟机110-2。

如上所述,本发明的各方面通过对在具有公共主机的两个虚拟机110-1与110-2之间的加密管道135上的业务禁用指定的加密操作和相关联的解密操作来减少一个或多个冗余的加密和解密操作。在一个示例性实施例中,管理程序应用内省技术在运行时检查通信的上下文140,以确定对指定的通信是否需要进行加密和/或解密操作。

在一个示例性实现中,管理程序120检测到一个虚拟机(诸如虚拟机110-1)在尝试利用对加密隧道协议(诸如tls或ipsec)的调用设置断点来与在同一个主机150上的另一个虚拟机(诸如虚拟机110-2)建立密码保护隧道,以建立加密管道135(例如,隧道)。一旦建立了加密管道135,管理程序120学习上下文140并将上下文140存储在与两个虚拟机110相关联的数据结构(在下面结合图2进一步讨论)中。

如在下面结合图3和图4进一步所讨论的,管理程序120评估每个后续系统调用(从虚拟机110-1或110-2)上涉及加密调用的上下文140。然而,当虚拟机110在同一个主机120上时,管理程序120不执行加密/解密操作。相反,在加密调用时,示例性管理程序120像加密发生一样返回系统调用(例如,确认),并将消息缓冲器130不加密地传递到目标虚拟机。类似地,管理程序120忽略随后的解密消息缓冲器130的内容的调用。

此外,如在图1中所示,示例性管理程序120应用一个或多个系统调用陷阱160来虚拟化某些指令的执行。通过这种方式,指令被发现并用陷阱160替换到要用软件通过已知的方式仿真的虚拟机环境中。

图2-4示出了本发明的示例性ipssec实现的示例性伪代码。基于本公开,用于可替代本发明的实现(诸如tls实现)的适当的伪代码对于本领域的普通技术人员是显而易见的。例如,对于tls实现,上下文140包括源—目标端口,这对于本领域的普通技术人员是显而易见的。

图2示出了与指定的加密管道135的上下文140有关的示例性伪代码200。如在图2中所示,示例性伪代码200包括用于创建存储上下文140的数据结构的代码210。示例性上下文140包括指向示例性ipsec协议组的因特网密钥交换(ike)上下文(其中存储加密管道135所需的加密键控材料)的指针。此外,上下文140的示例性数据结构包括与加密管道135相关联的两个示例性虚拟机110-1和110-2的ip地址。

此外,创建上下文数据结构的示例性代码210包括用于在虚拟化环境100中启用合法拦截(li)的部分。

示例性伪代码200还包括用于处理ipsec密钥交换系统调用的调用的处理程序例程220。如在图2中所示,在ipsec密钥交换系统调用时,如果目标地址属于本地虚拟机100,则建立ike上下文。

图3示出了根据本发明的一个实施例的用于加密系统调用300的示例性伪代码。如在图3中所示,在加密系统调用300时,处理程序通过首先确定是否存在用于当前主机150上的通信的上下文(由图2中的伪代码200创建的ike_context)来处理传入消息。如果存在上下文(即,在通信中涉及的两个虚拟机在同一个主机上),则示例性加密系统调用300不加密通信。如果不存在上下文(即,在通信中涉及的两个虚拟机不在同一个主机上),则示例性加密系统调用300通过常规方式继续进行ipsec加密。

图4示出了根据本发明的一个实施例的用于解密系统调用400的示例性伪代码。如在图4中所示,在解密系统调用400时,处理程序通过首先确定是否存在用于当前主机150上的通信的上下文(由图2中的伪代码200创建的ike_context)来处理传入消息。如果存在上下文(即,在通信中涉及的两个虚拟机在同一个主机上),则示例性解密系统调用400不解密通信。如果不存在上下文(即,在通信中涉及的两个虚拟机不在同一个主机上),则示例性解密系统调用400通过常规方式继续进行ipsec解密。

图5示出了其中可以实现本发明的一个或多个实施例的具有一个或多个虚拟交换机和路由器的可替代的示例性虚拟化环境500。如在图5中所示,至少两个示例性虚拟机510-1和510-2位于同一个主机550上。两个示例性虚拟机510-1和510-2使用管理程序520实现并通过加密管道535进行通信。管理程序520通过与图1中的实施例类似的方式在主机550的物理基础设施上运行。加密管道535和相关的上下文540可以通过与图1中的实施例类似的方式来实现。示例性虚拟化环境500还包括在管理程序520的控制下在虚拟机510-1、510-2上运行的一个或多个应用(未示出)。

如在图5中所示,示例性虚拟化环境500包括一个或多个虚拟交换机537和/或一个或多个路由器539。在存在虚拟交换机537和/或路由器539的情况下,必须注意,消息可以不被其它虚拟机拦截。在合法拦截的情况下,这些机制将有助于拦截。

在图5中的实施例中,两个虚拟机510-1和510-2通过与图1中的实施例类似的方式共享公共主机550。在一个示例性实现中,两个示例性虚拟机510-1与510-2之间的通信被暂时存储在消息缓冲器530中以用于传送。如上所述,本发明的各方面通过对在具有公共主机的两个虚拟机510-1与510-2之间的加密管道535上的业务禁用指定的加密操作和相关联的解密操作来减少一个或多个冗余的加密和解密操作。在一个示例性实施例中,管理程序520应用内省技术在运行时检查通信的上下文540,以确定对指定的通信是否需要进行加密和/或解密操作。

在一个示例性实现中,管理程序520检测到一个虚拟机(诸如虚拟机510-1)在尝试与同一个主机550上的另一个虚拟机(诸如虚拟机510-2)建立密码保护隧道,并且开始了解上下文540。然后,管理程序520利用复制消息缓冲器530在虚拟机510-1与虚拟机510-2之间直接传送实际消息。交换机537和路由器539被馈送在接收时被忽略的假消息(dummymessage)(例如,具有随机或全零有效载荷)。

操作支持系统(oss)560使能在融合的ip网络中的所有域上的端对端网络和服务管理。示例性操作支持系统560提供统一的操作,无论网络服务是在虚拟化环境中运行还是在专用硬件平台上运行。示例性操作支持系统560例如可以使用阿尔卡特-朗讯的服务感知管理器(sam)来具体化。

云管理系统570可选地编排、自动化和改进在服务提供商的分布式网络和数据中心上的虚拟网络功能。云管理系统570例如可以使用阿尔卡特-朗讯的cloudband管理系统来具体化。通常,云管理系统570可选地聚合分布式云节点并提供整个nfv基础设施的视图作为单个运营商级的池。

示例性操作支持系统560和/或示例性云管理系统570可以发布用于创建和/或删除指定上下文的直接指令。

图6示出了在图5中的示例性虚拟化环境500中使用的用于加密系统调用600的示例性伪代码。如在图6中所示,在加密系统调用600时,处理程序通过首先确定是否存在用于当前主机550上的通信的上下文(由图2中的伪代码200创建的ike_context)来处理传入消息。如果存在上下文(即,在涉及通信的两个虚拟机在同一个主机上),则示例性加密系统调用600将未加密的消息放置在缓冲器530或目标虚拟机510内的队列中,并将全零(或随机)条目返回到调用者。如果不存在上下文(即,在通信中涉及的两个虚拟机不在同一个主机上),则示例性加密系统调用600通过常规方式继续进行ipsec加密。

图7示出了在图5中的示例性虚拟化环境500中使用的用于解密系统调用700的示例性伪代码。如在图7中所示,在解密系统调用700时,处理程序通过首先确定是否存在用于当前主机550上的通信的上下文(由图2中的伪代码200创建的ike_context)来处理传入消息。如果存在上下文(即,在通信中涉及的两个虚拟机在同一个主机上),则示例性解密系统调用700将原始(未加密的)消息定位在消息缓冲器530内的适当队列中,并返回原始消息(并丢弃输入的内容)。如果不存在上下文(即,在通信中涉及的两个虚拟机不在同一个主机上),则示例性解密系统调用700通过常规方式继续进行ipsec解密。

在在此描述的虚拟机110、510中的一个被移动到另一个主机150、550的情况下,重要的是恢复对不再在同一个主机上的两个虚拟机之间的通信的加密。在这种情况下,禁用加密的管理程序120、520将在检测到虚拟机已被移动时恢复加密。该检测可以通过上下文140、540的变化而被触发,这些变化通过几种方式(例如,虚拟机(诸如虚拟机510-2)的终止,或者来自操作支持系统560或云业务流程管理系统570的动作)进行通知。

在合法拦截的情况下,所涉及的通信流可以用上面的机制不加密地转发以用于拦截。通信流选择的粒度可以可选地缩小到特定的(ip地址、端口)对。这种布置将独立于性能优化的需要而工作。通过这种方式,所拦截的通信数据可以被提供给授权机构。

图8示出了在其上实现本发明的一个或多个实施例的处理平台800。在此实施例中的处理平台800包括指定系统的至少一部分,并且包括通过网络804彼此进行通信的多个处理设备,标记为802-1、802-2、802-3、……、802-d。网络804可以包括任何类型的网络,诸如无线区域网络(wan)、局域网络(lan)、卫星网络、电话或电缆网络、蜂窝网络、诸如wifi或wimax的无线网络、或这些和其它类型的网络的各种部分或组合。

处理平台800中的处理设备802-1包括耦合到存储器812的处理器810。处理器810可以包括微处理器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)或其它类型的处理电路,以及这样的电路元件的部分或组合,存储器812,其可被视为具有在其中具体化的可执行计算机程序代码的“计算机程序产品”的示例,其可以包括随机存取存储器(ram)、只读存储器(rom)或采用任意组合的其它类型的存储器。

处理设备802-1中还包括网络接口电路814,其被用于将处理设备与网络804和其它系统组件通过接口连接,并且可以包括常规的收发信机。

假设处理平台800中的另一个处理设备802通过与图中的处理设备802-1所示的类似的方式进行配置。

同样,在图中所示的特定的处理平台800仅仅是通过示例的方式呈现的,指定的系统可以包括附加的或可替代的处理平台,以及采用任意组合的许多不同的处理平台,每个这样的平台包括一个或多个计算机、存储设备或其它处理设备。

系统的多个元件可以在图1、5或8中所示的类型的公共处理平台上集体实现,或者每个这样的元件可以在单独的处理平台上实现。

如在本领域中已知的,在此讨论的方法和装置可以作为制造产品分布,该制造产品本身包括具有在其上具体化的计算机可读代码形式的计算机可读介质。计算机可读程序代码形式可以与计算机系统结合操作以执行在此讨论的全部或部分步骤,来执行在此讨论的方法或创建在此讨论的装置。计算机可读介质可以是有形的可记录介质(例如,软盘、硬盘驱动器、光盘、存储卡、半导体器件、芯片、专用集成电路(asic)),或者可以是传输介质(例如,包括光纤、万维网、电缆、或使用时分多址、码分多址的无线信道或其它射频信道的网络)。可以使用能够存储适于与计算机系统一起使用的信息的已知或开发的任何介质。计算机可读代码形式是允许计算机读取指令和数据的任何机制,诸如磁介质上的磁性变化或光盘的表面上的高度变化。

尽管在本文中在使用特定通信协议的通信网络和系统的上下文中描述了某些说明性实施例,但是也可以在其它实施例中使用其它类型的网络和系统。如上所述,在本文中使用的术语“网络”或“系统”因此旨在被广义地解释。此外,应当强调的是,以上所描述的实施例仅仅是为了说明的目的,不应当被解释为以任何方式进行限制。其它实施例可以使用不同类型的网络、系统、设备和模块配置,以及可替代的通信协议、过程步骤和操作,以用于实现安全功能。在其它实施例中,用户设备和网络节点进行通信的特定方式可以变形。此外,应当理解,在描述说明性实施例的上下文中作出的特定假设不应当被解释为本发明的要求。本发明可以在其中这些特定假设不应用的其它实施例中实现。在所附权利要求的范围内的这些和许多其它可替代的实施例对于本领域的技术人员将是非常显而易见的。

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