三、NAT-PT技术:(Network Address Translation-Protocol Translation)将IPv4地址与协议和IPv6地址与协议相互转换的技术。如下图:
在上图中IPv6主机2001:db8:ffff:1::1 想和IPv4主机192.0.30.1通信,由于双方工作在不同的协议下,所以不可能直接通过对方的地址通信,这时就需要NAT-PT边缘路由器进行地址和协议的转换操作。
过程:首先我们需要在边缘路由器上做好转换的映射关系(可以是静态,动态,NAPT-PT)为了便于理解这里以静态映射说明。
在边缘路由器上为图中IPv6主机2001:db8:ffff:1::1映射一个IPv4地址 192.0.2.2 同时为图中IPv4主机192.0.30.1映射一个IPv6地址2001:db8:ffff:ffff::a
这样当图中IPv6主机2001:db8:ffff:1::1想和IPv4主机192.0.30.1通信时,在自己一方网络层源IP地址封装2001:db8:ffff:1::1 目标IP可以封装2001:db8:ffff:ffff::a
该IPv6数据包到达边缘路由器后,路由器会根据之前定义好的映射关系进行转换,会把IPv6报头中的源IP2001:db8:ffff:1::1换成192.0.2.2,会将目的IP换成192.0.30.1也就是IPv4主机的接口地址,这样就完成了V4协议和V6协议的转换,回来的时候执行相反的操作,也就是,将IPv4报头中的源IP地址192.0.30.1换成2001:db8:ffff:ffff::a 把目的IP换成2001:db8:ffff:1::1也就是IPv6主机的接口IP,这样又完成了V4协议到V6协议的转换。由于这种转换不仅是地址的转换还是协议的转换,所以会大大增加数据包的传递延迟,除非不得不用时才会使用。
注意:转换后的IPv4地址不能是RFC1918私有地址空间里定义的地址。
配置举例:
实验平台:Cisco 3725+NM4T串口模块+GT96100-FE快速以太网模块
IOS: c3725-adventerprisek9-mz.124-9.T1.bin
实验目标:通过配置静态NAT-PT使R1连接的IPv6主机PC1能和R2连接的IPv4主机PC2互相通讯
实验拓扑:如下图
R1配置:
R1(config)#ipv unicast-routing
R1(config)#int fa0/0
R1(config-if)#ipv add 2000::1/16
R1(config-if)#no shut
R1(config-if)#ipv6 nat //标记接口进行NAT-PT转换
R1(config-if)#int s1/0
R1(config-if)#ip add 202.106.0.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#ipv6 nat //标记接口进行NAT-PT转换
R1(config)#ipv6 nat v6v4 source 2000::2 202.106.0.3 //将PC1V6地址映射成指定V4地址
R1(config)#ipv6 nat v4v6 source 202.106.1.2 2001::1 //将PC2V4地址映射成指定V6地址
R1(config)#ipv6 nat prefix 2001::/96 //定义前缘长度,必须是96位
R1(config)#router eigrp 90
R1(config-router)#no au
R1(config-router)#network 202.106.0.0
R2配置:
R2(config)#int s1/0
R2(config-if)#ip add 202.106.0.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int fa0/0
R2(config-if)#ip add 202.106.1.1 255.255.255.0
R2(config-if)#no shut
R2(config)#router eigrp 90
R2(config-router)#no au
R2(config-router)#network 202.106.0.0
R2(config-router)#network 202.106.1.0
R1#debug ipv6 nat
IPv6 NAT-PT debugging is on
*Mar 1 00:12:29.307: IPv6 NAT: icmp src (2000::2) -> (202.106.0.3), dst (2001::1) ->
(202.106.1.2)
*Mar 1 00:12:29.403: IPv6 NAT: icmp src (202.106.1.2) -> (2001::1), dst (202.106.0.3) ->
(2000::2) //PC1主动Ping PC2 命令:ping 2001::1
*Mar 1 00:13:25.891: IPv6 NAT: icmp src (202.106.1.2) -> (2001::1), dst (202.106.0.3) ->
(2000::2)
*Mar 1 00:13:26.011: IPv6 NAT: icmp src (2000::2) -> (202.106.0.3), dst (2001::1) ->
(202.106.0.2) //PC2主动Ping PC1 命令:ping 202.106.0.3
相互通信成功,目标实现
动态NAT-PT 以及NAPT-PT配置举例待续……