支持虚拟机在多协议标签网络中迁移的方法和相应的设备技术领域
本发明涉及通信技术,更具体地,本发明涉及支持虚拟机在多
协议标签网络中迁移的方法和相应的设备。
背景技术
云计算(Cloud Computing)是网格计算(Grid Computing)、
分布式计算(DistributedComputing)、并行计算(Parallel Computing)、
效用计算(Utility Computing)、网络存储(Network Storage
Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)
等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把
多个成本相对较低的计算实体整合成一个具有强大计算能力的系
统,并借助SaaS(Software-as-a-Service:软件即服务)、
PaaS(Platform-as-a-Service:平台即服务)、IaaS(Infrastructure-as-a-
Service:基础设施即服务)、MSP(Manage Service Provider:管理服
务提供商)等模式把这强大的计算能力分布到终端用户手中。
通过将服务封装在虚拟机中并映射到物理资源,即云中心,虚
拟化技术能够根据负载的变化进行虚拟机和物理资源的重映射,从
而动态地实现整个系统的负载均衡。也就是说,虚拟机可以动态迁
移,从一个云中心迁移到另一个云中心,以实现系统的负载均衡。
从用户的观点来看,不管虚拟机如何迁移,他们的服务应当在
虚拟机迁移阶段之间保持连续。
在实际中,可以采用多协议标签交换(MPLS)网络来连接各个
云中心。
发明内容
本发明的目的就是提供一种方案,以支持虚拟机在多协议标签
网络中的迁移。
根据本发明的第一方面,提出了一种支持虚拟机在多协议标签
网络中迁移的方法,包括步骤:
第一标签边缘路由器LER从希望注册到所述第一LER的第一虚
拟机接收迁移支持功能MEF发现消息;
所述第一LER更新其自己的虚拟机注册数据库,以体现所述第
一虚拟机到所述第一LER的注册;以及
所述第一LER向所述第一虚拟机发送MEF公告消息,以告知所
述第一LER对所述第一虚拟机的注册完成。
根据本发明的第二方面,提出了一种支持虚拟机在多协议标签
网络中迁移的第一标签边缘路由器LER,包括:
迁移支持功能MEF发现消息接收装置,用于从希望注册到所述
第一LER的第一虚拟机接收迁移支持功能MEF发现消息;
更新装置,用于更新其自己的虚拟机注册数据库,以体现所述
第一虚拟机到所述第一LER的注册;以及
MEF公告消息发送装置,用于向所述第一虚拟机发送MEF公告
消息,以告知所述第一LER对所述第一虚拟机的注册完成。
根据本发明的第三方面,提出了一种支持虚拟机在多协议标签
网络中迁移的方法,包括步骤:
第一区域路由反射器ARR从其区域内的第一标签边缘路由器
LER接收虚拟机注册更新消息,所述虚拟机注册更新消息指示所述
第一虚拟机注册到所述第一LER;
所述第一ARR根据所述接收的虚拟机注册更新消息,更新其自
己的虚拟机注册数据库,以体现所述第一虚拟机到所述第一LER的
注册。
根据本发明的第四方面,提出了一种支持虚拟机在多协议标签
网络中迁移的第一区域路由反射器ARR,包括:
虚拟机注册更新消息接收装置,用于从其区域内的第一标签边
缘路由器LER接收虚拟机注册更新消息,所述虚拟机注册更新消息
指示所述第一虚拟机注册到所述第一LER;
更新装置,用于根据所述接收的虚拟机注册更新消息,更新其
自己的虚拟机注册数据库,以体现所述第一虚拟机到所述第一LER
的注册。
根据本发明,不需要复杂的注册层级。另外,虚拟机也不需要
知道注册层级,并且只有很少的一些注册信令和处理涉及虚拟机。
附图说明
通过以下结合附图的说明,并且随着对本发明的更全面了解,
本发明的其他目的和效果将变得更加清楚和易于理解,其中:
图1示意性地示出了根据本发明的一个实施方式的本发明可以
在其中实现的环境;
图2示出了根据本发明的一个实施方式的虚拟机迁移支持功能
发现与注册过程;
图3示意性地示出了根据本发明的一个实施方式的ICMP路由器
请求消息的格式;
图4示意性地示出了根据本发明的一个实施方式的ICMP路由器
公告消息的格式;
图5a示意性地示出了MP_REACH_VMB的基本编码格式;
图5b示意性地示出了MP_UNREACH_VMB的基本编码格式;
图5c示意性地示出了虚拟机注册更新扩展字段;
图6示出了当客户端发起与虚拟机的通信时所涉及的过程;
图7示意性地示出了MP_VMB_QUERY的基本编码格式;
图8示意性地示出了MP_VMB_NTFC的基本编码格式;
图9示意性地示出了根据本发明的一个实施方式当虚拟机发生
迁移时所涉及的过程;
图10示意性地示出了根据本发明的另一个实施方式当虚拟机发
生迁移时所涉及的过程;
图11示出了根据本发明的一个实施方式的标签边缘路由器的框
图;
图12示出了根据本发明的一个实施方式的区域路由反射器的框
图。
在所有的上述附图中,相同的标号表示具有相同、相似或相应的
特征或功能。
具体实施方式
现在结合附图详细描述根据本发明的实施方式。
图1示意性地示出了根据本发明的一个实施方式的本发明可以
在其中实现的环境。
如图1所示,服务提供商的MPLS网络100分成3个服务区域
101、102、103。其中服务区域101包括一个区域路由反射器ARR 1
和两个标签边缘路由器LER 11和LER 12;服务区域102包括一个
区域路由反射器ARR 2和两个标签边缘路由器LER 21和LER 22;
服务区域103包括一个区域路由反射器ARR 3和三个标签边缘路由
器LER 31、LER 32和LER 33。
并且,假定在当前,虚拟机41注册到LER 11,虚拟机42注册
到LER 21,虚拟机43注册到LER 31。更具体地,虚拟机41实例
化在连接到LER 11的云中心,虚拟机42实例化在连接到LER 21
的云中心,虚拟机43实例化在连接到LER 31的云中心,这些云中
心没有在图1中示出。另外,假定在当前,希望与虚拟机传输数据
分组的客户端51连接到LER 11,客户端52连接到LER 21,客户端
53连接到LER 31。
为了支持虚拟机迁移,每个服务区域中的LER和ARR都实现
有迁移支持功能MEF,如下面将详细描述的。
为了扩展性考虑,在本发明的如下描述的实施方式中,引入了
ARR。ARR的作用在于限制某些消息在LER和LER之间直接传输,
而是通过ARR来转发。也就是说,某些消息并不直接在LER和LER
之间传输,而是在LER和ARR之间传输或在ARR和ARR之间传输,
如下面将详细描述的。
另外,需要说明的是,虽然在图1中没有示出各LER之间的连
接,但是各LER之间可以通过在它们之间建立的LSP标签交换路径,
互相进行通信。同样地,虽然在图1中没有示出各ARR之间的连接,
但是各ARR之间可以通过在它们之间建立的LSP标签交换路径,互
相进行通信。以及,虽然在图1中没有示出各LER与其所在区域的
ARR之间的连接,但是各LER与其所在的区域的ARR之间可以互
相进行通信。
当然,本领域的技术人员应当理解,在本发明的其他实施方式
中,并不需要ARR。
在本发明的实施方式中,保留一些公共IP地址,这些IP地址定
义作为支持虚拟机迁移的虚拟机标识符VMID。这些VMID对于图1
中未示出的所有中间标签交换路由器LSR来说是没有意义的。也就
是说,在本发明的实施方式中,到虚拟机的数据分组的转发等价类
(FEC)根据虚拟机注册到的LER的IP地址,由所述数据分组的进
入LER决定,而与虚拟机本身的IP地址无关。
下面以IPv4为例来描述本发明的实施方式。然而,本领域的技
术人员应当理解,本发明并不限于IPv4的情况,本发明也适用于IPv6
的情况。
表格1示出了在图1中所示的MPLS网络100中涉及到的虚拟
机VM、LER和ARR的假定IP地址。
节点
IP地址
VM 41
210.101.34.25
VM 42
210.101.34.30
VM 43
210.101.34.35
LER 11
211.140.111.1
LER 12
211.140.222.1
ARR 1
211.136.10.1
LER 21
212.140.111.1
LER 22
212.140.222.1
ARR 2
212.136.10.1
LER 31
213.140.111.1
LER 32
213.140.222.1
LER 33
213.140.233.1
ARR 3
213.136.10.1
表格1
图2示出了根据本发明的一个实施方式的虚拟机迁移支持功能
发现与注册过程。
不失一般性,假定图2中所示的虚拟机迁移支持功能发现与注
册过程在虚拟机41与LER 11之间进行。本领域的技术人员应当理
解,在虚拟机42与LER 21之间,虚拟机43与LER 31之间的虚拟
机迁移支持功能发现与注册过程与图2所示的类似。另外,图2中
所示的虚拟机迁移支持功能发现与注册过程不但适用于虚拟机初次
发起MEF发现与注册的情况,也适用于当虚拟机迁移时发起的MEF
发现与注册的情况。
首先,在步骤S210,第一标签边缘路由器LER,即LER 11,从
希望注册到所述第一LER的第一虚拟机,即虚拟机41,接收迁移支
持功能MEF发现消息。
当LER 11发现该MEF发现消息中包括的VMID落在支持虚拟
机迁移的IP地址范围内时,在步骤S220,所述第一LER更新其自
己的虚拟机注册数据库,以体现所述第一虚拟机到所述第一LER的
注册。
最后,在步骤S230,所述第一LER向所述第一虚拟机发送MEF
公告消息,以告知所述第一虚拟机到第一LER的注册完成。
虚拟机只注册到在MPLS网络边缘的路由器,即LER。也就是
说,MEF发现和注册过程不扩展到LER后面的中间LSR。
可以通过ICMP(互联网控制消息协议)路由器请求消息来发送
MEF发现消息。
更具体地,可以对ICMP路由器请求消息进行扩展,来发送MEF
发现消息。
对于ICMP路由器请求消息,ICMP类型字段应该设置成10。通
过将ICMP路由器请求消息中的ICMP代码字段设置成没有使用的值
C 1或其他值,来标识该ICMP路由器请求消息用于发送MEF发现消
息。
MEF发现消息可以承载包括但不限于如下的内容:
1)类型标志;
2)虚拟机ID;
3)最近LER ID;
4)最近ARR ID;
5)关联ID。
其中,类型标志为0指示这个消息为MEF发现消息。虚拟机ID
指示要注册的虚拟机的IP地址,只有该虚拟机ID在规定的范围内,
LER才会注册该虚拟机。最近LER ID指示在本次注册之前,虚拟机
最近注册到的LER的IP地址。当该虚拟机初次发起MEF发现与注
册时,最近LER ID必然等于0。最近ARR ID指示在本次注册之前,
虚拟机最近注册到的LER所在区域的ARR的IP地址。当该虚拟机
初次发起MEF发现与注册时,最近ARR ID必然等于0。关联ID是
用于跟踪注册消息对,MEF发现/MEF通告,的序列号。
图3示意性地示出了根据本发明的一个实施方式的ICMP路由器
请求消息的格式。
如图3所示,该ICMP路由器请求消息包括1字节的类型字段
310,1字节的代码字段312,2字节的校验和字段314,4字节的未
使用字段316,1字节的类型标志字段318,1字节的长度字段320,
4字节的虚拟机ID字段322,4字节的最近LER ID字段324,4字节
的最近ARR ID字段326,以及4字节的关联ID字段328。其中类型
标志字段318,长度字段320,虚拟机ID字段322,最近LER ID字
段324,最近ARR ID字段326,以及关联ID字段328是针对MEF
发现消息的扩展。其中长度字段320指示虚拟机ID字段322,最近
LER ID字段324,最近ARR ID字段326和关联ID字段328的长度
(字节数)。
如前所述,LER 11更新其自己的虚拟机注册数据库,以体现所
述第一虚拟机到所述第一LER的注册。
下面的表格2示出了LER 11的虚拟机注册数据库。
VMID
LER ID
210.101.34.25
211.140.111.1
210.3.2.4
211.140.111.1
表格2
如表格2所示,第一LER 11已经在其虚拟机注册数据库中注册
了第一虚拟机VM 41,210.101.34.25。
在其虚拟机注册数据库中注册了第一VM 41之后,LER 11向第
一VM 41回复MEF公告消息。
可以通过ICMP路由器公告消息来发送MEF公告消息。
更具体地,可以对ICMP路由器公告消息进行扩展,来发送MEF
公告消息。
对于ICMP路由器公告消息,ICMP类型字段应该设置成9。通
过将ICMP路由器公告消息中的ICMP代码字段设置成没有使用的值
C2或其他值,来标识该ICMP路由器公告消息用于发送MEF公告消
息。
MEF公告消息可以承载包括但不限于如下的内容:
1)类型标志;
2)服务LER ID;
3)服务ARR ID;
4)关联ID。
其中,类型标志为1指示这个消息为MEF公告消息。服务LER
ID指示该虚拟机当前注册到的LER的IP地址,在该实施方式中,
即为LER 11的IP地址。服务ARR ID指示该虚拟机当前注册到的
LER所在区域的ARR的IP地址,在该实施方式中,即为ARR 1的
IP地址。关联ID是用于跟踪注册消息对,MEF发现/MEF公告,的
序列号。
图4示意性地示出了根据本发明的一个实施方式的ICMP路由器
公告消息的格式。
如图4所示,该ICMP路由器公告消息包括1字节的类型字段
410,1字节的代码字段412,2字节的校验和字段414,1字节的地
址数量字段416,1字节的地址条目大小字段418,2字节的生命时
间字段420,4字节的路由器地址[1]字段422,4字节的偏好级别[1]
字段424,1字节的类型标志字段426,1字节的长度字段428,4字
节的服务LER ID字段430,4字节的服务ARR ID字段432,以及4
字节的关联ID字段434。其中类型标志字段426,长度字段428,服
务LER ID字段430,服务ARR ID字段432,以及关联ID字段434
是针对MEF公告消息的扩展。其中长度字段428指示服务LER ID
字段430,服务ARR ID字段432和关联ID字段434的长度(字节
数)。
在注册完成后,所述第一LER 11就可以转发从所述第一虚拟机
41接收的数据分组到相应客户端所连接的LER,例如客户端53所连
接的第二LER 31。
根据本发明的一个实施方式,在图2所示的过程中,在注册完
成后,还可以包括步骤:所述第一LER 11向所述第一LER 11所在
区域的区域路由反射器ARR 1发送虚拟机注册更新消息,以使所述
ARR 1可以更新其自己的虚拟机注册数据库,以体现所述第一虚拟
机41到所述第一LER 11的注册。
可以通过BGP(边界网关协议)更新消息,来发送所述的虚拟
机注册更新消息。
更具体地,可以对BGP更新消息进行扩展,来发送虚拟机注册
更新消息。
例如,可以通过定义新<AFI(=A1),SAFI(=S 1)>对,使用
MP_REACH_NLRI来发送虚拟机注册更新消息。其中AFI为家族标
识符,SAFI为下一地址家族标识符。
也就是说,对MP_REACH_NLRI进行扩展,来发送虚拟机注册
更新消息。
这样扩展的MP_REACH_NLRI属性特别地表示为MP_
REACH_VMB。
图5a示意性地示出了MP_REACH_VMB的基本编码格式。
如图5a所示,MP_REACH_VMB属性包括2字节的AFI字段
510(取值为A1),1字节的SAFI字段512(取值为S1),1字节
的下一跳网络地址的长度字段514,4字节的下一跳的网络地址字段
(可变)516,1字节的保留字段518,以及若干字节的虚拟机注册
更新扩展字段520。其中虚拟机注册更新扩展字段520是针对虚拟机
注册更新消息的扩展。
图5c示意性地示出了虚拟机注册更新扩展字段520。
如图5c所示,虚拟机注册更新扩展字段520包括1字节的长度
字段5201,其指示虚拟机注册更新扩展字段520的长度;4字节的
VMID字段5202,其指示注册的虚拟机的IP地址;4字节的目标
路由器ID字段5203,其指示接收虚拟机注册更新消息的LER或ARR
的IP地址;服务LER ID字段5204,其指示虚拟机注册到的LER的
IP地址;服务ARR ID字段5205,其指示虚拟机注册到的服务LER
所在区域的ARR的IP地址;最近的LER ID字段5206,其指示在虚
拟机注册到当前服务LER之前,最近注册到的LER的IP地址,并
且在虚拟机初始发起MEF发现和注册的情况下,最近LER ID=0;
最近的ARR ID字段5207,其指示在虚拟机注册到当前服务LER之
前,最近注册到的LER所在区域的ARR的IP地址,并且在虚拟机
初始发起MEF发现和注册的情况下,最近ARR ID=0。
例如,LER 11可以向ARR 1发送包括如下内容的虚拟机注册更
新消息:<VMID=210.101.34.25,目标服务器ID=211.136.10.1,服
务LER ID=211.140.111.1,服务ARR ID=211.136.10.1,最近LER
ID=0,最近ARR ID=0>。
ARR 1收到该虚拟机注册更新消息后,更新其自己的虚拟机注
册数据库,以体现所述第一虚拟机41到所述第一LER 11的注册。
下面的表格3示出了ARR 1的虚拟机注册数据库中的记录格
式。
表格3
其中,该表格3的前三列分别表示VM的ID、该VMID所注册
到的服务LER的ID、以及该服务LER所在区域的服务ARR的ID。
后面两列表示前面的虚拟机到LER注册记录的查询日志,即针对该
虚拟机到LER的注册记录进行查询的LER的ID以及该LER所在区
域的ARR的ID。
与LER的虚拟机注册数据库的区别在于,ARR的虚拟机注册数
据库还包括查询日志项。另外,ARR的虚拟机注册数据库只记录其
区域下的LER的虚拟机注册情况,而不记录不在其区域下的LER的
虚拟机注册情况。
在这里,由于VM 41刚注册到LER 11,还没有其他的LER和
ARR对这一注册记录进行查询,因此这一注册记录后面的查询日志
为空。
在虚拟机迁移时发起MEF发现与注册的情况下,在图2所示的
过程中,在注册完成后,还可以包括步骤:
所述第一LER向在注册到所述第一LER之前,所述第一虚拟机
最近注册到其上的第三LER,例如LER 22,发送虚拟机注册更新消
息,以使所述第三LER可以更新其自己的虚拟机注册数据库,以体
现所述第一虚拟机到所述第一LER的注册。
所述第一LER向所述第一虚拟机转发从在注册到所述第一LER
之前,所述第一虚拟机最近注册到其上的第三LER接收的数据分组,
或者所述第一LER向所述第一虚拟机转发从客户端所连接的第二
LER接收的数据分组。
图6示出了当客户端发起与虚拟机的通信时所涉及的过程。
不失一般性,假定图6中所示的为连接到第一LER 11的客户端
51发起与注册到LER 31的第二VM 43的通信时所涉及的过程。
当然,本领域的技术人员应当理解,图6中所示的过程适用于
任何客户端发起与任何虚拟机的通信时的情况。
当客户端51发起与注册到LER 31的第二VM 43的通信时,分
组被传送(步骤S602)到客户端51所连接到的第一LER 11。
第一LER 11从分组中知道目的地址,即VM 43的ID,并根据
此VMID,查询(步骤S604)其自己的虚拟机注册数据库,以找到
该第二VM 43的注册记录。
在其自己的虚拟机注册数据库中找到该第二VM 43的注册记录
的情况下,根据该第二VM 43注册到的LER的IP地址,第一LER 11
决定到第二VM 43的数据分组的等价转发类,过程结束。
在其自己的虚拟机注册数据库中没有找到该第二VM 43的注册
记录的情况下,所述第一LER 11向所述第一LER 11所在区域的ARR
1发送(步骤S606)第一虚拟机注册查询消息,以获得第二虚拟机
43的注册情况。
ARR 1接收到上述第一虚拟机注册查询消息后,查询(步骤
S608)其自己的虚拟机注册数据库,以找到该第二VM 43的注册记
录。
在其自己的虚拟机注册数据库中找到该第二VM 43的注册记录
的情况下,该ARR 1向第一LER 11发送第一虚拟机注册查询通告消
息,以告知所述第一LER 11所述第二虚拟机VM 43到相应LER的
注册,并且在其虚拟机注册数据库中记录查询日志。
接收到所述第一虚拟机注册查询通告消息后,所述第一LER 11
更新其自己的虚拟机注册数据库,并且,根据该第二VM 43注册到
的LER的IP地址,第一LER11决定到第二VM 43的数据分组的等
价转发类,过程结束。
在图6所示的过程中,假定ARR 1在其自己的虚拟机注册数据
库中没有找到该第二VM 43的注册记录,因此,该ARR 1向任何其
他ARR发送(步骤S610)第二虚拟机注册查询消息,以获得第二虚
拟机43的注册情况。
当各ARR,例如ARR 3接收到上述第二虚拟机注册查询消息后,
查询(步骤S612)其自己的虚拟机注册数据库,以找到该第二VM 43
的注册记录。
由于ARR 3在其自己的虚拟机注册数据库中找到该第二VM 43
的注册记录,因此,该ARR 3向ARR 1发送(步骤S614)第二虚拟
机注册查询通告消息,以告知所述ARR 1所述第二虚拟机VM 43到
相应LER,即LER 31的注册,并且在其虚拟机注册数据库中记录查
询日志。
在接收到所述第二虚拟机注册查询通告消息后,ARR 1向第一
LER 11发送(步骤S616)第一虚拟机注册查询通告消息,以告知所
述第一LER 11所述第二虚拟机VM 43到相应LER的注册。
接收到所述第一虚拟机注册查询通告消息后,所述第一LER 11
更新(步骤S618)其自己的虚拟机注册数据库,并且,根据该第二
VM 43注册到的LER的IP地址,第一LER 11决定到第二VM 43的
数据分组的等价转发类。此后,如步骤S620所示,可以在客户端51
与VM 43之间进行数据分组的传输。
可以通过BGP更新消息,来发送上面所描述的虚拟机注册查询
消息和虚拟机注册查询通告消息。
并且,考虑到扩展性的问题,只在LER和ARR之间,或ARR
和ARR之间传输虚拟机注册查询消息和虚拟机注册查询通告消息,
而不在LER和LER之间传输虚拟机注册查询消息和虚拟机注册查询
通告消息。
更具体地,可以对BGP更新消息进行扩展,来发送虚拟机注册
查询消息和虚拟机注册查询通告消息。
可以通过定义新<AFI(=A1),SAFI(=S2)>对,使用
MP_REACH_NLRI来发送虚拟机注册查询消息。
也就是说,对MP_REACH_NLRI进行扩展,来发送虚拟机注册
查询消息。
这样扩展的MP_REACH_NLRI属性特别地表示为MP_
VMB_QUERY。
可以通过定义新<AFI(=A1),SAFI(=S3)>对,使用
MP_REACH_NLRI来发送虚拟机注册查询通告消息。
也就是说,对MP_REACH_NLRI进行扩展,来发送虚拟机注册
查询通告消息。
这样扩展的MP_REACH_NLRI属性特别地表示为MP_
VMB_NTFC。
图7示意性地示出了MP_VMB_QUERY的基本编码格式。
如图7所示,MP_VMB_QUERY属性包括2字节的AFI字段710
(取值为A1),1字节的SAFI字段712(取值为S2),1字节的下
一跳网络地址的长度字段714,4字节的下一跳的网络地址字段(可
变)716,1字节的保留字段718,1字节的长度字段722,其指示下
面的这些字段的长度,1字节的类型标志字段724,4字节的查询LER
ID字段726,其指示进行虚拟机注册查询的LER的IP地址;4字
节的查询ARR ID字段728,其指示进行虚拟机注册查询的LER所在
区域的ARR的IP地址;4字节的查询数目字段730,其指示在这个
消息中所携带的虚拟机注册查询数目;VMID字段732-1、732-2、...、
732-N,其指示要对其进行注册查询的虚拟机的IP地址。
其中,长度字段722及其以下的字段是针对虚拟机注册查询消
息的扩展。
其中,类型标志字段724可以取2种值,例如1和2。
当类型标志字段取值1时,指示这个虚拟机注册查询消息是从
LER到该LER所在区域的ARR的虚拟机注册查询消息,例如前面所
述的第一虚拟机注册查询消息。
当类型标志字段取值2时,指示这个虚拟机注册查询消息是从
一个LER所在区域的ARR到任何其他ARR的虚拟机注册查询消息,
例如前面所述的第二虚拟机注册查询消息。
例如,LER 11可以向ARR 1发送包括如下内容的第一虚拟机注
册查询消息:<类型标志=1,查询LER ID=211.140.111.1,查询
ARR ID=,查询数目=1,VMID=210.101.34.35>。
对于第一虚拟机注册查询消息,由于是从LER 11发送到其所在
区域的ARR 1,因此可以省略掉查询ARR ID这个字段。
ARR 1可以向任何其他的ARR发送包括如下内容的第二虚拟机
注册查询消息:<类型标志=2,查询LER ID=211.140.111.1,查询
ARR ID=211.136.10.1,查询数目=1,VMID=210.101.34.35>。
对于第二虚拟机注册查询消息,不能省略查询ARR ID这个字
段。
图8示意性地示出了MP_VMB_NTFC的基本编码格式。
如图8所示,MP_VMB_NTFC属性包括2字节的AFI字段810
(取值为A1),1字节的SAFI字段812(取值为S3),1字节的下
一跳网络地址的长度字段814,4字节的下一跳的网络地址字段(可
变)816,1字节的保留字段818,1字节的长度字段820,其指示下
面的这些字段的长度,1字节的类型标志字段822,1字节的VM ID
字段824,其指示对其进行注册查询的虚拟机的IP地址;4字节的服
务LER ID字段826,其指示查询的虚拟机注册到的LER的IP地址;
4字节的服务ARR ID字段828,其指示查询的虚拟机注册到的LER
所在区域的ARR的IP地址;4字节的查询数目字段830,其指示查
询该虚拟机的注册记录的LER和ARR对的数目;分别为4字节的查
询LER和查询ARR对字段832-1、832-2、...、832-N,其指示对上
述虚拟机字段824中的虚拟机进行注册查询的LER和ARR对的IP
地址。
其中,长度字段820及其以下的字段是扩展。
其中,类型标志字段822可以取4种值,例如1、2、3和4。
当类型标志字段取值1时,指示这个虚拟机注册查询通告消息
是从发起虚拟机注册查询的LER所在区域的ARR发送到该LER的,
例如前面所述的第一虚拟机注册查询通告消息。在这种情况下,可
以省略查询LER ID和查询ARR ID对字段。
当类型标志字段取值2时,指示这个虚拟机注册查询通告消息
是从其他ARR发送到发起虚拟机注册查询的LER所在区域的ARR
的,例如前面所述的第二虚拟机注册查询通告消息。
当类型标志字段取值3时,指示该MP_VMB_NTFC属性发送
第一虚拟机注册数据库通告消息,并且该第一虚拟机注册数据库通
告消息从ARR发送到LER。在这种情况下,可以省略查询LER ID
和查询ARR ID对字段。并且,查询数目可以为0。
当类型标志字段取值4时,指示该MP_VMB_NTFC属性发送
第二虚拟机注册数据库通告消息,并且该第二虚拟机注册数据库通
告消息从一个ARR发送到另一个ARR。
例如,ARR 3可以向ARR 1发送包括如下内容的第二虚拟机注
册查询通告消息:<类型标志=2,VMID=210.101.34.35,服务LER
ID=213.140.111.1,服务ARR ID=213.136.10.1,查询数目=1,查
询LER ID 1=211.140.111.1,查询ARR ID 1=211.136.10.1>。
ARR 1可以向LER 11发送包括如下内容的第一虚拟机注册查询
通告消息:<类型标志=1,VMID=210.101.34.35,服务LER ID=
213.140.111.1,服务ARR ID=213.136.10.1,查询数目=0>。
图9示意性地示出了根据本发明的一个实施方式当虚拟机发生
迁移时所涉及的过程。
不失一般性,在图9所示的实施方式中,假定当前注册到LER 11
的VM 41将迁移到LER 12。即,VM 41在同一个ARR管理的区域
中的LER之间迁移(以下称为域内迁移)。另外,假定在当前,VM
41与连接到LER 31上的客户端53进行数据分组的传输,并且因此,
在ARR 1的虚拟机注册数据库中,有查询LER为LER 31和查询ARR
为ARR 3的查询日志。
首先,在步骤S902,VM 41向第四LER,即LER 12,发送包括
如下内容的MEF发现消息:<类型=0,VMID=210.101.34.25,最
近LER ID=211.140.111.1,最近ARR ID=211.136.10.1,关联ID=
14>。
当接收到该MEF发现消息后,LER 12知道VM 41执行的是域
内迁移,因为最近ARR ID与其所在区域的ARR的ID相同,并且,
在步骤S904,更新其自己的虚拟机注册数据库,以体现VM 41到
LER 12的注册。
接下来,在步骤S906,LER 12向VM 41发送包括如下内容的
MEF公告消息:<类型=1,服务LER ID=211.140.222.1,服务
ARR ID=211.136.10.1,关联ID=14>。
在完成该MEF发现和注册过程之后,如步骤S908所示,从VM
41发送到客户端53的数据分组将直接提交给LER 12,由LER 12
转发所述数据分组到客户端53所连接的LER 31,由LER 31将所述
数据分组转发给客户端53。
然后,在步骤S909和步骤S910,LER 12分别向在当前注册到
其之前,VM 41最近注册到的LER 11,以及LER 12所在区域的ARR
1发送虚拟机注册更新消息。
其中,发送到LER 11的虚拟机注册更新消息包括如下内容:
<VMID=210.101.34.25,目标路由器ID=211.140.111.1,服务LER
ID=211.140.222.1,服务ARR ID=211.136.10.1,最近LER ID=
211.140.111.1,最近ARR ID=211.136.10.1>。
发送到ARR 1的虚拟机注册更新消息包括如下内容:<VMID=
210.101.34.25,目标路由器ID=211.136.10.1,服务LER ID=
211.140.222.1,服务ARR ID=211.136.10.1,最近LER ID=
211.140.111.1,最近ARR ID=211.136.10.1>。
在接收到LER 12发送的虚拟机注册更新消息后,LER 11知道
虚拟机41已经从LER 11迁移到LER 12。因此,在步骤S911,LER
11更新其自己的虚拟机注册数据库,以体现VM 41到LER 12的注
册。
此后,如步骤S914所示,LER 11将在步骤S912中从客户端53
所连接的LER 31所接收的去往VM 41的数据分组转发给LER 12,
由LER 12在步骤S916将所述数据分组转发给VM 41。
在从LER 12接收到虚拟机注册更新消息后,ARR 1知道VM 41
仍然在其服务区域之内,并更新其自己的虚拟机注册数据库,以体
现VM 41从LER 11迁移到LER 12,如步骤S918所示。
接下来,ARR 1向曾经查询过关于VM 41的注册情况的所有其
他ARR发送第二虚拟机注册数据库通告消息。
如前所述,ARR 3查询过关于VM 41的注册情况。因此,在步
骤S920,ARR 1向ARR 3发送包括如下内容的第二虚拟机注册数据
库通告消息:<类型标志=4,VMID=210.101.34.25,服务LER ID=
211.140.222.1,服务ARR ID=211.136.10.1,查询数目=1,查询
LER ID 1=213.140.111.1,查询ARR ID 1=213.136.10.1>。
在收到第二虚拟机注册数据库通告消息后,在步骤S922,ARR
3向LER 31发送第一虚拟机注册数据库通告消息。该第一虚拟机注
册数据库通告消息包括如下内容:<类型标志=3,VMID=
210.101.34.25,服务LER ID=211.140.222.1,服务ARR ID=
211.136.10.1,查询数目=0>。
当接收到该第一虚拟机注册数据库通告消息后,LER 31知道虚
拟机41发生了迁移,从LER 11迁移到LER 12。因此,在步骤S924,
LER 31更新其自己的虚拟机注册数据库,以体现VM 41的迁移。并
且,根据VM 41注册到的LER 12的IP地址,来决定发送到VM 41
的数据分组的转发等价类,在步骤S926,通过标签交换路径LSP,
直接将去往VM 41的数据分组发送到LER 12,而不是LER 11。也
就是说,在步骤S926之后,不再需要通过LER 11来转发从LER 31
到LER 12的数据分组。
另外,在步骤S924之后,还可以包括一个步骤S925,在这个
步骤,LER 31向LER 11发送另外虚拟机注册更新消息,以使得LER
11删除其虚拟机注册数据库中关于VM 41的注册记录。
可以通过BGP(边界网关协议)更新消息,来发送所述另外虚
拟机注册更新消息。
更具体地,可以对BGP更新消息进行扩展,来发送虚拟机注册
更新消息。
例如,可以通过定义新<AFI(=A1),SAFI(=S1)>对,使用
MP_UNREACH_NLRI来发送该另外虚拟机注册更新消息。其中AFI
为家族标识符,SAFI为下一地址家族标识符。
也就是说,对MP_UNREACH_NLRI进行扩展,来发送该另外
虚拟机注册更新消息。
这样扩展的MP_UNREACH_NLRI属性特别地表示为MP_
UNREACH_VMB。
图5b示意性地示出了MP_UNREACH_VMB的基本编码格式。
如图5b所示,MP_UNREACH_VMB属性包括2字节的AFI字
段510(取值为A1),1字节的SAFI字段512(取值为S1),以
及若干字节的虚拟机注册更新扩展字段520。其中虚拟机注册更新扩
展字段520是针对该另外虚拟机注册更新消息的扩展。
前面已经结合图5c描述了该虚拟机注册更新扩展字段520。这
里就不再进行描述。
图10示意性地示出了根据本发明的另一个实施方式当虚拟机发
生迁移时所涉及的过程。
不失一般性,在图10所示的实施方式中,假定当前注册到LER
11的VM 41将迁移到LER 21。即,VM 41在不同ARR管理的区域
中的LER之间迁移(以下称为域间迁移)。另外,假定在当前,VM
41与连接到LER 31上的客户端53进行数据分组的传输,并且因此,
在ARR 1的虚拟机注册数据库中,有查询LER为LER 31和查询ARR
为ARR 3的查询日志。
首先,在步骤S1002,VM 41向第四LER,即LER 21,发送包
括如下内容的MEF发现消息:<类型=0,VMID=210.101.34.25,
最近LER ID=211.140.111.1,最近ARR ID=211.136.10.1,关联ID
=15>。
当接收到该MEF发现消息后,LER 21知道VM 41执行的是域
间迁移,因为最近ARR ID与其所在区域的ARR的ID不相同,并且,
在步骤S1004,更新其自己的虚拟机注册数据库,以体现VM 41到
LER 21的注册。
接下来,在步骤S1006,LER 21向VM 41发送包括如下内容的
MEF公告消息:<类型=1,服务LER ID=212.140.111.1,服务
ARR ID=212.136.10.1,关联ID=15>。
在完成该MEF发现和注册过程之后,如步骤S1008所示,从
VM 41发送到客户端53的数据分组将直接提交给LER 21,由LER
21转发所述数据分组到客户端53所连接的LER 31,由LER 31将所
述数据分组转发给客户端53。
然后,在步骤S 1009和步骤S1010,LER 21分别向在当前注册
到其之前,VM 41最近注册到的LER 11,以及LER 21所在区域的
ARR 2发送虚拟机注册更新消息。
其中,发送到LER 11的虚拟机注册更新消息包括如下内容:
<VMID=210.101.34.25,目标路由器ID=211.140.111.1,服务LER
ID=212.140.111.1,服务ARR ID=212.136.10.1,最近LER ID=
211.140.111.1,最近ARR ID=211.136.10.1>。
发送到ARR 2的虚拟机注册更新消息包括如下内容:<VMID=
210.101.34.25,目标路由器ID=212.136.10.1,服务LER ID=
212.140.111.1,服务ARR ID=212.136.10.1,最近LER ID=
211.140.111.1,最近ARR ID=211.136.10.1>。
在接收到LER 21发送的虚拟机注册更新消息后,LER 11知道
虚拟机41已经从LER 11迁移到LER 21。因此,在步骤S 1011,LER
11更新其自己的虚拟机注册数据库,以体现VM 41到LER 21的注
册。
此后,如步骤S1014所示,LER 11将在步骤S1012中从客户端
53所连接的LER 31所接收的去往VM 41的数据分组转发给LER 21,
由LER 21在步骤S 1016将所述数据分组转发给VM 41。
在从LER 21接收到虚拟机注册更新消息后,ARR 2知道VM 41
迁移到其服务区域之内,并且,如步骤S 1018所示,ARR 2向ARR1
发送虚拟机注册更新消息,该虚拟机注册更新消息包括如下内容:
<VMID=210.101.34.25,目标路由器ID=211.136.10.1,服务LER
ID=212.140.111.1,服务ARR ID=212.136.10.1,最近LER ID=
211.140.111.1,最近ARR ID=211.136.10.1>。
当接收这一消息后,ARR 1知道VM 41已经迁移出其服务区域,
并且,如在步骤S1020所示,更新其自己的虚拟机注册数据库,将
VM 41的服务LER从LER 11修改成LER 21,将VM 41的服务ARR
从ARR 1修改成ARR 2。
然后,在步骤S1022,ARR 1将关于VM 41的注册记录,包括
对VM 41的查询日志,通过第二虚拟机注册数据库通告消息,发送
给ARR 2。例如,ARR 1向ARR 2发送包括如下内容的第二虚拟机
注册数据库通告消息:<类型标志=4,VMID=210.101.34.25,服务
LER ID=212.140.111.1,服务ARR ID=212.136.10.1,查询数目=
3,查询LER ID 1=213.140.111.1,查询ARR ID 1=213.136.10.1,
查询LER ID 2=211.142.109.1,查询ARR ID 2=211.130.10.1,查询
LER ID 3=213.145.111.1,查询ARR ID 3=213.130.10.1>。
在从ARR 1接收到第二虚拟机注册数据库通告消息后,如步骤
S1024所示,ARR 2更新其自己的虚拟机注册数据库,将3元组
<VMID=210.101.34.25,服务LER ID=212.140.111.1,服务ARR ID
=212.136.10.1>,以及3条查询日志<查询LER ID 1=213.140.111.1,
查询ARR ID 1=213.136.10.1>,<查询LER ID 2=211.142.109.1,查
询ARR ID 2=211.130.10.1>,<查询LER ID 3=213.145.111.1,查询
ARR ID 3=213.130.10.1>添加到其虚拟机注册数据库。
然后,在步骤S1026,ARR 2向查询VM 41的注册情况的每个
ARR,例如ARR 3发送第二虚拟机注册数据库通告消息。该第二虚
拟机注册数据库通告消息例如包括如下内容:<类型标志=4,VMID
=210.101.34.25,服务LER ID=212.140.111.1,服务ARR ID=
212.136.10.1,查询数目=1,查询LER ID 1=213.140.111.1,查询
ARR ID 1=213.136.10.1>。
在收到第二虚拟机注册数据库通告消息后,在步骤S1028,ARR
3向LER 31发送第一虚拟机注册数据库通告消息。该第一虚拟机注
册数据库通告消息包括如下内容:<类型标志=3,VMID=
210.101.34.25,服务LER ID=212.140.111.1,服务ARR ID=
212.136.10.1,查询数目=0>。
当接收到该第一虚拟机注册数据库通告消息后,LER 31知道虚
拟机41发生了迁移,从LER 11迁移到LER 21。因此,在步骤S1030,
LER 31更新其自己的虚拟机注册数据库,以体现VM 41的迁移。并
且,根据VM 41当前注册到的LER 21的IP地址,来决定发送到VM
41的数据分组的转发等价类,在步骤S 1032,通过标签交换路径LSP,
直接将去往VM 41的数据分组发送到LER 21,而不是LER 11。也
就是说,在步骤S1032之后,不再需要通过LER 11来转发从LER 31
到LER 21的数据分组。
另外,在步骤S1030之后,还可以包括一个步骤S1031,在这
个步骤,LER 31向LER 11发送如前面结合附图9描述的另外虚拟
机注册更新消息,以使得LER 11删除其虚拟机注册数据库中关于
VM 41的注册记录。
图11示出了根据本发明的一个实施方式的标签边缘路由器LER
的框图。
如图11所示的LER可以是图1中所示的任何一个LER。不失
一般性,假定如图11所示的LER为第一LER,即LER 11。
如图11所示,该LER 11包括迁移支持功能MEF发现消息接收
装置1102,用于从希望注册到所述第一LER的第一虚拟机接收迁移
支持功能MEF发现消息;更新装置1104,用于更新其自己的虚拟机
注册数据库,以体现所述第一虚拟机到所述第一LER的注册;以及
MEF公告消息发送装置1106,用于向所述第一虚拟机发送MEF公
告消息,以告知所述第一LER对所述第一虚拟机的注册完成。
根据本发明的一个实施方式,当发现所述MEF发现消息中包括
的VMID落在支持虚拟机迁移的IP地址范围内时,所述更新装置更
新其自己的虚拟机注册数据库,以体现所述第一虚拟机到所述第一
LER的注册。
根据本发明的一个实施方式,LER 11还包括:虚拟机注册更新
消息发送装置1108,用于向所述第一LER所在区域的第一区域路由
反射器ARR发送虚拟机注册更新消息,以使所述第一ARR可以更
新其自己的虚拟机注册数据库,以体现所述第一虚拟机到所述第一
LER的注册,和/或向在注册到所述第一LER之前,所述第一虚拟机
最近注册到其上的第三LER发送虚拟机注册更新消息,以使所述第
三LER可以更新其自己的虚拟机注册数据库,以体现所述第一虚拟
机到所述第一LER的注册。
根据本发明的一个实施方式,LER 11还包括:数据分组转发装
置1110,用于向客户端所连接的第二LER转发从所述第一虚拟机接
收的数据分组,向所述第一虚拟机转发从在注册到所述第一LER之
前,所述第一虚拟机最近注册到其上的第三LER接收的数据分组,
向所述第一虚拟机转发从客户端所连接的第二LER接收的数据分
组,和/或向所述第四LER转发从客户端所连接的第二LER接收的
去往所述第一虚拟机的数据分组。其中,数据分组转发装置基于数
据分组的转发等价类进行数据分组的转发,其中去往第一虚拟机的
数据分组的转发等价类由该数据分组的进入LER根据该第一虚拟机
注册到的LER的IP地址,而不是该第一虚拟机自身的IP地址确定。
根据本发明的一个实施方式,LER 11还包括:虚拟机注册更新
消息接收装置1112,用于从在注册到所述第一LER之后,所述第一
虚拟机最近注册到其上的第四LER接收虚拟机注册更新消息;以及
所述更新装置1104还用于更新其自己的虚拟机注册数据库,以体现
所述第一虚拟机到所述第四LER的注册。
根据本发明的一个实施方式,LER 11还包括虚拟机注册查询消
息发送装置1114,用于向所述第一LER所在区域的第一ARR发送
第一虚拟机注册查询消息,以获得第二虚拟机的注册情况,其中与
所述第一LER相连接的客户端希望发送数据分组到所述第二虚拟
机;虚拟机注册查询通告消息接收装置1116,用于从所述第一LER
所在区域的第一ARR接收第一虚拟机注册查询通告消息;以及所述
更新装置1104还用于更新其自己的虚拟机注册数据库,以体现所述
第二虚拟机到相应LER的注册。
根据本发明的一个实施方式,LER 11还包括:虚拟机注册数据
库通告消息接收装置1118,用于从所述第一LER所在区域的第一
ARR接收第一虚拟机注册数据库通告消息;以及所述更新装置1104
还用于更新其自己的虚拟机注册数据库,以体现所述第二虚拟机在
LER之间的迁移。
图12示出了根据本发明的一个实施方式的区域路由反射器
ARR的框图。
如图12所示的ARR可以是图1中所示的任何一个ARR。不失
一般性,假定如图12所示的ARR为第一ARR,即ARR 1。
如图12所示,ARR 1包括虚拟机注册更新消息接收装置1202,
用于从其区域内的第一标签边缘路由器LER接收虚拟机注册更新消
息,所述虚拟机注册更新消息指示所述第一虚拟机注册到所述第一
LER;以及更新装置1204,用于根据所述接收的虚拟机注册更新消
息,更新其自己的虚拟机注册数据库,以体现所述第一虚拟机到所
述第一LER的注册。
根据本发明的一个实施方式,ARR 1还包括:虚拟机注册查询
消息接收装置1206,用于从所述第一LER接收第一虚拟机注册查询
消息,其中所述第一虚拟机注册查询消息旨在获得第二虚拟机的注
册情况;虚拟机注册查询通告消息发送装置1208,用于向所述第一
LER发送第一虚拟机注册查询通告消息,以告知所述第一LER所述
第二虚拟机到相应LER的注册。
根据本发明的一个实施方式,ARR 1还包括,虚拟机注册查询
消息发送装置1210,用于向任何其他ARR发送第二虚拟机注册查询
消息,以获得第二虚拟机的注册情况;虚拟机注册查询通告消息接
收装置1212,用于从任何其他ARR中的至少一个ARR接收第二虚
拟机注册查询通告消息,所述第二虚拟机注册查询通告消息体现所
述第二虚拟机到相应LER的注册。
根据本发明的一个实施方式,虚拟机注册查询消息接收装置
1206用于从第二ARR接收第二虚拟机注册查询消息,其中所述第二
虚拟机注册查询消息旨在获得所述第一虚拟机的注册情况,第二
ARR为ARR 3;以及虚拟机注册查询通告消息发送装置1208用于向
所述第二ARR发送第二虚拟机注册查询通告消息,以告知所述第二
ARR所述第一虚拟机的注册情况。
根据本发明的一个实施方式,ARR 1还包括:虚拟机注册数据
库通告消息发送装置1214,用于向所述第一LER发送第一虚拟机注
册数据库通告消息,以告知所述第一LER所述第二虚拟机在LER之
间的迁移。
根据本发明的一个实施方式,ARR 1还包括:虚拟机注册数据
库通告消息接收装置1216,用于从任何其他ARR中的至少一个ARR
接收第二虚拟机注册数据库通告消息,所述第二虚拟机注册数据库
通告消息指示所述第二虚拟机在LER之间的迁移。
根据本发明的一个实施方式,虚拟机注册数据库通告消息发送
装置1214用于向所述第二ARR发送第二虚拟机注册数据库通告消
息,以告知所述第二ARR所述第一虚拟机在LER之间的迁移。
根据本发明的一个实施方式,ARR 1还包括:虚拟机注册更新
消息发送装置1218,用于向第三ARR发送虚拟机注册更新消息,所
述虚拟机注册更新消息指示所述第一虚拟机从所述第三ARR服务区
域的一个LER迁移到所述第一LER,所述第三ARR为ARR 2;以及
虚拟机注册数据库通告消息接收装置1216用于从所述第三ARR接
收第二虚拟机注册数据库通告消息,所述第二虚拟机注册数据库通
告消息指示关于所述第一虚拟机的查询日志。
根据本发明的一个实施方式,所述虚拟机注册更新消息接收装
置1202还用于从第四ARR接收虚拟机注册更新消息,从第四ARR
接收的所述虚拟机注册更新消息指示所述第一虚拟机从所述第一
LER迁移到所述第四ARR服务区域的一个LER,所述第四ARR为
ARR 2;所述更新装置1204还用于更新其自己的虚拟机注册数据库,
以体现所述第一虚拟机从所述第一LER迁移到所述第四ARR服务区
域的一个LER;以及虚拟机注册数据库通告消息发送装置1214用于
向所述第四ARR发送第二虚拟机注册数据库通告消息,以告知所述
第四ARR关于所述第一虚拟机的查询日志。
应当注意,为了使本发明更容易理解,上面的描述省略了对于
本领域的技术人员来说是公知的、并且对于本发明的实现可能是必
需的更具体的一些技术细节。
本领域的技术人员还应当理解,本发明不限于上面所描述的步
骤,本发明也包括对上面所描述的步骤进行的组合、顺序变换等。
本发明的最终范围由所附的权利要求限定。
因此,选择并描述实施方式是为了更好地解释本发明的原理及其
实际应用,并使本领域普通技术人员明白,在不脱离本发明实质的
前提下,所有修改和变更均落入由权利要求所限定的本发明的保护
范围之内。
另外,本领域的技术人员可以理解,上面描述的各种方法的步骤
可以通过编程的计算机来实现。这里,有些实施方式旨在覆盖程序
存储装置,其为机器或计算机可读,并编码有机器可执行或计算机
可执行指令程序,其中所述指令执行上述方法的一些或所有步骤。
该程序存储装置可以是例如磁存储媒体例如磁盘和磁带、硬盘驱动
器、或光学可读数字数据存储媒体。实施方式也旨在覆盖编程为执
行上述方法的所述步骤的计算机。