[0044]隧道路由器2在刪除虛擬機B與隧道路由器2之間的EID-RLOC映射關(guān)系的過程中,隧道路由器2還可以刪除之前記錄的隧道路由器5的地址信息。
[0045]步驟204,第三隧道路由器將虛擬機與第一隧道路由器之間的EID-RLOC映射關(guān)系更新為虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系,并利用虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系,向虛擬機發(fā)送報文。
[0046]其中,隧道路由器5在接收到來自隧道路由器2的Map reply報文之后,基于該Map reply報文中攜帶的虛擬機B與隧道路由器3之間的EID-RLOC映射關(guān)系,隧道路由器5可以將虛擬機B與隧道路由器2之間的EID-RLOC映射關(guān)系修改為虛擬機B與隧道路由器3之間的EID-RLOC映射關(guān)系,即LISP轉(zhuǎn)發(fā)表項中記錄的將是虛擬機B與隧道路由器3之間的EID-RLOC映射關(guān)系。進(jìn)一步的,針對隧道路由器5發(fā)送給虛擬機B的報文,由于在LISP轉(zhuǎn)發(fā)表項中記錄的是虛擬機B與隧道路由器3之間的EID-RLOC映射關(guān)系,而不是虛擬機B與隧道路由器2之間的EID-RLOC映射關(guān)系,因此,隧道路由器5會將報文發(fā)送給隧道路由器3,而不是將報文發(fā)送給隧道路由器2。
[0047]本發(fā)明實施例中,在虛擬機從第一隧道路由器迀移到第二隧道路由器之前,針對第三隧道路由器向映射服務(wù)器發(fā)送的映射請求報文(即Map request報文),映射服務(wù)器在接收到來自第三隧道路由器的映射請求報文時,從該映射請求報文中獲得該第三隧道路由器對應(yīng)的身份標(biāo)識信息,并在虛擬機與第一隧道路由器之間的EID-RLOC映射關(guān)系下記錄該第三隧道路由器對應(yīng)的身份標(biāo)識信息。映射服務(wù)器在向第一隧道路由器發(fā)送映射通知報文時,該映射通知報文中還攜帶有該第三隧道路由器對應(yīng)的身份標(biāo)識信息。進(jìn)一步的,第一隧道路由器在向第三隧道路由器發(fā)送映射應(yīng)答報文時,該映射應(yīng)答報文中還攜帶有第三隧道路由器對應(yīng)的身份標(biāo)識信息,以使第三隧道路由器在發(fā)現(xiàn)映射應(yīng)答報文中攜帶的身份標(biāo)識信息是自身的身份標(biāo)識信息時,將虛擬機與第一隧道路由器之間的EID-RLOC映射關(guān)系更新為虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系;在發(fā)現(xiàn)映射應(yīng)答報文中攜帶的身份標(biāo)識信息不是自身的身份標(biāo)識信息時,拒絕將虛擬機與第一隧道路由器之間的EID-RLOC映射關(guān)系更新為虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系。
[0048]本發(fā)明實施例中,第三隧道路由器對應(yīng)的身份標(biāo)識信息具體包括但不限于:第三隧道路由器生成的nonce(隨機數(shù))。其中,第三隧道路由器向映射服務(wù)器發(fā)送的映射請求報文中會攜帶該第三隧道路由器生成的nonce。
[0049]本發(fā)明實施例中,在第三隧道路由器將虛擬機與第一隧道路由器之間的EID-RLOC映射關(guān)系更新為虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系之后,第三隧道路由器還可以向映射服務(wù)器發(fā)送映射請求報文,并接收來自映射服務(wù)器的映射應(yīng)答報文。如果映射應(yīng)答報文中攜帶的是虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系,則第三隧道路由器確定第二隧道路由器是可達(dá)的虛擬機對應(yīng)的隧道路由器,可以利用虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系,向虛擬機發(fā)送報文。如果映射應(yīng)答報文中攜帶的不是虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系,則第三隧道路由器確定第二隧道路由器不是可達(dá)的虛擬機對應(yīng)的隧道路由器,并不利用虛擬機與第二隧道路由器之間的EID-RLOC映射關(guān)系,向虛擬機發(fā)送報文。
[0050]基于上述技術(shù)方案,本發(fā)明實施例中,在LISP網(wǎng)絡(luò)的虛擬機迀移場景下,當(dāng)虛擬機迀移時,保證業(yè)務(wù)盡可能不中斷或少量丟包,使業(yè)務(wù)能夠快速切換。
[0051]基于與上述方法同樣的發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種隧道路由器,作為第一隧道路由器,當(dāng)虛擬機需要從第一隧道路由器迀移到第二隧道路由器時,如圖3所示,所述第一隧道路由器具體包括:
[0052]處理模塊11,用于在感知到所述虛擬機需要發(fā)生迀移時,記錄當(dāng)前向所述虛擬機發(fā)送報文的第三隧道路由器的地址信息;
[0053]接收模塊12,用于接收來自映射服務(wù)器的映射通知報文,所述映射通知報文中攜帶所述虛擬機與所述第二隧道路由器之間的末端標(biāo)識EID-路由定位RLOC映射關(guān)系,并判定所述虛擬機已經(jīng)發(fā)生迀移;
[0054]發(fā)送模塊13,用于利用所述第三隧道路由器的地址信息向所述第三隧道路由器發(fā)送映射應(yīng)答報文,所述映射應(yīng)答報文中攜帶所述虛擬機與所述第二隧道路由器之間的EID-RLOC映射關(guān)系;由所述第三隧道路由器將所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系更新為所述虛擬機與所述第二隧道路由器之間的EID-RLOC映射關(guān)系,并利用所述虛擬機與所述第二隧道路由器之間的EID-RLOC映射關(guān)系,向所述虛擬機發(fā)送報文。
[0055]所述處理模塊11,還用于在接收到所述映射通知報文之后,記錄所述虛擬機與所述第二隧道路由器之間的EID-RLOC映射關(guān)系,并刪除所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系。
[0056]所述處理模塊11,進(jìn)一步用于在刪除所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系的過程中,在向所述第三隧道路由器發(fā)送映射應(yīng)答報文后,刪除所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系;或者,為所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系啟動虛擬機迀移增強定時器;當(dāng)所述虛擬機迀移增強定時器超時時,刪除所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系。
[0057]所述處理模塊11,進(jìn)一步用于在刪除所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系的過程中,為所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系設(shè)置失效標(biāo)記;刪除具有失效標(biāo)記的所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系。
[0058]所述映射通知報文中還攜帶有所述第三隧道路由器對應(yīng)的身份標(biāo)識信息,所述第三隧道路由器對應(yīng)的身份標(biāo)識信息是所述映射服務(wù)器在接收到所述第三隧道路由器的映射請求報文時,從所述映射請求報文中獲得的;
[0059]所述映射應(yīng)答報文中還攜帶有所述第三隧道路由器對應(yīng)的身份標(biāo)識信息,以使所述第三隧道路由器在發(fā)現(xiàn)所述身份標(biāo)識信息是自身的身份標(biāo)識信息時,將所述虛擬機與所述第一隧道路由器之間的EID-RLOC映射關(guān)系更新為所述虛擬機與所述第二隧道路由器之間的EID-RLOC映射關(guān)系。
[0060]本發(fā)明實施例中,所述第三隧道路由器對應(yīng)的身份標(biāo)識信息具體包括:所述第三隧道路由器生成的隨機數(shù)nonce。
[0061]其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。
[0062]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進(jìn)行分布