用于虚拟网络的内部路由分配的制作方法

文档序号:13518684阅读:323来源:国知局
用于虚拟网络的内部路由分配的制作方法

相关申请案交叉申请

不适用

关于由联邦政府赞助研究或开发的声明

不适用

参考缩微胶片附录

不适用



背景技术:

网络顾客,有时被称作租户,经常使用在虚拟资源上运行的软件系统,例如云环境中的虚拟机(virtualmachine,vm)。云环境中的资源虚拟化允许物理硬件的虚拟化部分在租户间根据需求动态地分配和取消分配。云环境中的虚拟化允许租户之间共享有限且昂贵的硬件资源,使得资源基本完全被利用。这种虚拟化进一步防止在特定时间资源过多分配给特定租户,防止造成过多分配的资源闲置的情况。虚拟资源的动态分配可被称为资源配置。虚拟机的使用进一步允许租户软件系统在服务器甚至不同地理位置之间无缝移动。



技术实现要素:

在一个实施例中,本公开包括一种在用于实施云集合点(cloudrendezvouspoint,crp)的网元(networkelement,ne)中实施的方法,所述方法包含在所述crp处维护指示多个csp和指示附着于每个csp的每个虚拟网络的云交换点(cloudswitchpoint,csp)数据库;接收指示第一csp网络地址和附着于第一csp的第一虚拟网络的注册消息;以及向所述csp数据库中附着于所述第一虚拟网络的每个csp发送指示所述第一csp网络地址的第一报告消息。

在另一实施例中,本公开包括一种在用于实施本地csp的ne中实施的方法,所述方法包含:向crp发送注册消息,所述注册消息指示所述本地csp的网络地址和附着于所述本地csp的每个虚拟网络的指示;从所述crp接收指示每个远程csp的远程网络地址的报告消息,所述每个远程csp附着于含有所述本地csp的一个或多个共用虚拟网络;以及向在所述远程网络地址的所述远程csp传输一个或多个路由消息,从而指示所述共用虚拟网络附着于所述本地csp的部分的本地虚拟路由信息。

在另一实施例中,本公开包括用于实施本地csp的ne,所述ne包含传输器,用于向crp传输注册消息,所述注册消息指示所述本地csp的网络地址和附着于所述本地csp的虚拟网络的指示;接收器,用于从所述crp接收指示附着于所述虚拟网络的每个远程csp的远程网络地址的报告消息;以及处理器,耦合于所述传输器和接收器,所述处理器用于使所述传输器将路由消息传输至在所述远程网络地址的所述远程csp,从而指示所述虚拟网络附着于所述本地csp的本地部分的本地虚拟路由信息。

从以下结合附图以及权利要求进行的详细描述将更清楚地理解这些以及其它特征。

附图说明

为了更透彻地理解本发明,现参阅结合附图和详细说明而描述的以下简要说明,其中的相同参考标号表示相同部分。

图1a至1c是用于实施地理位置不同的虚拟网络的物理网络的实施例的示意图。

图2是用于在物理网络上操作从而分配虚拟网络路由信息的控制平面网络的实施例的示意图。

图3是网络中ne的实施例的示意图。

图4是分配虚拟网络路由信息方法的实施例的协议图。

图5是用传输控制协议(transmissioncontrolprotocol,tcp)连接来支持在crp注册csp的方法的实施例示意图。

图6是用tcp连接来支持在csp间虚拟网络路由信息分配的方法的实施例的示意图。

图7a-7b是虚拟网络路由信息分配前后的csp路由表的实施例的的示意图。

图8是分配虚拟网络csp附着的crp管理的方法的实施例的流程图。

图9是csp注册和虚拟网络路由信息分配的方法的实施例的流程图。

具体实施方式

首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数量的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。

vm和/或其它虚拟资源可以链接在一起形成虚拟网络,例如虚拟可扩展网络(virtualextensiblenetwork,vxn)。由于虚拟资源经常在服务器之间、地理上较远的数据中心(datacenter,dc)之间,和/或不同的托管公司之间移动,所以维护虚拟网络中的虚拟资源之间的连接性是有困难的。虚拟网络在多个服务提供商控制的核心网络的各部分之间通信时可能进一步产生连接性问题。例如,托管和/或供应商出于安全原因限制与其它托管/供应商的数据共享。

