一種隧道控制方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種隧道控制方法及裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)帶寬應(yīng)用的增加,越來越多的公司開始部署基于GRE(Generic RoutingEncap su I at 1n,通用路由封裝協(xié)議)的網(wǎng)絡(luò)應(yīng)用。GRE是一種三層無狀態(tài)的封裝技術(shù),能夠?qū)Σ煌W(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)報文進(jìn)行封裝,使這些被封裝的數(shù)據(jù)報文能夠在同一個網(wǎng)絡(luò)層協(xié)議中傳輸,這種封裝技術(shù)常用于GRE隧道中網(wǎng)關(guān)對網(wǎng)關(guān)傳輸?shù)膽?yīng)用場景。
[0003]但是,在網(wǎng)關(guān)間基于GRE隧道傳輸時,當(dāng)對端網(wǎng)關(guān)不可達(dá)時,本端網(wǎng)關(guān)可能會因無法感知到對端網(wǎng)關(guān)的狀況,而向?qū)Χ司W(wǎng)關(guān)發(fā)送報文,造成網(wǎng)絡(luò)帶寬浪費(fèi)。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供一種隧道控制方法及裝置來解決GRE隧道中對端網(wǎng)關(guān)不可達(dá)時造成的網(wǎng)絡(luò)帶寬浪費(fèi)問題。
[0005]一種隧道控制方法,所述方法應(yīng)用于本端網(wǎng)關(guān),所述本端網(wǎng)關(guān)與對端網(wǎng)關(guān)之間創(chuàng)建了 GRE隧道,所述方法包括:
[0006]根據(jù)控制報文創(chuàng)建數(shù)據(jù)型?;顖笪?;
[0007]按預(yù)設(shè)定時周期,將所述數(shù)據(jù)型保活報文通過所述GRE隧道發(fā)送至所述對端網(wǎng)關(guān);
[0008]當(dāng)收到所述對端網(wǎng)關(guān)返回的所述控制報文時,通過所述GRE隧道與所述對端網(wǎng)關(guān)進(jìn)行報文傳輸。
[0009]進(jìn)一步的,所述根據(jù)控制報文創(chuàng)建數(shù)據(jù)型保活報文,包括:
[0010]生成控制報文;
[0011]對所述控制報文進(jìn)行內(nèi)層GRE封裝,得到目的網(wǎng)絡(luò)互聯(lián)協(xié)議IP地址為本端網(wǎng)關(guān)IP地址的中間報文;
[0012]對所述中間報文進(jìn)行外層GRE封裝,得到目的IP地址為對端網(wǎng)關(guān)IP地址的數(shù)據(jù)型?;顖笪?。
[0013]進(jìn)一步的,所述方法還可以包括:
[0014]在第一個數(shù)據(jù)型保活報文發(fā)送后,啟動計數(shù)器;
[0015]在所述數(shù)據(jù)型?;顖笪陌l(fā)送后的定時周期內(nèi),若未收到所述對端網(wǎng)關(guān)返回的控制報文,則控制所述計數(shù)器的計數(shù)值加I;
[0016]當(dāng)所述計數(shù)值大于等于預(yù)設(shè)閾值時,則關(guān)閉自身的GRE隧道接口,以禁止通過所述GRE隧道與所述對端網(wǎng)關(guān)進(jìn)行報文傳輸。
[0017]進(jìn)一步的,所述當(dāng)收到所述對端網(wǎng)關(guān)返回的所述控制報文時,所述方法還可以包括:
[0018]控制所述計數(shù)器的計數(shù)值清零。
[0019]進(jìn)一步的,所述本端網(wǎng)關(guān)與對端網(wǎng)關(guān)之間創(chuàng)建了多條GRE隧道時;
[0020]所述根據(jù)控制報文創(chuàng)建數(shù)據(jù)型?;顖笪模?
[0021]根據(jù)控制報文為每條GRE隧道創(chuàng)建數(shù)據(jù)型?;顖笪?,所述數(shù)據(jù)型保活報文中包含所述GRE隧道的隧道標(biāo)識;
[0022]所述按預(yù)設(shè)定時周期,將所述數(shù)據(jù)型保活報文通過所述GRE隧道發(fā)送至所述對端網(wǎng)關(guān),包括:
[0023]按預(yù)設(shè)定時周期,根據(jù)數(shù)據(jù)型保活報文中的隧道標(biāo)識,將所述數(shù)據(jù)型保活報文通過所述隧道標(biāo)識對應(yīng)的GRE隧道,發(fā)送至所述對端網(wǎng)關(guān);
[0024]所述當(dāng)收到所述對端網(wǎng)關(guān)返回的所述控制報文時,通過所述GRE隧道與所述對端網(wǎng)關(guān)進(jìn)行報文傳輸,包括:
[0025]當(dāng)收到所述對端網(wǎng)關(guān)返回的所述控制報文時,獲取所述控制報文中的隧道標(biāo)識,通過所述隧道標(biāo)識對應(yīng)的GRE隧道與所述對端網(wǎng)關(guān)進(jìn)行報文傳輸。
[0026]基于相同的構(gòu)思,本發(fā)明還一種隧道控制裝置,所述裝置應(yīng)用于本端網(wǎng)關(guān),所述裝置包括:
[0027]隧道創(chuàng)建單元,用于在本端網(wǎng)關(guān)與對端網(wǎng)關(guān)之間創(chuàng)建GRE隧道;
[0028]報文創(chuàng)建單元,用于根據(jù)控制報文創(chuàng)建數(shù)據(jù)型?;顖笪?;
[0029]隧道?;顔卧糜诎搭A(yù)設(shè)定時周期,將所述數(shù)據(jù)型保活報文通過所述GRE隧道發(fā)送至所述對端網(wǎng)關(guān);
[0030]報文傳輸單元,用于在收到所述對端網(wǎng)關(guān)返回的所述控制報文時,通過所述GRE隧道與所述對端網(wǎng)關(guān)進(jìn)行報文傳輸。
[0031]進(jìn)一步的,所述報文創(chuàng)建單元,具體用于,生成控制報文,并將所述控制報文進(jìn)行內(nèi)層GRE封裝,得到目的網(wǎng)絡(luò)互聯(lián)協(xié)議IP地址為本端網(wǎng)關(guān)IP地址的中間報文;再將所述中間報文進(jìn)行外層GRE封裝,得到目的IP地址為對端網(wǎng)關(guān)IP地址的數(shù)據(jù)型?;顖笪?。
[0032]進(jìn)一步的,所述裝置還可以包括:
[0033]計數(shù)單元,用于在第一個數(shù)據(jù)型?;顖笪陌l(fā)送后,啟動計數(shù)器;在所述數(shù)據(jù)型?;顖笪陌l(fā)送后的定時周期內(nèi),若未收到所述對端網(wǎng)關(guān)返回的控制報文,則控制計數(shù)器的計數(shù)值加I ;
[0034]所述報文傳輸單元,還用于當(dāng)所述計數(shù)值大于等于預(yù)設(shè)閾值時,則關(guān)閉自身的GRE隧道接口,以禁止通過所述GRE隧道與所述對端網(wǎng)關(guān)進(jìn)行報文傳輸。
[0035]進(jìn)一步的,所述計數(shù)單元,還可以用于在收到所述對端網(wǎng)關(guān)返回的所述控制報文時,控制計數(shù)器的計數(shù)值清零。
[0036]進(jìn)一步的,所述隧道創(chuàng)建單元,還可以用于在本端網(wǎng)關(guān)與對端網(wǎng)關(guān)之間創(chuàng)建多條GRE隧道;
[0037]所述報文創(chuàng)建單元,具體用于根據(jù)控制報文為每條GRE隧道創(chuàng)建數(shù)據(jù)型?;顖笪?,所述數(shù)據(jù)型?;顖笪闹邪鯣RE隧道的隧道標(biāo)識;
[0038]所述隧道保活單元,具體用于按預(yù)設(shè)定時周期,根據(jù)數(shù)據(jù)型?;顖笪闹械乃淼罉?biāo)識,將所述數(shù)據(jù)型?;顖笪耐ㄟ^所述隧道標(biāo)識對應(yīng)的GRE隧道,發(fā)送至所述對端網(wǎng)關(guān);
[0039]所述報文傳輸單元,具體用于在收到所述對端網(wǎng)關(guān)返回的所述控制報文時,獲取所述控制報文中的隧道標(biāo)識,通過所述隧道標(biāo)識對應(yīng)的GRE隧道與所述對端網(wǎng)關(guān)進(jìn)行報文傳輸。
[0040]由此可見,本發(fā)明可以通過GRE隧道中的數(shù)據(jù)通道向?qū)Χ司W(wǎng)關(guān)發(fā)送數(shù)據(jù)型保活報文,根據(jù)對端網(wǎng)關(guān)是否根據(jù)所述數(shù)據(jù)型保活報文返回控制報文,來探測GRE隧道是否正常連接,并在GRE隧道正常連接的狀態(tài)下與對端網(wǎng)關(guān)進(jìn)行報文傳輸,從而保證報文在GRE隧道中順利傳輸,避免網(wǎng)絡(luò)帶寬浪費(fèi)。
【附圖說明】
[0041]圖1是本發(fā)明提供的一種隧道控制方法的處理流程圖;
[0042]圖2是本發(fā)明實(shí)施例中GRE隧道的示意圖;
[0043]圖3是本發(fā)明實(shí)施例中一種報文結(jié)構(gòu)示意圖;
[0044]圖4是本發(fā)明實(shí)施例中一種隧道控制裝置的結(jié)構(gòu)示意圖;
[0045]圖5是本發(fā)明實(shí)施例中另一種隧道控制裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0046]為解決上述問題,本發(fā)明提供一種隧道控制方法及裝置,可以通過GRE隧道中的數(shù)據(jù)通道向?qū)Χ司W(wǎng)關(guān)發(fā)送數(shù)據(jù)型?;顖笪模鶕?jù)對端網(wǎng)關(guān)是否根據(jù)所述數(shù)據(jù)型?;顖笪姆祷乜刂茍笪模瑏硖綔yGRE隧道是否正常連接,并在GRE隧道正常連接的狀態(tài)下與對端網(wǎng)關(guān)進(jìn)行報文傳輸,從而保證報文在GRE隧道中順利傳輸。
[0047]參見圖1,本實(shí)施例提供的一種隧道控制方法的處理流程圖。其中,所述隧道保活方法應(yīng)用于本端網(wǎng)關(guān),所述本端網(wǎng)關(guān)與對端網(wǎng)關(guān)之間創(chuàng)建了 GRE隧道,所述隧道控制方法包括:
[0048]步驟101、根據(jù)控制報文創(chuàng)建數(shù)據(jù)型保活報文;
[0049]在可選的實(shí)施例中,所述控制報文一般為UDP(User Datagram Protocol,用戶數(shù)據(jù)包協(xié)議)報文,其目的IP地址為本端網(wǎng)關(guān)的IP地址,源IP地址為對端網(wǎng)關(guān)的IP地址,UDP端口號為本端網(wǎng)關(guān)的UDP端口號。為了使控制報文在GRE隧道的數(shù)據(jù)層傳輸,本發(fā)明將所述控制報文先進(jìn)行內(nèi)層GRE封裝,得到目的網(wǎng)絡(luò)互聯(lián)協(xié)議IP地址為本端網(wǎng)關(guān)IP地址的中間報文;再將所述中間報文進(jìn)行外層GRE封裝,得到目的IP地址為對端網(wǎng)關(guān)IP地址的數(shù)據(jù)型?;顖笪?。所謂數(shù)據(jù)型?;顖笪木褪菐в蠫RE協(xié)議封裝的可以在GRE隧道的數(shù)據(jù)層傳輸?shù)谋;顖笪摹?br>[0050]步驟102、按預(yù)設(shè)定時周期,將所述數(shù)據(jù)型?;顖笪耐ㄟ^所述GRE隧道發(fā)送至所述對端網(wǎng)關(guān);
[0051]在本實(shí)施例中,本端網(wǎng)關(guān)通常會按照預(yù)設(shè)的定時周期,周期性的通過所述GRE隧道向?qū)Χ司W(wǎng)關(guān)發(fā)送所述數(shù)據(jù)型?;顖笪?