專利名稱:用于自動地經IPv6網絡互連IPv4網絡的系統和方法
用于自動地經IPv6網絡互連IPv4網絡的系統和方法 相關申請的聲明
本申請要求2005年3月21日提交的名稱為"METHOD AND SYSTEM FOR INTERCONNECTING IPv4 NETWORKS ACROSS IPv6 NETWORK (用于 經IPv6網絡來互連IPv4網絡的系統和方法)"的美國臨時申請No. 60/664,013 (代理案號No. CISCP906+)的優先權,該臨時申請的內容通過引 用全部結合于此。
背景技術:
本發明一般地涉及數據聯網,并且更具體地涉及用于自動地經IPv6網 絡互連IPv4網絡的系統和方法。
為了適應互聯網的迅猛發展,大量的網絡節點已被配置為利用IP (因 特網協議)。這些節點包括用戶工作站到相當大吞吐量的核心路由器。
互聯網工程協會己經在實現從IPv4到IPv6的轉變。IPv6的優點包括 可用地址空間的大量擴充以適應更加普遍存在的能夠實現互聯網的 (Internet-enabled)設備,以及對已經被用于保存(conserve)地址的煩瑣 的網絡地址轉換方案的較少的依賴。IPv6還提供了非常有用的自動配置能 力。
因此,需要一種方法,該方法使供應商自動地經他們選擇部署為純 IPv6網絡的網絡來為其客戶處理IPv4業務。己經在努力研發與存在于純 IPv6網絡中的個別IPv4節點一起工作的方法。例如,"Dual Stack Transition Mechanism (雙棧轉換機制)"(Bound, 2003年7月,draft-ietf-bound-dstm-exp-00.txt)解決了在純IPv6網絡中的個別IPv4節點的問 題。但是,這篇文獻并沒有解決自動地經純IPv6網絡來處理整個IPv4節 點的網絡的問題。
發明內容
本發明公開了一種用于自動地經IPv6網絡來互連IPv4網絡的方法和 系統。所述方法包括在IPv6網絡中的入口路由器處接收IPv4分組,并 在所接收的分組中找到IPv4地址的最長匹配IPv4路由條目以標識在IPv6 網絡中的出口路由器。IPv4分組被封裝以創建IPv6分組,其中經封裝的 分組的目的地址和源地址標識與IPv6網絡中的入口路由器和出口路由器相 對應的子網路由器任播。經封裝的分組被轉發到出口路由器。
根據本發明的另一個方面,用于自動地經IPv6網絡來互連IPv4網絡 的方法一般包括將IPv4分組從第一 IPv4網絡轉發到IPv6網絡中的入口 路由器,并在IPv6網絡中創建用于經該IPv6網絡來傳送分組的隧道。隧 道端點被定義為與入口路由器和出口路由器相對應的IPv6子網路由器任 播。所述方法還包括對IPv4分組進行封裝以創建IPv6分組,將經封裝 的分組轉發到出口路由器,在出口路由器處對分組進行解封裝,并將分組 轉發到第二 IPv4網絡。通過參考說明書的其余部分和附圖可以實現對本發 明的本質和優點的進一步理解。
圖1描繪了與IPv6網絡通信的IPv4網絡;
圖2是示出了根據本發明一個實施例的過程的流程圖,所述過程用于 經IPv6網絡從IPv4網絡中的一個IPv4網絡向其它IPv4網絡傳送分組,如 圖l所示;
圖3是示出了圖2的流程圖中的用于建立隧道端點的步驟的細節的流 程圖4描繪了在實現本發明的實施例時有用的網絡器件。
具體實施例方式
以下描述是為了使本領域的普通技術人員能夠制造并使用本發明而給 出的。具體實施例和應用的描述僅被提供作為示例,并且各種修改對于本 領域技術人員來說將是非常明顯的。這里所描述的一般原理可以被應用于其它實施例和應用而不脫離本發明的范圍。因此,本發明并不限于所示出 的實施例,而是具有與這里所描述的原理和特征相一致的最寬的范圍。為 了清楚起見,沒有詳細描述涉及在與本發明相關的技術領域中已公知的技 術資料的細節。
本發明在包括多個網絡元件的數據通信網絡的上下文中操作。采用本 發明的網絡中的元件中的一些可以是諸如路由器之類的網絡設備。例如,
節點中的一些可以是諸如從San Jose, California的Cisco Systems, Inc.可獲 得的那些路由器之類的專門配置的路由器。這里所使用的術語"路由器" 被用于指代基于網絡和更高層的信息來轉發分組的設備。路由器可以包括 例如主中央處理單元(CPU)、接口和總線(例如PCI總線)。CPU優選 地包括存儲器和處理器。當在合適的軟件和硬件控制之下工作時,CPU負 責這樣的路由器任務路由表計算、網絡管理和分組的一般處理。CPU優 選地在包括操作系統(例如Cisco Systems, Inc.的互聯網絡操作系統 (IOS )版本)和任何合適的應用軟件的軟件控制下實現所有這些功 能。CPU可以包括一個或更多個處理器,例如來自摩托羅拉系列的處理器 或者MIPS系列微處理器的微處理器。在可替換的實施例中,處理器是用 于控制路由器的操作的專門設計的硬件。存儲器可以是非易失性的RAM 或者ROM。但是,存在可以將存儲器耦合到系統的許多不同的方法。可 以在諸如計算機系統之類的通用網絡主機或者如以下參考圖4描述的網絡 設備上實現路由器。
這里所描述的系統和方法使得純IPv6網絡(IPv6-only network)的運 營者能夠自動地為純IPv4網絡(IPv4-only network)提供透明傳輸服務。 本發明允許通過IPv6網絡來互連整個IPv4網絡,而不是僅僅個別IPv4節 點。可以在路由器上實現本發明以使得顧客能夠部署純IPv6網絡,同時仍 然支持其僅采用IPv4的顧客。互聯網服務提供商也可以使用本發明和系統 部署純IPv6的主干網絡,同時透明地互連其IPv4顧客的網絡。本發明也 可以用于支持在服務提供商的整個網絡的任何純IPv6部分的周邊的IPv4 小型網絡。
圖1描繪了適合用于實現本發明的一個實施例的網絡環境。圖1示出了與IPv6網絡14進行通信的兩個IPv4網絡10、 12。 IPv6網絡14包括 IPv6節點16, IPv6節點16實現IPv6層功能,并且IPv4網絡包括IPv4節 點18。為了描繪的清楚起見,圖1僅示出了邊緣路由器(edge router), 而省略了內部節點。在IPv6網絡的入口和出口處的邊緣節點16與IPv4網 絡10、 12進行通信,并且IPv4網絡10的邊緣節點18與IPv6網絡進行通 信。這里邊緣節點16被稱為IPv4/IPv6邊界路由器。應當了解圖l所示的 網絡僅僅是在其中可以使用本發明的方法和系統的網絡的一個示例,并且 在不脫離本發明的范圍的情況下,所述網絡可以具有不同的配置。
該方法和系統被用于在經純IPv6網絡14來互連IPv4網絡10、 12時 自動地確定IPv6隧道端點。如圖1所示,隧道20在IPv6網絡14的邊緣 路由器16之間延伸。隧道20可以經過IPv6網絡14中的任意數目的IPv6 節點(未示出)。該系統不需要人工的隧道配置。只有在不同協議版本之 間的邊界處的路由器16、 18才會覺察到其它網絡的業務。純IPv6的路由 器覺察不到IPv4流量,同時純IPv4的路由器也覺察不到中間的純IPv6的 基礎結構。
使用子網路由器任播(anycast)來自動獲取隧道端點的IPv6地址。任 播地址允許將分組被路由到響應于同一地址的許多不同節點中的一個節 點。向IPv6網絡注入路由更新的路由器扮演整個被注入的IPv6前綴的子 網路由器的角色。封裝頭的目的地址和源地址標識對應于新前綴(這里被 稱為連接前綴)+ IPv4前綴的子網路由器任播。為了找到相應的出口路由 器,入口路由器在將被封裝的分組中標識IPv4地址的最長匹配的IPv4路 由條目,如下所述。
連接前綴是本地定義的前綴。未被另外用于純IPv6的路由范圍內的 IPv6路由的任何前綴都可以被用作連接前綴。連接前綴優選地等于或短于 128減去最長的活動IPv4路由前綴的長度。連接前綴的一個示例是使用在 IPv6全球空間中明確未定義的/32的值(例如2002:7FFF:/32)。基于RFC 3056 ( "Connection of IPv6 Domains via IPv4 Clouds" , B.Carpenter等, 2001年2月)和RFC 3330 ( "Special-Use IPv4 Address" , IANA, 2002 年9月)的組合定義,上述值未被定義。應當理解所述前綴可以具有與這里所描述的長度或配置不同的長度或配置,而不脫離本發明的范圍。
圖2示出了用于處理在IPv6網絡14的入口路由器16處從IPv4網絡 10、 12中的一個接收到的分組的方法。在步驟20,在入口路由器16處分 組被接收。隧道端點被建立并且IPv4分組被封裝在IPv6分組中(步驟 22)。以下參考圖3的流程圖來描述該步驟的細節。在一個實施例中,路 由器根據RFC 2473 ( "Generic Packet Tunneling in IPv6 Specification", A.Conta等,1998年12月)來執行基本的分組封裝過程,所述的RFC 2473通過引用全部結合于此。
封裝得到的IPv6分組在純IPv6網絡14中被使用常規的IPv6服務轉發 到出口路由器16 (步驟24)。在純IPv6網絡14的出口處的IPv4/IPv6邊 界路由器16處,IPv6頭被去掉(步驟26),并且留下的IPv4分組在IPv4 網絡中被使用常規的IPv4服務來轉發(步驟28)。如果本地管理選擇將 純IPv6的跳數(hop count)透露給IPv4節點18,則出口路由器16將需要 把跳數從IPv6頭復制回IPv4 TTL,并重新求校驗和。
圖3的流程圖詳述了圖2的步驟22,并且示出了如何創建IPv6地址 以建立隧道端點。隧道端點地址被定義為對應于入口路由器和出口路由器 的IPv6子網路由器任播。在步驟30,路由器在將被封裝的分組中找到 IPv4地址的最長匹配IPv4路由條目,以自動地找到相應的IPv6出口路由 器。在純IPv6網絡的入口處的IPv4/IPv6邊界路由器處,通過串接連接前 綴與對應于接收到的目的IPv4地址和源IPv4地址兩者的最長匹配IPv4路 由條目來創建IPv6地址,以產生相應的IPv6前綴值(步驟32)。在每個 地址中的剩余位被設置為0以指示IPv6目的或源是用于該特定IPv6前綴 的子網路由器任播(步驟34)。這個過程自動地在注入了覆蓋任何具體 IPv4地址的路由更新的一個或多個路由器處建立了隧道端點。
在封裝過程之后,所得到的IPv6地址被輸入到IPv6頭中相應的目的 地址字段和源地址字段中,所述IPv6頭將被用于封裝整個原始IPv4分組 (步驟36和38)。適當的IPv4字段被以如下方式復制
將IPv4的服務類型(Type-of-Service)復制到IPv6的業務類別 (Traffic-class)(但是本地策略可以為業務類別設置具體值),
9將IPv4的總長度(Total-length)復制到IPv6的有效載荷長度 (Payload-length);以及
將IPv4的生存時間(Time-to-Live)復制到IPv6的跳數(Hop-count) o
IPv6頭的下一個協議字段被設置為4以指示有效載荷是IPv4分組。
當某路由器不是源地址(即假的IPv4源)的適當返回路徑出口路由器 時,該路由器不對分組進行封裝。
合理的鏈路MTU (最大傳輸單元)優選地是1280字節,以避免超過 任何內部的純IPv6的鏈路的MTU的可能性。這意味著在邊界路由器進入 IPv4的一側遵循IPv4分段規則(fragmentation rule),就好像這是任何其 它具有1280字節MTU的IPv4鏈路。
以下描述如何處理ICMP (互聯網控制消息協議)消息,包括在網絡 的IPv4部分中最初生成的ICMP消息、由于在入口 IPv4/IPv6邊界路由器 處的處理而生成的ICMP消息和在IPv6網絡中生成的ICMP消息。
在ICMP消息在網絡的IPv4部分中最初生成的情況下,這些消息被封 裝并作為任何其它的IPv4分組來處理。
在ICMP消息由于在入口 IPv4/IPv6邊界路由器中的處理而生成的情況 下,該路由器扮演其在IPv4中的角色,因此適用常規的IPv4 ICMP規則。 除非另外明確地配置,否則如果IPv4分組大于1240字節并且DF (不分 段)位被設置,則返回類型為3代碼為4 (Type3Code4)的消息。
在ICMP消息是響應于經封裝的IPv4分組而在純IPv6網絡中生成的 情況下,ICMP的目的地是入口 IPv4/IPv6邊界路由器(由封裝的IPv6源 地址來標識)。在網絡的純IPv6的部分中,優選地將任何其中IPv6源地 址不是針對經封裝的IPv4源地址的子網路由器任播的分組作為偽造分組來 丟棄。取決于ICMP消息類型,封裝路由器可以采取適當的措施,或者將 相應ICMP消息返回到最初生成該消息的IPv4節點。以下按格式示出IPv6 值的示例
類型 功能(在每個示例之下有簡單描述)
1 沒有到目的地的路由指示沒有到出口路由器的路徑。入口路由器利用原來的IPv4來將IPv4 ICMP類型3代碼0返回到IPv4源地址。
2 分組太大
指示入口 IPv4路由器未能適當地分段。如果入口路由器將這作為具有 1280字節MTU的合理鏈路來處理,則可以避免這種錯誤,但是如果網絡 正在被明確地管理用于更大的MTU并且入口路由器被錯誤配置用于比網 絡的其余部分更大的值,則這種錯誤可能發生。如果DF位在IPv4分組上 被設置,則入口封裝處理將優選地在分組被轉發到IPv6網絡之前捕獲該分 組。
3 超時
指示分組沒有到達出口路由器。入口路由器返回IPv4類型11代碼0。關 于透露IPv6節點的本地策略被用于確定在被返回之前IPv6頭的跳數是否 被復制到IPv4 ICMP的TTL。
4 參數問題 由于環境是被統一管理的路由器的完備(contained)網絡,因此這種情況 應該不會發生。如果IPv6環境采用多種管理,則這種錯誤可能發生,但是 任何這種參數問題的目標將是進行封裝的入口路由器,因此到起始的IPv4 節點的任何消息將不是這種IPv6 ICMP類型的直接結果。
以下描述了用于路由更新的方法。在所描述的本發明的實施例中,在 子網掩碼是相鄰的并且路由前綴也可以被定義為值和長度的情況下,所述 方法采用CIDR (無類別域間路由)型IPv4路由。
當經由IPv4路由更新獲悉路由時,將連接前綴預先放入條目中,將連 接前綴的長度與所獲悉的前綴長度相加,并且所得到的值被輸入作為IPv6 側上的路由更新。
當經由IPv6更新獲悉連接前綴中的路由時,連接前綴被去掉,從獲悉 的前綴長度中減去連接前綴的長度,并且所得到的值被輸入作為IPv4側上 的路由更新。
在邊界路由器處是靜態默認IPv4路由的情況下,所述邊界路由器將被 配置有適合于本地網絡的特定的IPv6目的地。因為默認的IPv6路由器將
ii還需要用于每個IPv4前綴的相應的靜態IPv4到IPv6出口的映射,所以這 種情況不太可能廣泛使用,但是其將很好地適用于已經使用靜態IPv4路由
的環境。
優選地在純IPv4級完成網絡管理之間的交互,每一方在內部適當地使 用該方法。這呈現了原本的IPv4網絡的面貌,就好像是經由下層的多點幀 中繼或ATM網絡來連接的原本的IPv4路由器。
為了避免安全隱患,優選地通過任意的外部路由對等來明確地阻止本 地定義的前綴,并且任何IPv6顧客連接都優選地具有主動過濾功能以丟棄 包含作為源地址的前綴的分組。
圖4描繪了可以用于實現如上所述的方法和系統的網絡設備40。在一 個實施例中,網絡設備40是可以用硬件、軟件或者硬件和軟件的任意組 合來實現的可編程機器。處理器42運行存儲在程序存儲器44中的代碼。 程序存儲器44是計算機可讀介質的一個示例。程序存儲器44可以是易失 性存儲器。存儲相同代碼的計算機可讀介質的另一種形式可以是諸如軟 盤、CD-ROMs、 DVD-ROMs、硬盤、閃存等之類的某種非易失性存儲 器。經網絡承載代碼的載波是計算機可讀介質的另一個示例。
網絡設備40經由多個線路卡46來與物理介質相接口。當分組被網絡 設備40接收、處理并轉發時,這些分組可以被存儲在分組存儲器48中。 可以在線路卡46的一個中部分地或者完整地進行分組傳輸操作。為了實 現根據本發明的功能,線路卡46可以將類似于如上所討論的那些處理和 存儲器資源與所述網絡設備合并作為一個整體。網絡設備40實現由本發 明提供的所有特征。
圖4所示的網絡設備40僅僅是適于使用本發明的計算機系統的一個 示例。也可以利用其它具有不同子系統配置的器件和系統。通過使用通信 協議使得可以進行網絡中的各個計算機之間的通信,所述通信協議規定計 算機如何在網絡上交換信息。
應當理解這里所描述的示例和實施例僅僅是用于說明性的目的,并且 本領域的技術人員可以根據所描述的示例和實施例的啟示來提出各種修改 和改變,并且所述修改和改變將被包括在本申請的精神和范圍、所附權利要求的范圍及其等同物的全部范圍中
權利要求
1. 一種用于自動地經IPv6網絡來互連IPv4網絡的方法,所述方法包括在所述IPv6網絡中的入口路由器處接收IPv4分組;在所接收的分組中找到IPv4地址的最長匹配IPv4路由條目,以標識在所述IPv6網絡中的出口路由器;對所述IPv4分組進行封裝以創建IPv6分組,其中所述經封裝的分組的目的地址和源地址標識與所述IPv6網絡中的所述入口路由器和所述出口路由器相對應的子網路由器任播;以及將所述經封裝的分組轉發到所述出口路由器。
2. 如權利要求1所述的方法,還包括將前綴與所述最長匹配IPv4路 由條目串接起來以創建IPv6前綴值。
3. 如權利要求2所述的方法,還包括將IPv6地址中的剩余位設置為零。
4. 如權利要求1所述的方法,其中所述經封裝的分組包括業務類別 字段、有效載荷長度字段和跳數字段。
5. —種用于經IPv6網絡從第一 IPv4網絡向第二 IPv4網絡發送分組 的方法,所述方法包括將IPv4分組從所述第一 IPv4網絡轉發到所述IPv6網絡中的入口路由器;在所述IPv6網絡中創建用于經所述IPv6網絡來傳送所述分組的隧 道,包括將隧道端點地址定義為與所述入口路由器和出口路由器相對應的 IPv6子網路由器任播;對所述IPv4分組進行封裝以創建IPv6分組;將所述經封裝的分組轉發到所述出口路由器;在所述出口路由器處對所述分組進行解封裝;以及將所述分組轉發到所述第二 IPv4網絡。
6. 如權利要求5所述的方法,其中,定義隧道端點還包括在所接收的IPv4分組中找到與目的IPv4地址和源IPv4地址相對應的最長匹配IPv4 路由條目。
7. 如權利要求5所述的方法,其中對所述分組進行解封裝包括去掉 IPv6頭。
8. 如權利要求5所述的方法,還包括將跳數從所述經封裝的頭中的 IPv6頭復制到IPv4生存時間字段。
9. 如權利要求5所述的方法,還包括將前綴與所述最長匹配IPv4路 由條目串接起來以創建IPv6前綴值。
10. 如權利要求5所述的方法,其中,對所述IPv4分組進行封裝包括 對在所述IPv4網絡中最初生成的ICMP消息進行封裝。
11. 如權利要求5所述的方法,其中,合理的鏈路MTU是1280字節。
12. —種計算機程序產品,用于自動地經IPv6網絡來互連IPv4網 絡,所述產品包括在接收到的IPv4分組中找到IPv4地址的最長匹配IPv4路由條目以標 識所述IPv6網絡中的出口路由器的代碼;對所述IPv4分組進行封裝以創建IPv6分組的代碼,其中所述經封裝 的分組的目的地址和源地址標識與所述IPv6網絡中的所述入口路由器和所 述出口路由器相對應的子網路由器任播;將所述經封裝的分組轉發到所述出口路由器的代碼;以及存儲所述代碼的計算機可讀介質。
13. 如權利要求12所述的計算機程序產品,還包括創建本地定義的 前綴并將所述前綴與所述最長匹配IPv4路由條目連接起來以創建IPv6前 綴值的代碼。
14. 一種用于自動地經IPv6網絡來互連IPv4網絡的設備,所述設備 包括用于在所述IPv6網絡中的入口路由器處接收IPv4分組的裝置; 用于在所接收的分組中找到IPv4地址的最長匹配IPv4路由條目以標 識所述IPv6網絡中的出口路由器的裝置;用于對所述IPv4分組進行封裝以創建IPv6分組的裝置,其中,所述經封裝的分組的目的地址和源地址標識與所述IPv6網絡中的所述入口路由器和所述出口路由器相對應的子網路由器任播;以及用于將所述經封裝的分組轉發到所述出口路由器的裝置。
15.如權利要求14所述的設備,還包括用于創建本地定義的前綴并將所述前綴與所述最長匹配IPv4路由條目連接起來以創建IPv6前綴值的裝置。
全文摘要
本發明公開了一種用于自動地經IPv6網絡來互連IPv4網絡的方法和系統。所述方法包括在IPv6網絡中的入口路由器處接收IPv4分組,并在接收的分組中找到IPv4地址的最長匹配IPv4路由條目以標識所述IPv6網絡中的出口路由器。IPv4分組被封裝以創建IPv6分組,其中經封裝的分組的目的地址和源地址標識與IPv6網絡中的入口路由器和出口路由器相對應的子網路由器任播。經封裝的分組被轉發到出口路由器。
文檔編號H04L12/56GK101427526SQ200680004058
公開日2009年5月6日 申請日期2006年2月27日 優先權日2005年3月21日
發明者安東尼·阿因, 戴維·D·沃德 申請人:思科技術公司