0引言
由于IPv6与IPv4的地址结构是不兼容的,这就需要某种机制来实现网络的过渡,并解决网络共存期间的互访问题。出于种种原因,服务器是IPv4的,但是人们希望它可以给IPV6主机提供服务;又或者主机是IPv4的,但是人们希望它可以访问IPv6服务器的资源。
IVI就是解决上述网络互通场景的一种方案。
IVI是一种无状态的,基于特定网络前缀的翻译机制。IVI主要提供IPv4和IPv6之间的地址翻译,协议翻译,分片处理和ALG等功能。
IVI网关是一个双栈路由器,它的一个接口连接IPv4网络,一个接口连接IPv6网络。
图1是单个IVI网关配置的例子。
1 IVI过渡技术支持的应用场景
IPv4与IPv6之间的翻译场景共有8种,分别为:
Scenario 1:
an IPv6network to the IPv4InternetScenario 2:
the IPv4Internet to an IPv6networkScenario 3:
the IPv6Internet to an IPv4networkScenario 4:
an IPv4network to the IPv6InternetScenario 5:
an IPv6network to an IPv4networkScenario 6:
an IPv4network to an IPv6networkScenario 7:
the IPv6Internet to the IPv4InternetScenario 8:
the IPv4Internet to the IPv6InternetIVI支持上述8种场景中的场景1,场景2,场景5和场景6.下面分别对这4种场景作简要分析。
场景1:一个IPv6网络到IPv4因特网。
由于IPv4地址的缺乏或者由于其他技术或经济上的考虑,网络是IPv6-ONLY的,但是网络中的主机需要和全球的IPv4因特网通信。
场景2:
IPv4因特网到一个IPv6网络。
当企业网络或者ISP网络采用场景1的模式,IPv6-ONLY用户不仅想访问IPv4因特网上的服务器,同时也想在IPv6网络中安装他们自己的服务器,以便被IPv4因特网的用户访问。
场景5:一个IPv6网络到一个IPv4网络。
在这种场景中,IPv4网络和IPv6网络属于同一个组织机构,使用的IPV4地址和IPV6地址要么是公网地址,要么是内网地址。
场景6:一个IPv4网络到一个IPv6网络。
场景6同场景5.
2 IVI过渡技术的具体实现
IVI的具体实现包括地址翻译,协议翻译,分片处理和ALG.下面分别进行具体分析。
(1)地址翻译:IVI的地址翻译是基于特定网络前缀的,这个特定前缀有可能是某个组织机构或网络运营商分配的,也有可能是一个Well-known前缀,该前缀的值为64:ff9b::/96.IVI的地址翻译是把IPv4地址"植入"IPv6地址当中,如表1所示。
IPv6地址前缀的长度只能是以下长度中的一种:32,40,48,56,64和96.地址中的第64到71比特位是保留位,这些比特位必须置为0.当使用一个96位前缀时,管理员必须确保64到71比特位设置为0."植入的"IPv6地址由前缀+IPv4地址+后缀组成,后缀通常置为0.例如当前缀长度是32比特时,IPv4地址编码位置为32到63比特位;当前缀长度是40比特时,IPv4地址的前24比特的编码位置为40到63比特位,剩余的后8比特的编码位置为72到79比特位,其他类推。如果前缀长度是96位的话,那么就没有后缀了。
从"植入的"IPv6地址中提取出IPv4地址的算法如下所述:如果前缀长度是96比特,那么提取IPV6地址的最后32位比特;如果是其他前缀长度,移除"u"字节后得到一个120比特的序列,然后提取紧挨着前缀的32位比特。
(2)协议翻译:IVI的协议翻译包括IP首部翻译,TCP/UDP首部翻译以及ICMPv4/ICMPv6首部翻译。
下面分别进行具体说明。
①IP首部翻译:是指将IPv4首部翻译为IPv6首部或者反之。IPv4首部的格式见表2,IPv6基本首部的格式见表3,首部翻译的各个域的设置如表4所示。
②TCP/UDP首部翻译:主要是更新首部中的校验和域。
③ICMPv4/ICMPv6首部翻译:主要是翻译类型值和代码值以及校验和域,ICMP首部的格式如表5所示。
(3)分片处理:无论是在IPv4方向,还是在IPv6方向,IVI对于分片的处理都是先将分片进行重装,重装后再进行翻译。
(4)ALG:对于在高层数据中带有地址信息的应用,必须实现ALG功能。典型的此类应用有FTP,在FTP ALG中,必须对FTP数据中的地址也进行相应的翻译,否则会导致FTP功能无法正常使用。
3 IVI过渡技术的应用
举例下面以一个简单的网络拓扑来说明IVI的具体配置和翻译流程,网络拓扑如图2所示。在图2的三层交换机接口上开启IVI功能,PC端是IPv4主机,服务器端是IPv6服务器。PC端配置:配置IPv4地址为198.51.100.2服务器端配置:配置IPv6地址为2001:db8:1c0:2:21::,该IPv6地址对应的IPv4地址为192.0.2.33,配置一条静态路由ipv6route 2001:db8:1c6:3364:2::"本地连接"2001:db8:1c0:2:21::.
三层交换机接口配置:在连接PC的接口和连接服务器的接口上分别使能IVI功能。下面以telnet应用为例,来说明IVI的翻译流程,如图3所示。
PC要访问服务器,首先通过DNS46获取服务器对应的IPv4地址,即192.0.2.33,PC发送目的地址为192.0.2.33的TCP报文,该报文到达IVI网关的IPv4接口后,被翻译为IPv6报文,从IPv6接口发送出去,到达服务 器;服 务 器 回 应 的IPv6报文的目的地址为2001:db8:1c6:3364:2::,该地址对应PC的地址,即198.51.100.2,该报文到达IVI网关的IPv6接口后,被翻译为IPv4报文,从IPv4接口发送出去,到达PC,后续TCP流以此类推。
4结论
在IPv4网络和IPv6网络共存期间,网络互访是一个必须要解决的问题,IVI提供了一种了基于翻译技术的过渡方式。
IVI过渡技术需要进行地址翻译,协议翻译,分片处理和ALG处理,在网络过渡的初期,IVI是一种经济合理的过渡方案。
参考文献:
[1]王相林,朱晨.基于IVI的ICMP协议翻译的设计与实现[J].杭州电子科技大学学报,2012,(06).
[2]陈杰.IPv6过渡的NAT技术[D].南京:南京邮电大学,2013.
[3]陈国峰.Intranet中IPv6过渡策略的研究与应用[D].杭州:杭州电子科技大学,2011.