建立gre隧道的方法和設備的制造方法
【技術領域】
[0001 ]本發明涉及通信領域,尤其涉及通信領域中的建立通用路由封裝(Generat 1nRouting Encapsulat1n,簡稱為“GRE”)隧道的方法和設備。
【背景技術】
[0002]混合接入(HybridAccess,簡稱為“HA”)是一種綁定異構網絡的接入技術。用戶可以同時接入兩種或兩種以上的接入網絡來訪問網絡側。例如在家庭寬帶網絡中,用戶可同時接入固定接入網絡(例如,數字用戶線路(Digital Subscriber Line,簡稱為“DSL”))和移動接入網絡(例如,長期演進(Long time EvoIut1n,簡稱為“LTE”))。能夠為用戶提供更快的業務開通服務、更可靠的WAN連接、以及更大的帶寬。
[0003]當前技術中,采用GRE隧道綁定實現HA技術。如圖1所示,用戶側的家庭網關(HomeGateway,簡稱為“HG”)分別與網絡側的混合鏈路聚合節點(Hybrid Access Aggregat1nPoint,簡稱為“HAAP”)服務器創建基于DSL接入網絡的GRE隧道和基于LTE接入網絡的GRE隧道。而GRE隧道的建立是不感知中間鏈路是否進行了網絡地址轉換(Network AddressTranslat1n,簡稱“NAT”)的,如果GRE隧道建立過程中間經過NAT設備進行了網絡地址轉換,此時需要支持GRE場景下的NAT。傳統的解決NAT問題的技術比較復雜。對于NAT場景采取的措施一般都是在GRE隧道的建立過程中強制認為經過了 NAT,并對該NAT帶來的問題進行處理。例如在建立的GRE隧道上發送數據報文時在數據報文中添加用戶數據報協議(UserDatagram Protocol,簡稱“UDP”)報文頭,無形中增加了鏈路帶寬和損耗。
【發明內容】
[0004]有鑒于此,本發明實施例提供了一種建立通用路由封裝GRE隧道的方法和設備,以解決GRE隧道建立過程中強制認為經過NAT而在后續發送數據報文時強制添加UDP報文頭所帶來的鏈路帶寬和損耗負擔較高的問題。
[0005]第一方面,提供了一種建立通用路由封裝GRE隧道的方法,其特征在于,所述方法包括:
[0006]家庭網關HG向混合鏈路聚合節點HAAP發送通用路由封裝GRE隧道建立請求報文,所述GRE隧道建立請求報文包括第一 IP地址,所述第一 IP地址為所述HG的廣域網WAN的互聯網協議IP地址;
[0007]所述HG接收所述HAAP發送的GRE隧道建立響應報文,所述GRE隧道建立響應報文包括第二 IP地址,所述第二 IP地址為所述HAAP接收到的所述GRE隧道建立請求報文中的源IP地址;
[0008]所述HG根據所述GRE隧道建立響應報文,建立所述HG和所述HAAP之間的所述GRE隧道,并根據所述第一 IP地址和所述第二 IP地址,確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中是否進行了網絡地址轉換NAT。
[0009]因此,本申請所述的方法,HAAP通過在向HG發送的控制消息報文的擴展字段添加IP地址信息,使得HG可以利用控制報文進行IP地址比對來探測建立GRE隧道過程中是否經過了NAT,從而避免了強制認為經過NAT而在后續向HAAP發送的所有數據報文中都添加UDP報文頭所帶來的不必要的網絡開銷。
[0010]可選地,所述GRE隧道所在的接入網絡類型包括固定接入網絡和移動接入網絡。其中,固定接入網絡例如數字用戶線路DSL接入網絡,移動接入網路例如為3G或長期演進LTE網絡。
[0011]另外,所述HG和所述HAAP之間可以建立至少兩條GRE隧道。該至少兩條GRE隧道所在的接入網絡類型可以互不相同,也可以部分相同。
[0012]可選地,所述GRE隧道建立請求報文的格式和所述GRE隧道建立響應報文的格式如圖4所示。所述GRE隧道建立請求報文和所述GRE隧道建立響應報文中包括屬性字段。所述WAN的IP地址可以位于所述GRE隧道建立請求報文的屬性字段。所述GRE隧道的源IP地址可以位于所述GRE隧道建立響應報文的屬性字段。
[0013]其中,當所述HG請求建立基于LTE網絡的GRE隧道(簡稱為LTE隧道)時,該GRE隧道建立請求報文中的第一IP地址包括LTE網絡的WAN口的IP地址,當所述HG請求建立基于DSL網絡的GRE隧道(簡稱為DSL隧道)時,該GRE隧道建立請求報文中的第二 IP地址包括DSL網絡的WAN 口的IP地址。
[0014]作為另一個實施例,所述HG根據所述第一IP地址和所述第二IP地址,確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中是否進行了所述NAT,包括:
[0015]如果所述第一IP地址和所述第二IP地址不同,所述HG確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中進行了所述NAT;
[0016]如果所述第一IP地址和所述第二IP地址相同,所述HG確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中沒有進行所述NAT。
[0017]可選地,如果所述HG確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中進行了所述NAT,所述方法還包括:
[0018]所述HG通過所述GRE隧道向所述HAAP發送第一數據報文,所述第一數據報文包括第一用戶數據協議UDP頭,所述第一 UDP頭包括第一源IP地址,所述第一源IP地址為所述GRE隧道在所述HG上的隧道端口的IP地址。
[0019]可選地,所述第一UDP頭還包括GRE隧道的端口號,所述第一端口號可以被所述HAAP用來識別所述第一數據報文所屬的HG。因為不同的HG,對于HAAP來說,所述第一源IP地址可能相同。
[0020]可選地,如果所述HG確定向所述HG和所述HAAP之間的所述GRE隧道的建立過程中進行了所述NAT,所述方法還包括:
[0021]所述HG通過所述GRE隧道接收所述HAAP發送的第二數據報文,所述第二數據報文包括第二 UDP頭,所述第二 UDP頭包括第二源IP地址,所述第二源IP地址為所述GRE隧道在所述HAAP上的隧道端口的IP地址。
[0022]可選地,如果所述HG確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中沒有進行所述NAT,所述方法還包括:
[0023]所述HG通過所述GRE隧道向所述HAAP發送第一數據報文,和/或
[0024]通過所述GRE隧道接收所述HAAP發送的數據報文。
[0025]其中,所述第一數據報文不包括UDP頭,所述第二數據報文不包括UDP頭。
[0026]因此,如果HG通過判斷確定在GRE隧道的建立過程中,在HG和HAAP之間的GRE隧道的建立過程中沒有經過NAT,那么在建立好的該GRE隧道上進行數據報文傳輸時,就可以不在數據報文中添加UDP頭,從而避免了不必要的網絡開銷。
[0027]第二方面,提供了一種建立通用路由封裝GRE隧道的方法,其特征在于,所述方法包括:
[0028]混合鏈路聚合節點HAAP接收家庭網關HG發送的通用路由封裝GRE隧道建立請求報文,所述GRE隧道建立請求報文包括第一 IP地址,所述第一 IP地址為所述HG的廣域網WAN的互聯網協議IP地址;
[0029]所述HAAP向所述HG發送GRE隧道建立響應報文,以便于所述HG根據所述GRE隧道建立響應報文建立所述HG和所述HAAP之間的所述GRE隧道,所述GRE隧道建立響應報文包括第二 IP地址,所述第二 IP地址為所述HAAP接收到的所述GRE隧道建立請求報文中的源IP地址;
[0030]所述HAAP根據所述第一 IP地址和所述第二 IP地址,確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中是否進行了網絡地址轉換NAT。
[0031]因此,本申請所述的方法,HG通過在向HAAP發送的控制消息報文的擴展字段添加IP地址信息,使得HAAP可以利用控制報文進行IP地址比對來探測建立GRE隧道過程中是否經過了 NAT,從而避免了強制認為經過NAT而在后續向HG發送的所有數據報文中都添加UDP報文頭所帶來的不必要的網絡開銷。
[0032]可選地,所述GRE隧道所在的接入網絡類型包括固定接入網絡和移動接入網絡。其中,固定接入網絡例如數字用戶線路DSL接入網絡,移動接入網路例如為3G或長期演進LTE網絡。
[0033]另外,所述HG和所述HAAP之間可以建立至少兩條GRE隧道。該至少兩條GRE隧道所在的接入網絡類型可以互不相同,也可以部分相同。
[0034]可選地,所述GRE隧道建立請求報文的格式和所述GRE隧道建立響應報文的格式如圖4所示。所述GRE隧道建立請求報文和所述GRE隧道建立響應報文中包括屬性字段。所述WAN的IP地址可以位于所述GRE隧道建立請求報文的屬性字段。所述GRE隧道的源IP地址可以位于所述GRE隧道建立響應報文的屬性字段。
[0035]其中,當所述HG請求建立基于LTE網絡的GRE隧道(簡稱為LTE隧道)時,該GRE隧道建立請求報文中的第一 IP地址包括LTE網絡的WAN 口的IP地址。當所述HG請求建立基于DSL網絡的GRE隧道(簡稱為DSL隧道)時,該GRE隧道建立請求報文中的第二 IP地址包括DSL網絡的WAN 口的IP地址。
[0036]作為另一個實施例,所述HAAP根據所述第一IP地址和所述第二IP地址,確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中是否進行了網絡地址轉換NAT,包括:
[0037]如果所述第一IP地址和所述第二IP地址不同,所述HAAP確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中進行了所述NAT;
[0038]如果所述第一IP地址和所述第二IP地址相同,所述HAAP確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中沒有進行所述NAT。
[0039]可選地,如果所述HAAP確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中進行了所述NAT,所述方法還包括:
[0040]所述HAAP通過所述GRE隧道接收所述HG發送的第一數據報文,所述第一數據報文包括第一用戶數據協議UDP頭,所述第一 UDP頭包括第一源IP地址,所述第一源IP地址為所述HAAP接收到的GRE隧道建立請求報文中的源IP地址。
[0041 ] 可選地,所述第一UDP頭還包括GRE隧道的端口號,所述第一端口號可以被所述HAAP用來識別所述第一數據報文所屬的HG。因為不同的HG,對于HAAP來說,所述第一源IP地址可能相同。
[0042]可選地,如果所述HAAP確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中進行了所述NAT,所述方法還包括:
[0043]所述HAAP通過所述GRE隧道向所述HG發送第二數據報文,所述第二數據報文包括第二 UDP頭,所述第二 UDP頭包括第二源IP地址,所述第二源IP地址為所述GRE隧道在所述HAAP上的隧道端口的IP地址。
[0044]可選地,如果所述HAAP確定在所述HG和所述HAAP之間的所述GRE隧道的建立過程中沒有進行所述NAT,所述方法還包括:
[0045]所述HAAP通過所述GRE隧道向所述HG發送第一數據報文,和/或
[0046]所述HAAP通過所述GRE隧道接收所述HG發送的第二數據報文,
[0047]其中,所述第一數據報文不包括UDP頭,所述第二數據報文不包括UDP頭。
[0048]因此,如果HAAP通過判斷確定在GRE隧道的建立過程中,HG和HAAP之間沒有經過NAT,那么在建立好的該GRE隧道上進行數據報文傳輸時,就可以不在數據報文中添加UDP頭,從而避免了不必要的網絡開銷。
[0049]第三方面,提供了一種家庭網關,用于執行上述第一方面或第一方面的任意可能的實現方式中的方法。具體地,該家庭網關包括:
[0050]發送模塊,用于向混合鏈路聚合節點HAAP發送通用路由封裝GRE隧道建立請求報文,所述GRE隧道建立請求報文包括第一 IP地址,所述第一 IP地址為所述HG的廣域網WAN的互聯網協議IP地址;
[0051 ]接收模塊,用于接收所述HAAP發送的GRE隧道建立響應報文,所述GRE隧道建立響應報文包括第二 IP地址,所述第二 IP地址為所述HAAP接收到的所述GRE隧道建立請求報文中的源IP地址;
[0052]確定模塊,用于根據所述接收模塊接收的所述GRE隧道建立響應報文,建立所述HG和所述HAAP之間的所述GRE隧道,并根據所述第一 IP地址和所述第二 IP地址,