6to4
![本頁使用了標題或全文手工轉換](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
6to4是一種IPv6轉換傳輸機制,是將IPv6的封包直接封裝在IPv4的封包中,並通過內嵌於IPv6位址的IPv4位址資訊實現無需顯式組態隧道就可以直接在IPv4網路上傳輸。同時一種特殊組態的中繼路由允許其能與原生IPv6網路進行通訊。
在從純IPv4網路完全過渡到純IPv6網路完全部署前,6to4技術尤其重要,因為這請求主機和目標主機之間都不需要IPv6網路支援,但是這是一種過渡性的轉換傳輸機制,並不意味永久使用。
6to4可以使用在一台單獨主機上,或一個本地網路上。如果是單獨主機的話,則該主機需要一個非專用的公開IPv4位址,並且實現對IPv6封包裝解封,如果這台主機是服務於本地網並能轉發本地網路其他主機的通訊,則其作為該IPv6本地網路的路由器。
6to4不利於僅支援IPv4的主機和僅支援IPv6的主機之間的互操作。 6to4只是一個透明機制,用作IPv6節點之間的傳輸層。
由於大量主機組態錯誤和效能較差,2011年8月發布了應如何部署6to4的建議。[1]由於6to4的任播字首操作問題無法解決,該部分標準在2015年已棄用。[2]
運作方法
[編輯]6to4解決了以下三個功能:
- 如何一個公共IPv4位址去為一台獨立主機或本地網路申請一個IPv6網路字首。
- 使用6in4的封包封裝機制封裝IPv6封包。
- 如何與6to4網路和純IPv6網路的網路流量路由。
位址塊申請
[編輯]6to4定義了一個網路字首2002::/16
用於表達這是一個6to4網路整體,任何一個公共IPv4位址將位址的十六進位值加在6to4網路字首之後,從而產生一個字首數為48的相應IPv4的6to4子網路的網路字首,而且其仍然可以繼續分割至最小字首數為64的子網路段用於區分出這個6to4子網路的子網路。另外,RFC 1918所定義的專用網路位址不能用於6to4子網路的申請,因為通訊回應時無法將按照IPv4專用網路位址送回發起處。
例如,IPv4位址192.0.2.4
能夠申請到2002:c000:0204::/48
網路字首(c000:0204
為192.0.2.4
的十六進位值),而48到64之間還有16位元的位址空間可用於再劃分更小的子網路。
封裝與傳輸
[編輯]6to4的封裝是使用6in4的封裝,將IPv6的封包直接跟接著IPv4的封包頭,並且IPv4封包的協定號為41。IPv4封包的源位址是衍生自封裝的IPv6封包源位址中的內嵌IPv4位址,而目的位址則根據封裝的IPv6封包目的位址而不同。這些6to4的IPv4封包如普通的IPv4一樣在IPv4網路中路由轉發。
與6to4網路和純IPv6之間的路由
[編輯]![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/0/05/6to4.svg/250px-6to4.svg.png)
為了使6to4網路的主機或網路能夠與其他「原生」IPv6網路通訊,這需要到「中繼路由器(relay routers)」。這些路由器連接著IPv4和IPv6網路,會在IPv6網路對2002::/16
進行路由宣告以使其他IPv6網路的流量能夠通過這些路由器進行IPv4的封裝和轉發到相應目標的6to4網路。而6to4網路的IPv4出口側需要一個預設閘道器用於將6to4中已封裝IPv6封包的IPv4流量傳入到IPv6網路,為了避免使用者手工組態的麻煩,RFC 3068定義了一個任播IPv4位址192.88.99.1[3],其可以組態給多個中繼路由器,用於接受6to4已封裝IPv6封包的IPv4流量並將其解封後轉發至IPv6之中,但由於無法解決的操作問題,此用法已被棄用。[1][2]「6to4中繼路由器」不一定就是「6to4邊界路由器」。「邊界路由器」是支援一個6to4偽介面的IPv6路由器,用於宣告其IPv4對應6to4字首。「中繼路由器」則負責完整6to4網路與純IPv6網路之間封包的解封裝。「中繼路由器」應該對IPv6網路宣告整個2002::/16
的路由而不區分基於IPv4的子網路區分,避免IPv4的路由污染到IPv6的路由表。
對於6to4子網路絡之間的路由,則直接根據封裝的IPv6包目的位址為6to4位址中內嵌IPv4位址,按照普通的IPv4流量在IPv4網路中直接傳送。
反向DNS委派
[編輯]如果使用6to4的站點有著固定的全域IPv4位址,則其6to4IPv6網路字首也是固定的。可以通過6to4.nro.net網站向號碼資源組織申請在2.0.0.2.ip6.arpa
DNS域添加一個字首48為單位的反向DNS委派域,可以自動化申請。
安全要點
[編輯]根據RFC 3964,6to4的邊界路由器和中繼路由器被要求:
- 任何被封裝的IPv6封包的源位址或目的位址都應該6to4的網路字首
2002::/16
。 - 如果IPv6源位址是6to4 IPv6位址,則其對應的6to4路由器IPv4位址與IPv4封裝頭中的IPv4源位址匹配。
- 同樣,如果IPv6目標位址是6to4 IPv6位址,則其對應的6to4路由器IPv4位址與IPv4封裝頭中的IPv4目標位址匹配。
- 任何6to4路由器嵌入的IPv4位址都是全球單播的。
參考文獻
[編輯]外部連結
[編輯]- "Routing IPv6 over IPv4" article by Cisco(頁面存檔備份,存於網際網路檔案館)
- IPv6 6to4 tunnel configuration example(頁面存檔備份,存於網際網路檔案館)
|