本文公开用于支持在核心网络中dc间管理和分配虚拟网络信息的统一云播控制(cloudcastingcontrol,ccc)协议和架构。虚拟网络(例如,在单个dc内操作)的各部分附着于本地csp。所述csp在网络地址如互联网协议(internetprotocol,ip)地址处是可达的。本地向crp传输注册消息。所述注册消息包含csp的网络地址和csp附着的所有虚拟网络的列表,例如ccc域内的唯一虚拟网络号码,唯一虚拟网络名称,或两者都包括。所述crp维护csp数据库,所述csp数据库指示所述ccc域内所有虚拟网络、所述ccc域内所有csp和指示各虚拟网络和csp间所有附着的数据。定期和/或一旦接收到注册消息,所述crp向所述csp发送报告。报告指示附着于指定虚拟网络的所有csp的网络地址。指定虚拟网络的报告可以只发送到附着于所述指定网络的csp。所述csp用来自所述报告的数据直接与附着于相同虚拟网络的其它csp连接,例如通过tcp连接/会话。然后所述csp与附着于相同虚拟网络的其它csp共享其本地虚拟路由信息,使得本地系统可以发起/维护核心网络中的虚拟网络的单独部分间的数据面通信,例如通过将csp用作网关、虚拟可扩展局域网(virtualextensiblelocalareanetwork,vxlan)等。

图1a至1c是用于实施地理位置不同的虚拟网络的物理网络100的实施例的示意图。参考图1a,物理网络100可包含dc101,用于操作为多个虚拟网络配置的虚拟资源。dc101通过核心网络120彼此连通耦合。核心网络120分隔在多个区域:区域121、区域122和区域123。区域121、122和123各自包含被物理链路141耦合的多个物理节点145。位于核心网络区域121、122和/或123中的虚拟交换机(virtualswitch,vswitch)服务器130促进虚拟网络间的通信。

核心网络120为dc101提供路由和其它电信服务。核心网络120可以包含高速电力、光学、电光或其它组件来引导dc101间的通信。核心网络120可以是基于ip的网络并可使用ip地址系统(例如第四版互联网协议(ipversionfour,ipv4)或第六版互联网协议(ipversionsix,ipv6))为通信定位源节点和目标节点。核心网络120划分为区域121、区域122和区域123。尽管描绘了三个区域,应注意的是,可以使用任意数量的区域。每个区域由不同的服务提供商操作并且包含域。相应地,出于安全原因可能会控制区域间的信息共享。每个区域包含被链路141耦合的节点145。节点145可以是任何光学、电力和/或电光组件,用于接收、处理、储存、路由和/或转发数据包,和/或另外为网络中的传输建立或修改通信信号。例如,节点145可以包含路由器、交换机、集线器、网关、电光转换器和/或其它数据通信设备。链路141可以是任何用于在节点间传播信号的电和/或光介质。例如,链路141可以包含光纤、同轴电缆、电话线、网线或任何其它传输介质。在一些实施例中,链路141也可以包含基于无线电的链路,用于如节点145的节点间无线通信。

dc101是容纳用于处理和/或向终端用户供应数据的计算机系统、电力系统、存储系统、传输系统和/或任何其它电信系统的任何设施。dc101可以包含服务器、交换机、路由器、网关和数据存储系统等。dc101可以在地理位置上彼此不同(例如,位于不同城市、州和国家等)并且可以通过一个或多个dc-核心网络接口在核心网络120中耦合。每个dc101可以维护本地路由和/或安全域,可以操作一个或多个如vxn的虚拟网络的部分以及相关联的虚拟资源,如vm。参考图1b,dc101包含多个可置于机架的服务器105。机架可包含用于路由和/或在所述机架中的服务器105之间交换传输的架顶(topofrack,tor)交换机。dc101可进一步包含用于与tor交换机103通信,并在机架列和dc101边缘之间交换和/或路由数据包的列末(endofrow,eor)交换机。服务器105可为虚拟网络提供硬件资源和/或实施任何数量的虚拟资源。

