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