隧道技術介紹


隧道技術

隧道技術簡介

隨著Internet的日益膨脹,現有的IPv4地址已經十分緊缺,雖然使用分配臨時IPv4地址或NATNetwork Address Translator,網絡地址轉換)等技術,在一定程度上緩解了IPv4地址不足的狀況,但也增加了地址解析和處理方麵的開銷,同時導致某些高層應用失效,而且仍然無法回避IPv4地址即將被分配殆盡這個問題。采用128位地址長度的IPv6協議,徹底解決了IPv4地址不足的難題,並且在地址容量、安全性、網絡管理、移動性以及服務質量等方麵有明顯的改進,是下一代互聯網絡協議采用的核心標準之一。IPv6IPv4不兼容,但它同所有的TCPIP協議族中的其他協議兼容,即IPv6完全可以取代IPv4

IPv6成為主流協議之前,首先使用IPv6協議棧的網絡希望能與當前仍被IPv4支撐著的Internet進行正常通信,因此必須開發出IPv4IPv6互通技術以保證IPv4能夠平穩過渡到IPv6。此外,互通技術應該對信息傳遞做到高效無縫。國際上IETF組建了專門的NGTRANS工作組,開展對IPv4IPv6過渡問題和高效無縫互通問題的研究。目前已經出現了多種過渡技術和互通方案,這些技術各有特點,用於解決不同過渡時期、不同環境的通信問題。

目前解決過渡問題的基本技術主要有3種:雙協議棧(RFC2893),隧道技術(RFC2893)和NAT-PT(RFC2766)

隧道是一種封裝技術,它利用一種網絡協議來傳輸另一種網絡協議,即利用一種網絡傳輸協議,將其他協議產生的數據報文封裝在它自己的報文中,然後在網絡中傳輸。隧道(Tunnel)是一個虛擬的點對點的連接。在實際應用中僅支持點對點連接的虛擬接口為Tunnel接口。一個Tunnel提供了一條使封裝的數據報文能夠傳輸的通路,並且在一個Tunnel的兩端可以分別對數據報文進行封裝及解封裝。隧道技術就是指包括數據封裝、傳輸和解封裝在內的全過程。

IPv6 over IPv4隧道

1. IPv6 over IPv4隧道原理

IPv6 over IPv4隧道機製是將IPv6數據報文前封裝上IPv4的報文頭,通過隧道(Tunnel)使IPv6報文穿越IPv4網絡,實現隔離的IPv6網絡的互通,如1所示。

  注意:

IPv6 over IPv4隧道兩端的設備必須支持IPv4/IPv6雙協議棧。

 

圖1 IPv6 over IPv4隧道原理圖

IPv6 over IPv4隧道對報文的處理過程如下:

l              IPv6網絡中的設備發送IPv6報文,到達隧道的源端設備。

l              隧道的源端設備根據路由表判定該報文要通過隧道進行轉發,將會在IPv6報文前封裝上IPv4的報文頭,通過隧道的實際物理接口將報文轉發出去。

l              封裝報文通過隧道到達隧道目的端設備,目的端設備判斷該封裝報文的目的地是本設備後,將對報文進行解封裝。

l              目的端設備根據解封裝後的IPv6報文的目的地址將報文進行轉發;如果目的地就是本設備,則將IPv6報文轉給上層協議處理。

2. 配置隧道和自動隧道

IPv6 over IPv4隧道可以建立在主機-主機、主機-設備、設備-主機、設備-設備之間。隧道的終點可能是IPv6報文的最終目的地,也可能需要進一步轉發。

根據隧道終點的IPv4地址的獲取方式不同,隧道分為“配置隧道”及“自動隧道”。

l              如果IPv6 over IPv4隧道的終點地址不能從IPv6報文的目的地址中自動獲取,需要進行手工配置,這樣的隧道即為“配置隧道”。

l              如果IPv6 over IPv4隧道的接口地址采用內嵌IPv4地址的特殊IPv6地址形式,即可以從IPv6報文的目的地址中自動獲取隧道終點的IPv4地址,這樣的隧道即為“自動隧道”。

3. IPv6 over IPv4隧道模式

根據對IPv6報文的封裝方式的不同,IPv6 over IPv4隧道分為以下幾種模式:

表1 IPv6 over IPv4隧道模式

隧道類型

隧道模式

配置隧道

IPv6手動隧道

IPv6-over-IPv4 GRE Generic Routing Encapsulation,通用路由封裝)隧道

自動隧道

IPv4兼容IPv6自動隧道

6to4隧道

ISATAPIntra-Site Automatic Tunnel Addressing Protocol,站點內自動隧道尋址協議)隧道

 

下麵將對各隧道模式分別做詳細介紹。首先,在11中對各隧道模式的關鍵配置參數進行了簡要列舉。

