IPv6過渡機制

IPv6過渡機制是指那些用來促進網際網路從原有網際協議IPv4向下一代網際協議IPv6過渡的技術。具體來說，由於IPv4和IPv6網路是互不兼容的，這些技術的主要目的在於使得這兩個網路中的主機能夠訪問對方網路。

為了實現IPv6的技術指標，各方必須尋找簡單有效的過渡方案，將現有的網路從IPv4過渡到IPv6。網際網路工程任務組（IETF）通過使用網際網路草案（I-D）和RFC這些方法來指導相關工作組，並為工作組提供討論與開發這些過渡機制的平台。RFC 4213 定義了一些基礎的IPv6過渡機制。

## 無狀態IP/ICMP轉換

無狀態IP/ICMP轉換（SIIT）是在IPv6和IPv4報文頭格式之間進行轉換。SIIT方法定義一類被稱為IPv4轉換（IPv4-translated）地址的IPv6地址。這類地址的前綴為::ffff:0:0/96，也可被寫作::ffff:a.b.c.d，其中IPv4格式的地址a.b.c.d表示一個使能IPv6（IPv6-enabled）的節點。選擇這個前綴是為了生成一個為0的校驗值，以此來避免改變傳輸協議頭中的校驗值。

此演算法可以使IPv6主機無需擁有一個永久的IPv4地址就能與僅有IPv4的主機通信。地址分配和路由的細節並沒有在此規範中被提及。

這個規範由NGTRANS IETF工作組制訂，草案由Sun Microsystems的E. Nordmark於2000年2月作為RFC 2765發布。2011年，RFC 2765被RFC 6145代替。RFC 2765的地址格式化部分被定義在RFC 6052中。

RFC 6144定義IPv4/IPv6轉換的框架。

## 隧道中間人

隧道中間人將IPv6流量封裝在IPv4網際網路的傳輸連結中（通常使用6in4），在IPv4網際網路上建立起IPv6隧道以打通兩個網際網路之間的連接。這些隧道可以通過隧道設置協議（TSP）或AYIYA來管理。

## 6rd

6rd是一種在ISP的IPv4架構上實現快速部署IPv6服務的機制。它在IPv4與IPv6之間進行無狀態地址映射，並且在使用者節點之間自動建立相關隧道，以允許用戶根據IPv4數據包的形式傳輸IPv6數據部。

此方案在2007年末首次被大規模部署（RFC 5569）。RFC 5969詳述了此協議。

## 傳輸中繼翻譯

RFC 3142 定義了 傳輸中繼翻譯（TRT）方法，是最常見的NAT-PT以及NAPT-PT形式。

假設IPv6主機將會發起連結，並且目的主機存在於IPv4網路之中。發起主機上的靜態地址映射表、特殊 DNS 伺服器實現或經修改的 DNS 解析器實現，會提供某個特殊形式的IPv6地址作為目的地址。TRT中的中繼（Relay）會將該特殊IPv6地址翻譯成IPv4地址，隨後發起IPv4連結至目的主機。這個過程中，路由器會將數據包路由至中繼上，而中繼會持續地將IPv4數據包翻譯成IPv6數據包並發送至IPv6主機（反之亦然），直到兩個主機的會話結束。

## NAT64

<image>

NAT64是一種可以讓IPv6主機與IPv4伺服器通信的機制。NAT64伺服器需要至少一個IPv4地址和一個32位的IPv6網段（例如：64:ff9b::/96，見 RFC 6052 和 RFC 6146）。IPv6客戶端將希望與之通信的IPv4地址嵌入在這32位之中，並將數據包發往生成的地址。NAT64伺服器則創建IPv6與IPv4地址間的NAT映射，使得它們可以彼此通信。

## DNS64

DNS64是指一種專門的DNS伺服器，在其處理某個域名的AAAA記錄查詢時，如果該域名僅有A記錄，那麼DNS64會使用該A記錄生成出來一項AAAA記錄。生成出來的IPv6地址前綴指向一個IPv6/IPv4的轉換器，而剩餘32位嵌入了A記錄中的IPv4地址。指向的轉換器通常是一個NAT64伺服器。RFC 6147對DNS64標準進行了定義。

