IPv6的應用是個循序漸進的過程,在很長時間內,IPv4網絡和IPv6網絡會同時存在且需要相互通信。在IPv4網絡完全過渡到IPv6網絡之前,兩個網絡之間直接的網絡通信可以通過NAT-PT(Network Address Translation-Protocol Translation,附帶協議轉換的網絡地址轉換)所提供的IPv4和IPv6地址之間的相互轉換功能來實現。例如,使用此技術可以使IPv6網絡中的主機直接訪問IPv4網絡中的FTP服務器。
如圖1所示,NAT-PT作用於IPv4和IPv6網絡邊緣的設備上,所有的地址轉換過程都在該設備上實現,對IPv4和IPv6網絡來說是透明的,即用戶不必改變目前的IPv4網絡中主機得配置就可實現IPv6網絡與IPv4網絡的通信。
圖1 NAT-PT示意圖
但由於NAT-PT具有下麵一些局限性,所以在一些場合不推薦使用(如IPv6網絡中主機跨越IPv4網絡與另一IPv6網絡中主機通信推薦使用隧道技術):
l 屬於同一會話的請求和響應都必須通過同一NAT-PT設備才能進行NAT-PT轉換。
l 不能轉換IPv4報文頭的可選項部分。
l 缺少端到端的安全性。
有三種NAT-PT機製可實現IPv4和IPv6地址之間的相互轉換:
靜態映射的NAT-PT機製是指采用手工配置的IPv6地址與IPv4地址的一一對應關係來實現IPv6地址與IPv4地址的轉換。
和靜態映射不同,動態映射沒有IPv6和IPv4地址之間的一一對應關係。動態映射要求先創建一個地址池,然後根據需要從地址池中選取空閑地址來完成IPv6地址與IPv4地址的映射。
NAPT-PT(Network Address Port Translation-Protocol Translation,附帶協議轉換的網絡地址端口轉換)是在IP地址動態轉換的基礎上對TCP、UDP的端口號也進行IPv6到IPv4的轉換。采用這種“地址+端口號”的映射方式,不同的IPv6地址轉換時,可以對應同一個IPv4地址,通過端口號來區分不同的IPv6主機,從而使多個IPv6主機能共享一個IPv4地址完成轉換。
圖2 NAT-PT的實現過程(IPv6側發起會話)
(1) 當IPv6網絡中的設備發送給IPv4網絡的報文到達NAT-PT設備後,如果設備判斷該報文是要轉發到IPv4網絡,則會利用在IPv6側已經配置的靜態或者動態的映射關係,進行IPv6地址到IPv4地址的轉換,將報文的源IPv6地址轉換為IPv4地址。
(2) 根據IPv4側配置的IPv4與IPv6的映射關係將目的地址轉換為IPv4地址。如果沒有配置映射關係,那麼,如果報文中的目的IPv6地址的低32位可以直接轉換為合法的IPv4地址,則直接轉換為目的IPv4地址;否則,轉換不成功。
(3) 報文的源IPv6地址和目的IPv6地址都轉換為IPv4地址後,設備按照正常的轉發流程將報文轉發到IPv4網絡中的設備。同時,將IPv6地址與轉換後的IPv4地址的映射關係保存在設備中。
(4) IPv4網絡中的設備發送給IPv6網絡中的報文到達NAT-PT設備後,將根據存儲的映射關係進行相反的轉換,從而將報文回送到IPv6網絡中的設備。
(1) 當IPv4網絡中的設備發送給IPv6網絡的報文到達NAT-PT設備後,如果設備判斷該報文是要轉發到IPv6網絡,則會利用在IPv4側已經配置的靜態或者動態的映射關係,進行IPv4地址到IPv6地址的轉換,將報文的源IPv4地址轉換為IPv6地址。
(2) 根據IPv6側配置的IPv6與IPv4的映射關係將目的IPv4地址轉換為IPv6地址。
(3) 報文的源IPv4地址和目的IPv4地址都轉換為IPv6地址後,設備按照正常的轉發流程將報文轉發到IPv6網絡中的設備。同時,將IPv4地址與轉換後的IPv6地址的映射關係保存在設備中。
(4) IPv6網絡中的設備發送給IPv4網絡中的報文到達NAT-PT設備後,將根據存儲的映射關係進行相反的轉換,從而將報文回送到IPv4網絡中的設備。