虚拟网络可包含用于为租户申请处理、储存和/或管理数据的vm107。可用虚拟媒体接入控制(mediaaccesscontrol,mac)和/或虚拟ip地址定位vm107。所述虚拟网络可包含用于基于虚拟ip和/或虚拟mac地址向vm107和从vm107路由数据包的vswitch106。vswitch106还可以维护在指定时间操作vm107的服务器105的所述虚拟ip和虚拟mac地址之间的相关性意识以及物理ip和mac地址之间的相关性意识。vswitch106可位于服务器105上。vswitch106可通过vxlan网关(gateway,gw)102彼此通信。vxlangw102还可以维护vm107的虚拟ip和虚拟mac地址之间的相关性意识以及在指定时间操作vm107的服务器105的物理ip和mac地址之间的所述相关性意识。例如,vswitch106可通过开放系统互连(opensystemsinterconnection,osi)二层协议(例如,mac路由)在相关联的虚拟网络中传播数据包,vxlangw102可将osi二层数据包转化成osi三层数据包(例如,ip数据包),从而直接向在相同或不同dc101中的其它vxlangw102的传输,由此在所述三层ip网络中扩展所述二层网络。vxlangw102可位于tor103、eor或任何其它网络节点中。所述虚拟网络还可包含用于充当相关联的虚拟网络的各本地部分的边缘设备的网络虚拟边缘(networkvirtualedge,nve)104。nve104可位于服务器105、tor103或vswitch106和vxlangw102之间的任何其它位置。nve104可执行数据包翻译功能(例如二层到三层)、数据包转发功能、安全功能和/或网络边缘设备的任何其它功能。

vswitch服务器130可在核心网络120的不同区域121、122和/或123中操作,可与在dc101处的虚拟网络组件通信。参考图1c,vswitch服务器130包含vswitch134,vswitch134与vswitch106大致相同并可在核心网络120中执行vswitch106类似功能。vswitch服务器130进一步包含一个或多个虚拟负载均衡服务(virtualloadbalanceservice,vlbs)131组件,用于通过从过度使用的链路/节点到未充分利用的链路/节点等重路核心网络120中的业务流,来执行通信负载均衡和/或其它网络通信负载优化。vswitch服务器130进一步包含防火墙(firewall,fw)132,fw132用于执行网络安全以及用于遍历核心网络120的业务流,例如,通过阻止未经授权的通信、丢弃数据包等。vswitch服务器130进一步包含入侵防御系统(intrusionpreventionsystem,ips)133,ips133还可被称作入侵检测和防御系统(intrusiondetectionandpreventionsystem,idps),用于监测网络通信的恶意活动,例如拒绝服务(denialofservice,dns)攻击,并与其它网络组件交互以降低此类恶意活动造成的损害(例如,通过接触网络管理系统、重新配置fw132等)。

如下文更详细论述,所述核心网络中的vswitch服务器130可用于与vswitch106、nve104和/或vxlangw102通信。具体地,vswitch服务器130可充当用于维护集合点的数据库表,所述数据库表用于维护dc101的ip地址信息和在指定时间在各dc101操作的虚拟网络的指示。一旦被请求和/或一旦出现允许dc101交换虚拟网络路由信息的情况,vswitch服务器130可定期向dc101报告ip地址信息和虚拟网络指示。

图2是用于在例如网络100的物理网络上操作从而分配虚拟网络路由信息的控制平面网络200的实施例的示意图。网络200包含在如下更完整论述的物理网络上操作的虚拟化组件。网络200包含多个附着于多个csp210的vxn230。csp210用于在ip网络240,例如核心网络120中通过连接通信。网络200进一步包含crp220,crp220用于使用图2中用虚线指示的csp210执行控制信令。

vxn230可包含分别例如vm107、vswitch106和nve104的vm、vswitch、nve,和/或通常在虚拟网络中可见的任何其它组件。vxn230在例如dc101的dc中操作。dc可操作任何数量的vxn230和/或vxn230的任何数量的部分。例如,第一vxn230可分配在整个dc101,第二vxn230可分配在两个dc中,第三vxn230可包含于单个dc中等。可依据虚拟网络路由信息,例如vxn230中虚拟资源的虚拟ip地址和虚拟mac地址,描述vxn230。

