第11章 拾遺5:IPv6和IPv4共存技術(3)_NAT-PT技術【全書完】
6.4 NAT-PT
(1)NAT-PT和NAT的差別
①NAT-PT(附帶協議轉換的網絡地址轉換)技術秉承NAT技術的思想,但在原理方面大有不同。
②NAT-PT和NAT本質的區別在於應用場合的不同。NAT是IPv4網絡中公網、私網地址的相互轉換,它是為了解決IPv4公網地址缺乏問題;而NAT-PT則是IPv6和IPv4地址的相互轉換,它是為了解決兩者互通問題。在IPv4網絡完全過渡到IPv6網絡之間,兩種類型之間直接通信可以通過NAT-PT來實現。
③NAT-PT作用於IPv4和IPv6網絡邊緣設備上,所有的地址轉換都在該設備上實現,對於IPv4和IPv6網絡來說是透明的,即用戶不必改變目前的IPv4網絡中主機的配置就可以實現IPv6網絡與IPv4網絡的通信
(2)NAT-PT和隧道的差別
①首先報文轉換和轉發方式不同:NAT-PT是對報文的網絡層內容進行轉換修改,剝離原先的報文頭,替換為轉換之後的報文頭(如IPv4→IPv6或IPv6→IPv4),而隧道技術是對初始報文作另一層報文的封裝。
②NAT-PT會檢查並且可以更改報文中的端口號;而隧道技術從來不會檢查報文中的傳輸層內容。
③NAT-PT一般適用於IPv4和IPv6不同網絡中主機互相訪問的環境中;而隧道技術一般用於實現一種網絡協議跨越另一種網絡協議之間的通信。所以NAT-PT的環境只需有一臺可以進行NAT-PT轉換的設備即可,而構造一種隧道的環境必須有兩臺設備形成一個隧道。
(3)NAT-PT分類
①靜態NAT-PT
A.提供一對一的IPv6地址和IPv4地址的映射。
B.IPv6單協議網絡內的節點要訪問IPv4單協議網絡內的每一個IPv4地址都必須在NAT-PT設備中配置。
C.每一個目的IPv4在NAT-PT設備中被映射成一個具有預定義NAT-PT前綴的IPv6地址。在這種模式下,每一個IPv6映射到IPv4地址,需要IPv4地址可以雙方發起連接。
②動態NAT-PT
A.NAT-PT網關向IPv6網絡通告一個96位的地址前綴,並結合32位主機IPv4地址作為對IPv4網絡中的主機的標識。
B.從IPv6網絡中的主機向IPv4網絡發送的報文
C.同時,NAT-PT網關定義了IPv4地址池,它從地址池中取出一個地址來替換IPv6報文的源地址,從而完成從IPv6地址到IPv4地址的轉換。
D.由於動態NAT-PT只能由IPv6一側首先發起連接,路由器把IPv6地址轉換為IPv4地址後,IPv4主機才知道使用哪一個IPv4地址來標識IPv6主機。若從IPv4端首先發起連接,IPv4主機並不知道IPv6主機的IPv4地址,因為這個地址是NAT-PT網關從地址池中隨機選擇的,連接無法進行。
(4)實戰:配置靜態NAT-PT
①路由器配置(並不是所有的路由器都支持NAT-PT,本例采用思科unzip-c3640-js-mz.124-10.bin)
//R1路由器 R1#conf t R1(config)#interface fastEthernet 0/0 R1(config-if)#ip address 192.168.10.10 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#interface serial 2/0 R1(config-if)#clock rate 64000 R1(config-if)#ip address 131.107.0.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#ip route 12.10.12.0 255.255.255.0 131.107.0.2 //添加到12.10.12.0網段的路由 R1(config)#exit //R2路由器(NAT-PT路由器) R2#conf t R2(config)#ipv6 unicast-routing R2(config)#interface serial 2/0 R2(config-if)#ip address 131.107.0.2 255.255.255.0 R2(config-if)#ipv6 nat //啟用該接口的IPv6 Nat功能 R2(config-if)#no sh R2(config-if)#exit R2(config)#interface serial 2/1 R2(config-if)#clock rate 64000 R2(config-if)#ipv6 address 2001:2::1/64 R2(config-if)#ipv6 nat //啟用該接口的IPv6 Nat功能 R2(config-if)#no sh R2(config-if)#exit R2(config)#ip route 192.168.10.0 255.255.255.0 131.107.0.1 //添加到192.168.10.0/24的路由 R2(config)#ipv6 route 2001:1::/64 2001:2::2 //添加到2001:1::/64網段的路由 //將v6映射成v4,從而能在ipv4網絡中可以訪問到ipv6主機。 R2(config)#ipv6 nat v6v4 source 2001:1::2 12.10.12.12 //配置靜態NAT-PT映射,將源IPv6映射為IPv4地址 //將v4映射成v6,從而能在ipv6網絡中可以訪問到ipv4主機。 R2(config)#ipv6 nat v4v6 source 192.168.10.20 2001:3::122 //配置靜態NAT-PT映射,將源IPv4映射為IPv6地址 R2(config)#ipv6 nat prefix 2001:3::/96 //IPv6前綴,定義將IPv4網絡映射到IPv6的2001:3::/96網段 R2(config)#exit R2# //R3路由器 R3#conf t R3(config)#ipv6 unicast-routing //啟用IPv6路由轉發功能 R3(config)#interface serial 2/1 R3(config-if)#ipv6 address 2001:2::2/64 R3(config-if)#no sh R3(config-if)#exit R3(config)#interface fastEthernet 0/0 R3(config-if)#ipv6 address 2001:1::1/64 R3(config-if)#no sh R3(config-if)#exit R3(config)#ipv6 route 2001:3::/64 2001:2::1 //添加到2001:3::/64網段的路由 R3(config)#exit R3#
②Win7虛擬機:放入VMnet1網絡,IPv4為192.168.10.20/24,默認網關192.168.10.10。Win8虛擬機:放入VMnet8網絡,IPv6設置為2001:1::2/64,默認網關為2001:1::1。
③測試:在R2上打開IPv6 nat調試開關(R2# debug IPv6 nat)。然後讓Win7虛擬機ping 12.10.12.12或Win8虛擬機ping 2001:3::122,並觀察IPv6 nat的調試輸出(註意觀察源和目標地址的變化)
//跟蹤NAT調試結果 R2#debug ipv6 nat //打開IPv6 nat調試開關(關閉時用no debug ipv6 nat) IPv6 NAT-PT debugging is on R2# *Mar 1 00:51:40.363: IPv6 NAT: src (192.168.10.20) -> (2001:3::122), dst (12.10.12.12) -> (2001:1::2) *Mar 1 00:51:40.431: IPv6 NAT: icmp src (2001:1::2) -> (12.10.12.12), dst (2001:3::122) -> (192.168.10.20) R2# *Mar 1 00:51:41.371: IPv6 NAT: src (192.168.10.20) -> (2001:3::122), dst (12.10.12.12) -> (2001:1::2) *Mar 1 00:51:41.431: IPv6 NAT: icmp src (2001:1::2) -> (12.10.12.12), dst (2001:3::122) -> (192.168.10.20)
(5)實戰:配置動態NAT-PT
①路由器配置
//R1路由器 R1#conf t R1(config)#interface fastEthernet 0/0 R1(config-if)#ip address 192.168.10.10 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#interface serial 2/0 R1(config-if)#clock rate 64000 R1(config-if)#ip address 131.107.0.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exit R1(config)#ip route 12.10.12.0 255.255.255.0 131.107.0.2 //指定到12.10.12.0/24網段的路由 //R2路由器 R2#conf t R2(config)#ipv6 unicast-routing R2(config)#interface serial 2/0 R2(config-if)#ip address 131.107.0.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#exit R2(config)#interface serial 2/1 R2(config-if)#clock rate 64000 R2(config-if)#ipv6 address 2001:2::1/64 R2(config-if)#no sh R2(config-if)#exit R2(config)#ip route 192.168.10.0 255.255.255.0 131.107.0.1 R2(config)#ipv6 route 2001:1::/64 2001:2::2 R2(config)#interface serial 2/0 //在R2的接口用ipv6的nat R2(config-if)#ipv6 nat //啟用IPv6地址轉換 R2(config-if)#exit R2(config)#interface serial 2/1 R2(config-if)#ipv6 nat R2(config-if)#exit R2(config)#ipv6 access-list v4map permit 2001:1::/64 any //定義訪問控制列表 R2(config)#ipv6 access-list v6list permit 2001:1::/64 any //定義允許訪問IPv4網絡的IPv6網段 R2(config)#ipv6 nat prefix 2001:3::/96 v4-mapped v4map //定義IPv4充當的IPv6網段 (前綴) R2(config)#ipv6 nat v6v4 pool v4pool 12.10.12.10 12.10.12.100 prefix-length 24 //定義IPv4地址池(名為v4pool) R2(config)#ipv6 nat v6v4 source list v6list pool v4pool //配置動態映射 R2(config)#exit //R3路由器 R3#conf t R3(config)#ipv6 unicast-routing R3(config)#interface serial 2/1 R3(config-if)#ipv6 address 2001:2::2/64 R3(config-if)#no sh R3(config-if)#exit R3(config)#interface fastEthernet 0/0 R3(config-if)#ipv6 address 2001:1::1/64 R3(config-if)#no sh R3(config-if)#exit R3(config)#ipv6 route 2001:3::/64 2001:2::1 R3(config)#exit
②測試:Win7A和Win7B虛擬機IP設置與上例相同。讓Win7B虛擬機ping 2001:3::c0a8:0a14(即,2001:3::192.168.10.20,註意只能從IPv6主動訪問IPv4網絡)。同時,可以在R2#debug ipv6 nat進行跟蹤。
//查看NAT調試結果 R2#debug ipv6 nat IPv6 NAT-PT debugging is on R2# *Mar 1 00:05:30.223: IPv6 NAT: icmp src (2001:1::2) -> (12.10.12.10), dst (2001:3::C0A8:A14) -> (192.168.10.20) *Mar 1 00:05:30.291: IPv6 NAT: src (192.168.10.20) -> (2001:3::C0A8:A14), dst (12.10.12.10) -> (2001:1::2) R2# *Mar 1 00:05:31.423: IPv6 NAT: icmp src (2001:1::2) -> (12.10.12.10), dst (2001:3::C0A8:A14) -> (192.168.10.20) *Mar 1 00:05:31.535: IPv6 NAT: src (192.168.10.20) -> (2001:3::C0A8:A14), dst (12.10.12.10) -> (2001:1::2)
第11章 拾遺5:IPv6和IPv4共存技術(3)_NAT-PT技術【全書完】