一種隧道控制方法及裝置的制造方法
【技術領域】
[0001]本發明涉及通信技術領域,尤其涉及一種隧道控制方法及裝置。
【背景技術】
[0002]隨著網絡帶寬應用的增加,越來越多的公司開始部署基于GRE(Generic RoutingEncap su I at 1n,通用路由封裝協議)的網絡應用。GRE是一種三層無狀態的封裝技術,能夠對不同網絡層協議的數據報文進行封裝,使這些被封裝的數據報文能夠在同一個網絡層協議中傳輸,這種封裝技術常用于GRE隧道中網關對網關傳輸的應用場景。
[0003]但是,在網關間基于GRE隧道傳輸時,當對端網關不可達時,本端網關可能會因無法感知到對端網關的狀況,而向對端網關發送報文,造成網絡帶寬浪費。
【發明內容】
[0004]有鑒于此,本發明提供一種隧道控制方法及裝置來解決GRE隧道中對端網關不可達時造成的網絡帶寬浪費問題。
[0005]一種隧道控制方法,所述方法應用于本端網關,所述本端網關與對端網關之間創建了 GRE隧道,所述方法包括:
[0006]根據控制報文創建數據型保活報文;
[0007]按預設定時周期,將所述數據型保活報文通過所述GRE隧道發送至所述對端網關;
[0008]當收到所述對端網關返回的所述控制報文時,通過所述GRE隧道與所述對端網關進行報文傳輸。
[0009]進一步的,所述根據控制報文創建數據型保活報文,包括:
[0010]生成控制報文;
[0011]對所述控制報文進行內層GRE封裝,得到目的網絡互聯協議IP地址為本端網關IP地址的中間報文;
[0012]對所述中間報文進行外層GRE封裝,得到目的IP地址為對端網關IP地址的數據型保活報文。
[0013]進一步的,所述方法還可以包括:
[0014]在第一個數據型保活報文發送后,啟動計數器;
[0015]在所述數據型保活報文發送后的定時周期內,若未收到所述對端網關返回的控制報文,則控制所述計數器的計數值加I;
[0016]當所述計數值大于等于預設閾值時,則關閉自身的GRE隧道接口,以禁止通過所述GRE隧道與所述對端網關進行報文傳輸。
[0017]進一步的,所述當收到所述對端網關返回的所述控制報文時,所述方法還可以包括:
[0018]控制所述計數器的計數值清零。
[0019]進一步的,所述本端網關與對端網關之間創建了多條GRE隧道時;
[0020]所述根據控制報文創建數據型保活報文,包括:
[0021]根據控制報文為每條GRE隧道創建數據型保活報文,所述數據型保活報文中包含所述GRE隧道的隧道標識;
[0022]所述按預設定時周期,將所述數據型保活報文通過所述GRE隧道發送至所述對端網關,包括:
[0023]按預設定時周期,根據數據型保活報文中的隧道標識,將所述數據型保活報文通過所述隧道標識對應的GRE隧道,發送至所述對端網關;
[0024]所述當收到所述對端網關返回的所述控制報文時,通過所述GRE隧道與所述對端網關進行報文傳輸,包括:
[0025]當收到所述對端網關返回的所述控制報文時,獲取所述控制報文中的隧道標識,通過所述隧道標識對應的GRE隧道與所述對端網關進行報文傳輸。
[0026]基于相同的構思,本發明還一種隧道控制裝置,所述裝置應用于本端網關,所述裝置包括:
[0027]隧道創建單元,用于在本端網關與對端網關之間創建GRE隧道;
[0028]報文創建單元,用于根據控制報文創建數據型保活報文;
[0029]隧道保活單元,用于按預設定時周期,將所述數據型保活報文通過所述GRE隧道發送至所述對端網關;
[0030]報文傳輸單元,用于在收到所述對端網關返回的所述控制報文時,通過所述GRE隧道與所述對端網關進行報文傳輸。
[0031]進一步的,所述報文創建單元,具體用于,生成控制報文,并將所述控制報文進行內層GRE封裝,得到目的網絡互聯協議IP地址為本端網關IP地址的中間報文;再將所述中間報文進行外層GRE封裝,得到目的IP地址為對端網關IP地址的數據型保活報文。
[0032]進一步的,所述裝置還可以包括:
[0033]計數單元,用于在第一個數據型保活報文發送后,啟動計數器;在所述數據型保活報文發送后的定時周期內,若未收到所述對端網關返回的控制報文,則控制計數器的計數值加I ;
[0034]所述報文傳輸單元,還用于當所述計數值大于等于預設閾值時,則關閉自身的GRE隧道接口,以禁止通過所述GRE隧道與所述對端網關進行報文傳輸。
[0035]進一步的,所述計數單元,還可以用于在收到所述對端網關返回的所述控制報文時,控制計數器的計數值清零。
[0036]進一步的,所述隧道創建單元,還可以用于在本端網關與對端網關之間創建多條GRE隧道;
[0037]所述報文創建單元,具體用于根據控制報文為每條GRE隧道創建數據型保活報文,所述數據型保活報文中包含所述GRE隧道的隧道標識;
[0038]所述隧道保活單元,具體用于按預設定時周期,根據數據型保活報文中的隧道標識,將所述數據型保活報文通過所述隧道標識對應的GRE隧道,發送至所述對端網關;
[0039]所述報文傳輸單元,具體用于在收到所述對端網關返回的所述控制報文時,獲取所述控制報文中的隧道標識,通過所述隧道標識對應的GRE隧道與所述對端網關進行報文傳輸。
[0040]由此可見,本發明可以通過GRE隧道中的數據通道向對端網關發送數據型保活報文,根據對端網關是否根據所述數據型保活報文返回控制報文,來探測GRE隧道是否正常連接,并在GRE隧道正常連接的狀態下與對端網關進行報文傳輸,從而保證報文在GRE隧道中順利傳輸,避免網絡帶寬浪費。
【附圖說明】
[0041]圖1是本發明提供的一種隧道控制方法的處理流程圖;
[0042]圖2是本發明實施例中GRE隧道的示意圖;
[0043]圖3是本發明實施例中一種報文結構示意圖;
[0044]圖4是本發明實施例中一種隧道控制裝置的結構示意圖;
[0045]圖5是本發明實施例中另一種隧道控制裝置的結構示意圖。
【具體實施方式】
[0046]為解決上述問題,本發明提供一種隧道控制方法及裝置,可以通過GRE隧道中的數據通道向對端網關發送數據型保活報文,根據對端網關是否根據所述數據型保活報文返回控制報文,來探測GRE隧道是否正常連接,并在GRE隧道正常連接的狀態下與對端網關進行報文傳輸,從而保證報文在GRE隧道中順利傳輸。
[0047]參見圖1,本實施例提供的一種隧道控制方法的處理流程圖。其中,所述隧道保活方法應用于本端網關,所述本端網關與對端網關之間創建了 GRE隧道,所述隧道控制方法包括:
[0048]步驟101、根據控制報文創建數據型保活報文;
[0049]在可選的實施例中,所述控制報文一般為UDP(User Datagram Protocol,用戶數據包協議)報文,其目的IP地址為本端網關的IP地址,源IP地址為對端網關的IP地址,UDP端口號為本端網關的UDP端口號。為了使控制報文在GRE隧道的數據層傳輸,本發明將所述控制報文先進行內層GRE封裝,得到目的網絡互聯協議IP地址為本端網關IP地址的中間報文;再將所述中間報文進行外層GRE封裝,得到目的IP地址為對端網關IP地址的數據型保活報文。所謂數據型保活報文就是帶有GRE協議封裝的可以在GRE隧道的數據層傳輸的保活報文。
[0050]步驟102、按預設定時周期,將所述數據型保活報文通過所述GRE隧道發送至所述對端網關;
[0051]在本實施例中,本端網關通常會按照預設的定時周期,周期性的通過所述GRE隧道向對端網關發送所述數據型保活報文