在dc处的vxn230的每个本地部分附着于csp210。csp210可分别在例如服务器105或tor103的服务器或tor上操作,eor交换机或任何其它物理ne或例如dc101的dc中的虚拟组件。csp210同时连接于虚拟网络(例如,vxn230)和ip骨干/交换结构。csp210用于将虚拟ip地址、虚拟mac地址、vxn号码/标识符(identifier,id)、vxn名称和/或其它附着vxn230的vxn信息储存为虚拟网络路由信息。虚拟网络路由信息还可包含网络路由、路由类型、协议封装类型等。csp210进一步用于与crp220通信以获得附着于任何共用vxn230的其它csp210的网络地址(例如,ip地址)。然后csp210可在ip网络240中交换虚拟网络路由信息以允许在vxn230中但存在于不同dc中的虚拟资源通信。csp210可用于充当用户/租户接入点,充当在不同云端(例如dc)中的vxn230间的互连点,充当vxn230和物理网络间的网关,以及参与基于ccc的控制和数据转发。

crp220用于与csp210通信,维护列举每个csp210网络地址(例如,ipv4/ipv6地址)和列举附着于每个csp210的所有vxn230的csp数据库(例如,通过使用单独的vxn号码、vxn范围等)。crp220可存在于核心网络的区域的vswitch服务器中,例如vswitch服务器130。应注意,虽然网络200中描绘了一个crp220,但也可以使用多个crp200,例如每个网络区域121、122和/或123有一个crp220、一群crp、一层crp等。crp220可用于强制执行csp210验证,管理ccc协议和/或ccc自动探索。例如,crp220可接收来自csp210指示其网络地址和附着于所述csp210的任何vxn230的注册消息。可以用在ccc域中(例如通过ccc协议用单crp220控制的域)唯一标识vxn230的vxn号码和/或总体上唯一的vxn230的vxn名称来指示所述vxn230。在多个ccc域/多个crp220的情况下,组合vxn号码和vxn名称唯一标识vxn230。所述vxn名称可表示为完整名称或部分名称和通配符(*)。所述vxn号码可由单独的vxn号码、vxn号码范围、云名称、云标识符、ip云标签等的列表表示。crp220可向csp210传输报告消息以向各csp210指示附着于共用vxn230的其它csp210的网络地址。可通过vxn号码匹配、vxn名称匹配、部分vxn名称匹配或其组合确定通用vxn。通过比较登记csp对特定vxn230的兴趣和csp210的其它附着的vxn230号码,和其它csp210的附着vxn230,或其组合,完成vxn匹配。一旦接受到报告消息,csp210可直接连接网络200中实线所描绘的其他相关csp210,从而交换虚拟网络路由信息。应注意的是,crp220可以不向指定的csp210发送具有关于vxn230信息的报告,除非vxn230附着于指定的csp210。相应地,csp210可以不接收与任何不附着于csp210的vxn230相关联的网络地址或虚拟网络路由信息。csp210和/或crp220可通过tcp连接/会话或任何其它直接通信协议在ip网络240中通信。一旦接收到来自csp210的关于共用附着的vxn230的注册消息,和/或一旦出现指定情况,crp220可定期向csp210发送报告。一旦接收到来自crp220的报告,一旦本地虚拟网络路由信息发生改变,和/或一旦出现指定情况,csp210可定期与其它csp210交换虚拟网络路由信息。此类交换可通过tcp发布消息发生。所述虚拟网络路由信息的交换允许每个vm和/或ne与在相同vxn230中的任何其它vm或ne通信。

