一種在lisp網(wǎng)絡(luò)中的虛擬機(jī)遷移信息處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種在LISP網(wǎng)絡(luò)中的虛擬機(jī)迀移信息處理方法和裝置。
【背景技術(shù)】
[0002]位置標(biāo)識(shí)分離協(xié)議(LocatorIdentity Separat1n Protocol, LISP)是一種位置和標(biāo)識(shí)分離的建網(wǎng)思想,LISP網(wǎng)絡(luò)形成了兩個(gè)獨(dú)立的地址空間,即端點(diǎn)標(biāo)識(shí)(EndpointIdentifier,EID)空間和路由器位置(Routing Locator,RL0C)空間。其中,EID為通信端點(diǎn)的主機(jī)地址,用于標(biāo)識(shí)主機(jī)的身份。在LISP網(wǎng)絡(luò)中,EID可以獨(dú)立于RLOC進(jìn)行迀移;迀移過程中迀移主機(jī)的EID地址不變。RLOC為LISP路由器的地址,可在現(xiàn)有Internet中路由轉(zhuǎn)發(fā)。EID之間通信的報(bào)文根據(jù)LISP的映射緩存(Map Cache)路由進(jìn)行LISP封裝,報(bào)文在RLOC之間的隧道中進(jìn)行轉(zhuǎn)發(fā)。
[0003]xTR為入口隧道路由器(Ingress Tunnel Router,ITR)和出口隧道路由器(Engress Tunnel Router,ETR)的統(tǒng)稱,表示路由器具備ITR和/或ETR能力。ITR對本數(shù)據(jù)中心EID空間匹配Map Cache路由表的數(shù)據(jù)報(bào)文進(jìn)行LISP隧道封裝;ETR解封裝LISP隧道封裝的報(bào)文,發(fā)到本數(shù)據(jù)中心下的EID空間。映射解析器(Map Reslover, MR)接收ITR發(fā)送的映射請求(Map Request),并把該映射請求轉(zhuǎn)發(fā)給映射服務(wù)器(Map Server),由MS回應(yīng)映射應(yīng)答(Map ItepIy),或者由MS通知ETR回應(yīng)Map Reply0
[0004]在LISP網(wǎng)絡(luò)中,當(dāng)發(fā)生虛擬機(jī)迀移的情況時(shí),首先檢測到虛擬機(jī)迀移事件的xTR通過組播三次映射通知(map notify)消息通知本數(shù)據(jù)中心其他xTR所述虛擬機(jī)迀移事件,因此,當(dāng)在所述虛擬機(jī)迀移事件之后數(shù)據(jù)中心又有新上線的xTR時(shí),新上線的xTR將感知不到虛擬機(jī)迀移,從而導(dǎo)致流量不通。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提出了一種在LISP網(wǎng)絡(luò)中的虛擬機(jī)迀移信息處理方法和裝置,能夠解決虛擬機(jī)迀移后,新上線xTR感知不到虛擬機(jī)迀移,從而導(dǎo)致的流量不通問題。
[0006]本發(fā)明提出的技術(shù)方案是:
[0007]一種在LISP網(wǎng)絡(luò)中的虛擬機(jī)迀移信息處理方法,該方法包括:
[0008]在線隧道路由器在檢測到虛擬機(jī)迀移時(shí),判斷該在線隧道路由器是否是首先獲知該虛擬機(jī)迀移的信息,在虛擬機(jī)迀移路由表中設(shè)置標(biāo)識(shí)信息用于記錄所述判斷結(jié)果;
[0009]所述在線隧道路由器接收上線通知消息,所述上線通知消息由其他隧道路由器在上線時(shí)發(fā)送;
[0010]所述在線隧道路由器查詢所述虛擬機(jī)迀移路由表,根據(jù)所述虛擬機(jī)迀移路由表中的標(biāo)識(shí)信息篩選出首先獲知的虛擬機(jī)迀移信息,將所述首先獲知的虛擬機(jī)迀移信息攜帶在上線通知應(yīng)答消息中,反饋所述上線通知應(yīng)答消息。
[0011]一種在LISP網(wǎng)絡(luò)中的虛擬機(jī)迀移信息處理裝置,所述裝置位于隧道路由器中,包括虛擬機(jī)迀移路由表處理模塊、接收模塊和虛擬機(jī)迀移信息發(fā)布模塊;
[0012]所述虛擬機(jī)迀移路由表處理模塊,用于在所述隧道路由器在檢測到虛擬機(jī)迀移時(shí),判斷該隧道路由器是否是首先獲知該虛擬機(jī)迀移的信息,在虛擬機(jī)迀移路由表中設(shè)置標(biāo)識(shí)信息用于記錄所述判斷結(jié)果;
[0013]所述接收模塊,用于接收上線通知消息,所述上線通知消息由其他隧道路由器在上線時(shí)發(fā)送;
[0014]所述虛擬機(jī)迀移信息發(fā)布模塊,用于在所述接收模塊接收到上線通知消息時(shí),查詢虛擬機(jī)迀移路由表,根據(jù)所述虛擬機(jī)迀移路由表中的標(biāo)識(shí)信息篩選出首先獲知的虛擬機(jī)迀移信息,將所述首先獲知的虛擬機(jī)迀移信息攜帶在上線通知應(yīng)答消息中,反饋所述上線通知應(yīng)答消息。
[0015]由上述技術(shù)方案可見,本發(fā)明實(shí)施例中,首先,在線隧道路由器在檢測到虛擬機(jī)迀移時(shí),判斷該在線隧道路由器是否是首先獲知該虛擬機(jī)遷移的?目息,在虛擬機(jī)遷移路由表中設(shè)置標(biāo)識(shí)信息用于記錄所述判斷結(jié)果,在線隧道路由器通過對虛擬機(jī)迀移路由表的上述特殊處理,為后續(xù)發(fā)布虛擬機(jī)迀移信息做好準(zhǔn)備工作;然后,在線隧道路由器通過接收新上線的隧道路由器在上線時(shí)發(fā)送的上線通知消息,來感知新上線的隧道路由器;最后,在線隧道路由器基于已經(jīng)進(jìn)行過上述特殊處理的虛擬機(jī)迀移路由表,根據(jù)所述虛擬機(jī)迀移路由表中的標(biāo)識(shí)信息篩選出首先獲知的虛擬機(jī)迀移信息,將所述首先獲知的虛擬機(jī)迀移信息攜帶在上線通知應(yīng)答消息中,反饋上線通知應(yīng)答消息,因此,所述新上線的隧道路由器通過接收并解析所述上線通知應(yīng)答消息,能夠得到所述上線通知應(yīng)答消息中攜帶的虛擬機(jī)迀移信息,進(jìn)而感知到虛擬機(jī)迀移,解決了虛擬機(jī)迀移后,新上線xTR感知不到虛擬機(jī)迀移,從而導(dǎo)致流量不通的問題。
[0016]并且,由于在線的xTR對虛擬機(jī)迀移路由表進(jìn)行了特殊的處理,并在反饋虛擬機(jī)迀移信息時(shí)基于所述虛擬機(jī)迀移路由表對信息進(jìn)行了篩選,因此,在線xTR能夠僅僅將自身首先獲知的虛擬機(jī)迀移信息反饋給新上線的xTR,從而能夠避免各個(gè)在線xTR重復(fù)反饋相同的虛擬機(jī)迀移信息而造成資源浪費(fèi)的問題。
【附圖說明】
[0017]圖1是在LISP網(wǎng)絡(luò)中發(fā)生虛擬機(jī)迀移事件時(shí)的一種處理過程示意圖。
[0018]圖2是本發(fā)明實(shí)施例提供的在LISP網(wǎng)絡(luò)中新上線的xTR處理虛擬機(jī)迀移信息的流程圖。
[0019]圖3是本發(fā)明實(shí)施例提供的在LISP網(wǎng)絡(luò)中在線xTR處理虛擬機(jī)迀移信息的流程圖。
[0020]圖4是本發(fā)明實(shí)施例提供的路由器設(shè)備的硬件結(jié)構(gòu)連接圖。
[0021]圖5是本發(fā)明實(shí)施例提供的虛擬機(jī)迀移信息處理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]圖1是在LISP網(wǎng)絡(luò)中發(fā)生虛擬機(jī)迀移事件時(shí)的一種處理過程示意圖。
[0023]如圖1所示,當(dāng)虛擬機(jī)VMB從數(shù)據(jù)中心I (DataCenterl,DCl)迀移到數(shù)據(jù)中心2(DataCenter2,DC2)時(shí),其處理過程包括如下步驟:
[0024]步驟101,虛擬機(jī)VMB從DCl迀移到DC2后,發(fā)送數(shù)據(jù)報(bào)文。
[0025]步驟102,DC2的xTR2接收到VMB的數(shù)據(jù)報(bào)文,因而檢測到虛擬機(jī)VMB迀入。
[0026]步驟103,xTR2檢測到VMB迀入后,會(huì)下發(fā)一條32位的VMB主機(jī)路由,并向MS/MR注冊迀入的VMB的32位主機(jī)路由10.17.1.65/32。
[0027]步驟103,xTR2發(fā)送組播map notify,通知其他xTR檢測到虛擬機(jī)迀入,該組播mapnotify會(huì)重傳3次。
[0028]如圖1所示,DC2中當(dāng)前只有xTR2和xTR4,因此,xTR2向xTR4發(fā)送3次map notify消息,通知xTR4檢測到虛擬機(jī)VMB迀入。
[0029]步驟104,xTR3收到組播map notify,也感知到虛擬機(jī)VMB迀入DC2,下發(fā)32位主機(jī)路由10.17.1.65/32 ;用于將流量通過xTR4轉(zhuǎn)發(fā)到VMB。
[0030]步驟105,MS接受到xTR2注冊的32位主機(jī)后,會(huì)發(fā)送Map Notify報(bào)文通知xTRl虛擬機(jī)VMB已經(jīng)迀出。xTRl感知到VMB迀出后,會(huì)下發(fā)一條10.17.1.65/32位的NULLO路由。
[0031]步驟106,xTR3到虛擬機(jī)VMB的流量,一開始走老的路徑發(fā)給xTRl。xTRl匹配到10.17.1.65/32 的 NULLO 路由,觸發(fā)邀請映射請求(Solicit Map Request,SMR)通知 xTR3重新請求到達(dá)VMB的Map Cache表項(xiàng)。
[0032]步驟107,xTR3收到SMR后,向MS/MR發(fā)送Map Request報(bào)文,重新請求到虛擬機(jī)VMB 的 Map Cache 表項(xiàng)。
[0033]步驟108,MS/MR收到Map Request報(bào)文后,將Map Request報(bào)文轉(zhuǎn)發(fā)給具備ETR能力的xTR2。
[0034]步驟109,xTR2收到Map Request報(bào)文后,查詢mape cache表項(xiàng),根據(jù)查詢結(jié)果應(yīng)答Map Reply報(bào)文。
[0035]步驟110,xTR3收到Map R印Iy后,生成到VMB新的Map Cache表項(xiàng),此后發(fā)給VMB的流量走新的路徑,直接通過xTR2發(fā)送給迀入的虛擬機(jī)VMB。
[0036]基于圖1所示的流程,假設(shè)在xTR2檢測到虛擬機(jī)VMB迀入之后,DC2再上線一臺(tái)xTR5,由于xTR2通知本DC2其他xTR檢測到虛擬機(jī)迀移的組播map notify報(bào)文只會(huì)重傳3次,因此,在組播map notify重傳完后,新上線的xTR5收不到該報(bào)文。因此xTR5無法感知到虛擬機(jī)VMB的迀入。
[0037]當(dāng)流量通過xTR5發(fā)往VMB時(shí),xTR5上沒有到VMB的路由,因此觸發(fā)重新學(xué)習(xí)Map Cache路由。MR/MS學(xué)習(xí)到的到達(dá)VMB的Map Cache路由,有三個(gè)下一跳RL0C,分別是RL0C2 (指向xTR2)、RL0C4 (指向xTR4)、RL0C5 (指向xTR5)。存在多個(gè)等價(jià)下一跳時(shí),會(huì)進(jìn)行負(fù)載分擔(dān)。如果到達(dá)VMB的流量分擔(dān)到RL0C2和RL0C4上,由于xTR2和xTR4均下發(fā)了到VMB的迀入主機(jī)路由,因此能正常通信。如果流量分擔(dān)RL0C5上,由于RL0C5上沒有到達(dá)VMB的迀入主機(jī)路由,并且VMB和xTR5的接口地址不在同一網(wǎng)段,xTR5無法請求和學(xué)習(xí)不同網(wǎng)段的ARP,因此導(dǎo)致流量不通。
[0038]類似地,如果DC2中的虛擬機(jī)VMC迀出,假設(shè)由xTR4收到MS關(guān)于VMC迀出的單播Map Notif