表2 IPv6 over IPv4隧道模式參數對比表

隧道模式

隧道源/目的地址

隧道接口地址

IPv6手動隧道

/目的地址為手動配置的IPv4地址

IPv6地址

IPv6-over-IPv4GRE隧道

/目的地址為手動配置的IPv4地址

IPv6地址

IPv4兼容IPv6自動隧道

源地址為手動配置的IPv4地址,目的地址不需配置

IPv4兼容IPv6地址,其格式為

::IPv4-source-address/96

6to4隧道

源地址為手動配置的IPv4地址,目的地址不需配置

6to4地址,其格式為

2002:IPv4-source-address::/48

ISATAP隧道

源地址為手動配置的IPv4地址,目的地址不需配置

ISATAP地址,其格式為Prefix:0:5EFE:IPv4-source-address/64

 

(1)        IPv6手動隧道

手動隧道是點到點之間的鏈路,一條鏈路就是一個單獨的隧道。主要用於邊緣路由器-邊緣路由器或主機-邊緣路由器之間定期安全通信的穩定連接,可實現與遠端IPv6網絡的連接。

(2)        GRE隧道

使用標準的GRE協議可對IPv6報文進行封裝,使IPv6報文能通過隧道穿越IPv4網絡。與IPv6手動隧道相同,GRE隧道也是點到點之間的鏈路,每條鏈路都是一條單獨的隧道。GRE隧道主要用於邊緣路由器-邊緣路由器、主機-邊緣路由器定期安全通信的穩定連接。

(3)        IPv4兼容IPv6自動隧道

IPv4兼容IPv6自動隧道是點到多點的鏈路。隧道兩端采用特殊的IPv6地址:IPv4兼容IPv6地址,其格式為:0:0:0:0:0:0:a.b.c.d/96,其中a.b.c.dIPv4地址。通過這個嵌入的IPv4地址可以自動確定隧道的終點,使IPv6隧道的建立非常方便。但由於它必須使用IPv4兼容IPv6地址,仍依賴於IPv4地址,在使用時有一定的局限性。

(4)        6to4隧道

l              普通6to4隧道

6to4隧道是點到多點的自動隧道,主要用於將多個IPv6孤島通過IPv4網絡連接到IPv6網絡。6to4隧道通過在IPv6報文的目的地址中嵌入IPv4地址,來實現自動獲取隧道終點的IPv4地址。

6to4隧道采用特殊的6to4地址,其格式為:2002:abcd:efgh:子網號::接口ID/64,其中2002表示固定的IPv6地址前綴,abcd:efgh表示該6to4隧道對應的32位全球較少的IPv4源地址,用16進製表示(如1.1.1.1可以表示為0101:0101)。2002:abcd:efgh之後的部分較少標識了一個主機在6to4網絡內的位置。通過這個嵌入的IPv4地址可以自動確定隧道的終點,使隧道的建立非常方便。

由於6to4地址的64位地址前綴中的16位子網號可以由用戶自定義,前綴中的前48位已由固定數值、隧道起點或終點設備的IPv4地址確定,使IPv6報文通過隧道進行轉發成為可能。6to4隧道可以實現利用IPv4網絡完成IPv6網絡的互連,克服了IPv4兼容IPv6自動隧道使用的局限性。

l              6to4中繼

6to4隧道隻能用於前綴為2002::/166to4網絡之間的通信,但在IPv6網絡中也會使用像2001::/16這樣的IPv6網絡地址。為了實現6to4網絡和其它IPv6網絡的通信,必須有一台6to4路由器作為網關轉發到IPv6網絡的報文,這台路由器就叫做6to4中繼(6to4 relay)路由器。

如下圖所示,6to4網絡的邊緣路由器Router A需配置一條靜態路由,下一跳地址指向6to4中繼路由器Router C6to4地址,這樣,所有去往IPv6網絡的報文都會被轉發到6to4中繼路由器,之後再由6to4中繼路由器轉發到IPv6網絡中,從而實現6to4網絡(地址前綴以2002開始)與IPv6網絡的互通。

圖2 6to4隧道和6to4中繼原理圖

(5)        ISATAP隧道

隨著IPv6技術的推廣,現有的IPv4網絡中將會出現越來越多的IPv6主機,ISATAP隧道技術為這種應用提供了一個較好的解決方案。ISATAP隧道是點到點的自動隧道技術,通過在IPv6報文的目的地址中嵌入的IPv4地址,可以自動獲取隧道的終點。

使用ISATAP隧道時,IPv6報文的目的地址和隧道接口的IPv6地址都要采用特殊的ISATAP地址。ISATAP地址格式為:Prefix(64bit):0:5EFE:ip-address。其中,64位的Prefix為任何合法的IPv6單播地址前綴,ip-address32IPv4源地址,形式為a.b.c.d或者abcd:efgh,且該IPv4地址不要求全球較少。通過這個嵌入的IPv4地址就可以自動建立隧道,完成IPv6報文的傳送。

