基于vxlan網(wǎng)絡(luò)的報(bào)文轉(zhuǎn)發(fā)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種基于VXLAN網(wǎng)絡(luò)的報(bào)文轉(zhuǎn)發(fā)方法及 裝置。
【背景技術(shù)】
[0002] VXLAN(Virtual extensible Local Area 化twork,虛擬可擴(kuò)展局域網(wǎng))是一種 基于 IPQnternet Protocol,因特網(wǎng)協(xié)議)網(wǎng)絡(luò),并且采用"MAC(Media Access Control, 媒體訪問控制)in UDPOJser化tagram Protocol,用戶數(shù)據(jù)包協(xié)議)"封裝形式的二層 VPN(Virtual Private Network,虛擬專用網(wǎng)絡(luò))技術(shù)。VXLAN可W基于已有的服務(wù)提供商或 企業(yè)IP網(wǎng)絡(luò),為分散的物理站點(diǎn)提供二層互聯(lián),并能夠?yàn)椴煌淖鈶籼峁I(yè)務(wù)隔離。VXLAN 作為網(wǎng)絡(luò)虛擬化的核必技術(shù),正在與SDN(Software Defined化twork,軟件定義網(wǎng)絡(luò))一起 被越來越多的運(yùn)用于大型數(shù)據(jù)中必網(wǎng)絡(luò)。
[0003] VTEP(VXLAN l\mnel &id 化int,VXLAN 隧道終端)是 VXLAN 網(wǎng)絡(luò)的邊緣設(shè)備,VTEP 之間通過建立VXLAN隧道(VXLAN TUN肥L)來穿越H層網(wǎng)絡(luò)(如IP核必網(wǎng)絡(luò))進(jìn)行數(shù)據(jù)通 信。VXLAN網(wǎng)絡(luò)由VNI (VXLAN化twork Identifier, VXLAN網(wǎng)絡(luò)標(biāo)識)唯一標(biāo)識,VNI的長度 為24bit (比特)。
[0004] 當(dāng)VXLAN網(wǎng)絡(luò)需要與傳統(tǒng)H層網(wǎng)絡(luò)(即非虛擬化網(wǎng)絡(luò))進(jìn)行通信時(shí),就需要在 VXLAN網(wǎng)絡(luò)用于連接非虛擬化網(wǎng)絡(luò)的邊緣,架設(shè)一臺支持二H層轉(zhuǎn)發(fā)的VXLAN IP網(wǎng)關(guān)與 外部的非虛擬化網(wǎng)絡(luò)進(jìn)行通信。此時(shí),可W由一臺獨(dú)立設(shè)備作為VXLAN IP網(wǎng)關(guān),一端連接 VXLAN網(wǎng)絡(luò),另一端連接非虛擬化網(wǎng)絡(luò);也可W由VTEP充當(dāng)VXLAN IP網(wǎng)關(guān),一端連接VXLAN 網(wǎng)絡(luò),另一端連接非虛擬化網(wǎng)絡(luò)。
[0005] 現(xiàn)有技術(shù)中,為了提高鏈路可靠性,一般使用等價(jià)路徑或備份路徑來保護(hù)VTEP之 間的鏈路,具體的,兩個(gè)VTEP間存在等價(jià)路徑或備份路徑,當(dāng)某一路徑上發(fā)生了鏈路故障 時(shí),利用路由收斂自動(dòng)將該路徑上的數(shù)據(jù)流切換到其他路徑上進(jìn)行轉(zhuǎn)發(fā)。但是,送種方式只 能對VTEP之間的鏈路故障進(jìn)行保護(hù),存在局限性。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本申請?zhí)峁┝艘环N基于VXLAN網(wǎng)絡(luò)的報(bào)文轉(zhuǎn)發(fā)方法及裝置。
[0007] 本申請的技術(shù)方案如下:
[0008] -方面,提供了一種基于VXLAN網(wǎng)絡(luò)的報(bào)文轉(zhuǎn)發(fā)方法,該VXLAN網(wǎng)絡(luò)中包括;連接 一非虛擬化網(wǎng)絡(luò)的主VTEP和備VTEP,該方法應(yīng)用于VTEP,該方法包括:
[0009] 當(dāng)本設(shè)備為主VTEP和備VTEP的對端VTEP時(shí),建立本設(shè)備與主VTEP之間的隧道, 配置該隧道為主隧道,建立本設(shè)備與備VTEP之間的隧道,配置該隧道為備隧道;
[0010] 接收到要發(fā)往非虛擬化網(wǎng)絡(luò)的用戶報(bào)文之后,確定出該用戶報(bào)文的出接口是隧 道;
[0011] 若隧道表中該隧道的隧道狀態(tài)為Active,則使用該隧道的目的IP地址,將該用戶 報(bào)文封裝成VXLAN報(bào)文后通過該隧道轉(zhuǎn)發(fā)出去;
[0012] 若隧道表中該隧道的隧道狀態(tài)為Inactive,則使用該隧道的關(guān)聯(lián)隧道的目的IP 地址,將該用戶報(bào)文封裝成VXLAN報(bào)文后通過該關(guān)聯(lián)隧道轉(zhuǎn)發(fā)出去;其中,當(dāng)該隧道是主隧 道時(shí),該關(guān)聯(lián)隧道是備隧道,當(dāng)該隧道是備隧道時(shí),該關(guān)聯(lián)隧道是主隧道。
[001引另一方面,還提供了一種基于VXLAN網(wǎng)絡(luò)的報(bào)文轉(zhuǎn)發(fā)方法,該VXLAN網(wǎng)絡(luò)中包括: 作為VXLAN IP網(wǎng)關(guān)連接一非虛擬化網(wǎng)絡(luò)的主VTEP和備VTEP,該方法應(yīng)用于非虛擬化網(wǎng)絡(luò) 中與主VTEP和備VTEP直連的路由設(shè)備,該方法包括:
[0014] 在接收到主VTEP發(fā)布的VM對應(yīng)的路由之后,根據(jù)該VM對應(yīng)的路由,計(jì)算出下一 跳為主VTEP的從本設(shè)備到該VM的路由;
[0015] 在接收到備VTEP發(fā)布的VM對應(yīng)的路由之后,根據(jù)該VM對應(yīng)的路由,計(jì)算出下一 跳為備VTEP的從本設(shè)備到該VM的路由;其中,針對同一 VM,主VTEP發(fā)布的路由的優(yōu)先級 高于備VTEP發(fā)布的路由的優(yōu)先級,計(jì)算出的下一跳為主VTEP的路由的優(yōu)先級高于下一跳 為備VTEP的路由的優(yōu)先級;
[0016] 針對計(jì)算出的從本設(shè)備到同一 VM的至少兩個(gè)路由,將下一跳為主VTEP的路由的 表項(xiàng)添加到路由表中;
[0017] 在接收到用戶報(bào)文之后,根據(jù)該用戶報(bào)文的目的IP地址,在路由表中查找到對應(yīng) 表項(xiàng),根據(jù)該對應(yīng)表項(xiàng)將該用戶報(bào)文轉(zhuǎn)發(fā)給主VTEP或備VTEP。
[001引又一方面,還提供了一種基于VXLAN網(wǎng)絡(luò)的報(bào)文轉(zhuǎn)發(fā)裝置,該VXLAN網(wǎng)絡(luò)中包括: 連接一非虛擬化網(wǎng)絡(luò)的主VTEP和備VTEP,該裝置應(yīng)用于VTEP上,該裝置包括:
[0019] 隧道建立模塊,用于當(dāng)本設(shè)備為主VTEP和備VTEP的對端VTEP時(shí),建立本設(shè)備與 主VTEP之間的隧道,配置該隧道為主隧道,建立本設(shè)備與備VTEP之間的隧道,配置該隧道 為備隧道;
[0020] 接收模塊,用于當(dāng)本設(shè)備為主VTEP和備VTEP的對端VTEP時(shí),接收要發(fā)往非虛擬 化網(wǎng)絡(luò)的用戶報(bào)文;
[0021] 發(fā)送模塊,用于當(dāng)本設(shè)備為主VTEP和備VTEP的對端VTEP時(shí),在接收模塊接收到 要發(fā)往非虛擬化網(wǎng)絡(luò)的用戶報(bào)文之后,確定出該用戶報(bào)文的出接口是隧道;若隧道表中該 隧道的隧道狀態(tài)為Active,則使用該隧道的目的IP地址,將該用戶報(bào)文封裝成VXLAN報(bào)文 后通過該隧道轉(zhuǎn)發(fā)出去;若隧道表中該隧道的隧道狀態(tài)為Inactive,則使用該隧道的關(guān)聯(lián) 隧道的目的IP地址,將該用戶報(bào)文封裝成VXLAN報(bào)文后通過該關(guān)聯(lián)隧道轉(zhuǎn)發(fā)出去;其中,當(dāng) 該隧道是主隧道時(shí),該關(guān)聯(lián)隧道是備隧道,當(dāng)該隧道是備隧道時(shí),該關(guān)聯(lián)隧道是主隧道。 [002引又一方面,還提供了一種基于VXLAN網(wǎng)絡(luò)的報(bào)文轉(zhuǎn)發(fā)裝置,該VXLAN網(wǎng)絡(luò)中包括: 作為VXLAN IP網(wǎng)關(guān)連接一非虛擬化網(wǎng)絡(luò)的主VTEP和備VTEP,該裝置應(yīng)用于非虛擬化網(wǎng)絡(luò) 中與主VTEP和備VTEP直連的路由設(shè)備上,該裝置包括:
[0023] 接收模塊,用于接收主VTEP和備VTEP發(fā)布的VM對應(yīng)的路由,其中,針對同一 VM, 主VTEP發(fā)布的路由的優(yōu)先級高于備VTEP發(fā)布的路由的優(yōu)先級;還用于接收用戶報(bào)文;
[0024] 計(jì)算模塊,用于根據(jù)接收模塊接收到的主VTEP發(fā)布的VM對應(yīng)的路由,計(jì)算出下一 跳為主VTEP的從本設(shè)備到該VM的路由;根據(jù)接收模塊接收到的備VTEP發(fā)布的該VM對應(yīng) 的路由,計(jì)算出下一跳為備VTEP的從本設(shè)備到該VM的路由;其中,針對同一 VM,計(jì)算出的 下一跳為主VTEP的路由的優(yōu)先級高于下一跳為備VTEP的路由的優(yōu)先級;
[002引添加模塊,用于針對計(jì)算模塊計(jì)算出的從本設(shè)備到同一 VM的至少兩個(gè)路由,將下 一跳為主VTEP的路由的表項(xiàng)添加到路由表中;
[0026] 查找模塊,用于在接收模塊接收到用戶報(bào)文之后,根據(jù)該用戶報(bào)文的目的IP地 址,在路由表中查找到對應(yīng)表項(xiàng);
[0027] 發(fā)送模塊,用于根據(jù)查找模塊查找到的對應(yīng)表項(xiàng),將接收模塊接收到的用戶報(bào)文 轉(zhuǎn)發(fā)給主VTEP或備VTEP。
[0028] 本申請的W上技術(shù)方案中,通過為連接非虛擬化網(wǎng)絡(luò)的VTEP部署備份VTEP,實(shí)現(xiàn) 了 VTEP設(shè)備故障、或VTEP間的鏈路故障時(shí),VXLAN網(wǎng)絡(luò)與非虛擬化網(wǎng)絡(luò)之間的通信業(yè)務(wù)保 護(hù),提高了網(wǎng)絡(luò)的健壯性和容錯(cuò)能力,增強(qiáng)了 VXLAN網(wǎng)絡(luò)的兀余保護(hù)功能。
【附圖說明】
[0029] 圖1是VXLAN網(wǎng)絡(luò)的示意圖;
[0030] 圖2是VTEP充當(dāng)VXLAN IP網(wǎng)關(guān)時(shí),VXLAN網(wǎng)絡(luò)與非虛擬化網(wǎng)絡(luò)通信的組網(wǎng)示意 圖;
[003。 圖3是一臺獨(dú)立設(shè)備作為VXLAN IP網(wǎng)關(guān)時(shí),VXLAN網(wǎng)絡(luò)與非虛擬化網(wǎng)絡(luò)通信的組 網(wǎng)示意圖;
[0032] 圖4是在圖2中使用等價(jià)路徑或備份路徑時(shí)的網(wǎng)絡(luò)示意圖;
[0033] 圖5是在圖3中使用等價(jià)路徑或備份路徑時(shí)的網(wǎng)絡(luò)示意圖;
[0034] 圖6是本申請實(shí)施例的在圖2中部署作為VXLAN IP網(wǎng)關(guān)的主VTEP和備VTEP的 網(wǎng)絡(luò)示意圖;
[0035] 圖7是本申請實(shí)施例的報(bào)文轉(zhuǎn)發(fā)方法應(yīng)用于如圖6所示的網(wǎng)絡(luò)時(shí),在主VTEP和備 VTEP上進(jìn)行配置的流程圖;
[0036] 圖8是本申請實(shí)施例的報(bào)文轉(zhuǎn)發(fā)方法應(yīng)用于如圖6所示的網(wǎng)絡(luò)時(shí),對端VTEP在主 VTEP正常、或主隧道正常時(shí)的操作流程圖;
[0037] 圖9是本申請實(shí)施例的報(bào)文轉(zhuǎn)發(fā)方法應(yīng)用于如圖6所示的網(wǎng)絡(luò)時(shí),對端VTEP在主 VTEP故障、或主隧道故障時(shí)的操作流程圖;
[003引圖10是本申請實(shí)施例的報(bào)文轉(zhuǎn)發(fā)方法應(yīng)用于如圖6所示的網(wǎng)絡(luò)時(shí),對端VTEP在 主VTEP故障恢復(fù)且需要回切到主VTEP、或主隧道故障恢復(fù)且需要回切到主隧道時(shí)的操作 流程圖;
[0039] 圖11是本申請實(shí)施例的在圖3中部署主VTEP和備VTEP的網(wǎng)絡(luò)示意圖;
[0040] 圖12是本申請實(shí)施例的包含報(bào)文轉(zhuǎn)發(fā)裝置的VTEP的硬件架構(gòu)示意圖;
[0041] 圖13是本申請實(shí)施例的包含報(bào)文轉(zhuǎn)發(fā)裝置的路由設(shè)備的硬件架構(gòu)示意圖。
【具體實(shí)施方式】
[0042] 如圖1所示,VXLAN網(wǎng)絡(luò)通常由W下幾個(gè)部分組成:
[0043] 服務(wù)器(Server):位于分散的物理站點(diǎn)中,一個(gè)站點(diǎn)中可W有一臺或多臺服務(wù) 器。
[0044] VM ;在一臺服務(wù)器中可W創(chuàng)建多個(gè)VM,不同的VM可W屬于不同的VXLAN。屬于相 同VXLAN的VM處于同一個(gè)邏輯二層網(wǎng)絡(luò),彼此之間二層互通;屬于不同VXLAN的VM之間二 層隔貿(mào)。
[004引 VTEP ;VXLAN網(wǎng)絡(luò)的邊緣設(shè)備,可W是一臺獨(dú)立的物理設(shè)備,也可W是VM所在的服 務(wù)器。VTEP負(fù)責(zé)為來自VM的用戶報(bào)文封裝VXLAN頭、UDP扣ser Datagram Protocol,用戶 數(shù)據(jù)包協(xié)議)頭和IPQnternet Protocol,因特網(wǎng)協(xié)議)頭,并將得到的VXLAN報(bào)文通過 VXLAN隧道發(fā)送給目的VTEP ;并且,將從VXLAN隧道上收到的VXLAN報(bào)文進(jìn)行解封裝,并將 得到的用戶報(bào)文發(fā)送給目的VM。
[004引 V)(LAN隧道;VTEP之間的點(diǎn)到點(diǎn)的邏輯隧道。
[0047] 核必設(shè)備;IP核必網(wǎng)絡(luò)中的設(shè)備(如圖1中的P設(shè)備)。核必設(shè)備不參與VXLAN 處理,僅需要根據(jù)VXLAN報(bào)文的目的IP地址,對VXLAN報(bào)文進(jìn)行H層轉(zhuǎn)發(fā)。
[004引如圖2所示,當(dāng)VXLAN網(wǎng)絡(luò)與非虛擬化網(wǎng)絡(luò)(例如,WAN(廣域網(wǎng)))進(jìn)行通信時(shí), 位于VXLAN網(wǎng)絡(luò)用于連接非虛擬化網(wǎng)絡(luò)的邊緣的VTEP充當(dāng)VXLAN IP網(wǎng)關(guān),一端連接VXLAN 網(wǎng)絡(luò),另一端連接非虛擬化網(wǎng)絡(luò)中的路由設(shè)備?;蛘撸鐖D3所示,當(dāng)VXLAN網(wǎng)絡(luò)與非虛擬 化網(wǎng)絡(luò)進(jìn)行通信時(shí),在位于VXLAN網(wǎng)絡(luò)用于連接非虛擬化網(wǎng)絡(luò)的邊緣,架設(shè)一臺獨(dú)立的設(shè) 備作為VXLAN IP網(wǎng)關(guān),