管理虚拟网络的方法与系统的制作方法

文档序号:7895307阅读:221来源:国知局
专利名称:管理虚拟网络的方法与系统的制作方法
技术领域
本公开内容涉及把虚拟网络覆盖(overlay)到物理网络上。更特别地,本公开内容涉及利用逻辑上定义虚拟机之间的数据遍历的策略管理虚拟网络。
背景技术
物理网络包括在主机计算系统、存储位置和其他计算实体之间传输数据的交换机与路由器。用于传输数据的传统联网协议典型地基于开放系统互联(OSI)模型,该模型包括物理层、数据链路层、网络传输层、会话层、呈现层和应用层。当发起实体向目的地实体发送数据时,这些联网协议在一定程度上典型地附连对驻留在物理网络内的联网实体(例如,路由器、交换机,等等)的参考。

发明内容
根据本公开内容的一种实施方式,提供了一种方法,其中策略模块接收由第一虚拟机发起并具有在第二虚拟机的目的地的数据。该策略模块选择与从第一虚拟机向第二虚拟机发送数据相对应的策略。该策略包括对一个或多个虚拟网络的一个或多个逻辑参考,而且不包括对位于物理网络上的物理实体的物理参考。该策略模块又利用基于所选策略的物理路径变换封装数据,而且将经封装的数据在物理网络上发送到对应于第二虚拟机的第二策略模块。以上是概述,因而必然包含对细节的简化、概括和忽略;因此,本领域技术人员将认识到,概述仅仅是例示性的,而不是要以任何方式进行限定。如完全由权利要求所限定的,本公开内容的其他方面、创新特征和优点将在以下所阐述的非限制性具体描述中变得明显。