图3是在例如网络100或200的网络中的ne300的实施例的示意图。例如,ne300可充当服务器107、tor103、vswitch服务器130、节点145和/或网络100中的任何其它节点。ne300还可是用于实施csp210、crp220和/或vxn230的任何虚拟资源的任何组件。ne300可在单节点内实施或ne300的功能性可在多个节点内实施。所属领域的技术人员将认识到,术语ne涵盖较宽范围的设备,其中ne300仅是实例。出于清楚论述的目的,包含ne300,但绝非意图将本发明的应用限制于特定ne实施例或ne实施例的类别。本公开描述的至少一些特征/方法在网络装置或组件,例如ne300中实施。举例来说,可用硬件、固件和/或用于在硬件上运行而安装的软件以实施本发明的所述特征/方法。ne300是通过网络传送框架的任何设备,例如,交换机、路由器、网桥、服务器、用户端等。如图3所示,ne300可包含收发器(transceiver,tx/rx)310,tx/rx310是传输器、接收器、或其组合。tx/rx310分别耦合于用于传输和/或接收来自其它节点的帧的多个下行端口320(例如下行接口),和用于传输和/或接收来自其它节点的帧的多个上行端口350(例如上行接口)。处理器330耦合于tx/rx310以处理帧和/或确定将帧发送到哪些节点。处理器330可包含一个或多个多核处理器和/或存储器332设备,充当数据存储容器、缓冲区、随机存取存储器(randomaccessmemory,ram)、只读存储器(readonlymemory,rom)等。处理器330可以实施为通用处理器或可以是一个或多个专用集成电路(asic)和/或数字信号处理器(dsp)的一部分。处理器330包含ccc协议模块334,所述ccc协议模块334执行至少一些本文所论述的方法,例如方法400、500、600、800和/或900。在一个可替代实施例中,ccc协议模块334执行为储存于存储器332中的指令,所述指令由处理器330执行,或部分在处理器330中实施部分在存储器332中实施,例如储存于非暂时性存储器中的包含被处理器330执行的指令的计算机程序产品。在另一个可替代实施例中,ccc协议模块334在单独的ne上执行。下行端口320和/或上行端口350可含有电力和/或光学传输和/或接收组件。

应理解,通过将可执行指令编程和/或加载到ne300上,处理器330、ccc协议模块334、tx/rx310、存储器332、下行端口320和/或上行端口350中的至少一个发生改变,将ne300部分转换成具有本公开所教示的新颖功能的特定机器或装置,例如,多核心转发架构。对于电力工程和软件工程领域来说重要的是,可以通过将可执行软件加载到计算机中而实施的功能可以通过众所周知的设计规则转换为硬件实施方案。决定在软件还是硬件中实施概念通常取决于对设计的稳定性和待产生的单元的数目的考虑,而非从软件域转移到硬件域所涉及的任何问题。通常,仍在经受频繁改变的设计优选可以在软件中实施,因为重改硬件实施方案比重改软件设计更为昂贵。通常,大批量生产的稳定的设计可以优选在硬件中实施,例如在asic中实施,因为大批量生产运行硬件实施方案可能比软件实施方案便宜。通常,一种设计以软件形式开发及测试,随后通过熟知的设计规则转换为对软件的指令进行硬连线的专用集成电路中的等效硬件实施方案。新的asic控制的机器即为特定机器或装置。同样方式,类似地,已经编程和/或加载有可执行指令的计算机可看作特定机器或装置。图4是分配虚拟网络路由信息方法400的实施例的示意图。可用与csp210大致相同的的第一csp(csp1)和第二csp(csp2),以及与crp220大致相同的的crp实施方法400。当csp1上电或附着于例如vxn230的新虚拟网络时,可开始执行方法400。在步骤410,csp1向所述crp传输注册消息。所述注册消息可包含csp1的网络地址,例如ip地址,和附着于csp1的各vxn的指示,例如指示vxn名称和/或号码。在一些实施例中,所述注册消息还可包含csp1的id(例如字符串或号码)和/或csp1感兴趣的任何其它虚拟网络的指示。所述crp可将来自步骤410的注册消息的数据保存到csp数据库。在步骤420,所述crp可通过传输报告消息响应csp1。步骤420的所述报告消息可包括附着于带有csp1的共用vxn的每个csp的网络地址列表以及相关联的vxn的vxn名称和/或号码。例如,所述注册消息可指示csp1附着于第一vxn,所述报告消息可指示csp2和csp2的网络/ip地址也附着于所述第一vxn。在一个可替代实施例中,所述crp可同时向csp2发送指示csp1的所述网络地址和指示csp1和csp2共享共用vxn的报告消息。在步骤430,csp1向csp2传输发布消息,csp2位于步骤420中从crp接收到的所述网络地址处。所述发布消息可包含用于共用vxn位于csp1的部分(例如第一vxn)的虚拟网络路由信息。在步骤440,csp2也可通过发布消息响应csp1,所述发布消息指示共用vxn位于csp2的部分(例如第一vxn)的虚拟网络路由信息。通过交换所述共用vxn的虚拟网络路由信息和附着的csp的网络地址,通过转发数据包到位于csp的目标虚拟资源的虚拟地址,所述csp附着于虚拟网络包含所述目标虚拟资源的部分,vxn中每个虚拟资源可以与任何其它虚拟资源通信(例如通过单播、多播等)。网络封装还可用来允许通过csp地址和虚拟资源地址转发其它协议(例如vxlan、采用通用路由封装协议的网络虚拟化(networkvirtualizationusinggenericroutingencapsulation,nvgre)、多协议标记交换(multiprotocollabelswitching,mpls)等)中的消息。

