CN104780102B - 一种在lisp网络中的虚拟机迁移信息处理方法和装置 - Google Patents
一种在lisp网络中的虚拟机迁移信息处理方法和装置 Download PDFInfo
- Publication number
- CN104780102B CN104780102B CN201510160177.2A CN201510160177A CN104780102B CN 104780102 B CN104780102 B CN 104780102B CN 201510160177 A CN201510160177 A CN 201510160177A CN 104780102 B CN104780102 B CN 104780102B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- migration
- standard grade
- reaching
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种在LISP网络中的虚拟机迁移信息处理方法和装置。该方法包括:在线隧道路由器在检测到虚拟机迁移时,判断该在线隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果;所述在线隧道路由器接收上线通知消息,所述上线通知消息由其他隧道路由器在上线时发送;所述在线隧道路由器查询所述虚拟机迁移路由表,根据所述虚拟机迁移路由表中的标识信息筛选出首先获知的虚拟机迁移信息,将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中,反馈所述上线通知应答消息。应用本发明实施例能够解决虚拟机迁移后,新上线xTR感知不到虚拟机迁移,从而导致的流量不通问题。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种在LISP网络中的虚拟机迁移信息处理方法和装置。
背景技术
位置标识分离协议(Locator Identity Separation Protocol,LISP)是一种位置和标识分离的建网思想,LISP网络形成了两个独立的地址空间,即端点标识(EndpointIdentifier,EID)空间和路由器位置(Routing Locator,RLOC)空间。其中,EID为通信端点的主机地址,用于标识主机的身份。在LISP网络中,EID可以独立于RLOC进行迁移;迁移过程中迁移主机的EID地址不变。RLOC为LISP路由器的地址,可在现有Internet中路由转发。EID之间通信的报文根据LISP的映射缓存(Map Cache)路由进行LISP封装,报文在RLOC之间的隧道中进行转发。
xTR为入口隧道路由器(Ingress Tunnel Router,ITR)和出口隧道路由器(Engress Tunnel Router,ETR)的统称,表示路由器具备ITR和/或ETR能力。ITR对本数据中心EID空间匹配Map Cache路由表的数据报文进行LISP隧道封装;ETR解封装LISP隧道封装的报文,发到本数据中心下的EID空间。映射解析器(Map Reslover,MR)接收ITR发送的映射请求(Map Request),并把该映射请求转发给映射服务器(Map Server),由MS回应映射应答(Map Reply),或者由MS通知ETR回应Map Reply。
在LISP网络中,当发生虚拟机迁移的情况时,首先检测到虚拟机迁移事件的xTR通过组播三次映射通知(map notify)消息通知本数据中心其他xTR所述虚拟机迁移事件,因此,当在所述虚拟机迁移事件之后数据中心又有新上线的xTR时,新上线的xTR将感知不到虚拟机迁移,从而导致流量不通。
发明内容
有鉴于此,本发明提出了一种在LISP网络中的虚拟机迁移信息处理方法和装置,能够解决虚拟机迁移后,新上线xTR感知不到虚拟机迁移,从而导致的流量不通问题。
本发明提出的技术方案是:
一种在LISP网络中的虚拟机迁移信息处理方法,该方法包括:
在线隧道路由器在检测到虚拟机迁移时,判断该在线隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果;
所述在线隧道路由器接收上线通知消息,所述上线通知消息由其他隧道路由器在上线时发送;
所述在线隧道路由器查询所述虚拟机迁移路由表,根据所述虚拟机迁移路由表中的标识信息筛选出首先获知的虚拟机迁移信息,将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中,反馈所述上线通知应答消息。
一种在LISP网络中的虚拟机迁移信息处理装置,所述装置位于隧道路由器中,包括虚拟机迁移路由表处理模块、接收模块和虚拟机迁移信息发布模块;
所述虚拟机迁移路由表处理模块,用于在所述隧道路由器在检测到虚拟机迁移时,判断该隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果;
所述接收模块,用于接收上线通知消息,所述上线通知消息由其他隧道路由器在上线时发送;
所述虚拟机迁移信息发布模块,用于在所述接收模块接收到上线通知消息时,查询虚拟机迁移路由表,根据所述虚拟机迁移路由表中的标识信息筛选出首先获知的虚拟机迁移信息,将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中,反馈所述上线通知应答消息。
由上述技术方案可见,本发明实施例中,首先,在线隧道路由器在检测到虚拟机迁移时,判断该在线隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果,在线隧道路由器通过对虚拟机迁移路由表的上述特殊处理,为后续发布虚拟机迁移信息做好准备工作;然后,在线隧道路由器通过接收新上线的隧道路由器在上线时发送的上线通知消息,来感知新上线的隧道路由器;最后,在线隧道路由器基于已经进行过上述特殊处理的虚拟机迁移路由表,根据所述虚拟机迁移路由表中的标识信息筛选出首先获知的虚拟机迁移信息,将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中,反馈上线通知应答消息,因此,所述新上线的隧道路由器通过接收并解析所述上线通知应答消息,能够得到所述上线通知应答消息中携带的虚拟机迁移信息,进而感知到虚拟机迁移,解决了虚拟机迁移后,新上线xTR感知不到虚拟机迁移,从而导致流量不通的问题。
并且,由于在线的xTR对虚拟机迁移路由表进行了特殊的处理,并在反馈虚拟机迁移信息时基于所述虚拟机迁移路由表对信息进行了筛选,因此,在线xTR能够仅仅将自身首先获知的虚拟机迁移信息反馈给新上线的xTR,从而能够避免各个在线xTR重复反馈相同的虚拟机迁移信息而造成资源浪费的问题。
附图说明
图1是在LISP网络中发生虚拟机迁移事件时的一种处理过程示意图。
图2是本发明实施例提供的在LISP网络中新上线的xTR处理虚拟机迁移信息的流程图。
图3是本发明实施例提供的在LISP网络中在线xTR处理虚拟机迁移信息的流程图。
图4是本发明实施例提供的路由器设备的硬件结构连接图。
图5是本发明实施例提供的虚拟机迁移信息处理装置的结构示意图。
具体实施方式
图1是在LISP网络中发生虚拟机迁移事件时的一种处理过程示意图。
如图1所示,当虚拟机VMB从数据中心1(DataCenter1,DC1)迁移到数据中心2(DataCenter2,DC2)时,其处理过程包括如下步骤:
步骤101,虚拟机VMB从DC1迁移到DC2后,发送数据报文。
步骤102,DC2的xTR2接收到VMB的数据报文,因而检测到虚拟机VMB迁入。
步骤103,xTR2检测到VMB迁入后,会下发一条32位的VMB主机路由,并向MS/MR注册迁入的VMB的32位主机路由10.17.1.65/32。
步骤103,xTR2发送组播map notify,通知其他xTR检测到虚拟机迁入,该组播mapnotify会重传3次。
如图1所示,DC2中当前只有xTR2和xTR4,因此,xTR2向xTR4发送3次map notify消息,通知xTR4检测到虚拟机VMB迁入。
步骤104,xTR3收到组播map notify,也感知到虚拟机VMB迁入DC2,下发32位主机路由10.17.1.65/32;用于将流量通过xTR4转发到VMB。
步骤105,MS接受到xTR2注册的32位主机后,会发送Map Notify报文通知xTR1虚拟机VMB已经迁出。xTR1感知到VMB迁出后,会下发一条10.17.1.65/32位的NULL0路由。
步骤106,xTR3到虚拟机VMB的流量,一开始走老的路径发给xTR1。xTR1匹配到10.17.1.65/32的NULL0路由,触发邀请映射请求(Solicit Map Request,SMR)通知xTR3重新请求到达VMB的Map Cache表项。
步骤107,xTR3收到SMR后,向MS/MR发送Map Request报文,重新请求到虚拟机VMB的Map Cache表项。
步骤108,MS/MR收到Map Request报文后,将Map Request报文转发给具备ETR能力的xTR2。
步骤109,xTR2收到Map Request报文后,查询mape cache表项,根据查询结果应答Map Reply报文。
步骤110,xTR3收到Map Reply后,生成到VMB新的Map Cache表项,此后发给VMB的流量走新的路径,直接通过xTR2发送给迁入的虚拟机VMB。
基于图1所示的流程,假设在xTR2检测到虚拟机VMB迁入之后,DC2再上线一台xTR5,由于xTR2通知本DC2其他xTR检测到虚拟机迁移的组播map notify报文只会重传3次,因此,在组播map notify重传完后,新上线的xTR5收不到该报文。因此xTR5无法感知到虚拟机VMB的迁入。
当流量通过xTR5发往VMB时,xTR5上没有到VMB的路由,因此触发重新学习MapCache路由。MR/MS学习到的到达VMB的Map Cache路由,有三个下一跳RLOC,分别是RLOC2(指向xTR2)、RLOC4(指向xTR4)、RLOC5(指向xTR5)。存在多个等价下一跳时,会进行负载分担。如果到达VMB的流量分担到RLOC2和RLOC4上,由于xTR2和xTR4均下发了到VMB的迁入主机路由,因此能正常通信。如果流量分担RLOC5上,由于RLOC5上没有到达VMB的迁入主机路由,并且VMB和xTR5的接口地址不在同一网段,xTR5无法请求和学习不同网段的ARP,因此导致流量不通。
类似地,如果DC2中的虚拟机VMC迁出,假设由xTR4收到MS关于VMC迁出的单播MapNotify报文,则xTR4检测到虚拟机VMC迁出。xTR4检测到虚拟机VMC迁出后,会发送组播MapNotify通知本数据中心其它xTR虚拟机VMC迁出,该组播Map Notify报文也是重传3次。因此,在该组播Map Notify重传结束后,如果DC2再新上线一台xTR5,xTR5也感知不到VMC的迁出。当xTR3与VMC通信的流量,走老的路由发送到xTR5时,匹配到直连路由,从而触发ARP学习,由于VMC已经从DC2迁出到DC1了,显然无法学习VMC的ARP,因此也会导致流量不通,且始终无法切换新的正确路径。
基于上述分析,本发明实施例提供了一种在LISP网络中的虚拟机迁移信息处理方法,以解决虚拟机迁移后,新上线xTR感知不到虚拟机迁移,从而导致的流量不通问题。
通过对图1所示处理过程进行分析发现,新上线的xTR无法感知到虚拟机的迁入或者迁出是因为收不到组播Map Notify报文。为了使新上线xTR能感知到虚拟机的迁移;需要解决下面几个问题:
问题1,如何让在线xTR感知到有新上线的xTR。
问题2,如何决定由哪些在线xTR将哪些虚拟机迁移信息通知给新上线xTR。
下面结合图2和图3,对本发明实施例提供的在LISP网络中的虚拟机迁移信息处理方法进行详细说明。
图2是本发明实施例提供的在LISP网络中新上线的xTR处理虚拟机迁移信息的流程图。
如图2所示,该流程包括:
步骤201,xTR在上线时,发送上线通知消息。
本步骤中,xTR在上线时,发送上线通知消息,使得其他在线xTR能够感知该新上线的xTR,并且,所述在线xTR在接收到所述上线通知消息后,查询虚拟机迁移路由表,根据查询结果反馈上线通知应答消息。
步骤202,该新上线的xTR接收上线通知应答消息,解析所述上线通知应答消息,得到所述上线通知应答消息中携带的虚拟机迁移信息。
由图2可见,本发明实施例通过由新上线的xTR向在线xTR发送上线通知消息,使得在线xTR能够感知到新上线的xTR,从而解决了上述问题1。
新上线xTR如何知道向哪些xTR发送上线通知消息呢?一种方法是广播所述上线通知消息,但是广播会导致该广播域内的所有xTR都收到该上线通知消息,导致资源浪费。新上线xTR有本数据中心同组所有其它xTR的RLOC地址,为了避免资源浪费,合理的方法是遍历这些本数据中心同组的RLOC地址,向遍历到的每个RLOC地址对应的xTR单播发送该上线通知消息。
具体地,xTR在上线时,遍历该xTR自身所在的数据中心中与该隧道路由器同组的所有在线xTR,向遍历到的每个xTR单播发送上线通知消息,以使得在线xTR感知到该新上线的xTR。
进一步地,为了避免由于消息丢失等原因导致通知失败,本发明实施例可以设计重传机制,在上线通知消息发出后预设时长未收到相应的上线通知应答消息时,重传所述上线通知消息。
在一种实施方式中,可以对Map Request报文和Map Reply报文进行扩展,并对扩展后的Map Request报文和Map Reply报文的处理流程进行改进,来实现图2所示的方法。
具体地,对Map Request报文和Map Reply报文的选项字段进行扩展,扩展一个新的比特位用来表示该Map Request报文是xTR的上线通知消息,该Map Reply报文应答报文为上线通知应答消息。该扩展比特位可以称为在线(On Line,OL)位。新上线的xTR通过发送带OL比特位的Map Request报文来通知本数据中心其它xTR有新xTR上线,在线xTR通过发送带OL比特位的Map Reply报文应答所述上线通知消息。
在该实施方式中,为了防止带OL比特位的Map Request报文丢失,需要设计一个重传机制。新上线xTR发送上线通知消息后,将Map Request报文加入重传链表。如果没有收到带OL标记的MapReply应答报文,则每隔预定时间(比如40秒)重传一次,如果收到应答报文则停止重传。
在线xTR在收到Map Request报文后,通过OL比特位判断该Map Request报文为新xTR的上线通知消息。然后在线xTR对这种报文做特殊处理:不去请求Map Cache表项,而是通过Map Reply报文来把虚拟机迁移的信息通知给新上线xTR。
为了使Map Reply报文能携带虚拟机迁移信息,还需要对Map Reply报文进行进一步的改动。
在一种实施方式中,在线xTR可以通过如下方式在Map Reply报文中携带虚拟机迁移信息:在携带虚拟机迁入信息时,将Map Reply消息的Record字段中预设比特位的取值设置为第一取值,在携带虚拟机迁出信息时,将所述Record字段中预设比特位的取值设置为第二取值,将需要携带的发生虚拟机迁移的主机的EID地址写入所述Record字段,在没有需要携带的虚拟机迁移信息时,将所述Record字段中预设比特位的取值设置为第三取值。比如,可以将Map Reply报文的Record字段中的预设比特位设置为迁移类型标志(MoveFlag)位,在该MoveFlag位的取值为第一取值时表示虚拟机迁入、为第二取值时表示虚拟机迁出、为第三取值时表示不存在虚拟机迁移信息,比如,用值1表示迁入,值2表示迁出,值3表示没有迁移信息。其中,所述MoveFlag位可以是Map Reply报文的Record字段中已有的保留位,也可以是新扩展的保留位,比如,对Map Reply报文的Record保留位进行扩展,得到MoveFlag位。
新上线的xTR收到该带OL位的Map Reply报文后,通过解析Map Reply报文,得到虚拟机迁移信息。具体地,新上线的xTR收到该带OL位的Map Reply报文后,解析所述MapReply消息得到所述Map Reply消息的预设比特位的取值,在所述预设比特位为第一取值时表示虚拟机迁入、为第二取值时表示虚拟机迁出、为第三取值时表示不存在虚拟机迁移信息,在所述预设比特位为第一取值或第二取值时,将解析得到的Record字段中的EID地址确定为发生虚拟机迁移的主机的EID地址。新上线的xTR根据得到的虚拟机迁移信息,进行相应的迁入、迁出处理。
图3是本发明实施例提供的在LISP网络中在线xTR处理虚拟机迁移信息的流程图。
如图3所示,该流程包括:
步骤301,在线隧道路由器在检测到虚拟机迁移时,判断该在线隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果。
本步骤中,在线隧道路由器对虚拟机迁移路由表进行特殊处理,从而为后续反馈虚拟机迁移信息做准备。
步骤302,所述在线隧道路由器接收上线通知消息,所述上线通知消息由其他隧道路由器在上线时发送。
本步骤中,在线隧道路由器通过所述上行通知消息,能够感知到新上线的隧道路由器。
步骤303,所述在线隧道路由器查询所述虚拟机迁移路由表,根据所述虚拟机迁移路由表中的标识信息筛选出首先获知的虚拟机迁移信息,将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中,反馈所述上线通知应答消息。
本步骤中,在线隧道路由器基于预先经过特殊处理的虚拟机迁移路由表,筛选出首先获知的虚拟机迁移信息并反馈给新上线的隧道路由器。
可见,新上线的隧道路由器通过接收各个在线隧道路由器反馈的虚拟机迁移信息,不仅能够获得全部的虚拟机迁移信息,而且,各个在线隧道路由器反馈的虚拟机迁移信息相互不重复,也能够避免资源浪费。
关于上述问题2,由于新上线xTR会遍历本数据中心的与该新上线xTR同组的所有在线xTR发送带OL比特的Map Request报文,因此,一种方式是所有收到该上线通知消息的xTR都将自己的虚拟机迁移信息发给新上线的xTR,显然这种方式会造成大量的浪费。为了避免这种情况,本发明实施例提供了一种对执行反馈迁移信息的xTR进行选择、以及对反馈的迁移信息选择的方法,即选择由哪些在线xTR来发送哪些迁移信息。
具体地,在本发明实施例中,在线xTR在收到上线通知消息后,查询虚拟机迁移路由表,判断虚拟机迁移路由表中的虚拟机迁移信息是否是由该隧道路由器首先获知,如果是,将该条首先获知的虚拟机迁移信息携带在上线通知应答消息中,否则,在上线通知应答消息不携带该条虚拟机迁移信息,其中,xTR在检测到虚拟机迁移信息时,判断该xTR是否是第一个检测到该条虚拟机迁移信息,并在虚拟机迁移路由表中记录判断结果。换言之,在线xTR仅在存在第一个由该xTR得知的虚拟机迁移信息时,才反馈上线通知应答消息,并且,在上线通知应答消息中仅携带由该xTR第一个得知的虚拟机迁移信息,从而避免大量的xTR重复反馈携带相同虚拟机迁移信息的上线通知应答消息,避免了资源浪费。
关于具体如何判断xTR是否是第一个检测到某条虚拟机迁移信息,本发明实施例提出:
对于虚拟机迁入信息,当xTR通过虚拟机的报文检测到所述虚拟机迁入时,确定该xTR是第一个检测到该虚拟机迁入,因此该xTR在下发的该虚拟机的迁入路由信息中携带首先获知的标志信息,当xTR通过组播通知例如组播Map Notify消息检测到虚拟机迁入时,确定该xTR不是第一个检测到该虚拟机迁入,因此该xTR在下发的该虚拟机的迁入路由信息中不携带首先获知的标志信息。
对于虚拟机迁出信息,当xTR通过单播通知消息例如单播Map Notify消息检测到虚拟机迁出信息时,确定该xTR是第一个检测到该虚拟机迁出,因此在该xTR下发的该虚拟机的迁出路由信息中携带首先获知的标志信息,当xTR通过组播通知消息例如组播MapNotify消息检测到虚拟机迁出信息时,确定该xTR不是第一个检测到该虚拟机迁出,因此该xTR在下发的该虚拟机的迁出路由信息中不携带首先获知的标志信息。
作为一种实施方式,在线隧道路由器可以在所述隧道路由器通过虚拟机的报文检测到虚拟机迁入时,将所述虚拟机的迁入路由信息中的所述预设标志位的取值设置为第一值,在所述隧道路由器通过组播通知消息检测到虚拟机迁入时,将所述虚拟机的迁入路由信息中的所述预设标志位的取值设置为第二值,在所述隧道路由器通过单播通知消息检测到虚拟机迁出时,将所述虚拟机的迁出路由信息中的所述预设标志位的取值设置为第一值,在所述隧道路由器通过组播通知消息检测到虚拟机迁出时,将所述虚拟机的迁出路由信息中的所述预设标志位的取值设置为第二值。
下面结合图1来详细描述这个选择过程:
如图1所示,虚拟机VMB从DC1迁移到DC2,如果迁入数据报文是发给xTR2的,那么xTR2检测到虚拟机VMB的迁入,然后由xTR2发送组播Map Notify来通知本数据中心的其它xTR虚拟机VMB迁入。本发明实施例在xTR下发VMB的迁入路由时,进行特殊处理:通过虚拟机VMB的报文检测到VMB迁入的xTR2在下发迁入主机路由时,记录一个特殊标记First表示是首次检测到迁入,其它xTR是通过组播MapNotify检测到迁入的,此时下发的迁入主机路由不带First标记。
当有虚拟机从数据中心迁出时,MS会向该数据中心中最后注册的xTR发送单播MapNotify通知虚拟机迁出事件,然后由该最后注册的xTR通过组播Map Notify将该虚拟机迁出事件通知该数据中心其他xTR。
比如,虚拟机VMC从DC2迁移到DC1,假设最后向MS注册DC2的EID空间、即最后向MS注册10.18.1.0/24EID前缀的是xTR4。当虚拟机VMC迁出后,MS会向xTR4发送单播MapNotify通知VMC迁出。然后xTR4向本数据中心的其它xTR发送组播Map Notify通知VMC迁出。
与前面VMB的迁入处理类似,收到单播Map Notify检测到迁出的xTR4下发的迁出NULL0路由带First标记;收到组播Map Notify迁出的xTR下发迁出NULL0路由不带First标记。
新上线的xTR5在上线后,遍历本数据中心的与该新上线的xTR5同组的RLOC空间向所有本数据中心所有同组的xTR发送带OL比特的Map Request报文。xTR2收到该带OL比特的Map Request报文后,遍历迁移路由表,发现VMB的迁入主机路由带First标记,因此将VMB的EID地址填入Map Reply报文中,并置上OL标记,同时将MoveFag的值置1表示迁入。xTR2上VMC的迁出路由不带First标记,因此不打包到Map Reply报文中。同理,xTR4收到带OL比特的Map Request报文后,只将置上First标记的VMC迁出NULL0路由打包到Map Reply报文中,Move Flag值置位2,表示VMC迁出。新上线的xTR5收到这两个Map Reply报文后,完成VMB的迁入和VMC的迁出处理。从而解决了新上线xTR无法感知到虚拟机迁移而导致的断流问题。
下面参照图1,说明采用本发明实施例对图1所示的迁移事件进行处理的详细处理过程:
首先,新上线xTR遍历本数据中心与该新上线xTR同组的所有已存在xTR的RLOC地址,发送带OL比特位的Map Request报文作为上线通知消息。同时,将该报文以RLOC地址为Key加入重传链表,等待应答报文。
xTR2收到该带OL比特的Map Request报文后,并不去请求Map Cache路由,而是遍历自己的虚拟机迁移路由表,发现VMB的迁入主机路由带First标记,因此将VMB的EID地址填入Map Reply报文Record的EID字段中,且置上OL比特,MoveFlag值设置为1表示迁入。xTR2上VMC的迁出路由不带First标记,因此不打包到Map Reply报文中。然后,xTR2将该带OL比特的Map Reply报文单播发给xTR5。
xTR5收到xTR2发送的带OL比特的Map Reply报文,解析该Map Reply报文得知收到上线通知应答报文,因此先从重传链表摘除到xTR2的用作上线通知消息的Map Requset报文。然后,xTR2提取Map Reply中VMB的EID地址和MoveFlag的取值,判断VMB迁入。xTR5检测到VMB迁入后,下发迁入主机路由;但是不发送组播Map Notify去通知本数据中心的其它xTR。新上线的xTR在下发虚拟机迁入路由时不发送组播Map Notify去通知本数据中心的其它xTR,这是因为,其它xTR此时已经有VMB的迁入信息。
xTR4收到上线通知消息后,并不去请求Map Cache路由,而是遍历自己的虚拟机迁移路由表。xTR4发现VMC的迁出NULL0路由置上了First标记,因此将VMC的EID地址填入MapReply报文的Record EID字段,且置上OL比特,MoveFlag值设置为2表示迁出。xTR4上VMB的迁入路由不带First标记,因此不打包到Map Reply中。然后,xTR4将该带OL比特的MapReply报文单播给xTR5。
xTR5收到xTR4发送的带OL比特的Map Reply报文,表示收到上线通知应答报文,因此先从重传链表摘除发送到xTR4的Map Request报文。然后,xTR5提取Map Reply报文的Record字段中VMC的EID地址,并提取MoveFlag的取值,判断出VMC迁出。xTR5检测到VMC迁出后,下发迁出NULL0路由,但是不发送组播Map Notify去通知本数据中心的其它xTR。新上线的xTR在下发虚拟机迁出路由时不发送组播Map Notify去通知本数据中心的其它xTR,这是因为,其它xTR已经有VMC的迁出信息。
如果数据中心还有其它与该新上线的xTR5同组的xTR,比如xTR6,假设xTR6上的虚拟机迁移路由都不带First标记,则xTR6直接反馈带OL比特的Map Reply报文,且Record的EID地址填为0等预设值,MoveFlag填3表示没有迁移信息。
xTR5收到xTR6的带OL比特的Map Reply报文,表示收到上线通知应答报文,因此先从重传链表摘除发送到xTR6的上线通知消息即Map Request报文。然后读取MoveFlag标识,发现MoveFlag取值为3,表示没有迁移信息,直接结束处理。
如果新上线的xTR5在向本数据中心有某个在线xTR发送带OL比特的Map Request报文预定时长(比如40秒)后,还没有收到该在线xTR反馈的带OL比特的Map Reply报文,则xTR5在重传定时器超时后,会重新向该在线xTR发送带OL的Map Requset报文作为上线通知消息。
可见本发明实施例提供了一套有效的交互机制,能稳定高效地完成迁移信息交互,使新上线xTR能正确地获取到虚拟机迁移信息,从而解决了新上线xTR感知不到虚拟机迁移信息,导致到达已迁移的虚拟机的流量不通的问题。
针对上述方法,本发明实施例还公开了一种路由器设备,该路由器设备中包括的虚拟机迁移信息处理装置。
图4是本发明实施例提供的路由器设备的硬件结构连接图。
如图4所示,该路由器设备包括处理器、网络接口、内存和非易失性存储器,且上述各硬件通过总线连接,其中:
非易失性存储器,用于存储指令代码;所述指令代码被处理器执行时完成的操作主要为内存中的虚拟机迁移信息处理装置完成的功能。
处理器,用于与非易失性存储器通信,读取和执行非易失性存储器中存储的所述指令代码,完成上述的虚拟机迁移信息处理装置完成的功能。
内存,当非易失性存储器中的所述指令代码被执行时完成的操作主要为内存中的虚拟机迁移信息处理装置完成的功能。
从软件层面而言,应用于路由器设备的虚拟机迁移信息处理装置如图5所示。
图5是本发明实施例提供的虚拟机迁移信息处理装置的结构示意图。图5中所示装置位于隧道路由器中。
如图5所示,该装置包括虚拟机迁移路由表处理模块501、接收模块502和虚拟机迁移信息发布模块503。
虚拟机迁移路由表处理模块501,用于在所述隧道路由器在检测到虚拟机迁移时,判断该隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果。
接收模块502,用于接收上线通知消息,所述上线通知消息由其他隧道路由器在上线时发送。
虚拟机迁移信息发布模块503,用于在所述接收模块接收到上线通知消息时,查询虚拟机迁移路由表,根据所述虚拟机迁移路由表中的标识信息筛选出首先获知的虚拟机迁移信息,将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中,反馈所述上线通知应答消息。
虚拟机迁移路由表处理模块501,可以用于在所述隧道路由器通过虚拟机的报文检测到虚拟机迁入时,在所述虚拟机的迁入路由信息中设置首先获知的标识信息,在所述隧道路由器通过单播通知消息检测到虚拟机迁出时,在所述虚拟机的迁出路由信息中设置首先获知的标识信息。
虚拟机迁移路由表处理模块501,可以用于在所述隧道路由器通过虚拟机的报文检测到虚拟机迁入时,将所述虚拟机的迁入路由信息中的所述预设标志位的取值设置为第一值,在所述隧道路由器通过组播通知消息检测到虚拟机迁入时,将所述虚拟机的迁入路由信息中的所述预设标志位的取值设置为第二值,在所述隧道路由器通过单播通知消息检测到虚拟机迁出时,将所述虚拟机的迁出路由信息中的所述预设标志位的取值设置为第一值,在所述隧道路由器通过组播通知消息检测到虚拟机迁出时,将所述虚拟机的迁出路由信息中的所述预设标志位的取值设置为第二值。
其中,所述上线通知消息可以包括Map request消息,所述Map request消息中携带有第一字段,所述第一字段用于指示所述Map request消息为上线通知消息;所述上线通知应答消息可以包括Map Reply消息,所述Map Reply消息中携带有第二字段,所述第二字段用于指示所述Map Reply消息为上线通知应答消息。
虚拟机迁移信息发布模块501,可以用于在携带虚拟机迁入信息时,将Map Reply消息的Record字段中预设比特位的取值设置为第一取值,在携带虚拟机迁出信息时,将所述Record字段中预设比特位的取值设置为第二取值,将需要携带的发生虚拟机迁移的主机的EID地址写入所述Record字段,在没有需要携带的虚拟机迁移信息时,将所述Record字段中预设比特位的取值设置为第三取值。
该装置还可以包括上线通知模块。
所述上线通知模块,用于在所述隧道路由器上线时,遍历该隧道路由器所在的数据中心中与该隧道路由器同组的其他所有隧道路由器,向遍历到的每个隧道路由器单播发送上线通知消息,在上线通知消息发出后预设时长未收到接收所述上线通知消息的隧道路由器反馈的上线通知应答消息时,重传所述上线通知消息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种在LISP网络中的虚拟机迁移信息处理方法,其特征在于,该方法包括:
在线隧道路由器在检测到虚拟机迁移时,判断该在线隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果;
所述在线隧道路由器接收上线通知消息,所述上线通知消息由其他隧道路由器在上线时发送;
所述在线隧道路由器查询所述虚拟机迁移路由表,根据所述虚拟机迁移路由表中的标识信息筛选出首先获知的虚拟机迁移信息,将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中,反馈所述上线通知应答消息。
2.根据权利要求1所述的方法,其特征在于,判断该在线隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果包括:
在线隧道路由器在通过虚拟机的报文检测到虚拟机迁入时,在所述虚拟机的迁入路由信息中设置首先获知的标识信息,在通过单播通知消息检测到虚拟机迁出时,在所述虚拟机的迁出路由信息中设置首先获知的标识信息。
3.根据权利要求2所述的方法,其特征在于,所述设置首先获知的标识信息包括:将虚拟机迁移信息中的预设标志位的取值设置为第一值;
判断该在线隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果还包括:
在线隧道路由器在通过组播通知消息检测到虚拟机迁入时,将所述虚拟机的迁入路由信息中的所述预设标志位的取值设置为第二值,在通过组播通知消息检测到虚拟机迁出时,将所述虚拟机的迁出路由信息中的所述预设标志位的取值设置为第二值。
4.根据权利要求1-3任一权利要求所述的方法,其特征在于,
所述上线通知消息包括Map request消息,所述Map request消息中携带有第一字段,所述第一字段用于指示所述Map request消息为上线通知消息;
所述上线通知应答消息包括Map Reply消息,所述Map Reply消息中携带有第二字段,所述第二字段用于指示所述Map Reply消息为上线通知应答消息;
将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中包括:
在携带虚拟机迁入信息时,将Map Reply消息的Record字段中预设比特位的取值设置为第一取值,在携带虚拟机迁出信息时,将所述Record字段中预设比特位的取值设置为第二取值,将需要携带的发生虚拟机迁移的主机的EID地址写入所述Record字段;
在没有需要携带的虚拟机迁移信息时,将所述Record字段中预设比特位的取值设置为第三取值。
5.根据权利要求1-3任一权利要求所述的方法,其特征在于,该方法还包括:
隧道路由器在上线时,遍历该隧道路由器所在的数据中心中与该隧道路由器同组的其他所有隧道路由器,向遍历到的每个隧道路由器单播发送上线通知消息;
在上线通知消息发出后预设时长未收到接收所述上线通知消息的隧道路由器反馈的上线通知应答消息时,重传所述上线通知消息。
6.一种在LISP网络中的虚拟机迁移信息处理装置,其特征在于,所述装置位于隧道路由器中,包括虚拟机迁移路由表处理模块、接收模块和虚拟机迁移信息发布模块;
所述虚拟机迁移路由表处理模块,用于在所述隧道路由器在检测到虚拟机迁移时,判断该隧道路由器是否是首先获知该虚拟机迁移的信息,在虚拟机迁移路由表中设置标识信息用于记录所述判断结果;
所述接收模块,用于接收上线通知消息,所述上线通知消息由其他隧道路由器在上线时发送;
所述虚拟机迁移信息发布模块,用于在所述接收模块接收到上线通知消息时,查询虚拟机迁移路由表,根据所述虚拟机迁移路由表中的标识信息筛选出首先获知的虚拟机迁移信息,将所述首先获知的虚拟机迁移信息携带在上线通知应答消息中,反馈所述上线通知应答消息。
7.根据权利要求6所述的装置,其特征在于,
所述虚拟机迁移路由表处理模块,用于在所述隧道路由器通过虚拟机的报文检测到虚拟机迁入时,在所述虚拟机的迁入路由信息中设置首先获知的标识信息,在所述隧道路由器通过单播通知消息检测到虚拟机迁出时,在所述虚拟机的迁出路由信息中设置首先获知的标识信息。
8.根据权利要求7所述的装置,其特征在于,
所述虚拟机迁移路由表处理模块,用于在所述隧道路由器通过虚拟机的报文检测到虚拟机迁入时,将所述虚拟机的迁入路由信息中的预设标志位的取值设置为第一值,在所述隧道路由器通过组播通知消息检测到虚拟机迁入时,将所述虚拟机的迁入路由信息中的所述预设标志位的取值设置为第二值,在所述隧道路由器通过单播通知消息检测到虚拟机迁出时,将所述虚拟机的迁出路由信息中的所述预设标志位的取值设置为第一值,在所述隧道路由器通过组播通知消息检测到虚拟机迁出时,将所述虚拟机的迁出路由信息中的所述预设标志位的取值设置为第二值。
9.根据权利要求6至8任一权利要求所述的装置,其特征在于,
所述上线通知消息包括Map request消息,所述Map request消息中携带有第一字段,所述第一字段用于指示所述Map request消息为上线通知消息;
所述上线通知应答消息包括Map Reply消息,所述Map Reply消息中携带有第二字段,所述第二字段用于指示所述Map Reply消息为上线通知应答消息;
所述虚拟机迁移信息发布模块,用于在携带虚拟机迁入信息时,将MapReply消息的Record字段中预设比特位的取值设置为第一取值,在携带虚拟机迁出信息时,将所述Record字段中预设比特位的取值设置为第二取值,将需要携带的发生虚拟机迁移的主机的EID地址写入所述Record字段,在没有需要携带的虚拟机迁移信息时,将所述Record字段中预设比特位的取值设置为第三取值。
10.根据权利要求6至8任一权利要求所述的装置,其特征在于,该装置还包括上线通知模块;
所述上线通知模块,用于在所述隧道路由器上线时,遍历该隧道路由器所在的数据中心中与该隧道路由器同组的其他所有隧道路由器,向遍历到的每个隧道路由器单播发送上线通知消息,在上线通知消息发出后预设时长未收到接收所述上线通知消息的隧道路由器反馈的上线通知应答消息时,重传所述上线通知消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510160177.2A CN104780102B (zh) | 2015-04-07 | 2015-04-07 | 一种在lisp网络中的虚拟机迁移信息处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510160177.2A CN104780102B (zh) | 2015-04-07 | 2015-04-07 | 一种在lisp网络中的虚拟机迁移信息处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104780102A CN104780102A (zh) | 2015-07-15 |
CN104780102B true CN104780102B (zh) | 2017-12-15 |
Family
ID=53621353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510160177.2A Active CN104780102B (zh) | 2015-04-07 | 2015-04-07 | 一种在lisp网络中的虚拟机迁移信息处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104780102B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591935B (zh) * | 2015-08-26 | 2019-04-09 | 新华三技术有限公司 | 一种虚拟机迁移后eid-rloc映射关系的更新方法和装置 |
CN107547400B (zh) * | 2017-06-21 | 2020-05-12 | 新华三技术有限公司 | 一种虚拟机迁移方法和装置 |
CN109358952A (zh) * | 2018-10-30 | 2019-02-19 | 张家口浩扬科技有限公司 | 一种虚拟机迁移方法和系统 |
CN112448985B (zh) * | 2019-09-02 | 2022-07-15 | 阿里巴巴集团控股有限公司 | 分布式系统、网络处理方法和装置以及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447618A (zh) * | 2011-10-31 | 2012-05-09 | 杭州华三通信技术有限公司 | 一种lisp网络中的路由切换方法及其装置 |
CN102868612A (zh) * | 2011-07-04 | 2013-01-09 | 中兴通讯股份有限公司 | 基于lisp的移动性实现方法及隧道路由器 |
CN103166856A (zh) * | 2011-12-19 | 2013-06-19 | 中国科学院声学研究所 | 一种基于lisp协议的动态移动性管理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589921B2 (en) * | 2009-11-30 | 2013-11-19 | Red Hat Israel, Ltd. | Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm |
US9608901B2 (en) * | 2012-07-24 | 2017-03-28 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for enabling services chaining in a provider network |
-
2015
- 2015-04-07 CN CN201510160177.2A patent/CN104780102B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868612A (zh) * | 2011-07-04 | 2013-01-09 | 中兴通讯股份有限公司 | 基于lisp的移动性实现方法及隧道路由器 |
CN102447618A (zh) * | 2011-10-31 | 2012-05-09 | 杭州华三通信技术有限公司 | 一种lisp网络中的路由切换方法及其装置 |
CN103166856A (zh) * | 2011-12-19 | 2013-06-19 | 中国科学院声学研究所 | 一种基于lisp协议的动态移动性管理方法及系统 |
Non-Patent Citations (2)
Title |
---|
一种身份与位置分离环境下基于网络的安全移动性管理协议;唐建强等;《电子与信息学报》;20130630;第151-158页 * |
虚拟机跨域迁移中的网络重定向模型;刘进军等;《计算机工程》;20120430;第87-89页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104780102A (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104780102B (zh) | 一种在lisp网络中的虚拟机迁移信息处理方法和装置 | |
CN104660508B (zh) | 一种报文转发方法及装置 | |
CN111953604B (zh) | 一种为业务流提供业务服务的方法和装置 | |
CN104052666B (zh) | 实现主机路由可达的方法和装置 | |
CN101155130B (zh) | 学习mac地址的方法及传送vpls客户数据的系统及设备 | |
CN104601427B (zh) | 数据中心网络中的报文转发方法及装置 | |
CN105871565B (zh) | 用于组播转发的方法及装置 | |
CN101467401B (zh) | 路由多播流量 | |
CN106559325A (zh) | 路径检测方法和装置 | |
CN106936655A (zh) | 链路检测方法、装置及网络设备、控制器 | |
CN103312611B (zh) | 报文处理方法、设备标签处理方法及设备 | |
CN105763440B (zh) | 一种报文转发的方法和装置 | |
CN107147508A (zh) | 故障检测方法及装置 | |
CN106603413B (zh) | 通过指定路径传输流量的方法和装置 | |
CN105591841A (zh) | 一种vxlan隧道的连通性检测方法 | |
CN103597794B (zh) | 用于提供关于数据数组关联的信息以及用于转发数据数组的设想 | |
CN103179228A (zh) | 因特网协议地址解析方法及边缘节点 | |
CN104917682B (zh) | 一种叠加网络的配置方法和装置 | |
CN106130819B (zh) | Vtep异常的检测方法及装置 | |
CN104038422B (zh) | 报文转发方法和网关 | |
CN106341333B (zh) | 应用于vxlan中的丢包定位方法和装置 | |
CN103780470B (zh) | 一种is‑is的信息同步方法和装置 | |
CN104486244B (zh) | 一种服务质量QoS策略的执行方法及装置 | |
CN107659484A (zh) | 从vlan网络接入vxlan网络的方法、装置及系统 | |
CN104780090B (zh) | Vpn组播传输的方法、装置、pe设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |