6to4
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之間的路由
[編輯]為了使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地址都是全球單播的。