图5是用tcp连接来支持在crp注册csp的方法500的实施例示意图。方法500可以用分别与csp210和crp220大致相同的cspcsp1和crp来实施。可以实施方法500从而为通过tcp会话传输注册消息做准备,例如步骤410的注册消息。当在csp和crp之间实施所述会话时,所述会话可被称为csp-crp会话。当csp1上电或附着于例如vxn230的新虚拟网络时,可以开始执行方法500。在步骤510,csp1向crp传输同步(synchronization,syn)消息以指示tcp连接请求。在步骤511,crp可以使用指示crp为建立tcp连接做好准备的syn-应答(acknowledgement,ack)消息来响应。在步骤512,csp使用指示csp1已接收到syn-ack以及指示tcp连接/会话已建立的的ack来回复。一旦完成步骤512,csp1可向crp转发步骤410的注册消息。应注意的是,当所述csp向所述crp发送所述syn消息时,所述csp可以被认为是所述tcp连接的发起者。所述crp可扮演连接接收器的角色。此外,所述csp和所述crp可分别验证其他(例如对端)设备的身份和位置。此类验证可以手动完成或采用其它安全协议,例如拨号用户远程认证服务(remoteauthenticationdialinuserservice,radius)、扩展radius协议(diameter)等。也可采用信息摘要算法(messagedigestalgorithm,md5)签名和/或其它因特网协议安全协议(ipsecurity,ipsec)模式来管理安全。

图6是用tcp连接来在csp间支持虚拟网络路由信息分配的方法600的实施例的协议图。方法600可用与csp210大致相同的csp1、csp2和第三csp(csp3)来实施。当csp1、csp2和/或csp3接收到来自crp的报告消息时,可以开始执行600。发送到csp1的所述报告消息指示csp1附着于第一vxn(vxn-10)和第二vxn(vxn-20)。发送到csp1的所述报告还指示csp2的网络地址,以及csp2也附着于vxn-10(例如,共用虚拟网络)。发送到csp2的所述报告指示csp1附着于vxn-10,csp2附着于vxn-10和第三vxn(vxn-30),csp3也附着于vxn-30。发送到csp2的所述报告进一步指示csp1和csp3的网络地址。最后,发送到csp3的所述报告指示csp2和csp3都附着于vxn-30,并提供csp2的网络地址。相应地,由于csp3不附着于那些虚拟网络,所以csp3不接收关于vxn-10或vxn-20的信息(例如,csp1不接收关于vxn-30的信息等)。一旦接收到报告,csp1发起与csp2的tcp会话,使用与步骤510-512类似的方式在步骤610传输syn,在步骤611接收syn-ack,并在步骤612使用ack回复。一旦在csp1和csp2之间建立了所述tcp会话,csp1和csp2可通过tcp发布(post,post)消息来交换关于vxn-10的虚拟路由信息。csp2也可建立与csp3的tcp会话,使用与步骤610-612类似的方式,在步骤630传输syn,在步骤631接收syn-ack,并在步骤632使用ack回复。一旦在csp2和csp3之间建立了所述tcp会话,csp2和csp3可通过tcp发布(post,post)消息交换关于vxn-30的虚拟路由信息。由于cps1和csp3不共享共用虚拟网络,因此不具有相互交换的相关虚拟路由信息,所以csp3可以不用与csp1建立tcp会话/连接。当在两个csp之间实施所述tcp会话时,所述tcp会话可被称为csp-csp会话。

