NAT64+DNS64是IETF推荐的实现IPv6-IPv4互访的过渡技术,除此之外,Smart6技术也是一种IPv6-IPv4翻译的技术,它主要面向于ICP网络的快速迁移,主要部署在IDC的出口,主要应用场景为:
场景一:在IPv4 ICP无力或者未能提供双栈改造时,提供快速迁移方案,实现IPv4 ICP为IPv6用户提供业务提供,同时也丰富IPv6用户的业务
场景二:在ICP直接建设IPv6业务平台时,提供IPv4用户访问单栈IPv6 ICP服务的能力
在场景一中,smart6设备主要部署在IPv4 IDC的出口。smart6推荐采用stateful NAT64,适用于IPv6侧用户发起访问IPv4的数据报文。当IPv6报文到达smart6设备时,先查找映射表中是否有已存在的映射;如果有匹配项,直接转换为IPv4报文;如果没有匹配,新生成一条映射记录再转换为IPv4报文。
此场景中smart6的业务流程与NAT64的业务流程类似。如下所示:
但Smart6与NAT64技术也存在着差异,首先,Smart6只负责IP地址层面的映射,不需要TCP/UDP会话信息维护,提高处理效率,减少log信息数量;其次,Smart6由于是针对IDC的快速改造,场景部署非常精确,所以在Smart6上配置IPv4 Pool时可以采用私网地址段来转换用户IPv6地址(因为IPv4私网地址的使用范围是smart6与IDC server之间,属于运营商可以控制和管理的区域),这样就大大降低了对IPv4地址的需求。
Smart6的地址映射有两种模式:1:1模式:一个IPv6地址映射为一个IPv4地址(设定lifetime),默认IPv4 Pool为10.0.0.0/8,节省公网IPv4地址消耗;N:1模式:每个IPv4地址为多个IPv6地址共享映射(IPv4 addr + port映射为一个IPv6地址),IPv4 Pool可以配置公网地址段;通过为每个用户分配一段port来减少log信息数量。
在场景二中,是IPv4用户发起访问IPv6服务器的应用,这种应用目前不常见,但是演进后期会比较多。NAT64技术对于由IPv4用户发起访问IPv6服务器时,是在NAT64设备上静态配置IPv4到IPv6的映射关系,并且在DNS4中注册IPv6服务器的A记录,这种方式配置比较繁琐。在smart6技术中,采用无状态翻译技术-IVI的思想,数据包源地址和目的地址的映射均采用1:1映射方式,即IPv6服务器在IPv4网络中有唯一的IPv4地址进行标识,同时IPv6服务器的IPv6地址与IPv4地址是IVI映射关系。IPv4用户地址在IPv6网络中采用IVI算法映射为IPv6地址,smart6在对用户和服务器的IPv4-IPv6地之间映射均采用无状态(IVI)方式,较NAT64技术易于部署。对于DNS4服务器中需要手动增加IPv6服务器的A记录。
此种场景中的业务流程为:
因此,在此总结下NAT64与Smart6技术的相同点与不同点。
二者均主要关注“IPv6用户访问IPv4-only服务器”的场景。不同点是NAT64可以部署在网络边界也可以部署在IDC出口,IPv4 Pool配置建议是公网IPv4地址池,而smart6关注部署在服务器侧,通常在IDC出口部署,IPv4 Pool配置建议是私网IPv4地址池。
二者均兼顾关注“IPv4用户访问IPv6-only服务器”的场景。不同点是NAT64采用静态映射关系方式实现,而smart6采用IVI规则映射方式实现。
业务流程类似,均需要DNS解析和IP报文传送两个部分,对于IPv6用户访问IPv4-only服务器场景时,均需要NAT64或Smart6设备维护映射状态表。不同点是NAT64可以实现TCP/UDP/ICMP的转换,smart6仅要求实现IP地址层面的转发。
NAT64+DNS64已经形成RFC,而smart6目前未形成RFC(截止日期2013-11)。