專利名稱:一種4over6場景下的最優(yōu)隧道選擇方法
技術領域:
本發(fā)明屬于互聯(lián)網(wǎng)技術領域,涉及一種4oVer6場景下的最優(yōu)隧道選擇方法。
背景技術:
隨著互聯(lián)網(wǎng)的快速發(fā)展,各種設備對IP地址的需求越來越大,但目前IANA可分配的IPv4地址空間已經(jīng)耗竭。IPv6協(xié)議具有巨大的地址空間(21 ),分層的編址和路由機制,更好的端到端特性,更好的安全性和移動性支持等特性,是IPv4的替代協(xié)議。但由于 IPv4互聯(lián)網(wǎng)已經(jīng)具備了相當大的規(guī)模和廣泛的應用,因此IPv4和IPv6的長期共存和過渡將是必然的趨勢。由于IPv6設計之初并沒有考慮到IPv4向IPv6的平滑過渡,過渡過程中存在路由、可擴展性、狀態(tài)維護等諸多問題。當前隨著IPv6網(wǎng)絡的逐步建設和部署,IPv4網(wǎng)路的規(guī)模會漸漸的縮小,最終會導致一些孤立的IPv4網(wǎng)絡的出現(xiàn)。這些IPv4孤島在沒有其他過渡技術輔助的情況下,無法與外界的IPv4網(wǎng)絡通信。在這種情況下IPv6網(wǎng)絡將作為IPv4網(wǎng)絡之間互通的橋梁,IPv4 網(wǎng)絡中的主機可以通過IPV4-OVer-IPV6隧道來與外界的其它IPv4網(wǎng)絡進行通信。這種以IPv4-OVer-IPV6隧道方式實現(xiàn)IPv4網(wǎng)絡之間通信的過渡技術在現(xiàn)實網(wǎng)絡中得到了大量應用。其中一類廣泛部署使用的4oVer6隧道技術需要借助于各隧道端點上維護的封裝表來進行正確的封裝,此類需要維護映射狀態(tài)的4oVer6隧道技術已經(jīng)在因特網(wǎng)工程任務組(IETF)得到了標準化(RFC5565,RFC5747, RFC6333)。在這種有狀態(tài)的4over6隧道場景下,對一個IPv4孤島而言,可能會有多個4over6 隧道對端。當此4over6孤島中的主機想要訪問hternet中的某個站點時,會有存在選擇恰當隧道對端的問題。若將某一隧道對端設為默認的隧道對端使得所有的封裝分組都經(jīng)過這個相同的隧道對端,會存在路徑繞遠的情況,并且會因隧道對端的性能有限導致出現(xiàn)網(wǎng)絡的瓶頸節(jié)點。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術的不足,本發(fā)明的目的在于提供一種4oVer6場景下的最優(yōu)隧道選擇方法,主機或路由器設備利用各個已知的和4oVer6對端建立起的隧道,向目的節(jié)點發(fā)送探測報文,通過各探測報文主機或路由器設備可以得到通往某一目的節(jié)點的最優(yōu) 4over6隧道,此后去往同一目的網(wǎng)絡節(jié)點時,則可使用此信息進行封裝而無需再次探測。為了實現(xiàn)上述目的,本發(fā)明采用的技術方案是一種4over6場景下的最優(yōu)隧道選擇方法,在有狀態(tài)的4over6隧道場景下,一個 4over6隧道端點通過發(fā)送多個探測報文以選擇出到達IPv^nternet中某節(jié)點的最優(yōu)隧道對端,具體包括以下步驟步驟1,IPv4孤島中的主機和網(wǎng)絡設備獲取各4over6隧道對端的IPv6地址,并將這些IPv6地址存儲到4over6隧道對端表中;所述4OVer6隧道對端表中具有添加/刪除表項接口,用于在獲取到4OVer6隧道對端的IPv6地址時向4over6隧道對端表添加表項,或是得知某4over6隧道對端不再是一個有效對端時刪除其表項;步驟2,IPv4孤島中的主機或路由器設備在發(fā)送/轉(zhuǎn)發(fā)IPv4分組時,根據(jù)IPv4分組的目的地址在封裝表中進行匹配,若匹配成功則進行步驟4,否則進行步驟3 ;步驟3,對通往某網(wǎng)絡節(jié)點的最優(yōu)隧道選擇過程步驟3. 1,所述主機或路由器設備形成IPv4探測報文,報文的目的地址即步驟2所述IPv4分組的目的地址;步驟3. 2,所述主機或路由器設備根據(jù)4oVer6隧道對端表,將上述IPv4探測報文進行封裝,封裝目的地址為4over6隧道對端表中的各表項的4over6對端IPv6地址,根據(jù) 4over6隧道對端表中表項的條數(shù),需要形成對應個數(shù)的探測封裝報文,每個探測封裝報文的目的IPv6地址與一條4over6隧道對端表項對應;步驟3. 3,所述主機或路由器設備收到探測報文回復的信息,根據(jù)所回復的 4over6報文的源IPv6地址和源IPv4地址查找封裝表看是否有對應表項,若已經(jīng)含有對應表項則丟棄該報文,若沒有則進入步驟3. 4 ;步驟3. 4,所述主機或路由器設備將上述探測回復4oVer6報文的IPv6源地址和 IPv4源地址作為一個表項存入封裝表,進入步驟4發(fā)送環(huán)節(jié),發(fā)送對應的IPv4分組;步驟4,所述主機或路由器設備根據(jù)匹配的IPv6地址作為目的地址將步驟2所述 IPv4分組進行封裝,并發(fā)送該分組;步驟5,所述主機或路由器設備收到4oVer6分組的處理過程步驟5. 1,所述主機或路由器設備收到返回的4oVer6報文,判斷其是否為對已發(fā)送的探測報文的回復,若是對探測報文的回復則進入步驟3. 3,否則進入步驟5. 2 ;步驟5. 2,將所述4oVer6報文進行解封裝后,所述主機或路由器設備根據(jù)目的 IPv4地址確定是交由上層協(xié)議處理或是進行轉(zhuǎn)發(fā)。本發(fā)明使得在IPv4孤島中的主機或路由器設備在需要訪問IPv^nternet中某一網(wǎng)絡節(jié)點時能夠選擇最優(yōu)的隧道對端使得通信速度最快,在某一主機或一個孤島下的路由器上,實現(xiàn)了最優(yōu)4over6隧道選擇的同時,并不會引起全網(wǎng)的路由膨脹。
圖1為4over6最優(yōu)隧道選擇方法拓撲示意圖。圖2為4over6最優(yōu)隧道選擇方法流程圖。圖3-1為4over6最優(yōu)隧道選擇方法實施例步驟一。圖3-2為4over6最優(yōu)隧道選擇方法實施例步驟二。圖3-3為4over6最優(yōu)隧道選擇方法實施例步驟三。圖3-4為4over6最優(yōu)隧道選擇方法實施例步驟四。圖3-5為4over6最優(yōu)隧道選擇方法實施例步驟五。圖3-6為4over6最優(yōu)隧道選擇方法實施例步驟六。圖3-7為4over6最優(yōu)隧道選擇方法實施例步驟七。
具體實施方式
下面結合附圖和實施例對本發(fā)明做進一步詳細說明。如圖1所示,一個IPv4孤島有兩個4over6隧道對端R2和R3,當此4over6孤島中的主機或路由器設備Rl想要訪問hternet中的某個站點時,會有存在選擇恰當隧道對端的問題。若將某一隧道對端設為默認的隧道對端使得所有的封裝分組都經(jīng)過這個相同的隧道對端,會存在路徑繞遠的情況,并且會因隧道對端的性能有限導致出現(xiàn)網(wǎng)絡的瓶頸節(jié)點。如圖2所示,為本發(fā)明的方法流程圖,首先IPv4孤島中的主機和網(wǎng)絡設備獲取各 4over6隧道對端的IPv6地址,并將這些IPv6地址存儲到4oVer6隧道對端表中,然后發(fā)送 IPv4分組,根據(jù)IPv4分組的目的地址在封裝表中進行匹配,若匹配成功則根據(jù)匹配的IPv6 地址進行封裝發(fā)送,否則形成IPv4探測報文并封裝發(fā)送,再根據(jù)返回的報文看封裝表是否有匹配項,如果有則丟棄該探測報文,否則就將探測報文封裝頭源IPv6地址和源IPv4地址作為表項存入封裝表。下面結合圖3-1 3-7,舉例說明從獲取4over6隧道對端的IPv6地址直到收到響應報文后的處理的七個步驟。步驟一,如圖3-1所示,在IPv4孤島中有一臺主機或路由器設備R1,在本實施例中以路由器為例,該設備有一個接口接入到IPv6網(wǎng)絡中,同時有一個IPv4接口接入到 IPv4孤島;若對主機設備而言是有一個IPv4(虛)接口為上層IPv4應用提供服務。Rl的 IPv6地址為1000: :1, IPv4地址為10. 0. 0. 1 ;本實施例中有兩個4over6隧道對端,分別是 R2 (IPv6 地址為 2000 :1, IPv4 地址為 20. 0. 0. 1)和 R3 (IPv6 地址為 3000 :1, IPv4 地址為 30. 0. 0. 1)。初始時Rl上有一張4over6隧道對端表,表內(nèi)已存有4over6隧道對端R2和R3 的IPv6地址信息;同時還有一張封裝表,此封裝表不需配置默認隧道對端,初始時為空。步驟二,如圖3-2所示,IPv4孤島中的某臺主機向IPv^nternet中的某網(wǎng)絡節(jié)點發(fā)送IPv4報文,其源地址為10. 0. 0. 2,目的地址為40. 0. 0. 1。所述IPv4分組到達IPv4孤島的網(wǎng)關路由Rl。Rl收到所述IPv4分組后根據(jù)目的IPv4地址40. 0. 0. 1查詢封裝表,發(fā)現(xiàn)沒有匹配項。步驟三,如圖3-3所示,Rl由于沒有在封裝表中查找到匹配項,需要開始針對該目的網(wǎng)絡節(jié)點進行最優(yōu)隧道選擇過程R1形成IPv4探測報文,源地址為Rl本身的IPv4地址 10. 0. 0. 1,目的地址為目的網(wǎng)絡節(jié)點的IPv4地址40. 0. 0. 1,然后根據(jù)4over6隧道對端表中的所有表項將所述探測報文封裝多個,每個封裝的探測報文的源IPv6地址為Rl的IPv6地址,目的IPv6地址為4oVer6隧道對端表中各表項的IPv6地址。Rl然后將這些封裝的探測報文發(fā)到IPv6網(wǎng)絡。探測報文可以是但不限于PING報文。步驟四,如圖3-4所示,4over6隧道對端R2和R3收到了封裝的探測報文,R2將報文解封裝后,需要將源IPv4地址進行網(wǎng)絡地址翻譯(NAT)以使得探測報文的返回報文仍能回到R2進行4over6封裝,本實施例將源IPv4地址修改為R2的IPv4地址20. 0. 0. 1,R2 上也可以維護一個IPv4地址池用作NAT。同樣,R3也將收到的探測封裝報文解封裝后進行 NAT,然后將報文發(fā)到IPv^nternet。在4over6隧道對端路由器R2和R3上都需維護一張映射表,用于記錄IPv4孤島中的IPv4地址與NAT轉(zhuǎn)換后的地址之間的映射,以及所述孤島 IPv4地址對應的4over6隧道對端(本實施例的Rl)的IPv6地址以用于報文返回時正確的封裝。所述映射在RFC6333中已有明確定義。步驟五,如圖3-5所示,目的網(wǎng)絡節(jié)點收到各探測報文后進行回復,回復的響應報文目的地址為各4over6隧道對端設備的IPv4地址。步驟六,如圖3-6所示,所述4oVer6隧道對端路由器R2和R3收到目的網(wǎng)絡節(jié)點的響應報文后,根據(jù)所述映射表將目的IPv4地址(端口)轉(zhuǎn)換為報文在孤島IPv4的地址, 同時根據(jù)映射表進行封裝然后將響應報文發(fā)送到IPv6網(wǎng)絡。在本實施例中,R3所封裝的響應報文首先到達Rl,R2封裝的響應報文由于網(wǎng)絡阻塞等原因到達Rl的時間較晚(也有可能因網(wǎng)絡原因無法返回Rl)。步驟七,如圖3-7所示,Rl由于首先收到來自R3的探測響應報文,其根據(jù)探測封裝分組的源IPv4地址查詢封裝表發(fā)現(xiàn)沒有匹配項,于是將所述源IPv4地址和IPv6地址作為一個表項加入封裝表。對于后到達的來自R2的探測響應報文,Rl根據(jù)其源IPv4地址查詢封裝表發(fā)現(xiàn)已有匹配項,于是將此響應報文丟棄。在本實施例中,Rl接下來為目的地址是40. 0. 0. 1的分組按照封裝表將3000 1作為4oVer6隧道對端地址進行封裝轉(zhuǎn)發(fā)。若本實施例中的Rl不是路由器設備,而是一臺主機設備,即Rl后面沒有連接一個 IPv4網(wǎng)絡,本發(fā)明方法也同樣適用,主機在收到解封裝的分組后不是轉(zhuǎn)發(fā),而是交由上層協(xié)議處理。
權利要求
1.一種4oVer6場景下的最優(yōu)隧道選擇方法,其特征在于,在有狀態(tài)的4oVer6隧道場景下,一個4oVer6隧道端點通過發(fā)送多個探測報文以選擇出到達IPvMnternet中某節(jié)點的最優(yōu)隧道對端,具體包括以下步驟步驟1,IPv4孤島中的主機和網(wǎng)絡設備獲取各4oVer6隧道對端的IPv6地址,并將這些 IPv6地址存儲到4over6隧道對端表中;所述4oVer6隧道對端表中具有添加/刪除表項接口,用于在獲取到4oVer6隧道對端的IPv6地址時向4over6隧道對端表添加表項,或是得知某4over6隧道對端不再是一個有效對端時刪除其表項;步驟2,IPv4孤島中的主機或路由器設備在發(fā)送/轉(zhuǎn)發(fā)IPv4分組時,根據(jù)IPv4分組的目的地址在封裝表中進行匹配,若匹配成功則進行步驟4,否則進行步驟3 ; 步驟3,對通往某網(wǎng)絡節(jié)點的最優(yōu)隧道選擇過程步驟3. 1,所述主機或路由器設備形成IPv4探測報文,報文的目的地址即步驟2所述 IPv4分組的目的地址;步驟3. 2,所述主機或路由器設備根據(jù)4oVer6隧道對端表,將上述IPv4探測報文進行封裝,封裝目的地址為4over6隧道對端表中的各表項的4over6對端IPv6地址,根據(jù) 4over6隧道對端表中表項的條數(shù),需要形成對應個數(shù)的探測封裝報文,每個探測封裝報文的目的IPv6地址與一條4over6隧道對端表項對應;步驟3. 3,所述主機或路由器設備收到探測報文回復的信息,根據(jù)所回復的4oVer6報文的源IPv6地址和源IPv4地址查找封裝表看是否有對應表項,若已經(jīng)含有對應表項則丟棄該報文,若沒有則進入步驟3. 4 ;步驟3. 4,所述主機或路由器設備將上述探測回復4oVer6報文的IPv6源地址和IPv4 源地址作為一個表項存入封裝表,進入步驟4發(fā)送環(huán)節(jié),發(fā)送對應的IPv4分組;步驟4,所述主機或路由器設備根據(jù)匹配的IPv6地址作為目的地址將步驟2所述IPv4 分組進行封裝,并發(fā)送該分組;步驟5,所述主機或路由器設備收到4oVer6分組的處理過程 步驟5. 1,所述主機或路由器設備收到返回的4oVer6報文,判斷其是否為對已發(fā)送的探測報文的回復,若是對探測報文的回復則進入步驟3. 3,否則進入步驟5. 2 ;步驟5. 2,將所述4oVer6報文進行解封裝后,所述主機或路由器設備根據(jù)目的IPv4地址確定是交由上層協(xié)議處理或是進行轉(zhuǎn)發(fā)。
2.根據(jù)權利要求1所述的4oVer6場景下的最優(yōu)隧道選擇方法,其特征在于,所述步驟 1中,通過靜態(tài)配置或者DHCP動態(tài)獲取4over6隧道對端的IPv6地址。
3.根據(jù)權利要求1所述的4oVer6場景下的最優(yōu)隧道選擇方法,其特征在于,所述步驟 3. 1中,IPv4探測報文的源地址為所述主機或路由器設備本身的IPv4地址。
4.根據(jù)權利要求1或3所述的4oVer6場景下的最優(yōu)隧道選擇方法,其特征在于,所述 IPv4探測報文為PING報文。
5.根據(jù)權利要求1所述的4oVer6場景下的最優(yōu)隧道選擇方法,其特征在于,所述步驟 3. 2中,封裝的探測報文的源IPv6地址為所述主機或路由器設備本身的IPv6地址。
6.根據(jù)權利要求1所述的4oVer6場景下的最優(yōu)隧道選擇方法,其特征在于,4oVer6隧道對端接收到步驟3. 2的封裝的探測報文后進行解封,解封后將探測報文的源IPv4地址進行網(wǎng)絡地址翻譯以使得探測報文的返回報文仍能回到該4oVer6隧道對端進行4oVer6封裝。
7.根據(jù)權利要求6所述的4oVer6場景下的最優(yōu)隧道選擇方法,其特征在于,所述的網(wǎng)絡地址翻譯是將探測報文的源IPv4地址修改為當前4oVer6隧道對端的IPv4地址。
全文摘要
一種4over6場景下的最優(yōu)隧道選擇方法,在IPv4孤島中的主機或路由器設備主動發(fā)起多個探測報文,所述探測報文的IPv4源地址為主機或路由器設備IPv4接口的地址,探測報文目的IPv4地址為IPv4Internet中某網(wǎng)絡節(jié)點的IPv4地址,探測報文IPv6封裝頭的源IPv6地址為主機或路由器設備IPv6接口的地址,目的地址為從4over6隧道對端表中選擇的某一4over6隧道對端的IPv6地址,主機或路由器設備根據(jù)探測報文對應的響應報文IPv4源地址查詢封裝表中是否有匹配表項,如果沒有則將響應報文的IPv4源地址和IPv6源地址作為一個新的封裝表項加入封裝表,此表項即為以后通往所述目的網(wǎng)絡節(jié)點的最優(yōu)隧道表項。
文檔編號H04L12/56GK102523312SQ20111039600
公開日2012年6月27日 申請日期2011年12月2日 優(yōu)先權日2011年12月2日
發(fā)明者吳丹, 吳建平, 崔勇, 董江 申請人:清華大學