通过参考附图,可以更好地理解本公开内容,而且其许多目的、特征和优点将对本领域技术人员变得明显,附图中图I是示出覆盖到物理空间上的虚拟网络抽象的图;图2A是示出在主机系统上执行的分布式覆盖虚拟网络(DOVE)模块的图,该主机系统提供虚拟机之间的端到端的虚拟网络环境;图2B是示出在虚拟网络中逻辑耦接的虚拟机的图;图3是示出“发起”虚拟机通过基于逻辑策略的物理网络把数据发送到“目的地”虚拟机的图;图4是示出目的地模块向发起模块通知虚拟机已经重新定位到不同主机的图;图5是示出基于层次的策略服务的图;图6是示出DOVE模块向分布式策略服务查询更新后的策略的图;图7是示出在通过物理网络把数据从发起虚拟机(VM)发送到目的地虚拟机中所采取的步骤的流程图;图8是示出在DOVE模块从分布式策略服务获取更新后的策略中所采取的步骤的流程图;图9是示出在目的地模块向发起模块通知从该发起模块接收到的策略已过时(deprecate)中所采取的步骤的流程图;图10是示出对应于发起和目的地虚拟机的策略的表;图11是其中可以实现在此所述方法的数 据处理系统的框图;及图12提供对图11中所示的信息处理系统环境的扩展,用以例示在此所述的方法可以在运行于联网环境中的广泛多种信息处理系统上执行,例如网络路由器、网关和装置。
具体实施例方式在此所使用的术语仅仅是为了描述特定的实施方式,而不是要成为对本公开内容的限制。如在此所使用的,单数形式的“一个”和“该”是要也包括复数形式,除非上下文清楚地另外指示。还将理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整体、步骤、操作、元素和/或部件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元素、部件和/或其组的存在或添加。以下权利要求中所有装置或步骤加上功能元件的对应结构、材料、动作和等同物都是要包括用于与其它所请求保护的元件相组合而执行所述功能的任何结构、材料或者动作,就象明确声明的那样。给出对本公开内容的描述是为了例示和描述的目的,而不是要详尽或者把本公开内容限制到所公开的形式。许多修改和变化对本领域普通技术人员都将是显而易见的,而不会脱离本公开内容的范围与精神。对实施方式的选择和描述是为了最好地解释本公开内容的原理和实践应用,并且使本领域其他普通技术人员能够理解本公开内容具有适合预期特定使用的各种修改的各种实施方式。如本领域技术人员将认识到的,本公开内容的各方面可以体现为系统、方法或者计算机程序产品。相应地,本公开内容的各方面可以采取完全硬件实施方式、完全软件实施方式(包括固件、驻留软件、微代码,等等)或者组合软件和硬件方面的实施方式,在这里全都可以总体上称为“电路”、“模块”或者“系统”。此外,本公开内容的各方面可以采取包含在一种或多种计算机可读介质中的计算机程序产品的形式,其中在计算机可读介质上包含了计算机可读程序代码。可以使用一种或多种计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以是,例如但不限于,电、磁、光、电磁、红外或者半导体系统、装置或设备或者以上所述的任意合适组合。计算机可读存储介质的更具体例子(非详尽列表)将包括以下具有一条或多条电线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPR0M或者闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或者以上所述的任意合适组合。在本文档的背景下,计算机可读存储介质可以是可包含或者存储用于由指令执行系统、装置或设备使用或者与其相关使用的程序的任何有形介质。计算机可读信号介质可以包括例如在基带中或者作为载波的一部分的传播的数据信号,在所述数据信号中包含了计算机可读程序代码。这种传播的信号可以采取多种形式中的任意一种,包括但不限于,电磁、光或者其任意合适组合。计算机可读信号介质可以是非计算机可读存储介质而且可以传送、传播或者传输用于由指令执行系统、装置或设备使用或者与其相关使用的程序的任何计算机可读介质。包含在计算机可读介质上的程序代码可以利用任何适当的介质发送,包括但不限于无线、有线、光纤线缆、RF等或者以上所述的任意合适组合。用于执行本公开内容各方面的操作的计算机程序代码可以用一种或多种编程语H的任意组合来书写,包括面向对象的编程语目(例如,Java、Smalltalk、C++等)及传统的过程性编程语言(例如,“C”编程语言或者类似的编程语言)。程序代码可以完全在用户的计算机上、部分地在用户的计算机上、作为独立的软件包、部分在用户的计算机上而部分在远端计算机上或者完全在远端的计算机或者服务器上执行。在后一种场景下,远端计算机可以通过任何类型的网络连接到用户的计算机,这些网络包括局域网(LAN)或者广域网(WAN),或者可以连接到外部计算机(例如,通过利用互联网服务提供商的互联网)。以下参考根据本公开内容实施方式的方法、装置(系统)和计算机程序产品的流程 图例示和/或框图来描述本公开内容的各方面。将理解,流程图例示和/或框图中的每一块及流程图例示和/或框图中的块组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或者其它可编程数据处理装置的处理器,来产生一种机器,使得经计算机或其它可编程数据处理装置的处理器执行的指令产生用于实现在流程图和/或框图块中指定的功能/动作的装置。这些计算机程序指令还可以存储在计算机可读介质中,这些计算机程序指令可以指示计算机、其它可编程数据处理装置或者其它设备以特定的方式运作,使得存储在计算机可读介质中的指令产生一种制造品,该制造品包括实现在流程图和/或框图块中指定的功能/动作的指令。计算机程序指令还可以加载到计算机、其它可编程数据处理装置或者其它设备上,使得在计算机、其它可编程装置或者其它设备上执行一系列操作步骤,以产生一种计算机实现处理,从而在计算机或者其它可编程装置上执行的指令提供用于实现在流程图和/或框图块中指定的功能/动作的处理。以下具体描述将总体上遵循如上所述本公开内容的概述,在必要时进一步解释和扩展本公开内容的各方面与实施方式的定义。图I是示出覆盖到物理空间上的虚拟网络抽象的图。虚拟网络100包括在虚拟机(例如,虚拟机102-110)之间提供端到端虚拟连接的策略(例如,策略103-113)。每个虚拟网络100都对应于唯一的一个虚拟标识符。这允许多个虚拟网络在物理空间120上的并发操作。如本领域技术人员可以认识到的,有些虚拟网络100可以包括虚拟机102-110中的一部分,而其他虚拟网络100可以包括与图I中所示不同的虚拟机和不同的策略。当“发起”虚拟机把数据发送到“目的地”虚拟机时,对应于这两个虚拟机的策略描述数据在其上行进(例如,通过防火墙、通过加速器,等等)的逻辑路径。换句话说,策略103-113定义不同的虚拟机如何彼此(或者与外部网络)通信。例如,策略可以定义一组虚拟机之间的服务质量(QoS)要求;与特定虚拟机相关联的访问控制;或者当发送或接收数据时要遍历的一组虚拟或物理装置(设备)(对于更多细节,见图10和对应的文字)。此外,有些装置可以包括诸如压缩、IP安全(IPSec)、SSL的加速器或者诸如防火墙或入侵检测系统的安全装置。此外,策略可以配置成不允许发起虚拟机与目的地虚拟机之间的通信。虚拟网络100逻辑上覆盖到物理空间120,物理空间120包括物理实体,例如交换机125-140、服务器150-170和路由器175-180及各种装置(例如,防火墙)。尽管策略在系统中实施的方式影响并依赖于物理空间120,但是虚拟网络100更依赖于策略中的逻辑描述。由此,多个虚拟网络100可以覆盖到物理空间120。在一种实施方式中,虚拟网络抽象支持不同虚拟网络100之间的地址独立。例如,运行在两个不同虚拟网络中的两个不同的虚拟机可以具有相同的IP地址。作为另一个例子,虚拟网络抽象支持把属于相同虚拟网络的虚拟机部署到位于不同物理子网(包括物理实体之间的交换机和/或路由器)中的不同主机上。在另一种实施方式中,属于不同虚拟网络的虚拟机可以在相同的物理主机上被主控(host)。在还有另一种实施方式中,虚拟网络抽象支持在数据中心中任何地方的虚拟机迁移,而不改变虚拟机的网络地址和丢失其网络连接。 图2A是示出在主机系统上执行的分布式覆盖虚拟网络(DOVE)模块的图,该主机系统提供虚拟机之间的端到端的虚拟网络环境。物理空间200包括主机205-265,这些主机支持在硬件交换机/路由器292之上彼此通信的虚拟机操作(虚拟机220-290)。每个主机205-265都采用一个包括分布式覆盖虚拟网络(DOVE)模块(DOVE模块215-275)的软件交换机(交换机210-270)。DOVE模块215-275利用基于策略的物理路径变换封装数据,并把经封装的数据在DOVE模块215-275之间发送,该经封装的数据继而又被解除封装并转发到目的地虚拟机。策略以逻辑方式描述数据需要如何在虚拟网络上发送,而不需要执行特定任务的底层物理实体的细节(对于进一步的细节,见图2B、10及对应的文字)。图2B是示出在虚拟网络中逻辑耦接的虚拟机的图。虚拟空间295代表逻辑形式的物理空间200。如可以看到的,虚拟机220-290彼此在虚拟网络299上通信。虚拟网络299代表虚拟机之间的连接性,其由虚拟机的对应策略定义。例如,策略“A”可以规定从虚拟机220发送到虚拟机290的数据必须通过防火墙。尽管该策略从逻辑上描述了数据路径,但是该策略并没有定义数据必须行进的物理路径(例如,物理实体地址)。图3是示出“发起”虚拟机通过基于策略的虚拟网络把数据发送到“目的地”虚拟机的图。物理空间340包括覆盖的虚拟网络,主机300和主机320在该虚拟网络上通信。主机300包括虚拟机305-310和DOVE模块315。通过在向/从另一个虚拟机发送/接收数据之前利用对应于策略的物理路径变换封装/解除封装数据,DOVE模块315管理进/出虚拟机305-310的数据吞吐量。主机320包括虚拟机325-330和DOVE模块335。通过在于物理网络上向/从另一个虚拟机发送/接收数据之前封装/解除封装该数据,DOVE模块335管理进/出虚拟机325-330的数据吞吐量。在其他实施方式中,DOVE模块315和335可以实现为软件模块、硬件扩展、和/或该模块对应的主机内的网卡的一部分。图3示出了当虚拟机305向虚拟机325发送数据时的一种实施方式。如本领域技术人员可以认识到的,任何虚拟机305-330都可以向任何其他虚拟机(包括同一主机上的虚拟机)发送数据。虚拟机305发起数据发送,DOVE模块315截取该数据发送。在这种实施方式中,虚拟机305是发起虚拟机,而DOVE模块315是发起模块。DOVE模块315识别对应的虚拟网络,并获取与虚拟机305和“目的地”虚拟机325相对应的策略。在一种实施方式中,DOVE模块315检查其本地高速缓存,并且,如果策略不可获,则DOVE模块315向DOVE分布式策略服务345查询该策略。在一种实施方式中,DOVE模块315向DOVE分布式策略服务345提供发起(源)虚拟机标识符、目的地虚拟机标识符,而且还可以提供协议标识符和/或端口信息。DOVE分布式策略服务345继而向DOVE模块315提供对应的物理路径变换。在这种实施方式中,DOVE分布式策略服务345维护虚拟定义和物理定义,以便把逻辑策略变换成物理路径变换。虚拟策略定义描述数据遍历要求,例如来自虚拟网络I的针对虚拟网络2的数据必须通过防火墙。物理定义包括例如虚拟机的对应的物理主机和物理实体属性(例如,防火墙,等等)。DOVE分布式策略服务345是基于层次的策略服务,其管理物理网络内的策略(对于进一步的细节,见图5、6、8和对应的文字)。一旦DOVE模块315获取了对应于策略的物理路径变换,DOVE模块315就利用物理路径变换封装数据,并把经封装的数据通过“目的地” DOVE模块335发送到“目的地”虚拟机325。该实施方式示出策略规定数据要通过防火墙(防火墙350)和互联网安全系统(ISS 355)。该策略没有指定物理实体(例如,防火墙或者ISS),而是从逻辑上指定该数据通过防火墙和ISS (对于进一步的细节,见图10和对应的文字)。目的地DOVE模块335对数据解除封装,并确定对应于用于封装的物理路径变换的策略是否已过时(过期)。例如,DOVE模块315可能从其本地高速缓存中检索到了过期的策略用来封装数据。在一种实施方式中,通过把由封装头所使用的策略的策略号更新发送到DOVE分布式策略服务345,DOVE模块335确定用于封装的策略是否是最新的。如果策略是最新的,则DOVE分布式策略服务345发送确认。另一方面,如果策略是旧的,则DOVE分布式策略服务345可以发送新的策略。如果策略是最新的,则DOVE模块335把数据转发到虚拟机325。然而,如果DOVE模块335检测到已过时的策略,则DOVE模块335经由控制消息312通知DOVE模块315。在一种实施方式中,DOVE模块335可以在控制消息312中包括更新后的策略。如果控制消息312不包括更新后的策略,则DOVE模块315可以向DOVE分布式策略服务345查询更新后的策略。DOVE模块335还可以基于预先确定的配置参数来确定是拒绝数据还是把数据转发到虚拟机325。(对于进一步的细节,见图9和对应的文字)。图4是示出目的地模块向发起模块通知虚拟机已经重新定位到不同的主机的图。图4与图3类似,只是虚拟机325移动到不同的主机(主机400),例如是为了平衡主机之间的工作负荷。当虚拟机325移动到主机400时,DOVE模块410把更新信息发送到DOVE分布式策略服务345,DOVE分布式策略服务345更新其策略信息,即虚拟机325现在被主机400主控。DOVE模块315从其本地主机检索策略,该策略是过时的,因为它指示虚拟机325仍然驻留在主机320。由此,DOVE模块315利用对应的已过时的物理路径变换封装数据,这导致从DOVE模块315到DOVE模块335的数据遍历。DOVE模块335继而把控制消息420发送到DOVE模块315,通知DOVE模块315该策略是已过时的。由此,DOVE模块315从DOVE分布式策略服务345检索更新的策略,该更新的策略指示虚拟机325驻留在主机400上。DOVE模块315继而利用对应的更新的物理路径变换封装数据,并相应地通过DOVE模块410把数据发送到虚拟机325。策略可能因为除以上所讨论之外的其他原因而变得过时。例如,逻辑可能被虚拟化管理员或者管理工具修改。在这个例子中,逻辑策略的序列号改变了(对于进一步的细节,见图5和对应的文字)。逻辑策略变化一般又会导致物理路径变换。图5是示出基于层次的策略服务的图。在一种实施方式中,分布式策略服务(DPS)500包括一组通过一个或多个管理授权部(authority)维护策略的应用服务器。在这种实施方式中,每个管理授权部都可以动态地添加策略、除去策略、更新策略和委派(delegate)新的策略授权部。分布式策略服务500包括逻辑层次结构。因此,分布式策略服务500包括根区510,这个根区包括根策略服务器515-525。每个根策略服务器515-525可以连接到其他的主策略授权部,而且每个策略授权部连接到每个其委派的策略授权部(服务器535、550和560)。分布式策略服务500的层次性结构确保服务的可伸缩性,即使是在非常大的系统中,其中通过服务器复制获得鲁棒性和高可用性。这种层次性 结构还通过让每个管理员独立地维护其自己的一组服务器来使得可以进行隔离。当管理员创建新的管理授权部(策略域)时,创建策略服务器实例并将其连接到根服务器。在一种实施方式中,策略服务器实例公开一组接口,并允许域管理员创建、改变或者除去与一个域中的每个虚拟网络和虚拟机相关联的策略。此外,也可以创建子域(委派)(服务器540),该子域除连接到父域而不是根域之外就象一般的域一样作用。每个DOVE模块和服务器都可以维护存储先前被请求的策略的高速缓存。在一种实施方式中,为了处理策略更新,每个策略都可以与一个序列号关联,在每次策略更新时该序列号增加。在这种实施方式中,已过时的策略很容易被其他实体或者被策略服务检测到。如可以看到的,分布式策略服务包括策略信息服务器和策略参考服务器。策略信息服务器存储策略及对应的物理路径变换。策略参考服务器存储指示哪个策略信息服务器负责特定策略和/或虚拟网络的参考 目息。图6是示出DOVE模块向分布式策略服务查询更新的策略的图。主机600包括虚拟机605和610,这些虚拟机在物理网络上与虚拟机675 (驻留在主机670上)通信。DOVE模块615截取来自虚拟机605的数据,并确定本地高速缓存620是否包括对应于虚拟机605和虚拟机675的策略。如果包括,则DOVE模块封装数据并把经封装的数据通过DOVE模块680转发到虚拟机675。当高速缓存620不包括对应的策略时,DOVE模块615查询包括在DOVE分布式策略服务630中的虚拟网络策略服务器645,该服务器管理关于虚拟机605所属的虚拟网络的策略。在一种实施方式中,用于不同虚拟网络(例如,虚拟机610是不同虚拟网络的一部分)的策略服务器可以同定位,并根据请求中所包括的虚拟网络标识符区分来自DOVE模块615的策略请求。DOVE分布式策略服务630是基于层次的,而且,当虚拟网络策略服务器645不包括要发送到DOVE模块615的对应策略时,虚拟网络策略服务器645向根策略服务器650查询策略。根策略服务器650继而可以向虚拟网络策略服务器645发送策略,或者关于用于查询该策略的另一个服务器的指示(例如,虚拟网络策略服务器655的ID)。如果后者发生,则虚拟网络策略服务器645向虚拟网络策略服务器655查询更新的策略。一旦虚拟网络策略服务器645获取了更新的策略,虚拟网络策略服务器645就把更新的策略发送到DOVE模块615,而DOVE模块615把该策略存储在本地高速缓存620中,用于后续使用(对于进一步的细节,见图8和对应的文字)。
在一种实施方式中,虚拟网络策略服务器645向DOVE模块615通知虚拟网络策略服务器655负责所请求的策略。在这种实施方式中,DOVE模块615向虚拟网络策略服务器655查询策略。图7是示出在DOVE模块封装由虚拟机(VM)发起的数据并把经封装的数据在物理网络上发送到目的地DOVE模块中所采取的步骤的流程图,其中目的地DOVE模块对数据解除封装并把经解除封装的数据转发到目的地虚拟机。处理在700开始,随后分布式覆盖虚拟网络(DOVE)模块在步骤705截取由虚拟机708发送的数据。截取来自发起虚拟机708的数据的模块在这里被称为“发起”模块,例如图3中所示的DOVE模块315。发起模块通过一系列步骤获取基于对应于发起虚拟机708和目的地虚拟机(目的地VM 785)的策略的物理路径变换,这一系列步骤包括当发起模块在本地高速缓存中不包括特定的策略时访问分布式策略服务712。策略从逻辑上描述数据应当如何遍历通过物理网络725 (对于进一步的细节,见图10和对应的文字)。接下来,发起模块封装数据(步骤715),并通过物理网络725把经封装的数据发送 到目的地虚拟机(步骤720)。在一种实施方式中,发起模块利用对应于策略的物理路径变换来封装数据。该物理路径变换是根据对应策略从逻辑环境到物理网络的变换。此外,预先存在的策略也可以由物理网络管理员实现。在这种实施方式中,物理网络管理员可以实现包括几种可能策略的静态配置,这些策略最终变换成物理网络路径。在这种实施方式中,DOVE策略服务把逻辑策略映射到物理网络策略/路径,并通过在包的正确路径(例如,MPLS标志、物理网络中的VLAN、封装头中的源路由,等等)上发送包来实施这些逻辑策略。在另一种实施方式中,从虚拟概念/实体方面阐述的策略定义与从物理概念/实体方面阐述的策略实施之间的变换可以通过流量规划技术(traffic engineeringtechnique)(例如,以上所讨论的那些和/或新开发出的技术(例如,专有的封装协议))动态地获得。目的地模块处理在745开始,随后目的地模块在750接收经封装的数据。目的地模块是对应于目的地虚拟机的DOVE模块,例如图3中所示的DOVE模块335。目的地模块在步骤755对数据解除封装,并确定封装数据的物理路径变换是否是过时的(判决760)。在一种实施方式中,通过把由封装头所使用的策略的策略号更新发送到DOVE分布式策略服务345,DOVE模块335确定用于封装的策略是否是最新的。如果策略是最新的,则DOVE分布式策略服务345发送确认。另一方面,如果策略是旧的,则DOVE分布式策略服务345可以发送新的策略。如果物理路径变换不是过时的,则判决760进行到“否”分支763,随后目的地模块在步骤780把数据转发到目的地虚拟机785,并在790结束。另一方面,如果物理路径变换是已过时的,则判决760进行到“是”分支762,随后目的地模块前进通过一系列策略更新步骤,其中一个步骤包括向发起模块通知最近发送的策略是过时的(预先定义的处理块735,对于进一步的细节,见图9和对应的文字)。回过头来参考发起模块,发起模块确定它是否从目的地模块接收到指示策略过时的控制消息(判决730)。如果发起模块没有接收到控制消息,则判决730进行到“否”分支738,随后处理在740结束。另一方面,如果发起模块接收到控制消息,则判决730进行到“是”分支732,随后发起模块例如从目的地模块或者分布式策略服务712 (预先定义的处理块735,对于进一步的细节,见图9和对应的文字)获取更新的策略。
回过头来参考目的地模块,目的地模块确定是否把利用过时物理路径变换封装的数据转发到目的地虚拟机785 (判决765)。如果目的地模块确定不转发该数据(例如,基于预先配置的参数),则判决765进行到“否”分支767,随后处理在770结束。另一方面,如果目的地模块决定处理该数据,则判决765进行到“是”分支769,随后目的地模块在步骤780把数据转发到目的地虚拟机785,并在790结束。图8是示出在DOVE模块从分布式策略服务获取更新的策略中所采取的步骤的流程图。发起模块策略获取在800开始,随后发起模块识别对应于在图7中所截取的数据的发起虚拟机和目的地虚拟机(步骤805)。在步骤810,发起模块识别发起虚拟机与目的地虚拟机之间的通信会话的虚拟属性(通信会话属性),并从其本地高速缓存812检查对应的策略。一般来说,可以每通信会话属性地定义策略。在一种实施方式中,策略对应于一个或多个准则,例如识别出的虚拟网络(发起虚拟机和目的地虚拟机可以在不同的虚拟网络上);发起虚拟机;目的地虚拟机;由例 如端口号和上级协议等指示的通信类型,及以上的任何可行组合。例如,策略可以指示,对于从虚拟机A发送到虚拟机B的HTTP数据,数据必须通过防火墙。(对于进一步的细节,见图10和对应的文字)。在另一种实施方式中,由于多个虚拟网络覆盖在一个共享物理网络之上,因此,在检索用于手头数据的策略之前,虚拟网络端点(例如,虚拟机的虚拟网络接口)之间的通信被识别为属于特定网络。在这种实施方式中,可以为每个虚拟网络指定唯一的虚拟网络标识符,而且,在这种实施方式中,通过识别虚拟机耦接到虚拟交换机内部的特定接口来维护虚拟机到虚拟网络映射的映射。在这种实施方式中,DOVE模块或者增加了 DOVE模块部件的现有管理程序虚拟交换机可以维护映射。确定高速缓存812是否包括对应的策略(判决815)。如果高速缓存812包括对应的策略,则判决815进行到“是”分支816,随后发起模块选择包括在高速缓存812中的策略来封装数据,并在810返回。另一方面,如果高速缓存812不包括对应的策略,则判决815进行到“否”分支819,随后发起模块向其本地策略服务器发送策略请求,其中本地策略服务器驻留在分布式策略服务中(例如,图6中所示的驻留在分布式策略服务630中的策略服务器645)。本地策略服务器在825接收请求,并前进到在其本地存储区域(策略库832)检查对应于发起虚拟机和目的地虚拟机的策略(步骤830)。确定策略服务器是否在其本地存储区域中定位了对应的策略(判决835)。如果策略服务器定位了对应的策略,则判决835进行到“是”分支837,随后策略服务器在步骤840把该策略(逻辑策略)发送到发起模块并在845结束。在一种实施方式中,策略服务器向发起模块提供基于逻辑策略的物理路径变换,其中发起模块利用该物理路径变换来封装数据。发起模块在步骤822接收并存储该物理路径变换,并在824返回。回过头来参考本地策略服务器,如果本地策略服务器没有在策略库832中定位对应的策略,则判决835进行到“否”分支839,随后本地策略服务器在步骤850查询根策略服务器855。在一种实施方式中,本地策略服务器确定其是否负责对应于发起虚拟机的虚拟网络。如果不是,则该本地策略服务器向根策略服务器855查询关于哪个其他策略服务器负责对应的虚拟网络的指示。
本地策略服务器从根策略服务器855接收响应,并确定该响应是否包括策略或者从不同(远端)策略服务器获取策略的指示(判决860)。如果该本地策略服务器从根策略服务器855接收到策略,则判决860进行到“策略”分支862,随后本地策略服务器把该策略存储在策略库832中用于日后的检索,并在步骤865把该策略发送到发起模块,随后结束868。另一方面,如果本地策略服务器接收到关于不同策略服务器的指示符,则判决860进行到“服务器ID”分支869,随后该本地策略服务器向策略服务器875查询策略。本地策略服务器在步骤880从策略服务器875接收策略。该本地策略服务器又把该策略存储在策略库832中用于日后的检索,并在步骤885把该策略发送到发起模块,随后结束890。图9是示出在目的地模块向发起模块通知从该发起模块接收到的策略已过时中 所采取的步骤的流程图。目的地模块处理在900开始,随后确定是否把更新的策略附到要 发送到发起策略的控制消息(判决905)。例如,目的地模块可以具有配置参数,当该目的地模块在其本地高速缓存中具有更新的策略时,该配置参数指示该目的地模块把更新的策略发送到发起模块。如果目的地模块确定提供更新的策略,则判决905进行到“是”分支907,随后在步骤910目的地模块在控制消息中附上更新的策略。另一方面,如果目的地模块确定不附上更新的策略,则判决905进行到“否”分支909,跳过步骤910。确定是否处理利用与过时策略相对应的物理路径变换封装的数据(转发该数据)(判决915)。例如,如果在已过时的策略与更新的策略之间安全要求(例如,通过防火墙)没有改变,则目的地模块可以配置成处理该数据。如果目的地模块确定不处理该数据,则判决915进行到“否”分支917,随后目的地模块在控制消息中包括指示数据不转发到目的地模块的出错消息(步骤920)。另一方面,如果目的地模块确定处理该数据,则判决915进行到“是”分支919,跳过步骤920。目的地模块发送控制消息(步骤925),该消息可以包括更新的策略和/或出错消息,并在930返回。发起模块处理在935开始,随后发起模块在步骤940接收控制消息。确定该控制消息是否包括更新的策略(判决945)。如果控制消息包括更新的策略,则判决945进行到“是”分支947,随后发起模块在步骤950把更新的策略存储在其本地高速缓存中。另一方面,如果控制消息不包括更新的策略,则判决945进行到“否”分支949,随后发起模块前进通过一系列步骤,来通过分布式策略服务获取更新的策略(预先定义的处理块955,对于进一步的细节,见图8和对应的文字)。确定控制消息是否指示目的地模块处理了该数据(例如,把数据转发到目的地虚拟机)(判决960)。如果目的地模块不处理该数据,则判决960进行到“否”分支962,随后在步骤965发起模块利用与更新的策略相对应的更新的物理路径变换封装数据,并把数据重新发送到目的地模块,随后在970返回。另一方面,如果目的地模块处理来自初始数据发送的数据,则判决960进行到“是”分支967,跳过步骤965并在970返回。在一种实施方式中,发起模块或者目的地模块确保把包传送给目的地虚拟机。在另一种实施方式中,数据可以被故意丢弃,以便让发送应用或网络层重新发送数据,在这种情况下,发起模块使用正确的策略。图10是示出对应于发起虚拟机和目的地虚拟机的策略的表。策略表1000包括策略1010-1040,这些策略从逻辑上规定不同的虚拟机(或者外部网络)如何彼此进行通信(例如,发送数据)。策略1010指示无论何时虚拟机I向目的地虚拟机发送数据,数据都必须通过防火墙。应当注意,该策略没有规定特定的物理防火墙,而是从逻辑上规定它必须通过防火墙。在一种实施方式中,策略表1000包括用于基于特定虚拟网络的唯一标识符的特定虚拟网络的策略。在一种实施方式中,策略表包括在对应的虚拟网络的环境下指示虚拟机的信息。策略1020规定无论何时虚拟机1、2或5向虚拟机7或8发送数据,数据都必须被丢掉(drop)。策略1030规定无论何时虚拟机3 (从端口 443)向另一虚拟机发送数据,数据都必须通过SSL加速器。同样,策略1040规定无论何时数据的目的地是虚拟机3的端口443,数据都必须通过SSL加速器。图11例示了信息处理系统1100,该系统是能够执行在此所述的计算操作的计算机系统的简化例子。信息处理系统1100包括耦接到处理器接口总线1112的一个或多个处理器1110。处理器接口总线1112把处理器1110连接到北桥1115,其中北桥也称为存储器控制中心(MCH)。北桥1115连接到系统存储器1120,并提供处理器1110访问系统存储器的 方式。图形控制器1125也连接到北桥1115。在一种实施方式中,PCI Express总线1118把北桥1115连接到图形控制器1125。图形控制器1125连接到显示设备1130,例如计算机监视器。北桥1115和南桥1135利用总线1119彼此连接。在一种实施方式中,总线是在北桥1115和南桥1135之间在每个方向上高速传输数据的直接媒体接口(DMI)总线。在另一种实施方式中,外围组件互连(PCI)总线连接北桥和南桥。南桥1135,也称为I/O控制中心(ICH),是总体上实现以比北桥所提供的能力低的速度运行的能力的芯片。南桥1135—般提供用于连接各种部件的各种总线。这些总线包括例如PCI和PCI Express总线、ISA总线、系统管理总线(SMBus或者SMB)和/或低引脚数(LPC)总线。LPC总线常常连接低带宽的设备,例如启动(boot) ROM 1196和“传代(legacy)” I/O设备(利用“超I/O”芯片)。“传代” I/O设备(1198)可以包括例如串行和并行端口、键盘、鼠标和/或软盘控制器。LPC总线还把南桥1135连接到可信任平台模块(TPM) 1195。常常包括在南桥1135中的其他部件包括直接存储器存取(DMA)控制器、可编程中断控制器(PIC)和存储设备控制器,其中存储设备控制器利用总线1184把南桥1135连接到非易失性存储设备1185,例如硬盘驱动器。ExpressCard (Express卡)1155是把可热插拔设备连接到信息处理系统的槽。ExpressCardl 155既支持PCI Express又支持USB连接,因为其利用通用串行总线(USB)和PCI Express总线连接到南桥1135。南桥1135包括向连接到USB的设备提供USB连接性的USB控制器1140。这些设备包括网络摄像机(webcamX照相机)1150、红外(IR)接收器1148、键盘和轨迹板1144和蓝牙设备1146,其中蓝牙设备提供无线个人局域网(PAN)。USB控制器1140还向其他各种USB连接的设备1142提供USB连接性,这些设备例如有鼠标、可移除的非易失性存储设备1145、调制解调器、网卡、ISDN连接器、传真机、打印机、USB集线器及许多其他类型的USB连接设备。尽管可移除的非易失性存储设备1145示出为USB连接的设备,但可移除的非易失性存储设备1145还可以利用诸如火线接口(Firewireinterface)等的不同接口连接。无线局域网(LAN)设备1175经PCI或者PCI Express总线1172连接到南桥1135。LAN设备1175 —般实现空中(over-the-air)调制技术的IEEE 802. 11标准中的一个,这些调制技术全部都使用相同的协议用于信息处理系统1100和其他计算机系统或设备之间的无线通信。光存储设备1190利用串行ATA (SATA)总线1188连接到南桥1135。串行ATA适配器和设备在高速串行链路上通信。串行ATA总线还把南桥1135连接到其他形式的存储设备,例如硬盘驱动器。音频电路1160,例如声卡,经总线1158连接到南桥1135。音频电路1160还提供诸如音频线路输入(line-in)和光学数字音频输入(audio in)端口 1162、光学数字输出与头戴式耳机插孔1164、内部扬声器1166和内部麦克风1168的功能性。以太网控制器1170利用例如PCI或者PCI Express总线的总线连接到南桥1135。以太网控制器1170把信息处理系统1100连接到计算机网络,例如局域网(LAN)、互联网及其他的公共和私有计算机网络。尽管图11示出了一种信息处理系统,但是信息处理系统可以采取许多形式。例如,信息处理系统可以采取台式计算机、服务器计算机、便携式计算机、膝上型计算机、笔记本计算机或者其他形状因子的计算机或者数据处理系统的形式。此外,信息处理系统还可以采取其他的形状因子,例如个人数字助理(PDA)、游戏机、ATM机、便携式电话设备、通信 设备或者包括处理器和存储器的其他设备。图11中所示并在此描述的提供安全功能的可信任平台模块(TPM 1195)仅仅是硬件安全模块(HSM)的一个例子。因此,在此描述和请求保护的TPM包括任何类型的HSM,其包括但不限于符合题为“可信任平台模块(TPM)规范版本I. 2”的可信任计算工作组(TCG)标准的硬件安全设备。TPM是可以结合到任意数量的例如图12中概述的那些的信息处理系统中的硬件安全子系统。图12提供了图11中所示的信息处理系统环境的扩展,以例示在此所述的方法可以在联网环境中运行的广泛多种信息处理系统上执行。信息处理系统的类型从例如手持式计算机/移动电话1210的小型手持式设备到例如主机计算机1270的大型主机系统。手持式计算机1210的例子包括个人数字助理(PDA)、个人娱乐设备,例如MP3播放器、便携式电视机和光盘播放器。信息处理系统的其他例子包括笔式或者说平板计算机1220、膝上型或者说笔记本计算机1230、工作站1240、个人计算机系统1250及服务器1260。在图12中未单独示出的其他类型的信息处理系统由信息处理系统1280代表。如图所示,各种信息处理系统可以利用计算机网络1200联网到一起。可以用于互连各种信息处理系统的计算机网络的类型包括局域网(LAN)、无线局域网(WLAN)、互联网、公共交换电话网络(PSTN)、其他无线网络及任何其他可以用于互连信息处理系统的网络拓扑。许多信息处理系统都包括非易失性数据库,例如硬驱和/或非易失性存储器。图12中所示的有些信息处理系统绘出了单独的非易失性数据库(服务器1260利用非易失性数据库1265,主机计算机1270利用非易失性数据库1275,而信息处理系统1280利用非易失性数据库1285)。非易失性数据库可以是在各种信息处理系统外部的部件,或者也可以在一种信息处理系统的内部。此外,可移除的非易失性存储设备1145也可以利用各种技术在两个或更多个信息处理系统之间共享,这些技术例如有把可移除的非易失性存储设备1145连接到信息处理系统的USB端口或者其他连接器。尽管已经示出并描述了本公开内容的特定实施方式,但是对于本领域技术人员来说,基于这里的教义,在不背离本公开内容及其更广方面的情况下,可以进行变化和修改是显然的。因此,所附权利要求是要在其范围中包括所有这些变化与修改,如同包括在本公开内容的真正主旨与范围内。此外,应当理解,本公开内容只能由所附权利要求来限定。本领域技术人员将理解,如果所介绍权利要求元素的具体数目是特指的,则这种特指将明确地在权利要求中声明,而且,在不存在这种声明的情况下,不存在这种限制。对于非限制性例子,为了帮助理解,以下所附权利要求包含引导语“至少一个”和“一个或多个”的使用,来介绍权利要求元素。然而,即使当相同的权利要求既包括引导语“至少一个”或“一个或多个”又包括例如“一个”的不定冠词时,这种短语的使用也不应当认为是暗示由不定冠词“一个”介绍的权利要求元素把包含这样介绍的权利要求元素的任何特定权利要求限定到只包含一个这种元素的公开内容;对于权利要求中定冠词的使用,这也成立。·
权利要求
1.一种方法,包括 在第一策略模块处接收由第一虚拟机发起并且目的地为第二虚拟机的数据; 选择与把所述数据从所述第一虚拟机发送到所述第二虚拟机相对应的策略,其中所述策略包括对一个或多个虚拟网络的一个或多个逻辑参考并且没有对位于物理网络上的物理实体的物理参考; 利用基于所选策略的物理路径变换来封装所述数据,所述物理路径变换对应于所述物理网络;及 在所述物理网络上把所封装的数据发送到对应于所述第二虚拟机的第二策略模块。
2.如权利要求I所述的方法,其中,所述策略没有互联网协议(IP)地址。
3.如权利要求I所述的方法,其中,基于一个或多个逻辑定义,所述数据遍历通过一个或多个所述物理实体,来实施所述策略。
4.如权利要求I所述的方法,还包括 在选择所述策略之前,确定所述一个或多个虚拟网络对应于所述第一虚拟机和所述第二虚拟机;及 其中基于所述第一虚拟机、所述第二虚拟机及所述一个或多个虚拟网络选择所述策略。
5.如权利要求I所述的方法,还包括 把若干虚拟网络抽象到所述物理网络上,所述一个或多个虚拟网络包括在该若干虚拟网络中;及 为所述若干虚拟网络中的每一个指定唯一的虚拟网络标识符。
6.如权利要求I所述的方法,还包括 在所述第二策略模块处接收所封装的数据,其中所述第一策略模块位于第一物理主机,而所述第二策略模块位于第二物理主机; 由所述第二策略模块根据所述策略对所述数据解除封装;及 由所述第二策略模块把所解除封装的数据发送到所述第二虚拟机。
7.如权利要求I所述的方法,还包括 由所述第一策略模块确定所述策略没有位于与所述第一策略模块相对应的本地高速缓存中; 响应于所述确定,向分布式策略服务查询所述策略;及 响应于所述查询,从所述分布式策略服务接收所述物理路径变换。
8.—种信息处理系统,包括 一个或多个处理器; 一个或多个存储器,其耦接到至少一个所述处理器; 一组计算机程序指令,其存储在一个或多个所述存储器中并且由至少一个所述处理器执行,以便执行以下动作 在第一策略模块处接收由第一虚拟机发起并且目的地为第二虚拟机的数据; 选择与把所述数据从所述第一虚拟机发送到所述第二虚拟机相对应的策略,其中所述策略包括对一个或多个虚拟网络的一个或多个逻辑参考并且没有对位于物理网络上的物理实体的物理参考;利用基于所选策略的物理路径变换来封装所述数据,所述物理路径变换对应于所述物理网络;及 在所述物理网络上把所封装的数据发送到对应于所述第二虚拟机的第二策略模块。
9.如权利要求8所述的信息处理系统,其中,所述策略没有互联网协议(IP)地址。
10.如权利要求8所述的信息处理系统,其中,基于一个或多个逻辑定义,所述数据遍历通过一个或多个所述物理实体,来实施所述策略。
11.如权利要求8所述的信息处理系统,其中一个或多个所述处理器执行附加的动作,所述附加的动作包括 在选择所述策略之前,确定所述一个或多个虚拟网络对应于所述第一虚拟机和所述第二虚拟机;及 其中基于所述第一虚拟机、所述第二虚拟机及所述一个或多个虚拟网络选择所述策略。
12.如权利要求8所述的信息处理系统,其中一个或多个所述处理器执行附加的动作,所述附加的动作包括 把若干虚拟网络抽象到所述物理网络上,所述一个或多个虚拟网络包括在该若干虚拟网络中;及 为所述若干虚拟网络中的每一个指定唯一的虚拟网络标识符。
13.如权利要求8所述的信息处理系统,其中一个或多个所述处理器执行附加的动作,所述附加的动作包括 在所述第二策略模块处接收所封装的数据,其中所述第一策略模块位于第一物理主机,而所述第二策略模块位于第二物理主机; 由所述第二策略模块根据所述策略对所述数据解除封装;及 由所述第二策略模块把所解除封装的数据发送到所述第二虚拟机。
14.如权利要求8所述的信息处理系统,其中一个或多个所述处理器执行附加的动作,所述附加的动作包括 由所述第一策略模块确定所述策略没有位于与所述第一策略模块相对应的本地高速缓存中; 响应于所述确定,向分布式策略服务查询所述策略;及 响应于所述查询,从所述分布式策略服务接收所述物理路径变换。
15.—种系统,包括 第一策略模块,其接收由第一虚拟机发起并且目的地为第二虚拟机的数据; 策略服务器,其选择与把所述数据从所述第一虚拟机发送到所述第二虚拟机相对应的策略,其中所述策略包括对一个或多个虚拟网络的一个或多个逻辑参考并且没有对位于物理网络上的物理实体的物理参考; 所述第一策略模块利用基于所选策略的物理路径变换来封装所述数据,该物理路径变换对应于所述物理网络;及 所述第一策略模块在所述物理网络上把所封装的数据发送到对应于所述第二虚拟机的第二策略模块。
16.如权利要求15所述的系统,其中,所述策略没有互联网协议(IP)地址。
17.如权利要求15所述的系统,其中,基于一个或多个逻辑定义,所述数据遍历通过一个或多个所述物理实体,来实施所述策略。
全文摘要
根据本公开的一种实施方式,提供了一种方法,其中策略模块接收由第一虚拟机发起并具有在第二虚拟机处的目的地的数据。所述策略模块选择与把所述数据从第一虚拟机发送到第二虚拟机相对应的策略。该策略包括对一个或多个虚拟网络的一个或多个逻辑参考,并且不包括对位于物理网络上的物理实体的物理参考。所述策略模块又利用基于所选策略的物理路径变换来封装所述数据,并且在所述物理网络上把经封装的数据发送到对应于所述第二虚拟机的第二策略模块。
文档编号H04L12/46GK102780601SQ20121014623
公开日2012年11月14日 申请日期2012年5月11日 优先权日2011年5月13日
发明者B·罗什维格, K·巴拉巴什, R·J·勒西欧, R·科汉, V·简 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1