用于在虚拟联网系统中进行分组分发的方法和系统的制作方法

文档序号:7798927阅读:314来源:国知局
用于在虚拟联网系统中进行分组分发的方法和系统的制作方法
【专利摘要】本发明的实施例提供了一种用于在包括经由下层网络互连的多个虚拟网络的虚拟联网系统中进行分组分发的方法,其中每个虚拟网络包括一个或多个计算节点。本方法包括:对于每个虚拟网络,发送以处于不同虚拟网络的计算节点为目标的至少一个传出分组,以及接收以所述虚拟网络的计算节点为目标的至少一个传入分组。每个分组具有包括标识该分组的目的地虚拟网络的路由信息的相应虚拟联网标记。
【专利说明】用于在虚拟联网系统中进行分组分发的方法和系统

【技术领域】
[0001]本发明的各实施例涉及覆盖(overlay)虚拟环境,尤其涉及在虚拟联网系统中为虚拟覆盖分组加标记。

【背景技术】
[0002]使用覆盖的网络虚拟利用诸如虚拟可扩展局域网(VxLAN)封装和网络虚拟一般路由封装(NVGRE)之类的可由管理程序和联网厂商支持的封装。为了使用VxLAN或NVGRE封装,修改管理程序虚拟开关以支持各覆盖技术。与封装类型的不兼容导致必须使用在不同分组格式之间进行翻译的翻译网关。通常翻译网关是通信瓶颈,影响通信性能。


【发明内容】

[0003]本发明的实施例提供了一种用于在包括经由下层网络互连的多个虚拟网络的虚拟联网系统中进行分组分发的方法,其中每个虚拟网络包括一个或多个计算节点。本方法包括:对于每个虚拟网络,发送以处于不同虚拟网络的计算节点为目标的至少一个传出分组,以及接收以所述虚拟网络的计算节点为目标的至少一个传入分组。每个分组具有包括标识该分组的目的地虚拟网络的路由信息的相应虚拟联网标记。
[0004]另一个实施例提供一种包括多个虚拟网络的虚拟联网系统,其中每个虚拟网络包括一个或多个计算节点。该系统还包括互连所述多个虚拟网络的下层网络。每个虚拟网络被配置为发送以处于不同虚拟网络的计算节点为目标的至少一个传出分组,以及接收以所述虚拟网络的计算节点为目标的至少一个传入分组。每个分组具有包括标识所述分组的目的地虚拟网络的路由信息的相应虚拟联网标记。
[0005]本发明的这些和其他特征、方面和优点将参考如下描述、所附权利要求和附图而变得可被理解。

【专利附图】

【附图说明】
[0006]图1根据本发明一个实施例示出了示例性云计算节点的框图;
[0007]图2根据本发明一个实施例示出了示例性云计算环境;
[0008]图3根据本发明一个实施例示出了云计算环境的抽象模型层;
[0009]图4示出了例示利用本发明一个实施例的分布式覆盖虚拟环境400的框图;
[0010]图5根据本发明一个实施例示出了虚拟联网系统100中的分组分发;
[0011]图6是根据本发明一个实施例的图5所示分布式覆盖虚拟以太网(DOVE)开关的框图;
[0012]图7根据本发明一个实施例示出了示例性的未加标记分组;
[0013]图8根据本发明一个实施例示出了示例性的加标记分组;
[0014]图9根据本发明一个实施例示出了标准802.1Q VLAN标记和虚拟联网标记之间的差异;
[0015]图10是根据本发明一个实施例的图5所示隧道端点(TEP)的框图;
[0016]图11根据本发明一个实施例示出了对传出分组的封装;
[0017]图12示出了根据本发明一个实施例的用于虚拟联网系统的分组分发的示例性处理的流程图;以及
[0018]图13是示出了用于实现本发明一个实施例的信息处理系统300的高级框图。

【具体实施方式】
[0019]本发明的各实施例涉及覆盖虚拟环境,尤其涉及在虚拟联网系统中为虚拟覆盖分组加标记。一个实施例提供了一种用于在包括经由下层网络互连的多个虚拟网络的虚拟联网系统中进行分组分发的方法,其中每个虚拟网络包括一个或多个计算节点。本方法包括对于每个虚拟网络,发送以不同虚拟网络处的计算节点为目标的至少一个传出分组,以及接收以该虚拟网络的计算节点为目标的至少一个传入分组。每个分组具有包括标识该分组的目的地虚拟网络的路由信息的相应虚拟联网标记。
[0020]另一个实施例提供一种包括多个虚拟网络的虚拟联网系统,其中每个虚拟网络包括一个或多个计算节点。该系统还包括互连所述多个虚拟网络的下层网络。每个虚拟网络被配置为发送以不同虚拟网络处的计算节点为目标的至少一个传出分组,以及接收以该虚拟网络的计算节点为目标的至少一个传入分组。每个分组具有包括标识所述分组的目的地虚拟网络的路由信息的相应虚拟联网标记。
[0021]首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
[0022]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0023]特征包括:
[0024]按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0025]广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
[0026]资源池:提供者的计算资源被归入资源池并通过多租户(mult1-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分发和再分发。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性
[0027]迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
[0028]可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
[0029]服务模型如下:
[0030]软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0031]平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
[0032]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权
[0033]部署模型如下
[0034]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
[0035]共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
[0036]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0037]混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0038]云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
[0039]图1根据本发明一个实施例示出了示例性云计算节点的框图。图1所示的云计算节点10只是合适的云计算节点的一个例子,并不意图暗示对在此描述的本发明各实施例的功能或使用范围的任何限制。无论如何,云计算节点10能被实现和/或执行以上描述的任何功能。
[0040]云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 —起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等坐寸ο
[0041]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0042]计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或者处理单元16、系统存储器28、和将各系统组件(如系统存储器28和处理器16)耦合的总线18。表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0043]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0044]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0045]本发明的各实施例可被实现为计算机可读信号介质,其可以包括其中承载了计算机可读的程序代码的传播数据信号(例如在基带中或者作为载波的一部分)。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光学信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与所述指令执行系统、装置或者器件结合使用的程序。
[0046]计算机可读介质上包含的程序代码可以用任何合适介质传输,所述任何合适介质包括但不限于无线、有线、光纤电缆、射频(RF)等等,或者上述的任意合适的组合。
[0047]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0048]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12—起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0049]图2根据本发明一个实施例示出了示例性云计算环境50。现参见图2,描绘了示例性的云计算环境50。云计算环境50包括一个或多个云计算节点10,由云消费者使用的本地计算设备54 (例如,个人数字助理(PDA)和蜂窝电话54A、桌上型计算机54B、膝上型计算机54C和/或自动计算机系统54N)可以与所述一个或多个云计算节点10进行通信。节点10可以彼此通信。在诸如上述私有云、共同体云、公共云或混合云、或其组合的一个或多个网络中,这些节点可被物理地或虚拟地成组(未示出)。这使得云计算环境50能够提供基础设施、平台和/或软件作为服务,由此云消费者无需在本地计算设备上保持资源。应该理解,图2所示的计算设备54A-N的类型仅旨在例示,并且计算节点10和云计算环境50可以经由任何类型的网络和/或网络可寻址连接(例如,使用网页浏览器)与任何类型的计算机化设备通信。
[0050]图3根据本发明一个实施例示出了云计算环境50的抽象模型层。现参见图3,示出了由云计算环境50 (图2)提供的一组功能性抽象层。应该预先理解图3所示的组件、层和功能仅旨在例示,并且本发明的各实施例不限于此。如所述,提供如下的层和相应功能:
[0051]硬件和软件层60包括硬件和软件组件。硬件组件的例子包括大型机。在一个示例中是IBM.RTM.zSeries.RTM系统以及基于RISC (精简指令集计算机)架构的服务器。在一个示例中是 IBM pSeries.RTM.系统、IBM xSeries.RTM.系统、IBM BladeCenter.RTM.系统、存储设备、网络和联网组件。软件组件的例子包括网络应用服务器软件。在一个示例中是IBM WebSphere.RTM.应用服务器软件和数据库软件。在一个示例中是IBM DB2.RTM.数据库软件。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere 和 DB2 是国际商用机器公司在世界范围内众多管辖区域内注册的商标。)
[0052]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端
[0053]在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分发和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能--为根据SLA预测的对云计算资源未来需求提供预先安排和供应
[0054]工作负荷层66提供云计算环境可以被利用的功能性的例子。可由该层提供的工作负荷和功能的例子包括:映射和导航;软件开发和生命周期管理;虚拟教室教育递送;数据分析处理;交易处理;以及封装映射和通信。如上所述,前面参考图3描述的所有例子仅是示例性的,本发明不限于这些例子。
[0055]应该理解,在此描述的本发明的所有功能能够被有形地具体化为程序/实体40的程序代码的模块42。然而,也不是必须如此。相反地,在此描述的功能性可由图3所示的层60-66中的任何层执行/实现和/或使能。
[0056]需要重申的是虽然本公开包括对云计算的详细描述,但是在此阐述的教示的实现不限于云计算环境。相反地,本发明的各实施例旨在使用现在已知或将来开发的任何类型的成簇(clustered)计算环境来实现。
[0057]本发明的各实施例涉及在支持多封装的主机间提供互操作性。一个实施例包括一种方法,该方法包括映射用于虚拟开关的分组封装协议类型信息。每个虚拟开关与一个或多个虚拟机(VM)相关联。在一个实施例中,基于上述映射判定是否针对与第一虚拟开关相关联的第一 VM以及与第二虚拟开关相关联的第二 VM存在一个或多个公共封装协议类型。在一个实施例中,如果判定针对第一虚拟开关和第二虚拟开关存在一个或多个公共封装协议类型,则选择一个公共封装协议类型。使用所选的公共封装协议类型封装分组用于在第一 VM和第二 VM之间的通信。
[0058]图4示出了例示利用本发明一个实施例的分布式覆盖虚拟环境400的框图。在一个实施例中,分布式覆盖虚拟环境400可以包括分布式覆盖虚拟以太网(DOVE)网络系统。分布式覆盖虚拟环境400包括多个虚拟系统(或网络)405 (在一个实施例中也被称为DOVE模块)。每个虚拟系统405包括具有虚拟开关315、管理程序316和至少一个VM320的服务器310 (或主机)。虚拟系统405覆盖可以包括物理开关、路由器、服务器、网关、防火墙等的物理层325 (例如,包括物理硬件和软件处理)。该物理层325还可被称为下层。
[0059]在一个实施例中,覆盖网络分段1-N305 (例如,覆盖网络分段1_3)连接用于不同元件(例如,管理程序316、VM320)的通信的多个系统,其中N是正数(例如,2、3、5、10等)。应该注意到,虽然示出了三个系统405,但是在该分布式覆盖虚拟环境400可以包括更多的(或更少的)系统405。在一个实施例中,虚拟开关315包括DOVE开关。
[0060]在一个实施例中,覆盖网络分段1-N305在管理程序316之间创建覆盖网络并且使用分组的封装,其中源自一个VM320的分组被封装(例如,添加覆盖和物理网络头部)并且物理层325 (下层)被用于递送至目标VM320所在的服务器310。在一个实施例中,在物理层325中,外部头部由物理开关用于转发分组,其中封装头部内的覆盖标识(ID)提供通行量隔离(traffic isolat1n)。到目的地服务器310的虚拟开关315的传入分组被解封(例如,从分组中剥除封装头部)并递送至目的地VM320。在一个实施例中,支持不同虚拟系统405之间的地址独立。例如,在两个不同系统405中操作的两个不同VM320可以具有相同的因特网协议(IP)地址和媒体访问控制(MAC)地址。作为另一示例,系统405支持将属于同一系统405的VM320部署至位于不同物理子网(包括在物理实体之间的开关和/或路由器)内的不同主机上。在另一实施例中,属于不同系统405的VM320可被主存在同一物理主机上。在又一实施例中,系统405支持VM320迁移至数据中心内的任何位置,而不改变VM320网络地址并不丢失其网络连接。
[0061]在一个实施例中,系统405基于策略(例如,来自分布式策略服务(DPS))使用物理路径平移(physical path translat1n)封装数据,并在系统405之间发送封装的数据,系统405则将其解封并转发至目的地VM320。在一个实施例中,策略以逻辑方式描述需要数据如何经虚拟网络发送,而无需执行具体任务的下层物理实体的细节。
[0062]在一个实施例中,管理程序316 (例如,VM320管理器)允许多个操作系统(例如,诸如VM320的VM)同时在主机计算机上运行。管理程序316向VM320提供物理资源的抽象。例如,物理网络接口卡(NIC)可被抽象为系统405的虚拟NIC (vNIC)。在一个实施例中,虚拟开关315是用于为VM320提供连接性的管理程序316内的以太网开关的软件抽象。
[0063]图5根据本发明一个实施例示出了虚拟联网系统100中的分组分发。系统100包括多个虚拟网络(系统)405,诸如第一虚拟网络VNl和第二虚拟网络VN2。每个虚拟网络405包括其上运行管理程序316 (图4)的至少一个服务器(主机)310 (图4)。管理程序316创建并运行一个或多个虚拟机320。例如图5所示,第一虚拟网络VNl包括标识为VMl的虚拟机320,而第二虚拟网络VN2则包括标识为VM2的虚拟机320。
[0064]虚拟网络405的每个虚拟机320可以接收来自另一虚拟机320的传入分组和/或向另一虚拟机320发送传出分组。在一个实施例中,隧道端点(TEP)设备200被用于促进不同虚拟网络405之间经由下层网络250 (例如,层2网络或层3网络,诸如IP网络)的分组分发。具体地,每个虚拟网络405连接至一个相应的隧道端点(TEP)设备200。例如图5所示,第一虚拟网络VNl连接至标识为TEPl的相应TEP设备200,而第二虚拟网络VN2则连接至标识为TEP2的相应TEP设备200。
[0065]每个虚拟网络405包括用于处理传入分组和传出分组的至少一个DOVE开关315。例如图5所示,第一虚拟网络VNl进一步包括被标识为开关I的DOVE开关315,而第二虚拟网络VN2则进一步包括被标识为开关2的DOVE开关315。第一虚拟网络VNl的虚拟机VMl连接至开关1,而第二虚拟网络VN2的虚拟机VM2连接至开关2。
[0066]如随后将描述的,虚拟网络405的DOVE开关315被配置为接收来自虚拟网络405的虚拟机320的传出分组。DOVE开关315使用相应虚拟联网标记为传出分组加标记。DOVE开关315将带有虚拟联网标记的传出分组发送至虚拟网络405的相应TEP设备200。
[0067]如下将详细描述的,虚拟网络405的TEP设备200被配置为在将来自虚拟网络405的传出分组经由下层网络250发送至另一 TEP设备200之前封装该传出分组。TEP设备200基于相应虚拟联网标记封装传出分组,并将封装的传出分组经由下层网络250发送至另一TEP设备200。下层网络250在不同的TEP设备200之间传播封装的分组。
[0068]如下将详细描述的,虚拟网络405的TEP设备200被进一步配置为解封经由下层网络250从另一 TEP设备200接收的封装的传入分组。TEP设备200被进一步配置为使用相应虚拟联网标记为传入分组加标记,并且将带有虚拟联网标记的传入分组发送至虚拟网络 405。
[0069]如随后将描述的,虚拟网络405的DOVE开关315被进一步配置为接收来自虚拟网络405的相应TEP设备200的传入分组。一旦接收到传入分组,DOVE开关315就基于相应虚拟联网标记判定该传入分组以哪一个虚拟机320为目标,并将该传入分组发送到目标虚拟机320。
[0070]图6是根据本发明一个实施例的图5所示DOVE开关315的框图。虚拟网络405的DOVE开关315至少包括如下组件:用于接收来自虚拟网络405的虚拟机320的传出分组的虚拟网络端口 110 (VN端口)、用于接收来自虚拟网络405的相应TEP设备200的传入分组的VLAN端口 120(VLAN端口)、用于处理传入分组和传出分组的虚拟联网加标记应用模块130、以及存储器单元140。
[0071]当DOVE开关315接收分组时,该分组会是已经具有虚拟联网标记,或者DOVE开关315会将虚拟联网标记插入分组。例如,源自不同虚拟网络405的传入分组包括虚拟联网标记,而来自虚拟网络405的虚拟机320的传出分组不包括虚拟联网标记(即,DOVE开关315会将虚拟联网标记插入传出分组)。
[0072]每个DOVE开关315和每个端口都与表示虚拟网络405的虚拟网络标识符(VNID)相关联。在一个实施例中,存储器单元140保存查找表150(LUT)。查找表150包括将每个DOVE开关315和每个端口映射至相应24位VNID的信息。在一个实施例中,管理平面命令将VNID与开关/端口相关联。
[0073]一旦接收到传出分组,虚拟联网加标记应用模块130就基于查找表150和包括在传出分组内的头部信息判定该传出分组所属的虚拟网络405的VNID。虚拟联网加标记应用模块130使用相应虚拟联网标记为传出分组加标记,其中该虚拟联网标记包括VNID。虚拟联网加标记应用模块130将具有虚拟联网标记的传出分组发送至虚拟网络405的相应TEP设备200。
[0074]一旦接收到传入分组,虚拟联网加标记应用模块130就基于查找表150、包括在传入分组内的虚拟联网标记以及包括在传入分组内的头部信息判定作为该传入分组的目标的虚拟机320。虚拟联网加标记应用模块130随后将该传入分组转发至目标虚拟机320。
[0075]图7根据本发明一个实施例示出了示例性的未加标记分组160。未加标记分组160包括有效载荷信息以及位于该有效载荷信息之前的补充数据,诸如以太网头部和IP头部。未加标记分组160可以包括额外的补充数据。
[0076]以太网头部至少包括如下信息:目的地地址(即,分组被发送/广播至的虚拟机320的地址)、源地址(B卩,生成该分组的虚拟机320的地址)、与分组携带的数据有关的类型/长度信息、分组携带的数据、循环冗余检验(CRC)信息。
[0077]图8根据本发明一个实施例示出了示例性的加标记分组170。一旦接收到来自虚拟机320的未加标记分组160形式的传出分组,虚拟联网加标记应用模块130就通过将虚拟联网标记插入到传出分组的以太网头部而将该传出分组转换成加标记分组170。
[0078]在一个实施例中,虚拟联网标记包括44位,其中包括该传出分组所属的虚拟网络405的24位VNID。虚拟联网加标记应用模块130将加标记分组170发送至相应TEP设备200。
[0079]虚拟联网加标记应用模块130还接收来自相应TEP设备200的加标记分组170。虚拟联网加标记应用模块130接收的每个加标记分组170代表一个传入分组。一旦接收到加标记分组170,虚拟联网加标记应用模块130就基于查找表150、加标记分组170内包括的头部信息以及加标记分组170内包括的虚拟联网标记来判定目标虚拟机320。虚拟联网加标记应用模块130将加标记分组170转换为未加标记分组160,并将未加标记分组160发送至目标虚拟机320。
[0080]图9根据本发明一个实施例示出了标准802.1Q VLAN标记和虚拟联网标记之间的差异。标准802.1Q VLAN标记包括32位信息。包括在标准802.1Q VLAN标记内的信息如下:16位用于标记协议标识符、3位用于指示用户优先级、I位用于规范的格式指示符、12位用于标识目标虚拟网络405的VLAN标识符。
[0081]在一个实施例中,虚拟联网标记包括24位的VNID以及指示该24位的VNID的存在的新标记协议标识符。
[0082]在一个实施例中,虚拟联网标记是扩展802.1Q VLAN标记。相比于标准802.1QVLAN,该扩展802.1Q VLAN包括44位的信息。扩展802.1Q VLAN包括指示24位VNID的存在的标记协议标识符以代替12位VLAN标识符、以及该24位的VNID。
[0083]图10是根据本发明一个实施例的图5所示TEP设备200的框图。TEP设备200至少包括如下组件:用于封装传出分组以及解封传入分组的封装/解封应用模块210、存储器单元220、以及使用相应虚拟联网标记为每个传入分组加标记的虚拟联网加标记应用模块240。
[0084]在一个实施例中,存储器单元220保持查找表230(LUT)。查找表230包括将每个DOVE开关315和每个端口映射至相应24位VNID的信息。
[0085]一旦从DOVE开关315接收到传出分组,封装/解封应用模块210就基于相应虚拟联网标记使用覆盖头部封装传出分组。封装/解封应用模块210将封装的传出分组经由下层网络250发送至另一 TEP设备200,而另一 TEP设备200则是目标虚拟网络405的相应TEP 设备 200。
[0086]一旦经由下层网络250接收到来自另一 TEP设备200的传入分组,封装/解封应用模块210就通过移除包括在传入分组内的覆盖头部来解封传入分组。虚拟联网加标记应用模块240随后基于查找表230和传入分组内的剩余头部信息而使用虚拟联网标记为传入分组加标记。虚拟联网加标记应用模块240将加标记的传入分组转发至目标虚拟网络405的DOVE开关315。
[0087]图11根据本发明一个实施例示出了对传出分组的封装。一旦从DOVE开关315接收到表示传出分组的加标记分组170,封装/解封应用模块210就使用覆盖头部(即,外部头部)封装该分组170。封装/解封应用模块210经由下层网络250将封装的分组180发送至另一 TEP设备200。
[0088]在一个实施例中,分组的覆盖头部(S卩,外部头部)包括特定于下层网络250的地址,内部头部包括特定于该分组所属虚拟网络405的地址(B卩,分组170在封装之前的头部/帧)。
[0089]图12示出了根据本发明一个实施例的用于虚拟联网系统的分组分发的示例性处理的流程图600。在处理框601,第一虚拟网络的第一虚拟机生成分组。在处理框602,第一虚拟网络的第一开关使用包括与第一开关相关联的虚拟联网标识符(VNID)的虚拟联网标记(例如,管理平面命令将VNID与第一开关相关联)为该分组加标记。在处理框603,虚拟网络的第一 TEP设备通过将虚拟联网标记转换成覆盖头部来封装分组。在处理框604,分组传播至目标虚拟网络的第二 TEP设备(经由下层网络,例如层2网络或层3网络,诸如IP网络)。在处理框605,第二 TEP设备解封分组,并使用虚拟联网标记为该分组加标记。在处理框606,目标虚拟网络的第二开关从分组中移除虚拟联网标记,并将该分组发送至目标虚拟网络的目标虚拟机。
[0090]图13是示出了用于实现本发明一个实施例的信息处理系统300的高级框图。计算机系统包括一个或多个处理器,诸如处理器302。处理器302连接至通信基础设施304 (例如,通信总线、跨接条或网络)。
[0091]计算机系统可以包括转发来自通信基础设施304 (或来自未示出的帧缓冲器)的图形、文本和其他数据用以在显示单元308上显示的显示器接口 306。计算机系统还包括主存储器310,优选地是随机存取存储器(RAM),并且还可以包括辅存储器312。辅存储器312例如可以包括硬盘驱动器314和/或可移除存储驱动器316,其例如表示软盘驱动器、磁带驱动器或光盘驱动器。可移除存储驱动器316以本领域普通技术人员周知的方式对可移除存储单元318进行读写。可移除存储单元318表示由可移除存储驱动器316读写的例如软盘、致密盘、磁带或光盘等。正如将会理解的,可移除存储单元318包括其内存储有计算机软件和/或数据的计算机可读介质。
[0092]在替换实施例中,辅存储器312可以包括用于允许计算机程序或其他指令被载入计算机系统内的其他类似装置。这些装置例如可以包括可移除存储单元350和接口 322。这类装置的例子可以包括程序包和包接口(例如在视频游戏设备中找到的)、可移除存储器芯片(诸如EPROM或PR0M)及关联插槽、以及允许将软件和数据从可移除存储单元350传送至计算机系统的其他可移除存储单元350和接口 322。
[0093]计算机系统还可以包括通信接口 324。通信接口 324允许软件和数据在计算机系统和外部设备之间传送。通信接口 324的例子可以包括调制解调器、网络接口(例如,以太网卡)、通信端口或PCMCIA槽和卡等。经由通信端口 324传送的软件和数据具有可以例如是电子、电磁、光学、或能够由通信接口接收的其他信号的信号形式。这些信号经由通信路径(例如,通道)326提供给通信端口 324。该通信路径326携带信号并且可以使用导线或线缆、光纤、电话线、蜂窝电话链路、RF链路和/或其他通信通道实现。
[0094]在本文中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”通常用于指代诸如主存储器310和辅存储器312、可移除存储驱动器316以及安装在硬盘驱动器314内的硬盘的介质。
[0095]计算机程序(也被称为计算机控制逻辑)被存储在主存储器310和/或辅存储器312内。计算机程序还可以经由通信接口 324接收。这些计算机程序在运行时使计算机系统能执行在此讨论的本发明的各特征。具体地,计算机程序在运行时使处理器302能执行计算机系统的各特征。因此,这些计算机程序代表计算机系统的控制器。
[0096]从以上描述可见本发明提供用于实现本发明各实施例的系统、计算机程序产品和方法。本发明还提供在神经网络中具有可塑性的用于分层路由和双向信息流的非暂态计算机可用存储介质。非暂态计算机可用存储介质具有计算机可读程序,其中该程序一旦在计算机上执行,就使得计算机实现根据在此描述的实施例的本发明的各步骤。除非明确指出,权利要求中对要素的单数引用并非意味着“有且只有一个”,而是“一个或多个”。与本领域普通技术人员当前已知或以后会变得知晓的上述示例性实施例的各要素等效的所有结构和功能都旨在被所附权利要求包含。除非使用短语“用于...的装置”或“用于...的步骤”明确描述,否则在此声明的要素不在35U.S.C.第112部分第6段的规定下解释。
[0097]在本文中所用的术语,仅仅是为了描述特定的实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另外指出。还要知道,“包含”一词在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。
[0098]权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属【技术领域】的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属【技术领域】的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
【权利要求】
1.一种用于在包括经由下层网络互连的多个虚拟网络的虚拟联网系统中进行分组分发的方法,其中每个虚拟网络包括一个或多个计算节点,所述方法包括: 针对每个虚拟网络: 发送以处于不同虚拟网络的计算节点为目标的至少一个传出分组,以及 接收以所述虚拟网络的计算节点为目标的至少一个传入分组; 其中每个分组具有包括标识所述分组的目的地虚拟网络的路由信息的相应虚拟联网
己 O
2.如权利要求1所述的方法,其中: 每个虚拟联网标记包括24位的虚拟网络标识符。
3.如权利要求2所述的方法,其中每个虚拟网络还包括: 用于处理传入和传出分组的相应覆盖开关;以及 用于向所述下层网络发送传出分组以及从所述下层网络接收传入分组的相应隧道端点设备。
4.如权利要求3所述的方法,还包括: 对于每个虚拟网络的相应覆盖开关, 使用相应虚拟联网标记为以不同虚拟网络的计算节点为目标的每个传出分组加标记,所述相应虚拟联网标记包括标识所述计算节点和所述不同虚拟网络的路由信息,其中所述传出分组和所述相应虚拟联网标记被发送至所述虚拟网络的相应隧道端点设备。
5.如权利要求4所述的方法,还包括: 对于每个虚拟网络的相应覆盖开关, 从所述虚拟网络的相应隧道端点设备接收以所述虚拟网络的计算节点为目标的传入分组;以及 基于每个传入分组的相应虚拟联网标记将所述传入分组发送至所述虚拟网络的计算节点。
6.如权利要求5所述的方法,还包括: 对于每个虚拟网络的相应隧道端点设备, 从所述虚拟网络的相应覆盖开关接收传出分组;以及 基于每个传出分组的相应虚拟联网标记封装所述传出分组,其中所封装的传出分组被发送至所述下层网络。
7.如权利要求6所述的方法,还包括: 对于每个虚拟网络的相应隧道端点设备, 从所述下层网络接收传入分组; 解封每个传入分组;以及 使用相应虚拟联网标记为以所述虚拟网络的计算节点为目标的每个传入分组加标记,所述相应虚拟联网标记包括标识所述计算节点和所述虚拟网络的路由信息,其中所述传入分组和所述相应虚拟联网标记被发送至所述虚拟网络的相应覆盖开关。
8.一种虚拟联网系统,包括: 多个虚拟网络,其中每个虚拟网络包括一个或多个计算节点;以及 互连所述多个虚拟网络的下层网络;其中每个虚拟网络被配置为: 发送以处于不同虚拟网络的计算节点为目标的至少一个传出分组;以及 接收以所述虚拟网络的计算节点为目标的至少一个传入分组; 其中每个分组具有包括标识所述分组的目的地虚拟网络的路由信息的相应虚拟联网
己 O
9.如权利要求8所述的系统,其中: 每个虚拟联网标记包括24位的虚拟网络标识符。
10.如权利要求9所述的系统,其中每个虚拟网络还包括: 用于处理传入和传出分组的相应覆盖开关;以及 用于向所述下层网络发送传出分组以及从所述下层网络接收传入分组的相应隧道端点设备。
11.如权利要求10所述的系统,其中,每个虚拟网络的相应覆盖开关被进一步配置为: 使用相应虚拟联网标记为以不同虚拟网络的计算节点为目标的每个传出分组加标记,所述相应虚拟联网标记包括标识所述计算节点和所述不同虚拟网络的路由信息,其中所述传出分组和所述相应虚 拟联网标记被发送至所述虚拟网络的相应隧道端点设备。
12.如权利要求11所述的系统,其中,每个虚拟网络的相应覆盖开关被进一步配置为: 从所述虚拟网络的相应隧道端点设备接收以所述虚拟网络的计算节点为目标的传入分组;以及 基于每个传入分组的相应虚拟联网标记将所述传入分组发送至所述虚拟网络的计算节点。
13.如权利要求12所述的系统,其中,每个虚拟网络的相应隧道端点设备被进一步配置为: 从所述虚拟网络的相应覆盖开关接收传出分组;以及 基于每个传出分组的相应虚拟联网标记封装所述传出分组,其中所封装的传出分组被发送至下层网络。
14.如权利要求10所述的系统,其中,每个虚拟网络的相应隧道端点设备被进一步配置为: 从所述下层网络接收传入分组; 解封每个传入分组;以及 使用相应虚拟联网标记为以所述虚拟网络的计算节点为目标的每个传入分组加标记,所述相应虚拟联网标记包括标识所述计算节点和所述虚拟网络的路由信息,其中所述传入分组和所述相应虚拟联网标记被发送至所述虚拟网络的相应覆盖开关。
15.一种用于在包括经由下层网络互连的多个虚拟网络的虚拟联网系统中进行分组分发的系统,其中每个虚拟网络包括一个或多个计算节点,所述系统包括:用于实现如权利要求1-7的任何方法所述的任何步骤的装置。
【文档编号】H04L12/46GK104052644SQ201410095121
【公开日】2014年9月17日 申请日期:2014年3月14日 优先权日:2013年3月14日
【发明者】J·奇丹毕 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1