IPv6 過渡機制是指那些用來促進網際網路從原有網際協議 IPv4 向下一代網際協議 IPv6 過渡的技術。具體來說，由於 IPv4 和 IPv6 網路是互不相容的，這些技術的主要目的在於使得這兩個網路中的主機能夠訪問對方網路。 為了實現 IPv6 的技術指標，各方必須尋找簡單有效的過渡方案，將現有的網路從 IPv4 過渡到 IPv6。網際網路工程任務組（IETF）透過使用網際網路草案（ID）和 RFC 這些方法來指導相關工作組，併為工作組提供討論與開發這些過渡機制的平臺。RFC 4213 定義了一些基礎的 IPv6 過渡機制。 無狀態 IPICMP 轉換 無狀態 IPICMP 轉換（SIIT）是在 IPv6 和 IPv4 報文頭格式之間進行轉換。SIIT 方法定義一類被稱為 IPv4 轉換（IPv4translated）地址的 IPv6 地址。這類地址的字首為ffff0096，也可被寫作ffffabcd，其中 IPv4 格式的地址 abcd 表示一個使能 IPv6（IPv6enabled）的節點。選擇這個字首是為了生成一個為 0 的校驗值，以此來避免改變傳輸協議頭中的校驗值。RFC 2765 無狀態 IPICMP 轉換演算法 SIIT E Normark February 2000 此演算法可以使 IPv6 主機無需擁有一個永久的 IPv4 地址就能與僅有 IPv4 的主機通訊。地址分配和路由的細節並沒有在此規範中被提及。 這個規範由 NGTRANS IETF 工作組制訂，草案由 Sun Microsystems 的 E Nordmark 於 2000 年 2 月作為 RFC 2765 釋出。2011 年，RFC 2765 被 RFC 6145 代替 RFC 6145 IPICMP Translation Algorithm。RFC 2765 的地址格式化部分被定義在 RFC 6052 中 RFC 6052 IPv6 Addressing of IPv4IPv6 Translators。 RFC 6144 定義 IPv4IPv6 轉換的框架 RFC 6144 Framework for IPv4IPv6 Translation。 隧道中間人 隧道中間人將 IPv6 流量封裝在 IPv4 網際網路的傳輸連結中（通常使用 6in4），在 IPv4 網際網路上建立起 IPv6 隧道以打通兩個網際網路之間的連線。這些隧道可以透過隧道設定協議（TSP）或 AYIYA 來管理。RFC3053 6rd 6rd 是一種在 ISP 的 IPv4 架構上實現快速部署 IPv6 服務的機制。它在 IPv4 與 IPv6 之間進行無狀態地址對映，並且在使用者節點之間自動建立相關隧道，以允許使用者根據 IPv4 資料包的形式傳輸 IPv6 資料部。 此方案在 2007 年末首次被大規模部署（RFC 5569 RFC 5569 IPv6 Rapid Deployment on IPv4 Infrastructures 6rd）。RFC 5969RFC 5969 IPv6 Rapid Deployment on IPv4 Infrastructures 6rd Protocol Specification 詳述了此協議。 傳輸中繼翻譯 RFC 3142 定義了 傳輸中繼翻譯（TRT）方法，是最常見的 NATPT 以及 NAPTPT 形式。 假設 IPv6 主機將會發起連結，並且目的主機存在於 IPv4 網路之中。發起主機上的靜態地址對映表、特殊 DNS 伺服器實現或經修改的 DNS 解析器實現，會提供某個特殊形式的 IPv6 地址作為目的地址。TRT 中的中繼（Relay）會將該特殊 IPv6 地址翻譯成 IPv4 地址，隨後發起 IPv4 連結至目的主機。這個過程中，路由器會將資料包路由至中繼上，而中繼會持續地將 IPv4 資料包翻譯成 IPv6 資料包併發送至 IPv6 主機（反之亦然），直到兩個主機的會話結束。 NAT64 NAT64 是一種可以讓 IPv6 主機與 IPv4 伺服器通訊的機制。NAT64 伺服器需要至少一個 IPv4 地址和一個 32 位的 IPv6 網段（例如：64ff9b96，見 RFC 6052 和 RFC 6146 ）。IPv6 客戶端將希望與之通訊的 IPv4 地址嵌入在這 32 位之中，並將資料包發往生成的地址。NAT64 伺服器則建立 IPv6 與 IPv4 地址間的 NAT 對映，使得它們可以彼此通訊。RFC 6146 Stateful NAT64 Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers DNS64 DNS64 是指一種專門的 DNS 伺服器，在其處理某個域名的 AAAA 記錄查詢時，如果該域名僅有 A 記錄，那麼 DNS64 會使用該 A 記錄生成出來一項 AAAA 記錄。生成出來的 IPv6 地址字首指向一個 IPv6IPv4 的轉換器，而剩餘 32 位嵌入了 A 記錄中的 IPv4 地址。指向的轉換器通常是一個 NAT64 伺服器。RFC 6147 對 DNS64 標準進行了定義。RFC 6147 DNS64 DNS Extensions for Network Address Translation from IPv6 Clients to IPv4 Servers 這種過渡機制存在兩個值得注意的問題： 它只適合使用 DNS 查詢遠端主機地址的場景，無法參與客戶端直接使用 IPv4 地址的場景。 DNS64 伺服器需要返回並非域所有者所指定的記錄，因此如果執行轉換的 DNS 伺服器不是域名所有者的伺服器，DNS 根的 DNSSEC 校驗將會失敗。 ISATAP ISATAP 是一種 IPv6 過渡機制，在雙棧節點之間透過 IPv4 網路傳輸 IPv6 資料包。 不同於 6over4（較早的基於 IPv4 多播的類似協議），ISATAP 將 IPv4 用作虛擬的非廣播多路訪問網路（NBMA）的資料鏈路層，因此底層的 IPv4 網路架構無需支援多播。 464XLAT 464XLAT（RFC 6877）可以使僅有 IPv6 網路上的客戶端訪問僅有 IPv4 的網際網路服務（例如 Skype）。 客戶端透過 SIIT 轉換器將 IPv4 資料包轉換成 IPv6，然後透過僅有 IPv6 的網路將其傳送到運營商的 NAT64 轉換器。NAT64 轉換器將 IPv6 資料包重新轉換回 IPv4，最後透過支援 IPv4 的網路將其傳送到僅有 IPv4 的伺服器。SIIT 轉換器（客戶端轉換器，CLAT：Customerside translator）可以由客戶端自己實現，也可以在支援 IPv4 的中間裝置上實現；NAT64 轉換器（服務端轉換器，PLAT：Providerside translator）必須可以同時聯絡到 IPv4 網路上的伺服器，以及透過 CLAT 聯絡到客戶端。 雙棧精簡版 雙棧精簡版（DualStack Lite，簡稱 DSLite） 是一種使用 IPv4overIPv6 隧道將 IPv4 資料包傳送到運營商來實現 IPv4 私網地址使用者穿越 IPv6 網路訪問 IPv4 公網的解決方案。 支援此技術的客戶端裝置（CPE）會將 IPv4 資料包封裝到 IPv6 資料包中，並且將資料包傳送至運營商的電信級 NAT（CGNAT）。CGNAT 收到資料包後，將其還原為 IPv4 資料包，在進行 NAT 處理後傳送到 IPv4 網際網路。 CGNAT 透過記錄 IPv6 源地址、私有 IPv4 地址，以及 TCP 或 UDP 埠號來標識流量。 輕量 4over6 方案 （Lightweight 4over6，簡稱 lw4o6） 是 DSLite 的一種改進方案，它將 NAT 功能從運營商端轉移到客戶端裝置上，透過降低運營商需要管理的 NAT 狀態來減少運營商的開銷。 v4 經 v6 路由 IETF 在 RFC 5549 和 RFC 9229 中定義了一個只將 IPv4 地址分配給終端，而中間路由器只需分配 IPv6 地址的方法，以此降低核心網路所需的管理量。透過這個方法，IPv4 資料包即使沒有經過封裝或者轉換的過程，也可以正常透過僅有 IPv6 地址的路由器跳轉至下一個站點。 MAP MAP（Mapping of Address and Port，地址兼埠對映）是一系列由思科提出的無狀態 IPv4IPv6IPv4 雙重轉換技術，存在翻譯（MAPT）和封裝（MAPE）兩種版本。 這系列技術根據 AP（Address Port）的思路，利用了現代網路下 IPv4 已然枯竭，但仍存在許多閒置 TCPUDP 埠的這個特點，將同一個公網 IPv4 地址根據埠範圍繼續細分，並且只為任一使用者下發其中一個範圍（如埠 10242048 或 81929216）。考慮到 IPv6 存在一定數量的多餘位元，MAP 可以將這些位元空間用來儲存使用者被下發的埠範圍等資訊，以達到 ISP 端無需維持 NAT 狀態的效果。一些運營商如義大利 Sky 已經開始將其推廣至大眾使用者。 草案 IETF 仍在討論或已放棄以下機制： 4rd IPv4 居家部署（IPv4 Residual Deployment，簡稱 4rd）是一項實驗性提案，目的在用於促進跨 IPv6 網路的 IPv4 服務居家部署。與 6rd 相似，該技術以無狀態的方式進行 IPv6 和 IPv4 地址之間的對映。它支援基於傳輸層埠對 IPv4 網路進行擴充套件，是 AP 模型的無狀態變體。雖然後來衍生出了 MAPE 和 MAPT 兩項基於同一理念的技術，但 4rd 至今仍屬於實驗性技術。 棄用機制 IETF 已棄用這些機制： NATPT RFC 2766 定義了 Network Address TranslationProtocol Translation NATPT 這項機制。由於存在許多問題，它已被 RFC 4966 淘汰並且被降級為歷史狀態。這項機制一般與某一 DNS 應用程式級閘道器（DNSALG）實現結合使用。 NAPTPT 儘管與 NATPT 非常相近，同樣是在 RFC 2766 中被定義的 Network Address Port Translation Protocol Translation，在網路地址轉換的基礎上添加了埠的轉換，以避免多個內網使用者同時使用同一個被暴露在外網的埠，導致出現安全性和程式穩定性的問題。這項機制已在 RFC 4966 中被定性為棄用機制。 參考文獻 IPv6 in Practice Benedikt Stockebrand 2006 ISBN 3540245243 RFC 2767 BumpintheStack RFC 3338 BumpintheAPI RFC 3089 Socksbased Gateway RFC 6219 The China Education and Research Network CERNET IVI Translation Design and Deployment for the IPv4IPv6 Coexistence and Transition CategoryIPv6