這種過渡機制存在兩個值得注意的問題：

- 它只適合使用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：Customer-side translator）可以由客戶端自己實現，也可以在支持IPv4的中間設備上實現；NAT64轉換器（服務端轉換器，PLAT：Provider-side translator）必須可以同時聯繫到IPv4網路上的伺服器，以及通過CLAT聯繫到客戶端。

## 雙棧精簡版

<image>

雙棧精簡版（Dual-Stack Lite，簡稱DS-Lite）是一種使用 IPv4-over-IPv6 隧道將 IPv4 數據包發送到運營商來實現 IPv4 私網地址使用者穿越 IPv6 網路訪問 IPv4 公網的解決方案。

支持此技術的客戶端設備（CPE）會將 IPv4 數據包封裝到 IPv6 數據包中，並且將數據包發送至運營商的電信級NAT（CGNAT）。CGNAT 收到數據包後，將其還原為 IPv4 數據包，在進行 NAT 處理後發送到 IPv4 網際網路。CGNAT 通過記錄 IPv6 源地址、私有 IPv4 地址，以及 TCP 或 UDP 埠號來標識流量。

輕量 4over6 方案 （Lightweight 4over6，簡稱lw4o6）是 DS-Lite 的一種改進方案，它將 NAT 功能從運營商端轉移到客戶端設備上，通過降低運營商需要管理的 NAT 狀態來減少運營商的開銷。

## v4 經 v6 路由

IETF 在 RFC 5549 和 RFC 9229 中定義了一個只將 IPv4 地址分配給終端，而中間路由器只需分配 IPv6 地址的方法，以此降低核心網路所需的管理量。通過這個方法，IPv4 數據包即使沒有經過封裝或者轉換的過程，也可以正常通過僅有 IPv6 地址的路由器跳轉至下一個站點。

## MAP

MAP（Mapping of Address and Port，地址兼埠映射）是一系列由思科提出的無狀態 IPv4-IPv6-IPv4 雙重轉換技術，存在翻譯（MAP-T）和封裝（MAP-E）兩種版本。這系列技術根據A+P（Address + Port）的思路，利用了現代網路下IPv4已然枯竭，但仍存在許多閒置 TCP/UDP 埠的這個特點，將同一個公網 IPv4 地址根據埠範圍繼續細分，並且只為任一使用者下發其中一個範圍（如埠1024-2048或8192-9216）。考慮到IPv6存在一定數量的多餘比特，MAP可以將這些比特空間用來儲存使用者被下發的埠範圍等資訊，以達到ISP端無需維持NAT狀態的效果。一些運營商如義大利Sky已經開始將其推廣至大眾使用者。

## 草案

IETF 仍在討論或已放棄以下機制：

### 4rd

IPv4 居家部署（IPv4 Residual Deployment，簡稱4rd）是一項實驗性提案，目的在用於促進跨 IPv6 網路的 IPv4 服務居家部署。與 6rd 相似，該技術以無狀態的方式進行 IPv6 和 IPv4 地址之間的映射。它支持基於傳輸層埠對 IPv4 網路進行擴展，是 A+P 模型的無狀態變體。雖然後來衍生出了 MAP-E 和 MAP-T 兩項基於同一理念的技術，但 4rd 至今仍屬於實驗性技術。

## 棄用機制

IETF 已棄用這些機制：

### NAT-PT

RFC 2766 定義了 Network Address Translation/Protocol Translation (NAT-PT) 這項機制。由於存在許多問題，它已被 RFC 4966 淘汰並且被降級為歷史狀態。這項機制一般與某一 DNS 應用程式級網關（DNS-ALG）實現結合使用。

### NAPT-PT

儘管與 NAT-PT 非常相近，同樣是在 RFC 2766 中被定義的 Network Address Port Translation + Protocol Translation，在網路地址轉換的基礎上添加了埠的轉換，以避免多個內網使用者同時使用同一個被暴露在外網的埠，導致出現安全性和程序穩定性的問題。這項機制已在 RFC 4966 中被定性為棄用機制。