IPv6转换机制

**IPv6 過渡機制**指那些用來促進 Internet 從 IPv4 架構向下一代位址系統 ——IPv6 過渡的技術。具體來說，就是那些允許僅與 IPv4 或 IPv6 網路連接的主機能夠存取與之不同協定下資源的方法。

為了達到 IPv6 的技術標準，必須有簡單有效的過渡方案從現有的 IPv4 過渡到 IPv6。網際網路工程任務組（IETF）通過 IETF 的 Internet 草案和 RFC 來指導相關工作群組討論開發這些方法。一些基礎的 IPv6 過渡機制定義在 RFC 4213 中。

## 無狀態 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），從而提供 IPv6 連接。也就是在 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 形式，只不過其依賴於在 AAAA 與 A 記錄之間的 DNS 轉換，這種轉換機制被稱為 _DNS-ALG_，定義在 RFC 2694。

## NAT64

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 記錄，那麼它會用 A 記錄來合成 AAAA 記錄。合成的 IPv6 位址的第一部分指向一個 IPv6/IPv4 的轉換器，而第二部分則嵌入了 A 記錄的 IPv4 位址。指向的轉換器通常是一個 NAT64 伺服器。DNS64 的標準在 RFC 6147 中規定。

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

* 它只適合使用 DNS 尋找遠端主機位址的情形，如果直接使用 IPv4 位址，DNS64 將不會參與。
* 因為 DNS64 伺服器需要返回並非域所有者所指定的記錄，因此如果執行轉換的 DNS 伺服器不是域所有者的伺服器，對根的 DNSSEC 校驗將會失敗。

## ISATAP

ISATAP 是一種 IPv6 過渡機制，在雙棧節點之間通過 IPv4 網路傳輸 IPv6 封包。

不同於 6over4（較早的基於 IPv4 多播的類似協定），ISATAP 將 IPv4 用作虛擬的非廣播多路存取網路（NBMA）的資料鏈路層，因此底層的 IPv4 網路架構無需支援多播。

## 464XLAT

464XLAT（RFC 6877）可以使僅有 IPv6 網路上的客戶端存取僅有 IPv4 的網際網路服務（例如 Skype）。

客戶端（例如 Skype）通過 SIIT 轉換器將 IPv4 封包轉換成 IPv6，然後（通過僅有 IPv6 的網路）傳送到 NAT64 轉換器。NAT64 轉換器將 IPv6 封包重新轉換回 IPv4，最後（通過支援 IPv4 的網路）傳送到僅有 IPv4 的伺服器（例如 Skype 伺服器）。SIIT 轉換器（客戶端轉換器，CLAT：customer-side translator）可以由客戶端自己實現，也可以在支援 IPv4 的中間網路上實現（如果網際網路也支援 IPv4，那就不需要 464XLAT 了）；NAT64 轉換器（伺服器端轉換器，PLAT：provider-side translator）必須可以同時聯絡到伺服器和客戶端（通過 CLAT）。

## Dual-Stack Lite (DS-Lite)

**Dual-Stack Lite** 是一種使用 IPv4-over-IPv6 隧道將 IPv4 封包傳送到 ISP 來實現 IPv4 私網位址使用者穿越 IPv6 網路存取 IPv4 公網的解決方案。

客戶端裝置 (CPE) 將 IPv4 封包封裝到 IPv6 封包中，隨後將封包傳送到 ISP 的電信級 NAT (CGN)。CGN 收到封包後，將其還原為 IPv4 封包，在進行 NAT 處理後傳送到 IPv4 網際網路。 CGN 通過記錄 IPv6 源位址，私有 IPv4 位址，以及 TCP 或 UDP 埠號來標識流量。

**Lightweight 4over6** 是 DS-Lite 的一種改進方案，它將 NAT 功能從 ISP 端轉移到 CPE，減少運營商開銷。

## V4-via-v6 routing

## Draft proposals

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

### 4rd

### MAP

## 棄用的機制

IETF 已棄用這些機制：

### NAT-PT

_Network Address Translation/Protocol Translation_ (**NAT-PT**) 在 RFC 2766 中定義，由於許多問題，它已被 RFC 4966 淘汰並棄用為歷史狀態。 It is typically used in conjunction with a DNS application-level gateway (DNS-ALG) implementation.

### NAPT-PT

While almost identical to NAT-PT, _Network Address Port Translation + Protocol Translation_, which is also described in RFC 2766, adds translation of the ports as well as the address. This is done primarily to avoid two hosts on one side of the mechanism from using the same exposed port on the other side of the mechanism, which could cause application instability and security flaws. This mechanism has been deprecated by RFC 4966.

## 網站

### SixXS

SixXS（Six Access）是一個免費的、非盈利性、提供零成本服務的網站。SixXS 提供 IPv6 通道，通過 IPv6 服務存取網站，因通訊資料被加密，因此可以避免遭到網際網路審查。字尾「.sixxs.org」代表使用 sixxs.org 提供的 IPv6 閘道器，該閘道器將來自 IPv6 網路的 http 存取請求轉換成 IPv4 的 http 請求，存取任何其他 IPv4 的 http 都可以使用這個閘道器，在位址後面加上「.sixxs.org」即可。不過該專案已於 2017-06-06 停止服務，2017-07-01 正式結束。

## 參考文獻

* _IPv6 in Practice_, Benedikt Stockebrand (2006), ISBN 3-540-24524-3
* RFC 2767, _Bump-in-the-Stack_
* RFC 3338, _Bump-in-the-API_
* RFC 3089, _Socks-based Gateway_
* RFC 6219, _The China Education and Research Network (CERNET) IVI Translation Design and Deployment for the IPv4/IPv6 Coexistence and Transition_