本節書摘來自異步社群《深入解析ipv6(第3版)》一書中的第11章,第11.3節,作者: 【美】joseph davies 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
rfc 4213定義了如下可以穿越純ipv4架構在ipv6/ipv4節點之間建立隧道ipv6流量的隧道配置環境:
路由器到路由器;
主機到路由器和路由器到主機;
主機到主機。
11.3.1 路由器到路由器
在路由器到路由器的隧道配置環境中,兩個ipv6/ipv4路由器穿越純ipv4架構連接配接到了兩個支援ipv6的架構中。隧道端點在源和目的位址間相隔一跳。每個支援ipv6架構的路由都指向其邊緣的ipv6/ipv4路由器。對于每個ipv6/ipv4路由器,都存在代表ipv6-over-ipv4隧道的隧道接口和使用隧道接口的路由。
注釋
支援ipv6的架構中包含有ipv6連接配接,這個連接配接既可以是本地的,也可以是基于隧道的連接配接。而具有ipv6功能的架構會含有本地的ipv6連接配接。
圖11-6所示為路由器到路由器的隧道。

https://yqfile.alicdn.com/bf858e9333d4ace867ff44479dc900594173d9b5.png" >
這個隧道配置環境的示例包括如下内容。
一個純ipv6的測試實驗室,穿過某機構的純ipv4架構到達ipv6 internet。
一個機構中兩個支援ipv6的站點,穿越ipv4 internet建立隧道。
6to4路由器穿越ipv4 internet并與另一個6to4路由器建立隧道,或與一台6to4中繼路由器建立隧道。如需進一步了解有關6to4的内容,請參閱第13章。
11.3.2 主機到路由器和路由器到主機
在主機到路由器的隧道配置環境中,一台位于純ipv4架構中的ipv6/ipv4主機使用ipv6-over-ipv4的隧道到達一台ipv6/ipv4路由器。隧道端點為源和目的位址間的第一跳。
在ipv6/ipv4節點上,有一個隧道接口代表ipv6-over-ipv4隧道的隧道接口和一條或多條使用該隧道接口的路由(通常是預設路由)。ipv6/ipv4節點會根據比對的路由、隧道接口和ipv6/ipv4路由器的下一跳ipv6位址,來将ipv6資料包通過隧道進行傳送。
在路由器到主機的隧道配置環境中,ipv6/ipv4路由器會建立一條ipv6-over-ipv4隧道以穿越ipv4架構并到達ipv6/ipv4節點。隧道端點為源和目的位址間的最後一跳。
在ipv6/ipv4路由器上,有一個隧道接口代表ipv6-over-ipv4隧道的隧道接口和使用該隧道接口的路由(通常是子網路由)。ipv6/ipv4路由器會根據比對的子網路由、隧道接口和ipv6/ipv4節點的目的ipv6位址,來将ipv6資料包通過隧道進行傳送。
圖11-7所示為主機到路由器的隧道(對于純ipv4架構中節點a到節點b的流量量)和路由器到主機的隧道(對于節點b到節點a傳輸的流量)。
主機到路由器和路由器到主機的示例包括如下内容。
一台ipv6/ipv4主機通過某個機構的純ipv4架構并建立通往ipv6 internet的隧道(主機到路由器的隧道)。
一台isatap主機通過内聯網中隻支援ipv4的部分,與一台isatap路由器建立隧道,以到達内聯網中支援ipv6的那一部分(主機到路由器的隧道)。
一台isatap路由器通過内聯網中隻支援ipv4的部分,與目的isatap主機建立隧道(路由器到主機的隧道)。
11.3.3 主機到主機
在主機到主機的隧道配置環境中,位于純ipv4架構中的ipv6/ipv4主機會使用ipv6-over-ipv4隧道,到達位于同一個純ipv4架構中的另一個ipv6/ipv4節點。隧道端點位于整條路徑的兩端,源和目的節點相隔一跳。
每個ipv6/ipv4節點都有一個代表ipv6-over-ipv4隧道的接口。有一條路由用來表示目的節點位于由純ipv4架構定義的同一個邏輯子網中。發送方主機會根據發送接口、鍊路中的子網路由以及目的位址,将ipv6流量通過隧道發送到目的。
圖11-8所示為主機到主機的隧道。
主機到主機的隧道示例包括如下内容。
isatap主機之間跨越某機構的純ipv4架建構立隧道。
6to4主機/路由器之間穿越ipv4 internet通過隧道互相傳送流量。
11.3.4 隧道類型
rfc 4213定義了如下隧道類型。
手動配置的隧道。
自動生成的隧道。
手動配置的隧道
手動配置的隧道需要人工配置本地和遠端的隧道端點。在手動配置的隧道中,遠端隧道端點的ipv4位址并不會内嵌或編碼在目的ipv6位址的下一跳ipv6位址中。手動配置的隧道通常用于路由器到路由器的隧道。配置隧道接口的任務包括配置本地和遠端隧道端點的ipv4位址,這些位址必須按照使用隧道接口的路由來人工指定。例如,使用手動配置的隧道,可以在不使用ipv6過渡技術(如isatap)的情況下,穿越純ipv4内聯網連接配接兩個支援ipv6的測試實驗室網絡。
為了給windows中的ipv6協定人工建立手動配置的隧道,需要使用如下指令:
name是新隧道接口的名稱。
localipv4address是配置設定給正在執行指令的計算機的ipv4位址,該位址對應本地隧道端點。
remoteipv4address是遠端隧道端點的ipv4位址。
必須在隧道兩端的路由器上都建立隧道接口并且添加使用隧道接口的路由。
例如,有兩個測試實驗室子網分别位于内聯網的不同部分。路由器1連接配接到ipv6子網2001:db8:0:1::/64,并且ipv4位址是131.107.47.121。路由器2連接配接到ipv6子網2001:db8:0:2::/64,并且ipv4位址是157.54.9.211。圖11-9所示為這個配置。

https://yqfile.alicdn.com/1b0cc2b01005215cfa106364a5b8fd25ae034447.png" >
為了在路由器1和路由器2之間配置一個隧道,要在路由器1上運作下列指令:
同樣,還要在路由器2上運作下列指令:
自動隧道
自動隧道不需要手動配置。自動隧道的隧道端點由目的ipv6位址所使用的路由、隧道接口和下一跳位址決定。windows的ipv6協定支援下列自動隧道技術。
isatap:用于純ipv4内聯網中的ipv6/ipv4主機之間的單點傳播通信。如需進一步了解相關内容,請參閱第12章。
6to4:用于ipv4 internet中的ipv6/ipv4主機之間和支援ipv6的站點之間的單點傳播通信,需要6to4路由器或6to4主機/路由器擁有公網的ipv4位址。如需進一步了解相關内容,請參閱第13章。
teredo:用于ipv4 internet中的ipv6/ipv4主機之間的單點傳播通信。即使主機隻有ipv4私有位址,而且位于nat之後,通信也可以實作。如需進一步了解相關内容,請參閱第14章。
在 windows的自動隧道技術中,發送或轉發節點會從下述内容中判斷出ipv6-over-ipv4隧道的端點。
遠端隧道端點的ipv4位址嵌入或編碼在下一跳ipv6位址中(該位址對應目的ipv6位址的比對路由)。
本地隧道端點的ipv4位址會通過到達目的ipv4位址(即遠端隧道端點)的最佳源ipv4位址來進行判斷。