应注意的是,每个csp可以尝试与其它带有共用虚拟网络的csp发起tcp连接。相应地,所述csp可以协商连接发起者和连接接收者的角色,例如基于是哪个csp发送了第一发布消息。此外,可将所述发布消息发送到指定端口,例如端口35358,或为了此类目的指定的的任何其它端口。还应注意的是,可以使用方法500和600通过tcp维护ccc会话状态。可以通过在tcp连接中传输保活消息或通过发送定期发布、注册和/或报告消息,在所述csp和/或所述crp之间维护所述ccc会话状态。还应注意的是,方法600应用于带有三个vxn的三个csp,任何数量的csp和任何数量/配置的vxn都可使用方法600来分配用于通用vxn的虚拟路由信息。

图7a-7b是虚拟网络路由信息分配前后的csp路由表700的实施例的的示意图,例如方法400、500、600、800和/或900的结果。换句话说,图7a-7b展示了在不同时间(例如第一次和第二次)的路由表700。参考图7a,路由表700包含在csp1上的路由表710,在csp2上的路由表720,和在csp3上的路由表730,其中csp1、csp2和csp3可分别与csp210大致相同。路由表710、720和730分别描绘了在第一指定时间,例如在从crp接收报告消息之前,csp1、csp2和csp3已知的所述虚拟网络路由信息。所述csp附着于可以与vxn230大致相同的vxn-10、vxn-20和vxn-30。如路由表710所示,csp1附着于vxn-10和vxn-20。vxn-10附着于csp1的部分包含具有第一虚拟ip地址(vm1-ip)和虚拟mac地址(vm1-mac)的第一vm(vm-1)以及具有虚拟地址vm2-ip和vm2-mac的第二vm(vm-2)。此外,vxn-20附着于csp1的部分包含分别具有虚拟地址vm3-ip/vm3-mac的第三vm(vm-3)和具有vm4-ip/vm4-mac的第四vm(vm-4)。如路由表720所示,csp2附着于vxn-10和vxn-30。vxn-10附着于csp2的部分包含分别具有虚拟地址vm10-ip/vm10-mac的第十vm(vm-10)和具有vm11-ip/vm11-mac的第十一vm(vm-11)。vxn-30附着于csp2的部分包含分别具有虚拟地址vm20-ip/vm20-mac的第二十vm(vm-20)和具有vm21-ip/vm21-mac的第二十一vm(vm-21)。如路由表730所示,csp3附着于vxn-30。vxn-30附着于csp3的部分包含分别具有虚拟地址vm50-ip/vm50-mac的第五十vm(vm-50)和具有vm51-ip/vm51-mac的第五十一vm(vm-51)。如图7a所见,csp1和csp2附着于共用网络vxn-10;csp2和csp3附着于共用网络vxn-30。但是,在初始时间,csp1不察觉在通用vxn-10中附着于csp2的虚拟资源,反之亦然。同样地,csp2不察觉在共用vxn-30中附着于csp3的虚拟资源,反之亦然。

参考图7b,路由表711、721和731分别描绘在第二指定时间,例如在虚拟网络路由信息分配之后,csp1、csp2和csp3已知的所述虚拟网络路由信息。具体地,csp1已接收指示共用虚拟网络vxn-10附着于csp2的部分的虚拟网络路由信息(例如vm10-ip/vm10-mac等),反之亦然(例如vm1-ip/vm1-mac等)。此外,csp2已接收指示附着于csp3的共用虚拟网络vxn-30的部分的虚拟网络路由信息(例如vm50-ip/vm50-mac等),反之亦然(例如vm20-ip/vm20-mac等)。相应地,通过指定目标vm网络地址和目标vm附着的csp的网络地址,在任何虚拟网络中的每个vm可以与在相同虚拟网络(或任何虚拟网络,取决于实施例)中的任何目标vm通信。如路由表700所示,csp可以不交换虚拟网络路由信息,因为这两个csp没有共享虚拟网络(例如因为vxn-30不附着于csp1,所以csp1不接收关于vxn-30的数据)。换句话说,在ccc域中,可能没有csp的全网格。

图8是分配虚拟网络csp附着的crp管理的方法800的实施例的流程图。当例如网络100的ccc协议可行网络可操作的时候,例如crp220的crp可以实施方法800。在步骤801,在crp处维护指示所有已知csp和所有附着于每个csp的虚拟网络(例如vxn)的云播数据库。在步骤803,从第一crp接收指示所述crp网络地址(例如物理网络地址)和附着于所述第一csp的所有vxn的指示(例如vxn名称/号码)的注册消息。当第一csp上电,或第一csp定期附着于新vxn,和/或一些其它情况出现时,接收步骤803的所述注册消息。在步骤805,使用所述第一csp网络地址和vxn附着更新所述云播数据库。在步骤807,向附着于带有所述第一csp的共用vxn的每个csp发送报告消息,例如向其它csp指示csp1含有相关vxn路由信息,反之亦然。步骤807的所述报告消息可以不含有直接虚拟网络路由信息(例如vm的ip或mac地址)。步骤807的所述报告消息可以只指示与csp1共享共用虚拟网络的每个csp的网络地址,和所述共用虚拟网络的指示,从而支持所述csp之间的虚拟网络路由信息分配。应注意,在一些实施例中,所述crp可以向所述第一csp传输具有数值集合的应答,从而成功或未能向所述csp指示注册的状态。在其它实施例中,所述报告消息可以含有每个csp/vxn的路由状态码。所述路由状态码可设定成有效的或无效的。基于得到的报告内的所述路由状态码,csp可以确定相关联的注册消息的成果。

图9是csp注册和虚拟网络路由信息分配的方法900的实施例的流程图。当所述csp上电,定期附着/不附着于虚拟网络,或一旦接收到命令时,可用例如csp210的csp实施方法800。为了清楚论述,所述csp实施方法900被称作本地csp,而其它csp(例如在远程dc内,如dc101)被称作远程csp。在步骤901,将注册消息从所述本地csp发送到crp。所述注册消息指示所述本地csp的网络地址和附着于所述本地csp的一个或多个虚拟网络(例如vxn)。在步骤903,所述本地csp从所述crp接收报告消息。所述报告消息指示附着于虚拟网络的任何部分的每个远程csp的网络地址,所述虚拟网络也附着于所述本地csp。所述报告还指示哪个共用虚拟网络附着于所述远程csp(例如vxn号码/名称)。在步骤905,将发布消息从所述本地csp传输到位于所述报告指示的所述网络地址的每个远程csp。每个发布消息包含在附着于所述本地csp的共用虚拟网络的部分内的虚拟资源的虚拟网络路由信息(例如vmip/mac)。在步骤907,从附着于带有所述本地csp的共用虚拟网络的每个远程csp接收发布消息。接收到的发布消息指示虚拟资源的虚拟网络路由信息,所述虚拟资源附着于带有所述本地csp的共用虚拟网络中的所述远程csp。应注意,步骤905和/或907的所述发布消息可以含有与所述共用虚拟网络相关的其它信息。例如,可通过地址族标识符(addressfamilyidentifier,afi)和/或子地址族标识符(subsequentaddressfamilyidentifier,safi)等指示路由器类型信息。虚拟网络路由可以用字冠字段和mac地址字段表示,所述字冠字段具有地址字冠,其后跟随按需要落在字节边界上的尾随零,所述mac地址字段含有字长和mac地址(例如当所述afi/safi指示二层虚拟专用网络(layertwovirtualprivatenetwork,l2vpn)时)指示。一旦完成方法900,所述本地csp可以保存接收到的虚拟网络路由信息,并且可能已经获得足够的路由信息从而将虚拟网络的本地部分中的虚拟资源之间的数据路由到附着于远程csp的虚拟网络的远程部分中的虚拟资源。

虽然本发明多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。

此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。

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