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