專利名稱:動態gre隧道建立的方法和設備的制作方法
技術領域:
本發明涉及通信領域,尤其涉及一種動態GRE隧道建立的方法和設備。
背景技術:
隨著3G(3rd-generati0n,第三代移動通信技術)網絡的發展,用戶對3G網絡下的 業務應用需求越來越多,3G網絡鏈路備份的要求也隨之而來。傳統網絡中的鏈路備份技術 包括GRE (Generic Routing Encapsulation,通用路由封裝)隧道方式和路由切換技術。GRE定義了在任意一種網絡層協議上封裝任意一個其它網絡層協議的協議。GRE 對某些網絡層協議的數據報文進行封裝,使這些被封裝的數據報文能夠在另一個網絡層協 議中傳輸。GRE利用為隧道指定的實際物理接口完成轉發,如圖1所示,利用GRE進行報文 轉發的流程包括所有發往遠端VPN (Virtual Private Network,虛擬專用網)的原始報 文,首先被發送到隧道源端;原始報文在隧道源端進行GRE封裝,填寫隧道建立時確定的隧 道源地址和目的地址,然后再通過公共IP (Internet Protocol,因特網協議)網絡轉發到 遠端VPN網絡。但是現有技術中設備之間配置GRE隧道時必須知道對端GRE隧道使用的物 理接口地址,如果有一個網絡設備的地址是動態獲取的,GRE隧道無法建立。如圖2所示的傳統路由切換組網,網絡設備A和網絡設備B上需要同時探測到達 對端的主鏈路IP地址的路由是否有效,當主鏈路的路由不可達時,網絡設備A和B同時將 鏈路切換到備份鏈路。如果網絡設備A的地址是動態分配的,那么網絡設備B就不能使用 探測機制去檢測主鏈路是否正常,從而無法實現主備鏈路切換。現有技術中3G網絡由于不具有固定IP地址,因此無法建立GRE隧道也無法實現 圖2所示的路由切換。例如圖3所示的3G網絡組網,網絡設備B為中心的網關設備,其外 網口有固定IP地址202. 100. 0. 100,網絡設備A有兩個3G接口,這兩個3G接口同時接入 到3G網絡中,由基站分配IP地址。用戶需要在3G接口 1對應的主鏈路可達時,主要業務 流量走主鏈路,一旦主鏈路斷開,業務流量切換到備份鏈路。但是,由于3G接口的IP地址 是動態的,在網絡設備A和網絡設備B上無法建立GRE隧道,從而無法使用GRE隧道的鏈路 備份方式,同時,因為無法預測3G接口動態獲得的IP地址,網絡設備B也無法通過圖2所 示的路由切換機制動態檢測到達網絡設備A的主鏈路是否正常從而實現主備鏈路切換。
發明內容
本發明提供了 一種動態GRE隧道建立的方法和設備,以實現通過動態獲取IP地址 的接口建立動態GRE隧道,并實現對動態GRE隧道的備份。本發明提供了一種動態GRE隧道建立的方法,該方法應用于包括動態GRE隧道的 主動發起方與被動接收方的系統中,所述主動發起方包括動態獲取IP地址的第一接口,所 述被動接收方包括具有固定IP地址的第二接口,該方法進一步包括在所述主動發起方配置動態GRE隧道的源IP地址為所述第一接口的IP地址、動 態GRE隧道的目的地址為所述第二接口的IP地址,在所述被動接收方配置動態GRE隧道的源IP地址為所述第二接口的IP地址、動態GRE隧道的目的地址為動態方式;所述主動發起方通過所述第一接口向所述被動接收方發送以所述第一接口的IP 地址為動態GRE隧道的源IP地址的動態GRE隧道探詢報文;所述被動接收方對所述動態GRE隧道探詢報文進行認證,認證通過后根據所述第 一接口的IP地址向所述主動發起方發送探詢應答報文;所述主動發起方通過所述第一接口向所述被動接收方發送以所述第一接口的IP 地址為動態GRE隧道的源IP地址的動態GRE隧道UP通告;所述被動接收方對所述動態GRE隧道UP通告進行認證,認證通過后根據所述第一 接口的IP地址向所述主動發起方發送UP通告應答報文,建立所述第一接口與所述第二接 口之間的動態GRE隧道。還包括在所述主動發起方和被動接收方配置相同的身份標識和認證密鑰;所述動態GRE隧道探詢報文和所述動態GRE隧道UP通告中分別攜帶所述主動發 起方配置的身份標識和根據所述認證密鑰對所述動態GRE隧道探詢報文和所述動態GRE隧 道UP通告進行認證后的認證結果;所述被動接收方對所述動態GRE隧道探詢報文或者動態GRE隧道UP通告進行認 證包括所述被動接收方根據所述動態GRE隧道探詢報文或者動態GRE隧道UP通告中攜帶 的身份標識查找對應的認證密鑰;如果查找到對應的認證密鑰,所述被動接收方根據該認 證密鑰對所述動態GRE隧道探詢報文或者所述動態GRE隧道UP通告進行認證;如果認證結 果與所述動態GRE隧道探詢報文或者所述動態GRE隧道UP通告中攜帶的認證結果相同,所 述被動接收方判斷認證通過。所述被動接收方對所述動態GRE隧道UP通告進行認證包括當所述被動接收方重復接收到動態GRE隧道UP通告時,如果重復收到的動態GRE隧道UP通告中攜帶的源IP地址相同,則所述被動接收 方直接向所述主動發起方發送UP通告應答報文;如果在后收到的動態GRE隧道UP通告中攜帶的源IP地址與之前的不同,所述被 動接收方向在先收到的動態GRE隧道UP通告中攜帶的源IP地址發送動態GRE隧道探詢報 文;如果預定時間內沒有接收到GRE隧道探詢響應報文,所述被動接收方回應在后收到的 動態GRE隧道UP通告,將所述在后收到的動態GRE隧道UP通告中攜帶的源IP地址作為動 態GRE隧道的目的IP地址;如果預定時間內接收到GRE隧道探詢響應報文,所述被動接收 方不回應所述在后收到的動態GRE隧道UP通告。所述主動發起方通過所述第一接口向所述被動接收方發送動態GRE隧道探詢報 文之后,還包括若預設時間內沒有收到響應報文,所述主動發起方重新向所述被動接收方發送動 態GRE隧道探詢報文。所述主動發起方還包括動態獲取IP地址的第三接口,該方法進一步包括如果所述主動發起方通過所述第一接口與所述被動接收方建立GRE隧道失敗,所 述主動發起方通過所述第三接口請求與所述被動接收方建立GRE隧道;如果所述主動發起方通過所述第一接口與所述被動接收方建立GRE隧道成功,所 述主動發起方與所述被動接收方相互發送保護報文檢測隧道狀態;當所述主動發起方檢測到隧道故障時,所述主動發起方通過所述第三接口與所述被動接收方建立新的GRE隧道。所述主動發起方與所述被動接收方相互發送保護報文檢測隧道狀態包括所述主動發起方與被動接收方分別向對端發送保活報文;若在預設時間內沒有收到對端的回應報文、或者回應報文中攜帶的GRE隧道源IP 地址與本地GRE隧道目的IP地址不同,則獲知所述GRE隧道異常。所述主動發起方檢測到隧道故障之后,還包括所述主動發起方定時通過所述第一接口發送GRE隧道探詢報文;如果連續收到探詢應答報文,則通過所述第一接口重新與所述被動接收方建立 GRE隧道;若當前通過所述第三接口與所述被動接收方建立新的GRE隧道尚未成功,則停止 所述新的GRE隧道的建立,若所述新的GRE隧道已經建立成功,則向所述被動接收方發送所 述新的GRE隧道的撤銷報文,撤銷所述新的GRE隧道。本發明提供一種動態GRE隧道建立的設備,該設備應用于包括動態GRE隧道的主 動發起方與被動接收方的系統中,該設備作為所述主動發起方包括動態獲取IP地址的第 一接口,所述被動接收方包括具有固定IP地址的第二接口,該設備包括配置單元,用于配置動態GRE隧道的源IP地址為所述第一接口的IP地址、動態 GRE隧道的目的地址為所述第二接口的IP地址;探詢單元,與所述配置單元連接,用于通過所述第一接口向所述被動接收方發送 以所述第一接口的IP地址為動態GRE隧道的源IP地址的動態GRE隧道探詢報文;通告單元,與所述探詢單元連接,用于接收到所述被動接收方對所述動態GRE隧 道探詢報文發送的探詢應答報文后,通過所述第一接口向所述被動接收方發送以所述第一 接口的IP地址為動態GRE隧道的源IP地址的動態GRE隧道UP通告;隧道建立單元,與所述通告單元連接,用于接收所述被動接收方對所述動態GRE 隧道UP通告的UP通告應答報文,完成所述第一接口與所述第二接口之間動態GRE隧道的 建立。所述配置單元還用于配置所述設備的身份標識和認證密鑰,由所述探詢單元在動態GRE隧道探詢報文 中攜帶所述身份標識和認證密鑰。所述設備還具有動態獲取IP地址的第三接口,所述設備還包括檢測單元,用于所述設備通過所述第一接口與所述第二接口建立GRE隧道成功 時,向所述被動接收方發送保護報文檢測隧道狀態;第二隧道建立單元,與所述檢測單元連接,用于所述檢測單元檢測到所述第一接 口與所述第二接口之間的GRE隧道故障時、或者所述設備通過所述第一接口與所述第二接 口建立GRE隧道失敗時,通過所述第三接口請求與所述被動接收方建立GRE隧道。所述檢測單元還用于向所述被動接收方發送保活報文;若在預設時間內沒有收到對端的回應報文、或者回應報文中攜帶的GRE隧道源IP地址與本地GRE隧道目的IP地址不同,判斷所述GRE
隧道故障。所述檢測單元還用于當所述設備通過所述第一接口與所述第二接口建立GRE隧道失敗后,定時通過所述第一接口發送GRE隧道探詢報文;如果連續收到探詢應答報文,則 獲知到所述第一接口恢復正常,并將檢測結果通知給所述探詢單元和第二隧道建立單元;所述探詢單元,用于接收到所述檢測單元的通知后,重新通過所述第一接口向所述被動接收方發送動態GRE隧道探詢報文;所述第二隧道建立單元,用于接收到所述檢測單元的通知后,若此時新的GRE隧 道尚未建立成功,則停止建立,若新的GRE隧道已經建立成功,通知所述第二隧道建立單元 向所述被動接收方發送所述新的GRE隧道的撤銷報文。本發明提供一種動態GRE隧道建立的設備,該設備應用于包括動態GRE隧道的主 動發起方與被動接收方的系統中,所述主動發起方包括動態獲取IP地址的第一接口,該設 備作為所述被動接收方包括具有固定IP地址的第二接口,該設備包括配置單元,用于配置動態GRE隧道的源IP地址為所述第二接口的IP地址、動態 GRE隧道的目的地址為動態方式;接收單元,用于通過所述第二接口接收所述主動發起方發送的攜帶所述第一接口 的IP地址的動態GRE隧道探詢報文、或者動態GRE隧道UP通告;認證單元,與所述接收單元連接,用于對所述接收單元接收的動態GRE隧道探詢 報文、或者動態GRE隧道UP通告進行認證;發送單元,與所述認證單元連接,用于當所述動態GRE隧道探詢報文通過所述認 證單元的認證時,根據所述第一接口的IP地址向所述主動發起方發送探詢應答報文;當所 述動態GRE隧道UP通告通過所述認證單元的認證時,根據所述第一接口的IP地址向所述 主動發起方發送UP通告應答報文。所述配置單元還用于配置與所述主動發起方相同的身份標識和認證密鑰;所述認證單元還用于根據所述動態GRE隧道探詢報文或者動態GRE隧道UP通告中攜帶的身份標識查 找對應的認證密鑰;如果查找到對應的認證密鑰,根據該認證密鑰對所述動態GRE隧道探詢報文或者 所述動態GRE隧道UP通告進行認證;如果認證結果與所述動態GRE隧道探詢報文或者所述 動態GRE隧道UP通告中攜帶的認證結果相同,判斷認證通過,否則判斷認證失敗。還包括比較單元,與所述接收單元連接,用于當所述接收單元重復接收到動態GRE隧道 UP通告時,比較重復收到的動態GRE隧道UP通告中攜帶的源IP地址相同;探測單元,與所述比較單元連接,用于所述比較單元比較結果為不同時,向在先收 到的動態GRE隧道探詢報文中攜帶的源IP地址發送動態GRE隧道探詢報文;所述發送單元與所述探測單元連接,用于所述探測單元在預設時間內沒有接收到 GRE隧道探詢響應報文時,回應在后收到的動態GRE隧道UP通告,并將所述在后收到的動態 GRE隧道UP通告中攜帶的源IP地址作為動態GRE隧道的目的IP地址;所述發送單元還用于所述比較單元比較結果為相同時,直接向所述主動發起方 發送UP通告應答報文。與現有技術相比,本發明至少具有以下優點本發明中,獲取動態IP地址的設備主動向對端設備發起GRE隧道的探詢請求,在通過對端設備的認證后實現與對端設備建立動態GRE隧道。
圖1是現有技術中傳統GRE隧道組網示意圖;圖2是現有技術中傳統路由切換組網圖示意圖;圖3是現有技術中3G網絡鏈路備份組網示意圖;圖4是本發明提供的動態GRE隧道建立的方法流程示意圖;圖5是本發明應用場景中動態GRE隧道建立的方法示意圖;圖6是本發明應用場景中動態GRE控制報文格式示意圖;圖7是本發明應用場景中動態GRE隧道備份的方法示意圖;圖8是本發明應用場景中3G網絡主備鏈路切換的組網示意圖;圖9是本發明應用場景中3G網絡主備鏈路切換的流程示意圖;圖10是本發明提供的動態GRE隧道建立的設備的結構示意圖;圖11是本發明提供的動態GRE隧道建立的設備的另一結構示意圖。
具體實施例方式本發明的核心思想是由動態獲取接口 IP地址的設備主動發起GRE隧道的建立, 提供動態獲取IP地址的設備建立動態GRE隧道的方式,并基于動態GRE隧道實現鏈路備 份。本發明提供一種動態GRE隧道建立的方法,該方法應用于包括動態GRE隧道的主 動發起方與被動接收方的系統中,所述主動發起方包括動態獲取IP地址的第一接口,所述 被動接收方包括具有固定IP地址的第二接口,如圖4所示,該方法進一步包括步驟401,所述主動發起方通過所述第一接口向所述被動接收方發送動態GRE隧 道探詢報文;步驟402,所述被動接收方對所述動態GRE隧道探詢報文進行認證,認證通過后向 所述主動發起方發送探詢應答報文;步驟403,所述主動發起方在接收到所述探詢應答報文后,通過所述第一接口向所 述被動接收方發送動態GRE隧道UP通告;步驟404,所述被動接收方對所述動態GRE隧道UP通告進行認證,認證通過后向所 述主動發起方發送UP通告應答報文,建立所述第一接口與所述第二接口之間的動態GRE隧 道。下面結合具體應用場景詳細介紹本發明提供的動態GRE隧道建立的方法,該場景 中包括網絡設備A和B,網絡設備A上的接口 1動態獲取IP地址,網絡設備B上與接口 1對 應的建立GRE隧道的接口具有固定IP地址,如圖5所示,該方法包括以下步驟步驟501,網絡設備A上啟動動態GRE隧道功能,并將GRE隧道配置為主動發起方。具體的,網絡設備A上的接口 1動態獲取IP地址,例如通過3G方式獲取。網路設備A配置接口 1的IP地址作為Turmel的源IP地址,Tunnel的目的地址為網絡設備B的 外網口接口地址202. 100. 0. 100。網絡設備A還配置隧道身份標識ID和認證密鑰key。步驟502,網絡設備B上啟動動態GRE隧道功能,并將GRE隧道配置為被動接收方。
網絡設備B配置具有固定IP地址的外網口地址為Turmel的源IP地址,Turmel的 目的地址配置為動態方式,配置隧道身份標識ID (該ID必須與網絡設備A上配置的身份標 識ID —致),和認證密鑰key (該key必須與網絡設備B的認證密鑰key —致)。步驟503,網絡設備A上檢測到接口 1的IP地址UP,向對端發送動態GRE隧道探 詢報文。 當網絡設備A的接口 1獲取到IP地址并UP后,網絡設備A立即通過接口 1向網 絡設備B發送動態GRE隧道探詢報文。當網絡設備A的接口 1無法獲取到IP地址時,網絡 設備A隔一段時間后再次嘗試。其中,本發明提供的動態GRE控制報文格式如圖6所示,其中,字體1是新增標志 位表示當前是動態GRE隧道控制報文,攜帶該標志位的GRE報文攜帶如字體2格式的字段, 該字段的詳細描述如下Flag 標志動態GRE通告類型(2個字節)Flag為0x01表示動態GRE隧道UP通告報文Flag為0x02表示動態GRE隧道UP通告應答報文
Flag為0x04表示動態GRE隧道探詢報文Flag為0x08表示動態GRE隧道探詢應答報文Flag為0x10表示動態GRE隧道保活報文Flag為0x20表示動態GRE隧道保活應答報文Flag為0x40表示動態GRE隧道地址撤銷報文ID 隧道配置的身份標識ID (2字節)Tunnel Source IP 當前動態GRE隧道的源IP地址(4字節)HMAC Authentication 使用隧道配置的認證密鑰key對該報文的第一個字節到 Tunnel Source IP字段的最后一個字節進行HMAC認證后的認證結果(16字節)。網絡設備A向網絡設備B發送動態GRE隧道探詢報文時,將Flag標志位置0x04、 Tunnel Source IP 置接口 1 的 IP 地址。網絡設備A發送動態GRE隧道探詢報文后,等待網絡設備B回應動態GRE隧道探 詢應答報文。如果等待一段時間(根據需要預先設置)后仍接收不到網絡設備B的回應, 則再次向網絡設備B發送動態GRE隧道探詢報文。步驟504,網絡設備B接收動態GRE隧道探詢報文,回應動態GRE隧道探詢應答報文。網絡設備B接收到動態GRE隧道探詢應答報文后,進行如下的處理獲取報文的身 份ID,根據該身份ID查找到本設備配置相同身份ID的隧道;使用隧道配置的認證密鑰key 對該報文的第一個字節到Tunnel Source IP字段的最后一個字節進行HMAC認證,認證結 果與該報文攜帶最后16個字節內容一致,則認為該報文合法,立即向網絡設備A回復動態 GRE隧道探詢應答報文。該探詢應答報文的格式為將Flag標志位置0x04,Tunnel Source IP仍然設置動態GRE隧道探詢報文攜帶的Tunnel Source IP地址。步驟505,網絡設備A接收到網絡設備B發送的動態GRE隧道探詢應答報文,向網 絡設備B發送動態GRE隧道UP通告。動態GRE隧道UP通告將Flag標志位置0x01,Tunnel Source IP仍是動態GRE隧道探詢報文攜帶的Tunnel Source IP地址,并對報文進行HMAC認證。如果等待一段時間 后仍接收不到網絡設備B的回應,則再次向網絡設備B發送動態GRE隧道UP通告。步驟506,網絡設備B接收動態GRE隧道UP通告,回應動態GRE隧道UP通告應答, 此時網絡設備B認為GRE隧道UP,網絡設備A接收到動態GRE隧道UP通告應答后認為動態 GRE隧道UP。網絡設備B接收到動態GRE隧道UP通告后,進行如下的處理獲取報文的身份ID, 根據該身份ID查找到本設備配置相同身份ID的隧道;使用HMAC認證算法驗證報文合法 性,將報文里攜帶的Tunnel Source IP地址作為本端的 動態GRE隧道Turmel的目的IP地 址,并立即向網絡設備A發送動態GRE隧道UP通告回應報文。該UP通告回應報文的格式 為將Flag標志位置0x02,Tunnel Source IP仍然是動態GRE隧道UP通告里攜帶的Tunnel SourceIP 地址。其中,如果網絡設備B重復接收到動態GRE隧道UP通告,而且動態GRE隧道UP通 告里所攜帶的Tunnel Source IP與之前的相同,則立即回應動態GRE隧道UP通告應答報 文;如果網絡設備B重復接收到的動態GRE隧道UP通告里所攜帶的Tunnel Source IP不 相同,即在后接收的動態GRE隧道UP通告里攜帶的Tunnel Source IP與之前的不同,則此 時可能有鏈路更換,或者有攻擊設備發送攻擊報文等,則網絡設備B向之前的IP地址發送 動態GRE隧道探詢報文。如果能接收到回應,則不回應當前的動態GRE隧道UP通告,本端 也不做Turmel目的IP地址替換;如果不能接收到回應,則立即回應動態GRE隧道UP通告 回應報文,并將當前報文里攜帶的Tunnel Source IP地址作為本端的動態GRE隧道Tunnel 的目的IP地址。步驟507,網絡設備A和網絡設備B通過已經UP的動態GRE隧道定時向對端發送 動態GRE隧道保活報文,檢測動態GRE隧道是否正常。動態GRE隧道保活報文將Flag標志位置0x10,Tunnel Source IP為動態GRE隧 道的Turmel源IP地址,并對報文進行HMAC認證。接收到對端發來的合法的動態GRE隧道保活報文,如果本端動態GRE隧道正常,動 態GRE隧道的Turmel的目的地址是保活報文里攜帶的TurmelSource IP,則立即回應動態 GRE隧道保活應答報文。如果本端動態GRE隧道不正常或者動態GRE隧道的Turmel的目的 地址與保活報文里攜帶的TurmelSource IP不一致,則不給以響應。其中,本端動態GRE隧 道不正常的情況包括端口 down、IP地址丟失等情況。下面詳細介紹本發明提供的動態GRE隧道備份的方法,仍以圖5對應的場景為例, 如圖7所示,GRE隧道備份的方法包括以下步驟步驟701,網絡設備A上啟動動態GRE隧道功能,將GRE隧道配置為主動發起方并 啟動隧道備份機制。其中,網絡設備A上的接口 1和接口 2動態獲取IP地址,網絡設備A配置接口 1的 IP地址作為Tunnel的主源IP地址,接口 2的IP地址作為Tunnel的備份源IP地址,Tunnel 的目的地址為網絡設備B的外網接口地址,該外網接口具有固定IP地址202. 100. 0. 100,在 網絡設備A和B上建立GRE隧道的接口上配置隧道身份標識ID和認證密鑰key。步驟702,網絡設備B上啟動動態GRE隧道功能,并將GRE隧道配置為被動接收方。網絡設備B配置具有固定IP地址的外網口地址為Turmel的源IP地址,Turmel的目的地址配置為動態方式,配置隧道身份標識ID (該ID必須與網絡設備A上配置的身份標識ID —致),和認證密鑰key (該key必須與網絡設備B的認證密鑰key —致)。步驟703,網絡設備A上檢測到本端動態GRE隧道Turmel主源IP地址UP,使用 Tunnel主源IP地址向對端發送動態GRE隧道探詢報文;如果預設次數內連續不能接收到 回應、或者接口 1無法獲取IP地址時,執行步驟708。具體的,當網絡設備A的接口 1獲取到IP地址并UP后,網絡設備A立即通過接口 1向網絡設備B發送動態GRE隧道探詢報文,并等待網絡設備B回應動態GRE隧道探詢應 答報文。如果等待一段時間后仍接收不到網絡設備B的回應,則再次向網絡設備B發送動 態GRE隧道探詢報文,如果連續幾次都不能接收到回應,網絡設備A認為主鏈路異常,執行 步驟708 ;當網絡設備A的接口 1無法獲取IP地址,網絡設備A認為主鏈路異常,執行步驟 708。步驟704,網絡設備B接收動態GRE隧道探詢報文,回應動態GRE隧道探詢應答報文。步驟705,網絡設備A接收到網絡設備B的向對端發送動態GRE隧道探詢應答報 文,立即向網絡設備B發送動態GRE隧道UP通告,并等待網絡設備B回應動態GRE隧道UP 通告應答報文。如果預設次數內連續無法接收到回應則執行步驟708。如果等待一段時間后仍接收不到網絡設備B的回應,則再次向網絡設備B發送動 態GRE隧道UP通告。如果連續幾次都不能接收到回應,執行步驟708。步驟706,網絡設備B接收動態GRE隧道UP通告,回應動態GRE隧道UP通告應答, 此時網絡設備B認為GRE隧道UP。網絡設備B將此時動態GRE隧道UP通告里攜帶的Tunnel Source IP地址即網絡 設備A的Tunnel主源IP地址作為本端動態GRE隧道的Tunnel目的IP地址。步驟707,網絡設備A和網絡設備B對已經UP的動態GRE隧道上定時向對端發送 動態GRE隧道保活報文,檢測動態GRE隧道是否正常。如果網絡設備A使用動態GRE隧道 的Turmel主源IP地址向網絡設備B發送的保活報文多次得不到應答,網絡設備A認為主 鏈路異常,執行步驟708 ;如果網絡設備B對網絡設備A的Turmel主源IP地址發送的保活 報文多次得不到應答,網絡設備B認為主鏈路異常,則進行步驟710。步驟708,網絡設備A將動態GRE隧道Turmel源IP地址從主源IP地址向備份源 地址切換,并定期檢測主鏈路是否恢復;檢測到主鏈路恢復時執行步驟709。具體的,如果網絡設備A的備份源IP地址即接口 2的IP地址UP,則網絡設備A使 用備份源IP地址即接口 2的IP地址與網絡設備B建立新的動態GRE隧道。如果網絡設備A的備份源IP地址接口 2的IP地址Down,則網絡設備A在主鏈路 恢復前需要每隔一段時間嘗試使用備份源IP地址去建立新的動態GRE隧道。無論網絡設 備A使用備份源IP地址是否能建立新的動態GRE隧道,網絡設備A都必須定時檢測主源IP 地址是否UP并使用主源IP地址即接口 1的IP地址定時向網絡設備B發送動態GRE隧道 探詢報文檢測主鏈路是否恢復,如果多次發送動態GRE隧道探詢報文都能得到回應,則認 為主鏈路恢復,此時進行步驟709。如果網絡設備A使用備份源IP地址還未建立新的動態GRE隧道,而此時主鏈路恢 復,網絡設備A立即終止動態GRE隧道Turmel源IP地址從主源IP地址向備份源地址切換。
步驟709,網絡設備A將動態GRE隧道Turmel源IP地址從備份IP地址向主源地 址切換。如果當前網絡設備A使用備份源IP地址的動態GRE隧道UP,則立即向網絡設備B 發送動態GRE隧道地址撤銷報文(將Flag標志位置0x40,TunnelSource IP是備份源IP 地址即3G接口 2的IP地址)。如果當前網絡設備A使用備份源IP地址的動態GRE隧道 Down,立即終止動態GRE隧道Turmel源IP地址從主源IP地址向備份源地址切換。完成上 述的處理后,網絡設備A使用主源IP地址即接口 1的IP地址與網絡設備B建立新的動態 GRE隧道。步驟710,網絡設備B進入沉默等待,根據后續收到的動態GRE隧道報文進行相應
處理。具體的,當網絡設備B認為主鏈路異常后,網絡設備B進入沉默等待。沉默等待期 間,如果收到動態GRE隧道探詢報文立即回復,同時檢查當前的動態GRE隧道探詢報文攜帶 的Tunnel Source IP地址是否與本端的動態GRE隧道Tunnel目的地址一致,如果一致,則 認為主鏈路恢復。沉默等待期間,如果收到新的動態GRE隧道UP通告報文,則按照步驟706 描述的步驟進行處理。當網絡設備B接收到動態GRE隧道地址撤銷報文,檢查當前的動態 GRE隧道探詢報文攜帶的Tunnel Source IP地址是否與本端的動態GRE隧道Tunnel目的 地址一致,如果一致響應撤銷報文,將本端的動態GRE隧道的Turmel目的地址取消,動態 GRE隧道Down,如果不一致則不作處理。下面結合一具體應用場景介紹動態GRE隧道實現3G網絡主備鏈路切換,如圖8所 示,該網絡中包括網絡設備A、B,網絡設備A上配置3G接口 1和2,網絡設備B的外網口 IP 地址為202. 100. 0. 100,該方法具體如圖9所示,包括以下步驟步驟901,網絡設備A啟動動態GRE隧道功能,將GRE隧道配置為主動發起方并啟 動隧道備份機制。Tunnel的主源IP地址為3G接口 1的IP地址,Tunnel的備份IP地址為3G接口 2的IP地址,Tunnel的目的IP地址為網絡設備B的外網口地址202. 100. 0. 100。此時3G 接口 1和3G接口 2的IP地址是動態分配的,故網絡設備A上只需要指定主源接口和備份 源接口即可。步驟902,網絡設備B啟動動態GRE隧道功能,并配置為被動接收。Tunnel的源IP地址為外網口地址202. 100. 0. 100,Tunnel的目的IP地址為動態方式。步驟903,網絡設備A上配置路由,指定某條數據流的下一跳出接口為Turmel。如果所有的數據流都需要主備鏈路,那么配置缺省路由,指定所有數據的下一跳 出接口為Tunnel即可。步驟904,網絡設備B上配置路由,指定某條數據流的下一跳出接口為Turmel。如果所有的數據流都需要主備鏈路,那么配置缺省路由,指定所有數據的下一跳 出接口為Tunnel即可。 步驟905,當主鏈路UP,網絡設備A傳輸的數據使用3G接口 1的IP地址作為源IP 地址,網絡設備B的202. 100. 0. 100的IP地址作為目的IP地址進行GRE封裝。網絡設備 B傳輸的數據使用202. 100. 0. 100的IP地址作為源IP地址,使用網絡設備A的3G接口 1的IP地址作為目的IP地址進行GRE封裝。步驟906,當主鏈路Down,備份鏈路UP,網絡設備A傳輸的數據使用3G接口 2的 P地址作為源IP地址,網絡設備B的202. 100. 0. 100的IP地址作為目的IP地址進行GRE 封裝。網絡設備B傳輸的數據使用202. 100. 0. 100的IP地址作為源IP地址,使用網絡設 備A的3G接口 2的IP地址作為目的IP地址進行GRE封裝。網絡設備A和網絡設備B同 時實現主備鏈路的切換。本發明還提供一種動態GRE隧道建立的設備,該設備應用于包括動態GRE隧道的 主動發起方與被動接收方的系統中,該設備作為所述主動發起方包括動態獲取IP地址的 第一接口,所述被動接收方包括具有固定IP地址的第二接口,如圖10所示,該設備包括配置單元11,用于配置動態GRE隧道的源IP地址為所述第一接口的IP地址、動態 GRE隧道的目的地址為所述第二接口的IP地址;探詢單元12,與所述配置單元11連接,用于通過所述第一接口向所述被動接收方 發送以所述第一接口的IP地址為動態GRE隧道的源IP地址的動態GRE隧道探詢報文;通告單元13,與所述探詢單元12連接,用于接收到所述被動接收方對所述動態 GRE隧道探詢報文發送的探詢應答報文后,通過所述第一接口向所述被動接收方發送以所 述第一接口的IP地址為動態GRE隧道的源IP地址的動態GRE隧道UP通告;隧道建立單元14,與所述通告單元13連接,用于接收所述被動接收方對所述動態 GRE隧道UP通告的UP通告應答報文,完成所述第一接口與所述第二接口之間動態GRE隧道 的建立。所述配置單元11還用于配置所述設備的身份標識和認證密鑰,由所述探詢單元 12在動態GRE隧道探詢報文中攜帶所述身份標識和認證密鑰。本發明提供的設備還具有動態獲取IP地址的第三接口,所述設備還包括檢測單元15,用于所述設備通過所述第一接口與所述第二接口建立GRE隧道成功 時,向所述被動接收方發送保護報文檢測隧道狀態;具體的,所述檢測單元15向所述被動 接收方發送保活報文;若在預設時間內沒有收到對端的回應報文、或者回應報文中攜帶的 GRE隧道源IP地址與本地GRE隧道目的IP地址不同,判斷所述GRE隧道故障。第二隧道建立單元16,與所述檢測單元15連接,用于所述檢測單元檢測到所述第 一接口與所述第二接口之間的GRE隧道故障時、或者所述設備通過所述第一接口與所述第 二接口建立GRE隧道失敗時,通過所述第三接口請求與所述被動接收方建立GRE隧道。本發明中,所述檢測單元15還用于當所述設備通過所述第一接口與所述第二接 口建立GRE隧道失敗后,定時通過所述第一接口發送GRE隧道探詢報文;如果連續收到探詢 應答報文,則獲知到所述第一接口恢復正常,并將檢測結果通知給所述探詢單元和第二隧 道建立單元;所述探詢單元12,用于接收到所述檢測單元15的通知后,重新通過所述第一 接口向所述被動接收方發送動態GRE隧道探詢報文;所述第二隧道建立單元16,用于接收 到所述檢測單元15的通知后,若此時新的GRE隧道尚未建立成功,則停止建立,若新的GRE 隧道已經建立成功,向所述被動接收方發送所述新的GRE隧道的撤銷報文。本發明提供一種動態GRE隧道建立的設備,該設備應用于包括動態GRE隧道的主 動發起方與被動接收方的系統中,所述主動發起方包括動態獲取IP地址的第一接口,該設備作為所述被動接收方包括具有固定IP地址的第二接口,如圖11所示,該設備包括配置單元21,用于配置動態GRE隧道的源IP地址為所述第二接口的IP地址、動態 GRE隧道的目的地址為動態方式;接收單元22,用于通過所述第二接口接收所述主動發起方發送的攜帶所述第一接 口的IP地址的動態GRE隧道探詢報文、或者動態GRE隧道UP通告;認證單元23,與所述接收單元22連接,用于對所述接收單元22接收的動態GRE隧 道探詢報文、或者動態GRE隧道UP通告進行認證;發送單元24,與所述認證單元23連接,用于當所述動態GRE隧道探詢報文通過所 述認證單元的認證時,根據所述第一接口的IP地址向所述主動發起方發送探詢應答報文; 當所述動態GRE隧道UP通告通過所述認證單元的認證時,根據所述第一接口的IP地址向 所述主動發起方發送UP通告應答報文。所述配置單元21還用于配置與所述主動發起方相同的身份標識和認證密鑰;所述認證單元23還用于根據所述動態GRE隧道探詢報文或者動態GRE隧道UP通告中攜帶的身份標識查 找對應的認證密鑰;如果查找到對應的認證密鑰,根據該認證密鑰對所述動態GRE隧道探詢報文或者 所述動態GRE隧道UP通告進行認證;如果認證結果與所述動態GRE隧道探詢報文或者所述 動態GRE隧道UP通告中攜帶的認證結果相同,判斷認證通過,否則判斷認證失敗。本發明提供的設備,還包括比較單元25,與所述接收單元22連接,用于當所述接收單元重復接收到動態GRE 隧道UP通告時,比較重復收到的動態GRE隧道UP通告中攜帶的源IP地址相同;探測單元26,與所述比較單元25連接,用于所述比較單元比較結果為不同時,向 在先收到的動態GRE隧道探詢報文中攜帶的源IP地址發送動態GRE隧道探詢報文;所述發送單元24與所述探測單元26連接,用于所述探測單元在預設時間內沒有 接收到GRE隧道探詢響應報文時,回應在后收到的動態GRE隧道UP通告,并將所述在后收 到的動態GRE隧道UP通告中攜帶的源IP地址作為動態GRE隧道的目的IP地址;所述發送 單元24還用于當所述比較單元25比較結果為相同時,直接向所述主動發起方發送UP通告 應答報文。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可借助 軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更 佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的 部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若 干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發 明各個實施例所述的方法。本領域技術人員可以理解附圖只是一個優選實施例的示意圖,附圖中的模塊或流 程并不一定是實施本發明所必須的。本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分 布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上 述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。以上公開的僅為本發明的幾個具體實施例,但是,本發明并非局限于此,任何本領域的技術人員能思之的變化都應落入本發明的保護范圍。
權利要求
一種動態GRE隧道建立的方法,其特征在于,該方法應用于包括動態GRE隧道的主動發起方與被動接收方的系統中,所述主動發起方包括動態獲取IP地址的第一接口,所述被動接收方包括具有固定IP地址的第二接口,該方法進一步包括在所述主動發起方配置動態GRE隧道的源IP地址為所述第一接口的IP地址、動態GRE隧道的目的地址為所述第二接口的IP地址,在所述被動接收方配置動態GRE隧道的源IP地址為所述第二接口的IP地址、動態GRE隧道的目的地址為動態方式;所述主動發起方通過所述第一接口向所述被動接收方發送以所述第一接口的IP地址為動態GRE隧道的源IP地址的動態GRE隧道探詢報文;所述被動接收方對所述動態GRE隧道探詢報文進行認證,認證通過后根據所述第一接口的IP地址向所述主動發起方發送探詢應答報文;所述主動發起方在接收到所述探詢應答報文后,通過所述第一接口向所述被動接收方發送以所述第一接口的IP地址為動態GRE隧道的源IP地址的動態GRE隧道UP通告;所述被動接收方對所述動態GRE隧道UP通告進行認證,認證通過后根據所述第一接口的IP地址向所述主動發起方發送UP通告應答報文,建立所述第一接口與所述第二接口之間的動態GRE隧道。
2.如權利要求1所述的方法,其特征在于,還包括在所述主動發起方和被動接收方配 置相同的身份標識和認證密鑰;所述動態GRE隧道探詢報文和所述動態GRE隧道UP通告中分別攜帶所述主動發起方 配置的身份標識和根據所述認證密鑰對所述動態GRE隧道探詢報文和所述動態GRE隧道UP 通告進行認證后的認證結果;所述被動接收方對所述動態GRE隧道探詢報文或者動態GRE隧道UP通告進行認證包 括所述被動接收方根據所述動態GRE隧道探詢報文或者動態GRE隧道UP通告中攜帶的身 份標識查找對應的認證密鑰;如果查找到對應的認證密鑰,所述被動接收方根據該認證密 鑰對所述動態GRE隧道探詢報文或者所述動態GRE隧道UP通告進行認證;如果認證結果與 所述動態GRE隧道探詢報文或者所述動態GRE隧道UP通告中攜帶的認證結果相同,所述被 動接收方判斷認證通過。
3.如權利要求1所述的方法,其特征在于,所述被動接收方對所述動態GRE隧道UP通 告進行認證包括當所述被動接收方重復接收到動態GRE隧道UP通告時,如果重復收到的動態GRE隧道UP通告中攜帶的源IP地址相同,則所述被動接收方直 接向所述主動發起方發送UP通告應答報文;如果在后收到的動態GRE隧道UP通告中攜帶的源IP地址與之前的不同,所述被動接 收方向在先收到的動態GRE隧道UP通告中攜帶的源IP地址發送動態GRE隧道探詢報文; 如果預定時間內沒有接收到GRE隧道探詢響應報文,所述被動接收方回應在后收到的動態 GRE隧道UP通告,將所述在后收到的動態GRE隧道UP通告中攜帶的源IP地址作為動態GRE 隧道的目的IP地址;如果預定時間內接收到GRE隧道探詢響應報文,所述被動接收方不回 應所述在后收到的動態GRE隧道UP通告。
4.如權利要求1-3任一項所述的方法,其特征在于,所述主動發起方通過所述第一接 口向所述被動接收方發送動態GRE隧道探詢報文之后,還包括若預設時間內沒有收到響應報文,所述主動發起方重新向所述被動接收方發送動態 GRE隧道探詢報文。
5.如權利要求1-3任一項所述的方法,其特征在于,所述主動發起方還包括動態獲取 IP地址的第三接口,該方法進一步包括如果所述主動發起方通過所述第一接口與所述被動接收方建立GRE隧道失敗,所述主 動發起方通過所述第三接口請求與所述被動接收方建立GRE隧道;如果所述主動發起方通過所述第一接口與所述被動接收方建立GRE隧道成功,所述主 動發起方與所述被動接收方相互發送保護報文檢測隧道狀態;當所述主動發起方檢測到隧 道故障時,所述主動發起方通過所述第三接口與所述被動接收方建立新的GRE隧道。
6.如權利要求5所述的方法,其特征在于,所述主動發起方與所述被動接收方相互發 送保護報文檢測隧道狀態包括所述主動發起方與被動接收方分別向對端發送保活報文;若在預設時間內沒有收到對端的回應報文、或者回應報文中攜帶的GRE隧道源IP地址 與本地GRE隧道目的IP地址不同,則獲知所述GRE隧道異常。
7.如權利要求5所述的方法,其特征在于,所述主動發起方檢測到隧道故障之后,還包括所述主動發起方定時通過所述第一接口發送GRE隧道探詢報文; 如果連續收到探詢應答報文,則通過所述第一接口重新與所述被動接收方建立GRE隧 道;若當前通過所述第三接口與所述被動接收方建立新的GRE隧道尚未成功,則停止所述 新的GRE隧道的建立,若所述新的GRE隧道已經建立成功,則向所述被動接收方發送所述新 的GRE隧道的撤銷報文,撤銷所述新的GRE隧道。
8.一種動態GRE隧道建立的設備,其特征在于,該設備應用于包括動態GRE隧道的主動 發起方與被動接收方的系統中,該設備作為所述主動發起方包括動態獲取IP地址的第一 接口,所述被動接收方包括具有固定IP地址的第二接口,該設備包括配置單元,用于配置動態GRE隧道的源IP地址為所述第一接口的IP地址、動態GRE隧 道的目的地址為所述第二接口的IP地址;探詢單元,與所述配置單元連接,用于通過所述第一接口向所述被動接收方發送以所 述第一接口的IP地址為動態GRE隧道的源IP地址的動態GRE隧道探詢報文;通告單元,與所述探詢單元連接,用于接收到所述被動接收方對所述動態GRE隧道探 詢報文發送的探詢應答報文后,通過所述第一接口向所述被動接收方發送以所述第一接口 的IP地址為動態GRE隧道的源IP地址的動態GRE隧道UP通告;隧道建立單元,與所述通告單元連接,用于接收所述被動接收方對所述動態GRE隧道 UP通告的UP通告應答報文,完成所述第一接口與所述第二接口之間動態GRE隧道的建立。
9.如權利要求8所述的設備,其特征在于,所述配置單元還用于配置所述設備的身份標識和認證密鑰,由所述探詢單元在動態GRE隧道探詢報文中攜 帶所述身份標識和認證密鑰。
10.如權利要求8所述的設備,其特征在于,所述設備還具有動態獲取IP地址的第三接口,所述設備還包括檢測單元,用于所述設備通過所述第一接口與所述第二接口建立GRE隧道成功時,向 所述被動接收方發送保護報文檢測隧道狀態;第二隧道建立單元,與所述檢測單元連接,用于所述檢測單元檢測到所述第一接口與 所述第二接口之間的GRE隧道故障時、或者所述設備通過所述第一接口與所述第二接口建 立GRE隧道失敗時,通過所述第三接口請求與所述被動接收方建立GRE隧道。
11.如權利要求10所述的設備,其特征在于,所述檢測單元還用于向所述被動接收方發送保活報文;若在預設時間內沒有收到對端的回應報文、或者回 應報文中攜帶的GRE隧道源IP地址與本地GRE隧道目的IP地址不同,判斷所述GRE隧道 故障。
12.如權利要求10所述的設備,其特征在于,所述檢測單元還用于當所述設備通過所述第一接口與所述第二接口建立GRE隧道失 敗后,定時通過所述第一接口發送GRE隧道探詢報文;如果連續收到探詢應答報文,則獲知 到所述第一接口恢復正常,并將檢測結果通知給所述探詢單元和第二隧道建立單元;所述探詢單元,用于接收到所述檢測單元的通知后,重新通過所述第一接口向所述被 動接收方發送動態GRE隧道探詢報文;所述第二隧道建立單元,用于接收到所述檢測單元的通知后,若此時新的GRE隧道尚 未建立成功,則停止建立,若新的GRE隧道已經建立成功,向所述被動接收方發送所述新的 GRE隧道的撤銷報文。
13.一種動態GRE隧道建立的設備,其特征在于,該設備應用于包括動態GRE隧道的主 動發起方與被動接收方的系統中,所述主動發起方包括動態獲取IP地址的第一接口,該設 備作為所述被動接收方包括具有固定IP地址的第二接口,該設備包括配置單元,用于配置動態GRE隧道的源IP地址為所述第二接口的IP地址、動態GRE隧 道的目的地址為動態方式;接收單元,用于通過所述第二接口接收所述主動發起方發送的攜帶所述第一接口的IP 地址的動態GRE隧道探詢報文、或者動態GRE隧道UP通告;認證單元,與所述接收單元連接,用于對所述接收單元接收的動態GRE隧道探詢報文、 或者動態GRE隧道UP通告進行認證;發送單元,與所述認證單元連接,用于當所述動態GRE隧道探詢報文通過所述認證單 元的認證時,根據所述第一接口的IP地址向所述主動發起方發送探詢應答報文;當所述動 態GRE隧道UP通告通過所述認證單元的認證時,根據所述第一接口的IP地址向所述主動 發起方發送UP通告應答報文。
14.如權利要求13所述的設備,其特征在于,所述配置單元還用于配置與所述主動發 起方相同的身份標識和認證密鑰;所述認證單元還用于根據所述動態GRE隧道探詢報文或者動態GRE隧道UP通告中攜帶的身份標識查找對 應的認證密鑰;如果查找到對應的認證密鑰,根據該認證密鑰對所述動態GRE隧道探詢報文或者所述 動態GRE隧道UP通告進行認證;如果認證結果與所述動態GRE隧道探詢報文或者所述動態 GRE隧道UP通告中攜帶的認證結果相同,判斷認證通過,否則判斷認證失敗。
15.如權利要求13所述的設備,其特征在于,還包括比較單元,與所述接收單元連接,用于當所述接收單元重復接收到動態GRE隧道UP通 告時,比較重復收到的動態GRE隧道UP通告中攜帶的源IP地址是否相同;探測單元,與所述比較單元連接,用于所述比較單元比較結果為不同時,向在先收到的 動態GRE隧道探詢報文中攜帶的源IP地址發送動態GRE隧道探詢報文;所述發送單元與所述探測單元連接,用于所述探測單元在預設時間內沒有接收到GRE 隧道探詢響應報文時,回應在后收到的動態GRE隧道UP通告,并將所述在后收到的動態GRE 隧道UP通告中攜帶的源IP地址作為動態GRE隧道的目的IP地址;所述發送單元還用于所述比較單元比較結果為相同時,直接向所述主動發起方發送 UP通告應答報文。
全文摘要
本發明公開了一種動態GRE隧道建立的方法和設備,該方法包括主動發起方通過動態獲取IP地址的第一接口向所述被動接收方發送攜帶源IP地址的動態GRE隧道探詢報文;所述被動接收方對所述動態GRE隧道探詢報文進行認證,認證通過后以所述源IP地址向所述主動發起方發送探詢應答報文;所述主動發起方通過所述第一接口向所述被動接收方發送攜帶源IP地址的動態GRE隧道UP通告;所述被動接收方對所述動態GRE隧道UP通告進行認證,認證通過后以所述源IP地址向所述主動發起方發送UP通告應答報文,建立所述第一接口與所述第二接口之間的動態GRE隧道。本發明實現通過動態獲取IP地址的接口建立動態GRE隧道,并實現對動態GRE隧道的備份。
文檔編號H04W40/00GK101815106SQ20101014824
公開日2010年8月25日 申請日期2010年4月16日 優先權日2010年4月16日
發明者陳卡 申請人:杭州華三通信技術有限公司