3.3.3 IPv4/IPv6协议转换技术
IPv4/IPv6协议转换技术为 IPv4网络与 IPv6网络之间的互访提供了可能。在过渡期间,IPv4和 IPv6共存的过程中,面临的一个主要问题是IPv6与 IPv4之间如何互通。由于两者的不兼容性,因此无法实现两种不兼容网络之间的互访,所以 IPv6/IPv4协议转换技术孕育而生。协议转换技术流程如图 3-16所示。
图3-16 协议转换技术流程示意
1. NAT-PT技术
IETF在早期设计了 NAT-PT的解决方案:RFC2766、NAT-PT通过 IPv6与IPv4的网络地址与协议转换,实现了 IPv6网络与 IPv4网络的双向互访。
网络地址转换—协议转换(NetworkAddressTranslation-ProtocolTranslation,NAT-PT):由无状态协议转换技术(StatelessIP/ICMPTranslation,SIIT)和动态地址协议转换技术结合与演进而来,SIIT提供一对一的 IPv4地址和 IPv6地址的映射转换,NAT-PT支持在 SIIT的基础上实现多对一或多对多的地址转换。NAT-PT分为静态和动态两种形式。
(1) 静态 NAT-PT
静态 NAT-PT提供一对一的 IPv6地址和 IPv4地址的映射转换。IPv6单协议网络域内的节点要访问 IPv4单协议网络域内的每一个 IPv4地址,都必须在 NAT-PT网关中配置。每一个目的 IPv4在 NAT-PT网关中被映射成一个具有预定义 NAT-PT前缀的IPv6地址。在这种模式下,每一个IPv6映射到IPv4地址需要一个源IPv4地址。静态配置适合经常在线,或者需要提供稳定连接的主机。
(2) 动态 NAT-PT
在动态 NAT-PT中,NAT-PT网关向 IPv6网络通告一个 96位的地址前缀,并结合主机 32位的 IPv4地址作为对 IPv4网络中的主机的标识。从 IPv6网络中的主机向 IPv4网络发送的报文,其目的地址前缀与 NAT-PT发布的地址前缀相同,这些报文都被路由到NAT-PT网关,由 NAT-PT网关对报文头进行修改,取出其中的IPv4地址信息,替换目的地址。同时,NAT-PT网关定义了 IPv4地址池,它从地址池中取出一个地址来替换IPv6报文的源地址,从而完成从 IPv6地址到 IPv4地址的转换。动态 NAT-PT支持多个 IPv6地址映射为一个 IPv4地址,节省了 IPv4地址的空间。
NAT-PT支持 IPv4和 IPv6两种协议的相互翻译和转换,但是存在如下问题。属于同一会话的请求和响应都必须通过同一 NAT-PT设备才能进行转换,比较适合单一出口设备的环境;不能转换 IPv4报文头的可选项部分;缺少端到端的安全性。因此,NAT-PT逐渐被废弃,不推荐使用。为了解决 NAT-PT中的各种缺陷,同时实现 IPv6与 IPv4之间的 NAT-PT技术,IETF重新设计了新的解决方案:NAT64与 DNS64技术。
2. NAT64与DNS64技术
NAT64是一种有状态的网络地址与协议转换技术,一般只支持通过 IPv6网络侧用户发起连接访问 IPv4网络侧的资源。但 NAT64也支持通过手动配置静态映射关系,实现 IPv4网络主动发起连接访问 IPv6网络。NAT64可实现 TCP、UDP、ICMP下的IPv6与IPv4网络地址与协议转换。DNS64则主要是配合 NAT64工作,是将 DNS查询信息中的 A记录(IPv4地址)合成到 AAAA记录(IPv6地址)中,返回合成的 AAAA记录给 IPv6侧用户。DNS64也解决了 NAT-PT中的 DNS-ALG存在的缺陷。NAT64是 IPv6网络发展初期的一种过渡解决方案,在 IPv6发展前期会被广泛部署应用,而后期则会随着 IPv6网络的发展壮大逐步退出历史舞台。
NAT64与DNS64技术的流程如图 3-17所示。
图3-17 NAT64与DNS64技术的流程
NAT64与DNS64技术的流程如下。
(1) IPv6主机发起到 DNS64服务器的 IPv6域名解析请求(IPv6主机配置的DNS地址是DNS64),IPv6域名解析为www.abc.com。
(2) DNS64服务器触发到 DNS服务器中查询 IPv6地址。
(3) 若能查询到,则返回域名对应的IPv6地址;若查询不到,则返回 IPv6空。
(4) DNS64服务器再次触发到 DNS服务器中查询 IPv4地址。
(5) DNS服务器返回IPv4记录(192.168.1.1)。
(6) DNS64服务器合成IPv6地址(64::FF9B::192.168.1.1),并返回给IPv6主机。
(7) IPv6主机发起目的地址为 64::FF9B::192.168.1.1的 IPv6数据包;由于NAT64在 IPv6域内通告配置的 IPv6地址前缀,因此这个数据包转发到 NAT64路由器上。
(8) NAT64执行地址转换与协议转换,目的地址转换为 192.168.1.1,源地址根据地址状态转换(3ffe:100:200:1::1)→(172.16.1.1),在IPv4域内路由到IPv4服务器。
(9) IPv4数据包返回,目的地址为172.16.1.1。
(10) NAT64根据已有记录进行转换,目的地址转换为 3ffe:100:200:1::1,源地址为 64::FF9B::192.168.1.1,发送到 IPv6主机,流程结束。
协议转换技术对现有IPv4环境做少量改造(通常是更换出口网关),即可实现对外支持 IPv6访问,部署简单便捷。
3. IVI
除 NAT-PT、NAT64与 DNS64技术之外,IVI也是一种基于运营商路由前缀的无状态IPv4/IPv6协议转换技术。IVI方案是由 CERNET2的研究人员清华大学李星教授提出的,对应 RFC6052。IVI的主要思路是,从全球 IPv4地址空间(IPG4)中,取出一部分地址映射到全球 IPv6地址空间(IPG6)中。在 IPG4中,每个运营商取出一部分IPv4地址,以在IVI过渡中使用,被取出的这部分地址称为IVI4(i)地址,且不能分配给实际的主机使用。IVI的地址映射规则是在 IPv6地址中插入IPv4地址。地址的 0~31位为 ISP的 /32位的 IPv6前缀,32~39位设置为 FF,表示这是一个IVI映射地址。40~71位表示插入的全局IPv4空间(IVIG4)的地址格式,如 IPv4/24映射为 IPv6/64,而 IPv4/32映射为 IPv6/72。目前,国内有很多地址协议转换设备都是基于 IVI技术研发的,重点解决企业 Web的 IPv6改造问题。