NAT64

允许IPv6主机与IPv4服务器通信的机制

NAT64是一種通過網絡地址轉換(NAT)的形式促成IPv6IPv4主機間通信的IPv6過渡機制。NAT64網關是IPv4與IPv6協議間的轉換器[1]它需要至少一個IPv4地址和一個包含32位地址空間的IPv6網段。為該服務保留的「知名前綴」是64:ff9b::/96

IPv6客戶端將希望與之通信的IPv4地址嵌入在IPv6網段的主機部分,構成一個嵌入IPv4的IPv6地址(IPv6網段中的32位地址空間),並將數據包發往生成的地址。NAT64網關則創建IPv6與IPv4地址間的映射,這可以是手動配置的,也可以是自動確定的。[2]

工作原理

編輯
 
NAT64和DNS64

簡單的NAT64安裝可能只需要一個網關,它的兩個接口分別連接到IPv4網絡與IPv6網絡。IPv6網絡的流量經由網關路由,網關對兩個網絡之間傳輸的數據包進行所有必要的轉換。但是,這種轉換並不是對稱的,[3]因為IPv6地址空間比IPv4地址空間大得多,因此就不可能進行一對一的地址映射。網關維護IPv6到IPv4的地址映射,而該映射可以在來自IPv6網絡的第一個數據包到達NAT64網關時依據手動配置創建(有狀態映射),也可使用自動算法創建(無狀態映射)。

如果NAT64轉換器是用在僅有IPv4的服務器之前,使其能被遠端僅有IPv6的客戶端訪問,則比較適合使用無狀態轉換;而有狀態轉換則適合部署在客戶端或服務提供端,使得僅有IPv6的客戶端主機能聯繫到遠端僅有IPv4的節點。

通常來說,NAT64被設計為在IPv6主機發起通信時使用。但也存在一些機制允許反向場景,例如靜態地址映射。[來源請求]

不是每種類型的資源都能用NAT64訪問。嵌入IPv4文字地址的協議(例如SIPSDPFTPWebSocketSkype、MSN等)和嵌入任何其他包括IPv4文字內容的協議都不被支持,但雙棧網頁代理允許僅有IPv6的客戶端訪問URL中包括IPv4文字的網頁。不過,使用NAT64的464XLAT(見 RFC 6877)允許在僅有IPv6的連接上使用此類協議。對於SIP和FTP來說,使用應用層閘道(ALG)或者支持 RFC 7225 定義的PREFIX64擴展的端口控制協議英語Port Control Protocol也可以解決這個問題。

實現

編輯

參考資料

編輯
  1. ^ RFC 6052, IPv6 Addressing of IPv4/IPv6 Translators, IETF Standards Track, C.Bao et al.
  2. ^ RFC 6146 Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers
  3. ^ Mavrin, Alex. NAT64 power and limitations. Blog article. [6 January 2014]. (原始內容存檔於2014-01-08). 
  4. ^ [Ecdysis-discuss] NAT64 in OpenBSD. Viagenie.ca. [2014-01-31]. (原始內容存檔於2013-05-27). 
  5. ^ Worldwide. Release Notes for the Cisco ASA Series, 9.0(x) [Cisco ASA 5500-X Series Next-Generation Firewalls] - Cisco Systems. Cisco.com. [2014-01-31]. (原始內容存檔於2014-01-12).