本发明涉及通信技术领域,特别涉及一种LISP(Locator Identity Separation Protocol,位置标识分离协议)网络中的主机迁移方法及装置。
背景技术:
LISP(Locator Identity Separation Protocol,位置标识分离协议)是一种位置和标识分离的网络协议,LISP网络形成了两个独立的地址空间,即EID(Endpoint IDentifier,端点标识)空间和RLOC(Routing LOCator,路由器位置)空间。其中,EID为通信端点的主机地址,用于表明主机的身份;RLOC为LISP路由器的地址,用于表明主机连接的路由器的位置。xTR为ITR(Ingress Tunnel Router,入向隧道路由器)和ETR(Engress Tunnel Router,出向隧道路由器)的统称,表示路由器具备ITR和/或ETR能力。xTR中保存有EID-RLOC映射关系,MS/MR(Map Server,映射服务器;Map Reslover,映射解析器)中维护有更全面的EID-RLOC映射关系。当主机在不同的数据中心之间迁移时,xTR需要在MS/MR中对主机进行注册,从而更新MS/MR中的EID-RLOC映射关系。
现有技术中,如图1所示,当数据中心DC2中的主机A迁入数据中心DC1时,DC1中的xTR1感知到该主机A的迁入,会周期性地向MS/MR注册该主机A,然后MS/MR会周期性地通知DC1和DC2中的隧道路由器,目前主机A在DC1处。但是,DC2的xTR2在接收到该通知之前,还在周期性地向MS/MR注册该主机A。也就是说,当该通知到达DC2的xTR2之前,MS/MR可能会收到xTR2对主机A的注册,这样,MS/MR会认为主机A又迁移至xTR2处。在这种情况下,xTR1只有重新感知到主机A的迁入,才会再次向MS/MR注册主机A,这个过程可能出现多次,直至最终DC1和DC2中的隧道路由器都知道主机A目前位于xTR1处,从而导致主机迁移后完成注册的时间变长。因此,主机发生迁移后,隧道路由器可能会需要很长时间才能最终完成在MS/MR上对待迁入主机的注册。
技术实现要素:
本发明实施例的目的在于提供了一种主机迁移方法及装置,能够缩短对发生迁移的主机在MS/MR上的注册时长。
为了达到上述目的,本发明公开了一种主机迁移方法,应用于映射服务器MS/映射解析器MR,所述方法包括:
接收隧道路由器xTR发送的第一注册信息,所述第一注册信息包括端点标识EID、路由器位置RLOC和所述EID的版本号;
查找本地保存的所述EID对应的第二注册信息;
若所述第一注册信息中的版本号大于第二注册信息中的版本号,则将本地保存的所述第二注册信息更新为所述第一注册信息。
为了达到上述目的,本发明公开了一种主机迁移装置,应用于映射服务器MS/映射解析器MR,所述装置包括:
接收模块,用于接收隧道路由器xTR发送的第一注册信息,所述第一注册信息包括端点标识EID、路由器位置RLOC和所述EID的版本号;
查找模块,用于查找本地保存的所述EID对应的第二注册信息;
更新模块,用于若所述第一注册信息中的版本号大于第二注册信息中的版本号,则将本地保存的所述第二注册信息更新为所述第一注册信息。
由上述技术方案可见,本发明实施例中,MS/MR接收xTR发送的包括EID、RLOC和该EID的版本号的第一注册信息后,查询本地保存的所述EID对应的第二注册信息,当第一注册信息中的版本号大于第二注册信息中的版本号时,将本地保存的第二注册信息更新为第一注册信息。
也就是说,本发明实施例中,MS/MR将EID对应的新的第一注册信息的版本号与老的第二注册信息的版本号进行比较,当第一注册信息的版本号较大时,说明该第一注册信息为最新的注册信息,即可将第二注册信息更新为第一注册信息,从而避免了MS/MR无法判断哪次注册是最新的注册,xTR可能需要多次注册待迁入主机的问题,因此能够缩短对发生迁移的主机在MS/MR上的注册时长。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为LISP网络中主机迁移的一种场景示意图;
图2为本发明实施例提供的主机迁移方法的一种流程示意图;
图3为本发明实施例提供的主机迁移方法的另一种流程示意图;
图4为本发明实施例提供的主机迁移方法的又一种流程示意图;
图5为本发明实施例提供的主机迁移装置的一种结构示意图;
图6为本发明实施例提供的主机迁移装置的另一种结构示意图;
图7为本发明实施例提供的主机迁移装置的又一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种主机迁移方法及装置,能够缩短对发生迁移的主机在MS/MR上的注册时长。
下面通过具体实施例,对本发明进行详细说明。
图2为本发明实施例提供的主机迁移方法的一种流程示意图,应用于映射服务器MS/映射解析器MR,所述方法包括步骤:
步骤S201:接收隧道路由器xTR发送的第一注册信息。
其中,第一注册信息包括端点标识EID、路由器位置RLOC和所述EID的版本号。
可以理解的是,xTR一般在以下两种情形下向MS/MR发送第一注册信息,一是当存在新迁入主机,并且第一次注册该迁入主机时,二是主机迁入之后周期性向MS或者MR注册主机时。
在实际应用中,本实施例中的版本号可以用数字来表示,例如,当主机迁入时,xTR当前本地保存的该EID的版本号为2,那么第一注册信息中的版本号即为2+1=3。当然,版本号还可以用字母来表示,例如当主机迁入时xTR当前本地保存的该EID的版本号为C,那么第一注册信息中的版本号即为D(26个英文字母中C后面的字母),并且认为26个英文字母中排在后面的字母大于排在前面的字母。当然,版本号的表示形式可以包括多种实现方式。
步骤S202:查找本地保存的所述EID对应的第二注册信息。
其中,第二注册信息中也包括EID、RLOC和所述EID的版本号等。
步骤S203:若第一注册信息中的版本号大于第二注册信息中的版本号,则将本地保存的第二注册信息更新为第一注册信息。
当第一注册信息中的版本号不大于第二注册信息中的版本号时,该方法还可以包括:将接收的第一注册信息丢弃。也就是说,这种情况下,第一注册信息不是最新的注册信息。
在本步骤中,为了更准确地确定第一注册信息为最新的注册信息,在将本地保存的第二注册信息更新为第一注册信息之前,除了判断第一注册信息中的版本号是否大于第二注册信息中的版本号之外,还可以判断第一注册信息中的RLOC是否与第二注册信息中的RLOC不同。如果以上的判断结果都为是,则说明第一注册信息为用于注册所述EID的最新的注册信息。
在实际应用中,xTR在向MS/MR周期性发送注册信息的过程中,注册信息中的版本号可能因发生错误而变大,这时,由于注册信息中的RLOC没有变化,故无须更新注册信息。
由上述内容可知,在本实施例中,MS/MR将EID对应的新的第一注册信息的版本号与老的第二注册信息的版本号进行比较,当第一注册信息的版本号较大时,说明该第一注册信息为最新的注册信息,即可将第二注册信息更新为第一注册信息,从而避免了MS/MR无法判断哪次注册是最新的注册,xTR可能需要多次注册待迁入主机的问题,因此能够缩短对发生迁移的主机在MS/MR上的注册时长。
在图2所示实施例中,在执行步骤S203的同时,即在将本地保存的第二注册信息更新为第一注册信息时,还可以将最新的版本号信息发送至所述EID对应的订阅者,使这些订阅者更新自身信息。即,所述方法还可以包括以下步骤,参见图3流程示意图:
步骤S301:在本地查找所述EID对应的订阅者RLOC。
其中,MS/MR中保存的订阅者RLOC可以是预先配置的,也可以是MS/MR在接收到xTR的订阅请求后添加的。
步骤S302:根据查找到的订阅者RLOC,向对应的xTR发送第一注册信息,以使订阅者RLOC对应的xTR将本地记录的所述EID的版本号更新为第一注册信息中的版本号。
可以理解的是,步骤S302中也可以只向对应的xTR发送所述EID和对应的版本号,这样也能将EID最新的版本号发送至订阅者RLOC对应的xTR。
由上述内容可见,本实施例中,xTR中也保存了其订阅的EID的版本号,并且,当所述EID的注册信息发生变化时,MS/MR要向xTR发送最新的注册信息,以使xTR更新所述EID的版本号。
需要说明的是,在图2所示实施例中,若第一注册信息为主机迁入时所述xTR生成的注册信息,则第一注册信息中的版本号为主机迁入时xTR当前本地保存的所述EID的版本号加1。若第一注册信息为主机迁入后所述xTR周期性发送的注册信息,则第一注册信息中的版本号为xTR本地保存的所述EID的版本号。
在第一种情况下,当主机迁入时,第一注册信息是最新的注册信息,其中的版本号大于第二注册信息中的版本号,于是,MS/MR将第二注册信息更新为第一注册信息。
在第二种情况下,当主机迁入之后,第一注册信息是周期性发送的注册信息,其中的版本号等于第二注册信息中的版本号,MS/MR将第一注册信息丢弃即可。
在图2所示实施例中,该方法还可以包括以下步骤,这些步骤可以参见图4所示流程图:
步骤S401:接收xTR发送的订阅信息,所述订阅信息包括该xTR的RLOC和订阅的EID。
具体的,xTR订阅哪些EID,可以预先设定,也可以根据预设规则获得,本发明对此不做限定。
步骤S402:将该xTR的RLOC作为订阅者RLOC,在本地记录订阅者RLOC和订阅的EID之间的映射关系。
需要说明的是,图4所示流程示意图仅仅是一种实施方式,步骤S401和S402与图2所示实施例的结合还可以包括其他多种实施方式,此处不再一一列举。
下面结合具体实例对本申请再做详细说明。
以图1所示示意图来举例说明,主机A的EID为10.1.1.66,其原来与数据中心DC2的xTR2连接,xTR2的RLOC为2.2.2.2。现在,主机A迁移至DC1的xTR1处,其中,xTR1的RLOC为1.1.1.1。
xTR1感知到主机A的迁入,并且当前本地保存的主机A的EID的版本号为2,确定第一注册信息中的版本号为2+1即为3,第一注册信息包含的内容如下:
EID:10.1.1.66;RLOC:1.1.1.1;Version:3
xTR1将上述第一注册信息发送至MS/MR,以注册迁入主机A。MS/MR接收到xTR1发送的第一注册信息,并查找本地保存的该EID对应的第二注册信息,查找到的第二注册信息包含的内容如下:
EID:10.1.1.66;RLOC:2.2.2.2;Version:2
MS/MR判断出第一注册信息中的版本号3大于第二注册信息中的版本号2,从而将本地保存的第二注册信息更换为第一注册信息。此时,即完成对迁入主机A的注册。
MS/MR在本地查找该EID对应的订阅者RLOC,查找到的订阅者RLOC包括以下内容:
xTR1:1.1.1.1;xTR2:2.2.2.2;xTR3:3.3.3.3
MS/MR向上述三个xTR发送第一注册信息,以使xTR1、xTR2和xTR3将各自本地记录的该EID的版本号更新为第一注册信息中的版本号。
xTR1在完成对迁入主机A的第一次注册之后,还要周期性地向MS/MR发送上述第一注册信息。MS/MR接收到xTR1发送的第一注册信息的内容如下:
EID:10.1.1.66;RLOC:1.1.1.1;Version:3
MS/MR根据该第一注册信息中的EID,查找到该EID对应的第二注册信息包含的内容如下:
EID:10.1.1.66;RLOC:1.1.1.1;Version:3
MS/MR判断出第一注册信息中的版本号3不大于第二注册信息中的版本号3,从而将第一注册信息丢弃。
图5为本发明实施例提供的主机迁移装置的一种结构示意图,应用于映射服务器MS/映射解析器MR,所述装置包括接收模块501、查找模块502和更新模块503;
其中,接收模块501,用于接收xTR发送的第一注册信息,所述第一注册信息包括EID、RLOC和所述EID的版本号;
查找模块502,用于查找本地保存的所述EID对应的第二注册信息;
更新模块503,用于若所述第一注册信息中的版本号大于第二注册信息中的版本号,则将本地保存的所述第二注册信息更新为所述第一注册信息。
在图5所示实施例中,所述装置还可以包括发送模块601,参见图6所示结构示意图,该结构示意图与图3所示方法实施例相对应;
所述查找模块502,还用于在所述将本地保存的所述第二注册信息更新为所述第一注册信息时,在本地查找所述EID对应的订阅者RLOC;
所述发送模块601,用于根据查找到的所述订阅者RLOC,向对应的xTR发送所述第一注册信息,以使订阅者RLOC对应的xTR将本地记录的所述EID的版本号更新为所述第一注册信息中的版本号。
在图5所示实施例中,若所述第一注册信息为主机迁入时所述xTR生成的注册信息,则所述第一注册信息中的版本号为主机迁入时xTR当前本地保存的所述EID的版本号加1;
若所述第一注册信息为主机迁入后所述xTR周期性发送的注册信息,则所述第一注册信息中的版本号为xTR本地保存的所述EID的版本号。
在图5所示实施例中,所述装置还可以包括丢弃模块(图中未示出);
所述丢弃模块,用于当所述第一注册信息中的版本号不大于第二注册信息中的版本号时,将接收的所述第一注册信息丢弃。
在图5所示实施例中,所述装置还可以包括记录模块701,参见图7所示结构示意图,该结构示意图与图4所示方法实施例相对应;
所述接收模块501,还用于接收xTR发送的订阅信息,所述订阅信息包括该xTR的RLOC和订阅的EID;
所述记录模块701,用于将该xTR的RLOC作为订阅者RLOC,在本地记录订阅者RLOC和订阅的EID之间的映射关系。
由于上述装置实施例是基于方法实施例得到的,与该方法具有相同的技术效果,因此装置实施例的技术效果在此不再赘述。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解,上述实施方式中的全部或部分步骤是能够通过程序指令相关的硬件来完成的,所述的程序可以存储于计算机可读取存储介质中。这里所称存储介质,是指ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。