CN104935519B - 位置和标识分离协议网络中的虚拟机迁入检测方法和装置 - Google Patents
位置和标识分离协议网络中的虚拟机迁入检测方法和装置 Download PDFInfo
- Publication number
- CN104935519B CN104935519B CN201510180677.2A CN201510180677A CN104935519B CN 104935519 B CN104935519 B CN 104935519B CN 201510180677 A CN201510180677 A CN 201510180677A CN 104935519 B CN104935519 B CN 104935519B
- Authority
- CN
- China
- Prior art keywords
- detection
- virtual machine
- mark
- moves
- deleted
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/52—Multiprotocol routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施方式提出一种位置和标识分离协议(LISP)网络中的虚拟机迁入检测方法和装置。该方法包括:设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识;当第一虚拟机的流量报文匹配高速缓存(Cache),基于所述第一检测标识判断是否已执行所述第一虚拟机的迁入检测,其中:当判定还没有执行所述第一虚拟机的迁入检测,执行所述第一虚拟机的迁入检测,并将所述第一检测标识设置为指示已执行所述第一虚拟机的迁入检测。
Description
技术领域
本发明涉及位置和标识分离协议(Locator Identity Separation Protocol,LISP)技术领域,特别是一种LISP网络中的虚拟机迁入检测方法和装置。
背景技术
LISP是一种位置和标识和分离的协议。LISP网络由核心网络和边缘网络两部分组成。其中,核心网络中使用路由位置(Routing Locator,RLOC)来标识路由器,而边缘网络中使用终端标识符(Endpoint Identifiers,EID)来标识终端。LISP通过入口隧道路由器(Ingress Tunnel Router,ITR)和出口隧道路由器(Egress Tunnel Router,ETR)实现核心网络和边缘网络的分离,而且通过映射***实现从EID至RLOC的映射解析。xTR为ITR和ETR的统称,表示隧道路由器同时具备ITR和ETR能力。
通常情况下,发往xTR的流量首包走慢速转发,xTR在慢速转发过程中建立高速缓存(Cache)以提高流量转发性能,发往xTR的流量后续包走Cache转发。
然而,如果xTR中具有Cache,而且虚拟机迁入xTR时流量命中Cache,xTR通常无法检测到虚拟机迁入。
另外,xTR针对迁入的虚拟机执行迁移检测后,如果虚拟机迁移检测信息被删除,即使虚拟机再向xTR发出流量,由于xTR中Cache的存在,xTR无法再次检测到虚拟机迁入。
发明内容
有鉴于此,本发明提出一种LISP网络中的虚拟机迁入检测方法和装置,从而在Cache转发时检测到虚拟机迁入。
本发明实施方式的技术方案如下:
根据本发明实施方式的一方面,提出一种LISP网络中的虚拟机迁入检测方法,该方法应用于隧道路由器,该方法包括:
设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识;
当第一虚拟机的流量报文匹配Cache,基于所述第一检测标识判断是否已执行所述第一虚拟机的迁入检测,其中:
当判定还没有执行所述第一虚拟机的迁入检测,执行所述第一虚拟机的迁入检测,并将所述第一检测标识设置为指示已执行所述第一虚拟机的迁入检测。
优选地,该方法还包括:
当判定已执行所述第一虚拟机的迁入检测,进一步判断所述第一虚拟机的迁入检测信息是否已被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。
优选地,所述第一检测标识是全局变量或设置在所述Cache中的局部变量。
优选地,该方法还包括:
设置用于指示所述第一虚拟机的迁入检测信息状态的第二检测标识;
所述判断第一虚拟机的迁入检测信息是否已被删除包括:基于所述第二检测标识判断第一虚拟机的迁入检测信息是否已被删除。
优选地,该方法还包括:
设置对应于任意虚拟机的第三检测标识以及对应于第一虚拟机的第四检测标识,所述第三检测标识与第四检测标识初始一致,而且所述第三检测标识基于任意虚拟机迁入检测信息删除动作而变化;
所述判断第一虚拟机的迁入检测信息是否已被删除包括:基于所述第三检测标识与第四检测标识是否一致判断第一虚拟机的迁入检测信息是否已被删除;
其中当判定所述迁入检测信息已被删除并执行第一虚拟机迁入检测之后,将所述第三检测标识设置为与所述第四检测标识一致。
优选地,所述第一检测标识和第四检测标识是设置在所述Cache中的局部变量,所述第三检测标识是全局变量。
优选地,所述执行第一虚拟机的迁入检测包括:
当所述流量报文的入接口与所述流量报文源地址的路由出接口相同时,判定没有检测到所述第一虚拟机的迁入;和/或
当所述流量报文的入接口与所述流量报文源地址的路由出接口不相同时,判定检测到所述第一虚拟机的迁入。
根据本发明实施方式的另一方面,提出一种LISP网络中的虚拟机迁入检测装置,该装置应用于隧道路由器,该装置包括:
标识设置模块,用于设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识;
迁入检测模块,用于当第一虚拟机的流量报文匹配Cache,基于所述第一检测标识判断是否已执行所述第一虚拟机的迁入检测,其中:当判定还没有执行所述第一虚拟机的迁入检测,执行所述第一虚拟机的迁入检测,并将所述第一检测标识设置为指示已执行所述第一虚拟机的迁入检测。
优选地,迁入检测模块,还用于当判定已执行所述第一虚拟机的迁入检测,判断所述第一虚拟机的迁入检测信息是否已被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。
优选地,标识设置模块,还用于设置用于指示所述第一虚拟机的迁入检测信息状态的第二检测标识;
迁入检测模块,用于基于所述第二检测标识判断第一虚拟机的迁入检测信息是否已被删除。
优选地,标识设置模块,还用于设置对应于任意虚拟机的第三检测标识以及对应于第一虚拟机的第四检测标识,所述第三检测标识与第四检测标识初始一致,而且所述第三检测标识基于任意虚拟机迁入检测信息删除动作而变化;
迁入检测模块,用于基于所述第三检测标识与第四检测标识是否一致判断第一虚拟机的迁入检测信息是否已被删除,其中当判定所述迁入检测信息已被删除并执行第一虚拟机迁入检测之后,将所述第三检测标识设置为与所述第四检测标识一致。
优选地,迁入检测模块,用于当所述流量报文的入接口与所述流量报文源地址的路由出接口相同时,判定没有检测到所述第一虚拟机的迁入;和/或,当所述流量报文的入接口与所述流量报文源地址的路由出接口不相同时,判定检测到所述第一虚拟机的迁入。
在本发明实施方式中,设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识,而且当基于第一检测标识判定还没有执行第一虚拟机的迁入检测时,执行第一虚拟机的迁入检测,并将第一检测标识设置为指示已执行第一虚拟机的迁入检测,从而解决了第一虚拟机迁入隧道路由器时流量命中Cache导致无法检测到第一虚拟机迁入的技术问题。
而且,在基于第一检测标识判定还没有执行第一虚拟机的迁入检测时,本发明实施方式进一步判断第一虚拟机的迁入检测信息是否已经被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。因此,本发明实施方式还解决了因第一虚拟机的迁入检测信息被删除导致隧道路由器无法再次检测到第一虚拟机迁入的技术问题。
附图说明
图1为根据现有技术的LISP网络中虚拟机迁移的第一示范性示意图;
图2为根据现有技术的LISP网络中虚拟机迁移的第二示范性示意图;
图3为根据本发明实施方式LISP网络中虚拟机迁入检测方法流程图;
图4为根据本发明实施方式LISP网络中虚拟机迁入检测方法的第一示范性示意图;
图5为根据本发明实施方式LISP网络中虚拟机迁入检测方法的第二示范性示意图;
图6为根据本发明实施方式LISP网络中虚拟机迁入检测装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
图1为根据现有技术的LISP网络中虚拟机迁移的第一示范性示意图。
如图1所示,该LISP网络包括数据中心1、数据中心2、数据中心3和映射服务器。数据中心1包括xTR1,数据中心2包括xTR2,数据中心3包括xTR3。具体地,映射服务器包括集中式或分布式布置的映射中转单元(Map-Reslover,MR)和映射服务单元(Map-Server,MS)。
数据中心1的EID空间:10.1.1.0/24;数据中心2的EID空间:10.2.1.0/24;数据中心1的RLOC地址:192.168.1.1/24;数据中心2的RLOC地址:192.168.2.1/24。xTR1向映射服务器注册指向xTR1的EID地址:10.1.1.0/24;xTR2向映射服务器注册指向xTR2的EID地址:10.2.1.0/24。xTR1下挂有虚拟机(VM)A,VMA的EID地址:10.1.1.1/32。
步骤(1):VMA从xTR1上线,VMA与xTR1处于同一网段且上线接口未使能扩展(extend)模式,因此xTR1不执行VMA迁入检测,即xTR1不向映射服务器注册VMA的EID地址:10.1.1.1/32。xTR3发起到VMA的数据流量,从映射服务器学习到映射缓存(Map-Cache)10.1.1.0/24下一跳指向xTR1。而且,VMA发起到数据中心2的VMB的数据流量,xTR2从映射服务器学习到Map-Cache 10.2.1.0/24下一跳指向xTR2。
步骤(2):VMA发往VMB的流量到达xTR2,为提高转发性能,xTR2为该流量创建一个高速转发缓存(Cache)。xTR2从VMA接收的流量是普通IP流量,协议和端口都是0,因此xTR2创建的高速Cache Key为(源地址,目的地址),即(10.1.1.1,10.2.1.1)。
步骤(3):VMA从xTR1迁移到xTR2。由于VMA发往VMB的流量的源地址和目的地址都没有发生变化,因此流量报文匹配步骤(3)所创建的Cache。而且,xTR2为提高转发性能,匹配高速转发Cache时不做虚拟机迁入检测,因此xTR2无法检测到虚拟机VMA的迁入,并不生成到达VMA的32位本地路由,也并不向映射服务器注册VMA的EID地址:10.1.1.1/32。
步骤(4):xTR3向VMA发出的流量,走流量老路径(xTR3->xTR1)到达xTR1。
步骤(5):xTR1匹配到EID地址:10.1.1.1/32的NULL0路由,向xTR3发送恳求映射请求(SMR)报文,以通知xTR3重新请求到VMA的映射缓存(Map Cache)表项。
步骤(6):xTR3接收到SMR报文后,向映射服务器发送携带EID地址:10.1.1.1/32的映射请求(Map-Request)报文,以重新请求到达VMA的Map-Cache。然而,xTR2没有检测到VMA的迁入,因此xTR2没有向映射服务器注册VMA的EID地址:10.1.1.1/32。所以,xTR3只能学习到EID地址:10.1.1.0/24指向xTR1的老路由。由于虚拟机VMA已经从xTR1迁出;此时xTR3无法与VMA通信,导致xTR3发往VMA的流量一直中断,而且无法恢复。
申请人对上述流程进行详细分析,发现:在现有技术中,由于xTR2中具有VMA到VMB流量的Cache,VMA迁入xTR2时流量命中Cache,xTR2无法检测到VMA迁入,从而导致xTR3发往VMA的流量一直中断。
图2为根据现有技术的LISP网络中虚拟机迁移的第二示范性示意图。
如图2所示,该LISP网络包括数据中心1、数据中心2、数据中心3和映射服务器。数据中心1包括xTR1,数据中心2包括xTR2,数据中心3包括xTR3。具体地,映射服务器包括集中式或分布式布置的映射中转单元(Map-Reslover,MR)和映射服务单元(Map-Server,MS)。
数据中心1的EID空间:10.1.1.0/24;数据中心2的EID空间:10.2.1.0/24;数据中心1的RLOC地址:192.168.1.1/24;数据中心2的RLOC地址:192.168.2.1/24。xTR1向映射服务器注册指向xTR1的EID地址:10.1.1.0/24;xTR2向映射服务器注册指向xTR2的EID地址:10.2.1.0/24。xTR1下挂有虚拟机(VM)A,VMA的EID地址:10.1.1.1/32。
步骤(1):VMA从xTR1上线,VMA与xTR1处于同一网段且上线接口未使能扩展(extend)模式,因此xTR1不执行VMA迁入检测,即xTR1不向映射服务器注册VMA的EID地址:10.1.1.1/32。xTR3发起到VMA的数据流量,从映射服务器学习到映射缓存(Map-Cache)10.1.1.0/24下一跳指向xTR1。而且,VMA从xTR1迁移到xTR2。
步骤(2):xTR2检测到VMA发送的数据报文,数据报文首包走慢速转发。
步骤(3):xTR2从VMA接收到的首包触发虚拟机迁入检测。具体包括:xTR2生成到达VMA的32位本地路由,向映射服务器注册VMA的EID地址:10.1.1.1/32。而且,为提高转发性能,xTR2为从VMA发往VMB的后续包创建Cache。xTR2创建的Cache的Key为(源地址,目的地址),即(10.1.1.1,10.2.1.1)。
步骤(4):xTR2通过命令行重置(reset)VMA迁入所生成的32位本地路由。删除该本地路由后,虚拟机迁入生成的动态数据都会被删除,而且xTR2不再向映射服务器更新VMA的EID地址:10.1.1.1/32,xTR2回到VMA迁入之前的状态。
步骤(5):xTR3向VMA发出的流量,走流量老路径(xTR3->xTR1)到达xTR1。
步骤(6):xTR1匹配到EID地址:10.1.1.1/32的NULL0路由,向xTR3发送恳求映射请求(SMR)报文,以通知xTR3重新请求到VMA的映射缓存(Map-Cache)表项。
步骤(7):xTR3接收到SMR报文后,向映射服务器发送携带EID地址:10.1.1.1/32的映射请求(Map-Request)报文,以重新请求到达VMA的Map-Cache。然而,由于xTR2不在映射服务器更新VMA的EID地址:10.1.1.1/32,导致映射服务器中VMA的EID地址:10.11.1.1/32失效。所以,xTR3发送Map-Request后只能学习到EID地址:10.1.1.0/24指向xTR1的老路由。由于虚拟机VMA已经从xTR1迁出;此时xTR3无法与VMA通信,导致xTR3发往VMA的流量一直中断,而且无法恢复。
申请人对上述流程进行详细分析,发现:在现有技术中,xTR2针对迁入的虚拟机VMA执行迁移检测后,VMA的迁移检测信息已经被删除,即使VMA再向xTR2发出流量,由于xTR2中Cache的存在,xTR2无法再次检测到VMA迁入,从而导致xTR3发往VMA的流量一直中断。
由图1和图2的分析可见,在现有技术中:在进行虚拟机迁入检测之前,如果xTR中已经创建有Cache,可能导致无法检测到虚拟机迁入。
为了解决该问题,本发明提出一种Cache转发中触发虚拟机迁入检测的技术方案。
图3为根据本发明实施方式LISP网络中虚拟机迁入检测方法流程图,该方法应用于隧道路由器(xTR)。
如图3所示,该方法包括:
步骤301:设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识。
在这里,可以将第一检测标识设置为转发第一虚拟机流量的Cache中的局部变量,也可以将第一检测标识设置为全局变量。当第一检测标识设置为转发第一虚拟机流量的Cache中的局部变量时,隧道路由器在基于Cache转发第一虚拟机流量的转发过程中可以访问第一检测标识;当第一检测标识设置为全局变量时,隧道路由器可以在任意时刻访问第一检测标识。
第一检测标识用于指示是否已执行第一虚拟机的迁入检测。比如,当第一检测标识为0,表示没有执行第一虚拟机的迁入检测;当第一检测标识为1,表示已经执行第一虚拟机的迁入检测。
步骤302:当第一虚拟机的流量报文匹配Cache,基于第一检测标识判断是否已执行第一虚拟机的迁入检测,其中:当判定还没有执行第一虚拟机的迁入检测,执行第一虚拟机的迁入检测,并将第一检测标识设置为指示已执行第一虚拟机的迁入检测。
比如,当第一虚拟机的流量报文匹配Cache,隧道路由器访问第一检测标识,检测到第一检测标识为0,因此隧道路由器判定还没有执行第一虚拟机的迁入检测,此时隧道路由器开始执行第一虚拟机的迁入检测,而且将第一检测标识设置为1。当第一虚拟机的后续流量报文再次匹配Cache时,隧道路由器访问第一检测标识,发现第一检测标识的变量值为1,并判定隧道路由器已执行第一虚拟机的迁入检测。
在一个实施方式中,当第一虚拟机的流量报文匹配Cache时,如果判定隧道路由器已执行第一虚拟机的迁入检测,则针对该流量报文不执行第一虚拟机迁入检测。可见,第一虚拟机的每个后续流量报文,只需要分别执行一次标识位判断操作,即可判断是否已经执行过第一虚拟机的迁入检测,从而解决了第一虚拟机迁入隧道路由器时流量命中Cache导致无法检测到第一虚拟机迁入的技术问题。
然而,如果第一虚拟机的迁入检测信息被删除,可能导致隧道路由器无法再次检测到第一虚拟机迁入。
在一个实施方式中,当第一虚拟机的流量报文匹配Cache时,如果判定隧道路由器已执行第一虚拟机的迁入检测,进一步判断第一虚拟机的迁入检测信息是否已被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。可见,基于进一步判断第一虚拟机的迁入检测信息是否已经被删除,本发明实施方式解决了因第一虚拟机的迁入检测信息被删除导致隧道路由器无法再次检测到第一虚拟机迁入的技术问题。
优选地,设置用于指示第一虚拟机的迁入检测信息状态的第二检测标识,隧道路由器基于第二检测标识判断第一虚拟机的迁入检测信息是否已被删除。比如,可以将第二检测标识设置为可以在任意时刻访问的全局变量,初值为0(表示第一虚拟机的迁入检测信息没有删除);当隧道路由器通过命令行重置等方式删除第一虚拟机的迁入检测信息时,将第二检测标识设置为1(表示第一虚拟机的迁入检测信息已经被删除)。此时,当第一虚拟机的流量报文匹配Cache时,如果基于第一检测标识判定隧道路由器已执行第一虚拟机的迁入检测,进一步基于第二检测标识判断第一虚拟机的迁入检测信息是否已被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。
在一个实施方式中,可以不设置专门用于指示第一虚拟机的迁入检测信息状态的第二检测标识,而是设置对应于任意虚拟机的第三检测标识以及对应于第一虚拟机的第四检测标识。第四检测标识设置为转发第一虚拟机流量的Cache中的局部变量,第三检测标识设置为全局变量。第三检测标识与第四检测标识初始一致,而且第三检测标识基于任意虚拟机迁入检测信息删除动作而变化。隧道路由器基于第三检测标识与第四检测标识是否一致判断第一虚拟机的迁入检测信息是否已被删除;其中当判定迁入检测信息已被删除并执行第一虚拟机迁入检测之后,将第三检测标识设置为与第四检测标识一致。
具体地,隧道路由器可以通过单播反向路由(URPF)机制来执行第一虚拟机的迁入检测。在URPF机制中,隧道路由器比较流量报文的入接口和报文源地址路由的出接口是否一致。当流量报文的入接口与流量报文源地址的路由出接口相同时,判定没有检测到第一虚拟机的迁入;和/或,当流量报文的入接口与流量报文源地址的路由出接口不相同时,判定检测到第一虚拟机的迁入。
下面对本发明实施方式的具体应用进行说明。
图4为根据本发明实施方式LISP网络中虚拟机迁入检测方法的第一示范性示意图。
如图4所示,该LISP网络包括数据中心1、数据中心2、数据中心3和映射服务器。数据中心1包括xTR1,数据中心2包括xTR2,数据中心3包括xTR3。具体地,映射服务器包括集中式或分布式布置的映射中转单元(Map-Reslover,MR)和映射服务单元(Map-Server,MS)。
数据中心1的EID空间:10.1.1.0/24;数据中心2的EID空间:10.2.1.0/24;数据中心1的RLOC地址:192.168.1.1/24;数据中心2的RLOC地址:192.168.2.1/24。xTR1向映射服务器注册指向xTR1的EID地址:10.1.1.0/24;xTR2向映射服务器注册指向xTR2的EID地址:10.2.1.0/24。xTR1下挂有虚拟机(VM)A,VMA的EID地址:10.1.1.1/32。
步骤(1):VMA从xTR1上线,VMA与xTR1处于同一网段且上线接口未使能扩展(extend)模式,因此xTR1不执行VMA迁入检测,即xTR1不向映射服务器注册VMA的EID地址:10.1.1.1/32。xTR3发起到VMA的数据流量,VMA发起到xTR2的VMB流量。
步骤(2)在xTR2上创建Key为(10.1.1.1,10.2.1.1)的Cache,而且在xTR2上设置用于指示是否已执行VMA迁入检测的第一检测标识。由于此时VMA没有迁入xTR2,因此第一检测标识指示未执行VMA迁入检测。
步骤(3):VMA从xTR1迁移到xTR2。VMA在xTR2上继续发起到VMB的流量。该流量匹配步骤(1)创建的高速Cache,xTR2检查第一检测标识,发现未检测VMA迁入。因此,xTR2触发VMA的迁入检测,通过URPF机制检测到VMA迁入,并将第一检测标识设置为已执行VMA的迁入检测。xTR2检测到VMA迁入后,生成到达VMA的32位本地路由,并向映射服务器注册迁入VMA的EID地址:10.1.1.1/32。VMA到VMB的后续报文继续匹配Cache,针对每个后续报文,xTR2继续分别检查第一检测标识,可以发现已执行VMA的迁入检测,因此针对后续报文无须再执行VMA的迁入检测。
步骤(4):xTR3向VMA发出的流量,走流量老路径(xTR3->xTR1)到达xTR1。
步骤(5):xTR1匹配到EID地址:10.1.1.1/32的NULL0路由,向xTR3发送恳求映射请求(SMR)报文,以通知xTR3重新请求到VMA的映射缓存(Map-Cache)表项。
步骤(6):xTR3接收到SMR报文后,向映射服务器发送携带EID地址:10.1.1.1/32的映射请求(Map-Request)报文,以重新请求到达VMA的Map-Cache。
步骤(7):映射服务器接收xTR3发送的Map-Request报文,将该Map-Request报文转发给xTR2。
步骤(8):xTR2接收Map-Request,向xTR3直接回复映射应答(Map-Reply)。
步骤(9):xTR3接收Map-Reply,生成到达VMA的新Map-Cache表项,即生成EID地址:10.1.1.1/32指向xTR2的路由。然后,xTR3向VMA发出的流量将匹配该路由,并经过流量新路径(xTR3->xTR2)发送到xTR2,xTR2再将该流量发送给迁入的虚拟机VMA。
由此可见,VMA迁入xTR2后流量命中Cache,xTR2可以检测到VMA迁入,从而保证了xTR3发往VMA的流量不会中断。
图5为根据本发明实施方式LISP网络中虚拟机迁入检测方法的第二示范性示意图。
如图5所示,该LISP网络包括数据中心1、数据中心2、数据中心3和映射服务器。数据中心1包括xTR1,数据中心2包括xTR2,数据中心3包括xTR3。具体地,映射服务器包括集中式或分布式布置的映射中转单元(Map-Reslover,MR)和映射服务单元(Map-Server,MS)。
数据中心1的EID空间:10.1.1.0/24;数据中心2的EID空间:10.2.1.0/24;数据中心1的RLOC地址:192.168.1.1/24;数据中心2的RLOC地址:192.168.2.1/24。xTR1向映射服务器注册指向xTR1的EID地址:10.1.1.0/24;xTR2向映射服务器注册指向xTR2的EID地址:10.2.1.0/24。xTR1下挂有虚拟机(VM)A,VMA的EID地址:10.1.1.1/32。
步骤(1):VMA从xTR1上线,VMA与xTR1处于同一网段且上线接口未使能扩展(extend)模式,因此xTR1不执行VMA迁入检测,即xTR1不向映射服务器注册VMA的EID地址:10.1.1.1/32。xTR3发起到VMA的数据流量,从映射服务器学习到映射缓存(Map-Cache)10.1.1.0/24下一跳指向xTR1。而且,VMA从xTR1迁移到xTR2。
步骤(2):xTR2检测到VMA发送的数据报文,数据报文首包走慢速转发。
步骤(3):xTR2从VMA接收到的首包触发虚拟机迁入检测。具体包括:xTR2生成到达VMA的32位本地路由,向映射服务器注册VMA的EID地址:10.1.1.1/32。而且,为提高转发性能,xTR2为从VMA发往VMB的后续包创建Cache。xTR2创建的Cache的Key为(源地址,目的地址),即(10.1.1.1,10.2.1.1)。在xTR2上设置用于指示是否已执行VMA迁入检测的第一检测标识,第一检测标识指示已执行VMA迁入检测。而且,在xTR2上设置对应于任意虚拟机的第三检测标识以及对应于VMA的第四检测标识,第三检测标识与第四检测标识初始一致,都为1。第三检测标识可以基于任意虚拟机迁入检测信息删除动作而变化,比如当xTR2上发生一次虚拟机迁入检测信息删除动作时,第三检测标识自动加1。
步骤(4):xTR2通过命令行重置(reset)VMA迁入所生成的32位本地路由。删除该本地路由后,VMA迁入生成的动态数据都会被删除,第三检测标识自动加1,变为2。xTR2不再向映射服务器更新VMA的EID地址:10.1.1.1/32,xTR2回到VMA迁入之前的状态。VMA在xTR2上继续发起到VMB的流量。该流量匹配步骤(3)创建的高速Cache,xTR2检查第一检测标识,发现已经检测VMA迁入。xTR2继续比较第三检测标识和第四检测标识是否一致,发现第三检测标识为2,而第四检测标识为1,因此xTR2触发VMA的迁入检测,通过URPF机制检测到VMA迁入,并将第四检测标识设置为2。xTR2再次检测到VMA迁入后,重新生成到达VMA的32位本地路由,并向映射服务器注册迁入VMA的EID地址:10.1.1.1/32。VMA到VMB的后续报文继续匹配Cache,针对每个后续报文,xTR2继续分别检查第一检测标识,可以发现已执行VMA的迁入检测,并继续比较第三检测标识和第四检测标识,发现第三检测标识和第四检测标识一致,因此针对后续报文无须再执行VMA的迁入检测。
步骤(5):xTR3向VMA发出的流量,走流量老路径(xTR3->xTR1)到达xTR1。
步骤(6):xTR1匹配到EID地址:10.1.1.1/32的NULL0路由,向xTR3发送恳求映射请求(SMR)报文,以通知xTR3重新请求到VMA的映射缓存(Map-Cache)表项。
步骤(7):xTR3接收到SMR报文后,向映射服务器发送携带EID地址:10.1.1.1/32的映射请求(Map-Request)报文,以重新请求到达VMA的Map-Cache。
步骤(8):映射服务器接收xTR3发送的Map-Request报文,将该Map-Request报文转发给xTR2。
步骤(9):xTR2接收Map-Request,向xTR3直接回复映射应答(Map-Reply);
步骤(10):xTR3接收Map-Reply,生成到达VMA的新Map-Cache表项,即生成EID地址:10.1.1.1/32指向xTR2的路由。然后,xTR3向VMA发出的流量将匹配该路由,并经过流量新路径(xTR3->xTR2)发送到xTR2,xTR2再将该流量发送给迁入的虚拟机VMA。
可见,xTR2针对迁入的虚拟机VMA执行迁移检测后,即使VMA的迁移检测信息已经被删除,VMA再向xTR2发出流量,即使xTR2中存在Cache,xTR2还是可以再次检测到VMA迁入,从而xTR3发往VMA的流量不会中断。
基于上述分析,本发明还提出一种LISP网络中虚拟机迁入检测装置。
图6为根据本发明实施方式LISP网络中虚拟机迁入检测装置结构图,该装置应用于隧道路由器。
如图6所示,该装置600包括:
标识设置模块601,用于设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识;
迁入检测模块602,用于当第一虚拟机的流量报文匹配Cache,基于第一检测标识判断是否已执行第一虚拟机的迁入检测,其中:当判定还没有执行第一虚拟机的迁入检测,执行第一虚拟机的迁入检测,并将第一检测标识设置为指示已执行第一虚拟机的迁入检测。
在一个实施方式中:迁入检测模块602,还用于当判定已执行第一虚拟机的迁入检测,不执行第一虚拟机迁入检测。
在一个实施方式中:迁入检测模块602,还用于当判定已执行第一虚拟机的迁入检测,判断第一虚拟机的迁入检测信息是否已被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。
在一个实施方式中:标识设置模块601,还用于设置用于指示第一虚拟机的迁入检测信息状态的第二检测标识;
迁入检测模块602,用于基于第二检测标识判断第一虚拟机的迁入检测信息是否已被删除。
在一个实施方式中:标识设置模块601,还用于设置对应于任意虚拟机的第三检测标识以及对应于第一虚拟机的第四检测标识,第三检测标识与第四检测标识初始一致,而且第三检测标识基于任意虚拟机迁入检测信息删除动作而变化;
迁入检测模块602,用于基于第三检测标识与第四检测标识是否一致判断第一虚拟机的迁入检测信息是否已被删除,其中当判定迁入检测信息已被删除并执行第一虚拟机迁入检测之后,将第三检测标识设置为与所述第四检测标识一致。
在一个实施方式中:迁入检测模块602,用于当流量报文的入接口与所述流量报文源地址的路由出接口相同时,判定没有检测到所述第一虚拟机的迁入;和/或,当流量报文的入接口与所述流量报文源地址的路由出接口不相同时,判定检测到第一虚拟机的迁入。
综上所述,在本发明实施方式中,设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识,而且当基于第一检测标识判定还没有执行第一虚拟机的迁入检测时,执行第一虚拟机的迁入检测,并将第一检测标识设置为指示已执行所述第一虚拟机的迁入检测,从而解决了第一虚拟机迁入隧道路由器时流量命中Cache导致无法检测到第一虚拟机迁入的技术问题。
而且,在基于第一检测标识判定还没有执行第一虚拟机的迁入检测时,本发明实施方式进一步判断第一虚拟机的迁入检测信息是否已经被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。因此,本发明实施方式还解决了因第一虚拟机的迁入检测信息被删除导致隧道路由器无法再次检测到第一虚拟机迁入的技术问题。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种位置和标识分离协议LISP网络中的虚拟机迁入检测方法,其特征在于,该方法应用于隧道路由器,该方法包括:
设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识;
当第一虚拟机的流量报文匹配第一虚拟机流量的高速缓存Cache,基于所述第一检测标识判断是否已执行所述第一虚拟机的迁入检测,其中:
当判定还没有执行所述第一虚拟机的迁入检测,执行所述第一虚拟机的迁入检测,并将所述第一检测标识设置为指示已执行所述第一虚拟机的迁入检测。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
当判定已执行所述第一虚拟机的迁入检测,进一步判断所述第一虚拟机的迁入检测信息是否已被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述第一检测标识是全局变量或设置在所述Cache中的局部变量。
4.根据权利要求2所述的方法,其特征在于,该方法还包括:设置用于指示所述第一虚拟机的迁入检测信息状态的第二检测标识;
所述判断所述第一虚拟机的迁入检测信息是否已被删除包括:基于所述第二检测标识判断第一虚拟机的迁入检测信息是否已被删除。
5.根据权利要求2所述的方法,其特征在于,该方法还包括:
设置对应于任意虚拟机的第三检测标识以及对应于第一虚拟机的第四检测标识,所述第三检测标识与第四检测标识初始一致,而且所述第三检测标识基于任意虚拟机迁入检测信息删除动作而变化;
所述判断所述第一虚拟机的迁入检测信息是否已被删除包括:基于所述第三检测标识与第四检测标识是否一致判断第一虚拟机的迁入检测信息是否已被删除;
其中当判定所述迁入检测信息已被删除并执行第一虚拟机迁入检测之后,将所述第三检测标识设置为与所述第四检测标识一致。
6.根据权利要求5所述的方法,其特征在于,
所述第一检测标识和第四检测标识是设置在所述Cache中的局部变量,所述第三检测标识是全局变量。
7.根据权利要求1所述的方法,其特征在于,所述执行所述第一虚拟机的迁入检测包括:
当所述流量报文的入接口与所述流量报文源地址的路由出接口相同时,判定没有检测到所述第一虚拟机的迁入;和/或
当所述流量报文的入接口与所述流量报文源地址的路由出接口不相同时,判定检测到所述第一虚拟机的迁入。
8.一种位置和标识分离协议LISP网络中的虚拟机迁入检测装置,其特征在于,该装置应用于隧道路由器,该装置包括:
标识设置模块,用于设置用于指示是否已执行第一虚拟机的迁入检测的第一检测标识;
迁入检测模块,用于当第一虚拟机的流量报文匹配第一虚拟机流量的高速缓存Cache,基于所述第一检测标识判断是否已执行所述第一虚拟机的迁入检测,其中:当判定还没有执行所述第一虚拟机的迁入检测,执行所述第一虚拟机的迁入检测,并将所述第一检测标识设置为指示已执行所述第一虚拟机的迁入检测。
9.根据权利要求8所述的装置,其特征在于,
迁入检测模块,还用于当判定已执行所述第一虚拟机的迁入检测,判断所述第一虚拟机的迁入检测信息是否已被删除,如果已被删除,执行第一虚拟机迁入检测,如果没有被删除,不执行第一虚拟机迁入检测。
10.根据权利要求9所述的装置,其特征在于,
标识设置模块,还用于设置用于指示所述第一虚拟机的迁入检测信息状态的第二检测标识;
迁入检测模块,用于基于所述第二检测标识判断第一虚拟机的迁入检测信息是否已被删除。
11.根据权利要求9所述的装置,其特征在于,
标识设置模块,还用于设置对应于任意虚拟机的第三检测标识以及对应于第一虚拟机的第四检测标识,所述第三检测标识与第四检测标识初始一致,而且所述第三检测标识基于任意虚拟机迁入检测信息删除动作而变化;
迁入检测模块,用于基于所述第三检测标识与第四检测标识是否一致判断第一虚拟机的迁入检测信息是否已被删除,其中当判定所述迁入检测信息已被删除并执行第一虚拟机迁入检测之后,将所述第三检测标识设置为与所述第四检测标识一致。
12.根据权利要求8所述的装置,其特征在于,
迁入检测模块,用于当所述流量报文的入接口与所述流量报文源地址的路由出接口相同时,判定没有检测到所述第一虚拟机的迁入;和/或,当所述流量报文的入接口与所述流量报文源地址的路由出接口不相同时,判定检测到所述第一虚拟机的迁入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510180677.2A CN104935519B (zh) | 2015-04-16 | 2015-04-16 | 位置和标识分离协议网络中的虚拟机迁入检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510180677.2A CN104935519B (zh) | 2015-04-16 | 2015-04-16 | 位置和标识分离协议网络中的虚拟机迁入检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104935519A CN104935519A (zh) | 2015-09-23 |
CN104935519B true CN104935519B (zh) | 2018-05-11 |
Family
ID=54122493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510180677.2A Active CN104935519B (zh) | 2015-04-16 | 2015-04-16 | 位置和标识分离协议网络中的虚拟机迁入检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104935519B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059928B (zh) * | 2016-05-31 | 2021-03-02 | 新华三技术有限公司 | 主机迁移方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101605084A (zh) * | 2009-06-29 | 2009-12-16 | 北京航空航天大学 | 基于虚拟机的虚拟网络报文处理方法和*** |
CN101945034A (zh) * | 2009-07-08 | 2011-01-12 | 中兴通讯股份有限公司 | 一种身份标识与位置分离协议数据转发***及方法 |
CN102447618A (zh) * | 2011-10-31 | 2012-05-09 | 杭州华三通信技术有限公司 | 一种lisp网络中的路由切换方法及其装置 |
CN103516802A (zh) * | 2013-09-30 | 2014-01-15 | 中国科学院计算技术研究所 | 一种实现跨异构虚拟交换机无缝迁移的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9594582B2 (en) * | 2009-01-05 | 2017-03-14 | International Business Machines Corporation | Detection and management of dynamic migration of virtual environments |
US9069587B2 (en) * | 2011-10-31 | 2015-06-30 | Stec, Inc. | System and method to cache hypervisor data |
-
2015
- 2015-04-16 CN CN201510180677.2A patent/CN104935519B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101605084A (zh) * | 2009-06-29 | 2009-12-16 | 北京航空航天大学 | 基于虚拟机的虚拟网络报文处理方法和*** |
CN101945034A (zh) * | 2009-07-08 | 2011-01-12 | 中兴通讯股份有限公司 | 一种身份标识与位置分离协议数据转发***及方法 |
CN102447618A (zh) * | 2011-10-31 | 2012-05-09 | 杭州华三通信技术有限公司 | 一种lisp网络中的路由切换方法及其装置 |
CN103516802A (zh) * | 2013-09-30 | 2014-01-15 | 中国科学院计算技术研究所 | 一种实现跨异构虚拟交换机无缝迁移的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104935519A (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106878166B (zh) | 路由通告方法及装置 | |
CN106878048B (zh) | 故障处理方法及装置 | |
US9634889B2 (en) | Method for migrating service of data center, apparatus, and system | |
CN108449314B (zh) | 一种流量牵引方法和装置 | |
US9733973B2 (en) | Automatically determining sensor location in a virtualized computing environment | |
US9110703B2 (en) | Virtual machine packet processing | |
CN105337785B (zh) | 一种路径连通性检测方法及装置 | |
CN104052666B (zh) | 实现主机路由可达的方法和装置 | |
US9912584B2 (en) | Data center inbound routing optimization in the event of virtual machine mobility | |
CN108781171A (zh) | 用于在ipv6环境中用数据平面信号通知分组捕获的***和方法 | |
CN101099340A (zh) | 用于网络路径检测的***和方法 | |
JPWO2005036831A1 (ja) | フレーム中継装置 | |
CN106130819B (zh) | Vtep异常的检测方法及装置 | |
CN104660469B (zh) | 一种二层网络的连通性检测方法及相关设备 | |
TW201720108A (zh) | 用於處理在一電腦網路中之封包的系統及方法 | |
CN104935519B (zh) | 位置和标识分离协议网络中的虚拟机迁入检测方法和装置 | |
KR101042860B1 (ko) | 가상사설망 환경에서 라우팅노드의 아이피 주소 탐색방법 | |
CN108777663A (zh) | 一种路由信息的同步方法及装置 | |
CN106713130A (zh) | 一种路由表更新方法、evpn控制设备及evpn*** | |
CN102833122B (zh) | 一种环回检测方法及*** | |
CN105592490B (zh) | 一种路由切换方法及设备 | |
CN102804703B (zh) | 通信***、交换式集线器、以及路由器 | |
CN109327558A (zh) | 地址管理方法及装置 | |
CN107231321B (zh) | 探测转发路径的方法、设备及网络*** | |
CN104683236B (zh) | 位置和标识分离协议网络中的路由信息学习方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |