一种虚拟机迁移时的报文传输方法和设备的制造方法

文档序号:8459176阅读:412来源:国知局
一种虚拟机迁移时的报文传输方法和设备的制造方法
【技术领域】
[0001]本发明涉及通信领域,尤其是一种虚拟机迀移时的报文传输方法和设备。
【背景技术】
[0002]在LISP (Locat1n/ID Separat1n Protocol,位置与身份分离协议)网络中,将网络IP地址划分成EID (Endpoint ID,末端标识)和RLOC (Routing Locator,路由定位)。其中,在LISP网络中会引入EID-to-RLOC的映射关系,该EID用于标识主机,不具备全局路由功能,EID可以独立于RLOC进行迀移;该RLOC用于全网路由。在LISP网络中,IPv4或者IPv6主机仅标识其ID,其位置由ITR(Ingress Tunnel Router,隧道入口路由器)/ETR(Egress Tunnel Router,隧道出口路由器)来标识,ITR和ETR是相对的,依据报文方向来决定ITR和ETR。例如,主机I向主机2发送报文时,主机I所在LISP域内的是ITR,主机2所在LISP域内的是ETR ;主机2向主机I发送报文时,主机2所在LISP域内的是ITR,主机I所在LISP域内的是ETR。LISP网络中包括数据平面和控制平面,数据平面主要用于报文的封装/解封装和转发,控制平面主要完成EID和RLOC的映射。
[0003]随着大数据和虚拟化的发展,物理服务器上的虚拟机(VM)迀移成为常见技术手段。如图1所示,为LISP网络中的跨网段迀移过程示意图,虚拟机B从隧道路由器(即ITR或者ETR) 2迀移到隧道路由器3时,隧道路由器3通过接收虚拟机B的报文感知到有虚拟机B加入,并向同一 LISP域2内的隧道路由器4发送Map-Notify (映射通知)报文,隧道路由器4基于Map-Notify报文感知到有虚拟机B加入。隧道路由器2周期性的向虚拟机B发送Ping (探测)报文,并基于探测结果感知到有虚拟机B离开,并向同一 LISP域I内的隧道路由器I发送Map-Notify报文,隧道路由器I基于Map-Notify报文感知到有虚拟机B离开。
[0004]当虚拟机B发生迀移后,隧道路由器3 (隧道路由器4)将虚拟机B的新位置通知给MS (Map Server,映射服务器),MS在EID-to-RL0C映射关系中记录虚拟机B的IP地址与隧道路由器3的IP地址之间的映射关系,删除虚拟机B的IP地址与隧道路由器2 (隧道路由器I)的IP地址之间的映射关系,向隧道路由器2发送Map-Notify报文,隧道路由器2收到Map-Notify消息后,更新本地状态。
[0005]针对隧道路由器5发送给虚拟机B的报文,由于隧道路由器5不知道虚拟机B发生迀移,因此隧道路由器5仍然将报文发送给隧道路由器2。隧道路由器2通知隧道路由器5重新请求虚拟机B的EID-to-RLOC映射关系。隧道路由器5在重新请求虚拟机B的EID-to-RL0C映射关系之后,才会将发送给虚拟机B的报文发送给隧道路由器3,并由隧道路由器3将报文发送给虚拟机B。
[0006]显然,在上述过程中,隧道路由器5发送给虚拟机B的报文会发生丢失,并导致虚拟机B的业务中断,即现有技术中存在业务中断的问题。

【发明内容】

[0007]本发明实施例提供一种虚拟机迀移时的报文传输方法,当虚拟机需要从第一隧道路由器迀移到第二隧道路由器时,所述方法包括以下步骤:
[0008]所述第一隧道路由器在感知到所述虚拟机需要发生迀移时,记录当前向所述虚拟机发送报文的第三隧道路由器的地址信息;
[0009]所述第一隧道路由器接收来自映射服务器的映射通知报文,所述映射通知报文中携带所述虚拟机与所述第二隧道路由器之间的末端标识EID-路由定位RLOC映射关系,并判定所述虚拟机已经发生迀移;
[0010]所述第一隧道路由器利用所述第三隧道路由器的地址信息向所述第三隧道路由器发送映射应答报文,所述映射应答报文中携带所述虚拟机与所述第二隧道路由器之间的EID-RLOC映射关系;由所述第三隧道路由器将所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系更新为所述虚拟机与所述第二隧道路由器之间的EID-RLOC映射关系,并利用所述虚拟机与所述第二隧道路由器之间的EID-RLOC映射关系,向所述虚拟机发送报文。
[0011]所述方法进一步包括:所述第一隧道路由器在接收到所述映射通知报文之后,记录所述虚拟机与所述第二隧道路由器之间的EID-RLOC映射关系,并删除所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系。
[0012]所述第一隧道路由器删除所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系,具体包括:所述第一隧道路由器在向所述第三隧道路由器发送映射应答报文后,删除所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系;或者,所述第一隧道路由器为所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系启动虚拟机迀移增强定时器;当所述虚拟机迀移增强定时器超时时,所述第一隧道路由器删除所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系。
[0013]所述第一隧道路由器删除所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系,具体包括:
[0014]所述第一隧道路由器为所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系设置失效标记;所述第一隧道路由器删除具有失效标记的所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系。
[0015]所述方法进一步包括:
[0016]所述映射通知报文中还携带有所述第三隧道路由器对应的身份标识信息,所述第三隧道路由器对应的身份标识信息是所述映射服务器在接收到所述第三隧道路由器的映射请求报文时,从所述映射请求报文中获得的;
[0017]所述映射应答报文中还携带有所述第三隧道路由器对应的身份标识信息,以使所述第三隧道路由器在发现所述身份标识信息是自身的身份标识信息时,将所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系更新为所述虚拟机与所述第二隧道路由器之间的EID-RLOC映射关系。
[0018]所述第三隧道路由器对应的身份标识信息具体包括:所述第三隧道路由器生成的随机数nonce。
[0019]本发明实施例提供一种隧道路由器,作为第一隧道路由器,当虚拟机需要从第一隧道路由器迀移到第二隧道路由器时,所述第一隧道路由器具体包括:处理模块,用于在感知到所述虚拟机需要发生迀移时,记录当前向所述虚拟机发送报文的第三隧道路由器的地址信息;
[0020]接收模块,用于接收来自映射服务器的映射通知报文,所述映射通知报文中携带所述虚拟机与所述第二隧道路由器之间的末端标识EID-路由定位RLOC映射关系,并判定所述虚拟机已经发生迀移;
[0021]发送模块,用于利用所述第三隧道路由器的地址信息向所述第三隧道路由器发送映射应答报文,所述映射应答报文中携带所述虚拟机与所述第二隧道路由器之间的EID-RLOC映射关系;由所述第三隧道路由器将所述虚拟机与所述第一隧道路由器之间的EID-RLOC映射关系更新为所述虚拟机与所述第二隧道路由器之间的EID-RLOC映射关系,并利用所述虚拟机与所述第二隧道路由器之间的EID-RLOC映射关系,向所述虚拟机发送报文。
[0022]所述处理模块,还用于在接收到所述映射通知报文之后,记录所述虚拟机与所述第二隧道路由器之间的EID-RLOC
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1