ISATAP隧道主要用於在IPv4網絡中IPv6路由器-IPv6路由器、IPv6主機-IPv6路由器的連接。

圖3 ISATAP隧道原理圖

4. 快速終結

對於到達本機的隧道報文,如果報文的源IP地址與快速終結子網地址匹配,則將此隧道報文送到IPv6引擎進行轉發或者上送CPU的處理。

如果是需要轉發的報文,則由IPv6引擎去掉隧道報文的IP封裝,取得原始入隧道IPv6報文後直接進行轉發。

快速終結功能支持的隧道類型為IPv6 over IPv4隧道,分為以下兩種情況:

l              對於配置隧道(如GRE over IPv4隧道、IPv6手動隧道),當使能快速終結後,係統自動將隧道目的地址作為快速終結子網地址,掩碼為255.255.255.255

l              對於自動隧道(如IPv4兼容IPv6自動隧道、6to4隧道、ISATAP隧道),需要指定快速終結子網和掩碼。

IPv4 over IPv4 隧道

1. IPv4 over IPv4隧道協議簡介

IPv4 over IPv4隧道(RFC1853)協議是對IP數據報進行封裝,使得一個IPv4網絡的數據能夠在另一個IPv4網絡中傳輸。

2. 報文封裝及解封裝

報文在Tunnel中傳輸經過封裝與解封裝兩個過程,以下圖為例說明這兩個過程:

圖4 IPv4隧道原理圖

l              封裝流程

Router A連接IPv4主機所在子網的接口收到IP數據報後,首先交由IP協議棧處理。IP協議棧根據IP報頭中的目的地址來確定如何路由此包。如果報文要路由到與Router B相連的IPv4主機的地址,則將此報文發給Route A上連接Router BTunnel接口。

Tunnel接口收到此包後,進行IPv4 over IPv4的封裝,封裝完成後重新交給IP協議棧處理,IP協議棧根據添加的IP報頭確定出接口。

l              解封裝流程

解封裝過程和封裝的過程相反。從網絡接口收到的IP報文被送到IP協議棧,IP協議棧檢查IP報頭的協議號;若發現此協議號為4IPv4,則將此IP數據包發送到隧道模塊進行解封裝處理;解封裝之後的IP報文將重新被送到IP協議棧進行處理。

IPv4IPv6 over IPv6隧道

1. IPv4IPv6 over IPv6隧道協議簡介

IPv4IPv6 over IPv6隧道(RFC2473)協議是對IPv4或者IPv6的數據報進行封裝,使這些被封裝的數據報能夠在另一個IPv6網絡中傳輸,封裝後的數據報文即IPv6隧道報文。

圖5 IPv6隧道原理圖

5所示,Original dataIPv4IPv6報文。

2. 報文封裝及解封裝

l              封裝流程

Router A連接網絡A的接口收到原始數據報後,首先交由對應的數據轉發模塊進行處理,並確定如何路由此數據包;若確定此數據包要路由到與Router B相連的Host B的地址,則將此報文發給Router A上連接IPv6網絡的Router BTunnel接口。

Tunnel口收到此包後添加IPv6報文頭,封裝完成後交給IPv6模塊處理;IPv6協議模塊根據IPv6隧道頭的目的地址重新決定路由。

l              解封裝流程

解封裝過程和封裝的過程相反。從IPv6網絡接口接收的數據包被送到IPv6協議模塊進行處理;若乘客協議為IPv4IPv6,則數據包進入隧道處理模塊進行解封裝處理;解封裝之後的數據包被送往相應的協議模塊進行二次路由處理。

6PE概述

6PE是一種過渡技術,ISP可以利用已有的IPv4骨幹網為分散用戶的IPv6網絡提供接入能力。

6PE的主要思想是:6PEIPv6 Provider EdgeIPv6供應商邊緣)路由器將用戶的IPv6路由信息轉換為帶有標簽的IPv6路由信息,並且通過IBGPInternal Border Gateway Protocol,內部邊界網關協議)會話擴散到ISPIPv4骨幹網中。6PE路由器轉發IPv6報文時,首先會將進入骨幹網隧道的數據流打上標簽。隧道可以是GRE隧道或者MPLS LSP等。

圖6 6PE組網圖

ISP想利用自己原有的IPv4/MPLS網絡,使其通過MPLS具有IPv6流量交換能力時,隻需要升級PE路由器就可以了。所以對於運營商來說,使用6PE技術作為IPv6過渡機製無疑是一個高效的解決方案,其操作風險也會小得多。

 

附件下載

聯係我們