一種vxlan隧道的連通性檢測方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種隧道連通性檢測技術(shù),尤其是涉及一種VXLAN隧道的連通性檢測方法。
【背景技術(shù)】
[0002]VXLAN(Virtual extensible LAN,虛擬可擴(kuò)展局域網(wǎng))是一種覆蓋網(wǎng)絡(luò)技術(shù)或隧道技術(shù)。VXLAN將虛擬機(jī)發(fā)出的數(shù)據(jù)包封裝在UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)中,并使用物理網(wǎng)絡(luò)的IP/MAC作為外層頭(outer-header)進(jìn)行封裝,然后在物理IP網(wǎng)上傳輸,到達(dá)目的地后由隧道終結(jié)點(diǎn)解封并將數(shù)據(jù)發(fā)送給目標(biāo)虛擬機(jī)。
[0003]針對目前對于vxlan網(wǎng)絡(luò)沒有有效、完整的連通性檢測方法的情況,因此需要研究出一種vxlan隧道連通性的檢測方法來解決這一問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種VXLAN隧道的連通性檢測方法,通過定義一種新型的VXLAN內(nèi)層報(bào)文格式,以檢測兩VXLAN隧道端點(diǎn)之間vxlan隧道的連通性。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提出如下技術(shù)方案:一種VXLAN隧道的連通性檢測方法,包括:
[0006]VXLAN隧道一端的第一 VXLAN隧道端點(diǎn)向其對端的第二 VXLAN隧道端點(diǎn)發(fā)送請求報(bào)文;
[0007]所述第二VXLAN隧道端點(diǎn)接收所述請求報(bào)文,并根據(jù)請求報(bào)文中的字段與本地配置的VXLAN隧道的對應(yīng)字段相匹配,根據(jù)匹配結(jié)果回復(fù)相應(yīng)的應(yīng)答報(bào)文;
[0008]所述第一VXLAN隧道端點(diǎn)收到所述應(yīng)答報(bào)文后,根據(jù)應(yīng)答報(bào)文中的字段檢查應(yīng)答報(bào)文的有效性并判斷所述VXLAN隧道是否有問題。
[0009]優(yōu)選地,所述方法還包括:VXLAN隧道中間路徑上的設(shè)備根據(jù)所述請求報(bào)文的外層IP字段將請求報(bào)文轉(zhuǎn)發(fā)給第二隧道端點(diǎn),且VXLAN隧道中間路徑上的設(shè)備根據(jù)所述應(yīng)答報(bào)文的外層IP字段將應(yīng)答報(bào)文轉(zhuǎn)發(fā)給第一隧道端點(diǎn)。
[0010]優(yōu)選地,所述方法還包括:在第一VXLAN隧道端點(diǎn)發(fā)送請求報(bào)文給第二 VXLAN隧道端點(diǎn)的同時(shí),啟動(dòng)一個(gè)定時(shí)器,若在定時(shí)器設(shè)定的時(shí)間內(nèi)所述第一VXLAN隧道端點(diǎn)未收到相應(yīng)的應(yīng)答報(bào)文,則表示VXLAN隧道連通性檢測失敗。
[0011]優(yōu)選地,所述請求報(bào)文和應(yīng)答報(bào)文均包括VXLAN頭部和報(bào)文信息,所述VXLAN頭部包括預(yù)留字段和VXLAN網(wǎng)絡(luò)標(biāo)識符,通過配置所述VXLAN頭部中的字段來標(biāo)識所述請求或應(yīng)答報(bào)文是否為連通性檢測報(bào)文;所述報(bào)文信息包括應(yīng)答碼、發(fā)送端出接口 IP、目的端IP。
[0012]優(yōu)選地,所述第二VXLAN隧道端點(diǎn)根據(jù)請求報(bào)文中的所述目的端IP,發(fā)送端出接口IP和VXLAN網(wǎng)絡(luò)標(biāo)識符來和本地配置的vxlan隧道的目的端IP,發(fā)送端出接口 IP和VXLAN網(wǎng)絡(luò)標(biāo)識符相匹配,若對應(yīng),則回復(fù)隧道狀態(tài)正常的應(yīng)答報(bào)文;若不對應(yīng),則回復(fù)隧道狀態(tài)異常的應(yīng)答報(bào)文。
[0013]優(yōu)選地,所述第一VXLAN隧道端點(diǎn)根據(jù)應(yīng)答報(bào)文中的目的端IP,發(fā)送端出接口IP和VXLAN網(wǎng)絡(luò)標(biāo)識符來檢查報(bào)文的有效性。
[0014]優(yōu)選地,所述第一VXLAN隧道端點(diǎn)通過查看報(bào)文的所述應(yīng)答碼來判斷所述VXLAN隧道是否有問題。
[0015]優(yōu)選地,所述方法還包括:所述第一VXLAN隧道端點(diǎn)根據(jù)應(yīng)答報(bào)文中的字段來判斷ecmp路徑是否有冋題。
[0016]優(yōu)選地,所述第一VXLAN隧道端點(diǎn)根據(jù)應(yīng)答報(bào)文中的發(fā)送端出接口IP來判斷ecmp路徑是否有問題,若應(yīng)答報(bào)文中缺少發(fā)送端出接口 IP,則表明所述ecmp路徑存在問題。
[0017]優(yōu)選地,所述第一VXLAN隧道端點(diǎn)判斷所述VXLAN隧道或ecmp路徑存在問題時(shí),則通知管理員進(jìn)行排查。
[0018]本發(fā)明的有益效果是:通過本發(fā)明的技術(shù)方案,可以檢測兩VXLAN隧道端點(diǎn)(VTEP)之間vxlan隧道的連通性,同時(shí)對于VTEP上存在多重等價(jià)路徑(ecmp路徑)的情況,本方案還可以檢測源端ecmp的各條路徑是否都可用。
【附圖說明】
[0019]圖1是本發(fā)明所揭示的一種連通性檢測報(bào)文結(jié)構(gòu)示意圖;
[0020]圖2和圖4是本發(fā)明所揭示的一種VXLAN隧道的連通性檢測方法的流程示意圖;
[0021 ]圖3是本發(fā)明實(shí)施例所揭示的一種VXLAN隧道的連通性檢測方法的流程示意圖。
【具體實(shí)施方式】
[0022]下面將結(jié)合本發(fā)明的附圖,對本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行清楚、完整的描述。
[0023]本發(fā)明揭示了一種VXLAN隧道的連通性檢測方法,通過定義一種新的VXLAN內(nèi)層報(bào)文格式,用于傳輸隧道檢測信息,從而來檢測兩VXLAN隧道端點(diǎn)之間vxlan隧道的連通性。
[0024]如圖1所示,為本發(fā)明所揭示的一種連通性檢測報(bào)文結(jié)構(gòu),該連通性檢測報(bào)文保留了vxlan報(bào)文的基本結(jié)構(gòu)(圖1里省略了vxlan外層頭,為IP/UDP報(bào)文外加vxlan header),以下逐一說明各個(gè)字段:
[0025]VXLAN頭部:(VXLAN Header)
[0026]VXLAN頭部的最高位8個(gè)比特(bit)為8個(gè)flag,其中7個(gè)為保留字段,本發(fā)明配置I位用于區(qū)分報(bào)文為vxlan數(shù)據(jù)報(bào)文或連通性檢測報(bào)文,本實(shí)施例中,配置I位置O時(shí),標(biāo)識報(bào)文為連通性檢測報(bào)文。當(dāng)設(shè)備收到該位置O的vxlan報(bào)文時(shí),應(yīng)將報(bào)文送上cpu處理,VXLAN網(wǎng)絡(luò)標(biāo)識符(VNI)字段用于填寫相應(yīng)需要檢測的VNI。
[0027]報(bào)文信息:(Message)
[0028]VXLAN隧道端點(diǎn)類型(Vtep type):說明發(fā)出報(bào)文的vtep類型,本實(shí)施例中,0x00表示為硬件(hardware),0x01表示為軟件(software)。
[0029]報(bào)文類型(Message type):說明該報(bào)文類型,本實(shí)施例中,0x00表示請求報(bào)文(request),0x01 表示應(yīng)答報(bào)文(reply)。
[0030]應(yīng)答碼(Reply code):當(dāng)message type為request時(shí),這個(gè)字段應(yīng)始終為0x00,當(dāng)message type為reply時(shí),本實(shí)施例中,0x01表示隧道狀態(tài)正常,0x10表示隧道狀態(tài)異常。
[0031]報(bào)文長度(Message length):message字段長度,以字節(jié)計(jì),目前為6個(gè)字節(jié)。
[0032]報(bào)文序號(Sequence Number):報(bào)文序號從I開始編碼,每發(fā)一個(gè)報(bào)文,序號加I,可以用于檢測是否有檢測報(bào)文被丟棄。
[0033]發(fā)送端出接口 ip(Source interface ip):表示發(fā)送端出接口 ip,為4個(gè)字節(jié)。
[0034]目的端ip(Destinat1n ip):為目的端 ip。
[0035]如圖2所示,本發(fā)明所揭示的一種VXLAN隧道的連通性檢測方法,包括:
[0036]步驟I,VXLAN隧道一端的第一VXLAN隧道端點(diǎn)向其對端的第二VXLAN隧道端點(diǎn)發(fā)送請求報(bào)文。
[0037]在網(wǎng)絡(luò)中存在一條從第一 VTEP到第二 VTEP的VXLAN隧道,若要檢測該VXLAN隧道的連通性,首先,第一VTEP發(fā)送帶有隧道檢測信息的連通性檢測報(bào)文給第二VTEP,即這里的請求報(bào)文。
[0038]結(jié)合圖3所示的實(shí)施例,來具體介紹步驟1:圖3中,隧道端點(diǎn)VTEP-1和VTEP-2之間存在一條VXLAN隧道,該隧道的VNI為1000(0x3E8),同時(shí)從VTEP-1到VTEP-2的路由有兩個(gè)出接口 interface-1 和interface-2,其ip分別是1.0.0.1和2.0.0.1。
[0039]配置完成后,VTEP-1組織并發(fā)送request報(bào)文給VTEP-2 ,request報(bào)文中配置的信息為:vxlan外層頭中源IP地址(src-1p)為1.1.1.1,目的IP地址(dest_ip)為2.2.2.2,Vxlan頭部中I位置0,VNI字段為1000(0x3E8),同時(shí)查找路由表,發(fā)現(xiàn)到目的IP地址2.2.