北极星

搜索历史清空

  • 水处理
您的位置:电网信息化技术正文

统一的IPv4/IPv6翻译与封装过渡技术——IVI/MAP-T/MAP-E

2013-04-28 11:17来源:中兴通讯技术 包丛笑 李星关键词:IPv6路由器IPv4收藏点赞

投稿

我要投稿

基于IPv4 协议的互联网是世界上最重要的信息基础设施,但是只有232 个地址空间的IPv4 地址已经分配完毕。为了解决IPv4 地址耗尽问题,目前有两种技术路线:采用IPv4 地址翻译技术(NAT44)或升级到IPv6。NAT44 是IPv4 公有地址与IPv4私有地址之间的有状态翻译技术,已经非常成熟,但由于其破坏了端到端特性,只能支持单向发起的通信。多年以来,NAT44 在用户接入端被广泛使用,但在核心网络上使用时,需要在NAT44 翻译器上维护大量状态。

为了长远地解决IP 地址的问题,建设下一代IPv6 网络,发展IPv6 信息资源,发展IPv6 用户势在必行。10 多年前,业内已经认识到IPv4 地址枯竭问题,发明了下一代互联网协议IPv6,该协议具有2128 个地址空间,从根本上解决了地址耗尽的问题。因特网工程任务组(IETF)最早推荐从IPv4向IPv6 过渡采用双栈技术和隧道技术,全世界很多运营商在不同规模上进行了IPv6 的试验,若干信息提供商也提供了IPv6 的服务[1]。但截至2012年,全世界IPv6 网的流量平均不到IPv4 的1% 。实践表明,升级到双栈不仅没有给运营上带来直接的收益,反而影响了用户的体验。这就是为什么双栈和隧道技术应用10 多年,却没有推动完成IPv4 互联网向IPv6互联网过渡的原因。从根本上看,网络的价值在于其用户数。对于新建的IPv6 网络,其用户数不可能与IPv4互联网上的用户数可比,如果IPv6 的用户不能与IPv4 的用户互联互通,则IPv6 网络没有任何存在的价值。因此过渡的核心问题是新建IPv6 网络必须与IPv4 互联网互联互通。两种不同协议之间的互联互通,只能通过翻译技术解决,但是由于IETF 在设计IPv6 协议时,没有充分意识到与IPv4 协议兼容的重要性,具有很高的技术难度。随着纯IPv6 网络建设案例的增多和研究的深入,IETF 在IPv4/IPv6 翻译技术,特别是无状态翻译技术取得了突破性进展,形成了系列RFC 标准和工作组草案,为IPv4 到IPv6 过渡提供了新的技术方案。

1 无状态IPv4/IPv6 翻译技术

互联网的基本特性为“ 无连接”的体系结构,路由器不需要维护状态,IPv4/IPv6 翻译器本身也是一个路由器,因此无状态的IPv4/IPv6 翻译器对于运营商来讲更具有价值。同时,无状态IPv4/IPv6 翻译(IVI)技术具有可扩展性、可管理性、安全性好的特点,并支持双向发起的通信。IVI 的名称借用了罗马数字的表示方法。在罗马数字中IV 表示4,VI 表示6,IVI 表示IPv4 和IPv6 的互联互通。

1.1 IPv4/IPv6 翻译技术的应用场景

由于IPv4 的地址空间为232,IPv6的地址空间为2128,极其悬殊,因此不加限制条件的IPv4/IPv6 翻译器在理论上讲是不可行的。在IETF 标准RFC6144 中定义了IPv4/IPv6 翻译的8个应用场景。翻译器的两边一边是IPv4 另一边是IPv6。其变化之一在于哪一边是自己控制的网络,哪一边是互联网。其变化之二在于哪一边发起通信。无状态IPv4/IPv6 翻译技术的应用场景如图1 所示[2]。场景一为IPv6 网络上计算机发起对IPv4 互联网上计算机的访问,场景二为IPv4互联网上计算机发起对IPv6 网络上计算机的访问。

图1无状态IPv4/IPv6翻译技术的应用

场景一和场景二意味着新建纯IPv6 网络,通过翻译器XLAT 为IPv6用户提供对IPv4 互联网的通信。无状态IPv4/IPv6 翻译技术可以适应于场景一和场景二,有状态IPv4/IPv6 翻译技术只能适应于场景一。IPv4/IPv6 翻译技术的核心是需要解决地址映射和协议翻译问题。

1.2 地址映射和域名翻译由于IPv4 和IPv6 的地址空间差距巨大,用IPv6 表示IPv4 是毫无问题的,可以通过无状态的映射方法,映射后的IPv6 地址称为转换地址。用IPv4 表示IPv6 是难点,可以动态维护映射表,作有状态的地址映射,或在IPv6 地址中选择一个子空间通过无状态的方法与IPv4 地址映射。映射后的IPv6 地址称为可译地址。所有这些地址映射算法均在IETF 标准RFC6052 中定义。嵌入了IPv4 地址的IPv6 地址格式如图2 所示[3]。

图2 嵌入了IPv4 地址的IPv6 地址格式

其中Prefix 是IPv6 网络前缀,根据不同的前缀长度,嵌入IPv4 地址,并且在64 至71 位间保持为全0,以便与IPv6 地址结构中的u-bit 兼容。

Suffix 为后缀,在基本的地址映射中为全0,预留给传输层端口的编码,以便把一个IPv4 地址映射为若干IPv6 地址,达到高效地、无状态地复用稀缺的公有IPv4 地址资源的目的。此外,RFC6052 要求转换地址和可译地址使用同样的前缀(Prefix),从而可以自动获得最优路由。

当纯IPv6 计算机发起对IPv4 互联网的访问时,必须获得相应的转换地址,这个工作由域名翻译器DNS64根据上述映射算法完成,由RFC6147定义[4]。DNS64 是同时接入IPv4 网络和IPv6 网络的域名服务器(DNS),能够把A 记录动态翻译成AAAA 记录。具体步骤为纯IPv6 计算机通过DNS64 查询所需域名的AAAA 记录,如AAAA 记录存在,则DNS64 直接返回AAAA 记录给纯IPv6 计算机;如AAAA 记录不存在,则DNS64 查询域名对应的A 记录,并根据RFC6052 定义的映射算法,生成AAAA 记录返回给纯IPv6 计算机。无状态的翻译器支持IPv4 互联网发起的通信,在这种情况下,需要静态配置的DNS46,当IPv4 互联网上的用户发起对IPv6 计算机的访问时,DNS46 则返回对应IPv6 计算机AAAA 对应的A 记录[5]。

1.3 协议翻译

两种不同协议栈之间的互联互通必须解决的第二个问题是协议翻译,所庆幸的是IPv4 和IPv6 之间协议的差距并不很大,是可译的。具体协议翻译算法由RFC6145 定义,包括版本号映射,IPv4 的服务类型与IPv6 的流量等级映射,IPv4 的总长与IPv6 的载荷长度映射,IPv4 的存活期与IPv6的转发计数映射,IPv4 的传输层协议与IPv6 的下一个头映射,IPv4 地址和IPv6 地址映射等[6]。IPv4 与IPv6 协议翻译的最大难点是分片处理,因为IPv4 可以支持路由器分片或端系统分片,但IPv6 仅支持端系统分片。对于IPv4 已经分片的分组,IPv6 必须增加分片扩展头,以便端系统重组。此外,IPv4 和IPv6 网络所能支持的最大传输单元的大小(MTU)是不同的,同时由于IPv4 的基本头为20 个字节,而IPv6 的基本头为40 个字节,因此在从IPv4 到IPv6 的翻译过程中必然遇到MTU 超出的问题。此外,IPv4 的传输控制协议(ICMP)和IPv6 的传输控制协议(ICMPv6)也有很多不同,需要分别处理。

值得指出的是,当IPv6 网络中的路由器(通常并不使用可译地址)返回ICMPv6 分组时,翻译器无法找到对应的IPv4 地址,造成翻译后的ICMP 分组的源地址不可溯源。IETF最新发布的RFC6791 定义了对这个问题的有效处理方法[7]。

RFC6145 也是有状态IPv4/IPv6 翻译器所依据的协议翻译算法。有状态IPv4/IPv6 翻译器中的状态维护技术由RFC6146 定义,主要规定了IPv6地址和端口到IPv4 地址和端口的动态映射表的生成、维护和销毁算法[8]。

2 无状态双重翻译/封装技术(MAP 系列)

IPv4/IPv6 翻译技术可以使IPv4 和IPv6 互联互通,但仍有3 个问题需要解决。第一个问题是由于IPv4 地址耗尽问题,无状态IPv4/IPv6 翻译必须能够复用公有IPv4 地址以高效使用IPv4 地址资源;第二个问题是目前有的应用程序并没有IPv6 的版本(如Skype),也有的应用程序嵌入了地址的信息(如Ftp);第三个问题是对于终端用户往往需要分配一个64 位的前缀,而不是单个的IPv6 地址。无状态双重翻译/封装系列技术MAP-T/MAP-E 可以解决这些问题。MAP 是Mapping Address and Port 的缩写,意指无状态地对地址和端口进行复用,与双重翻译(MAP-T)或封装(MAP-E)技术组合,可以解决无状态复用公有IPv4 地址的问题和上述的应用程序问题,同时可以支持前缀分配。

MAP-T/MAP-E 目前是IETF 的工作组文档[9-10],其他相关的工作组文档还有DHCPv6 扩展[11]和部署考虑[12]。

2.1 双重翻译模式的应用场景

无状态双重IPv4/IPv6 翻译模式(MAP-T)的应用场景如图3 所示。

图3 无状态双重IPv4/IPv6 翻译模式的应用场景

图3 中,核心翻译器称为BR,对于IPv6 为路由器,对于IPv4 为可以复用IPv4 地址的IPv4/IPv6 翻译器。第二次翻译在家庭网关CE 上进行,CE对于IPv6 为路由器,对于IPv4 为IPv4/IPv6 翻译器,并且根据下述端口映射算法对于传输层的端口进行映射。

IPv6 接入网部署认证和IPv6 前缀分配设备AAA 数据库和DHCPv6 服务器。IPv6 接入网上可以部署使用可译地址的纯IPv6 服务器,通过CE 或BR 的一次翻译能够对于用户的纯IPv4 终端和IPv4 互联网上的用户提供服务。IPv6 接入网的用户设备接到家庭网关上,可以是纯IPv4 终端设备,它通过CE 一次翻译访问网内纯IPv6 服务器的信息资源,同时它通过CE 和BR 双重翻译访问IPv4 互联网上的信息资源,并与其他用户互访。

该用户设备还可以是IPv4/IPv6 双栈终端设备,直接访问网内和IPv6 互联网上的信息资源,并通过CE 和BR 双重翻译访问IPv4 互联网上的信息资源,也能与其他用户互访。该用户设备也可以是纯IPv6 终端设备,直接访问网内和IPv6 互联网上的信息资源,通过BR 一次翻译访问IPv4 互联网上的信息资源,并与其他用户互访。

2.2 封装模式的应用场景

封装模式(MAP-E)的应用场景如图4 所示。

图4MAP-E 的应用场景

图4 中,核心封装/解封装器称为BR,对于IPv6 为IPv6 路由器,对于IPv4 为可以复用IPv4 地址的IPv4over IPv6 封装/解封装器。家庭网关CE 对于IPv6 为路由器,对于IPv4 为IPv4 over IPv6 封装/解封装器,并且根据下述端口映射算法对于传输层的端口进行映射。IPv6 接入网部署认证和IPv6 前缀分配设备AAA 数据库和DHCPv6 服务器。IPv6 接入网的用户设备接到家庭网关上,可以是纯IPv4 终端设备,它通过CE 和BR 封装/解封装访问IPv4 互联网上的信息资源,并与其他用户互访;该用户设备还可以是IPv4/IPv6 双栈终端设备,直接访问网内和IPv6 互联网上的信息资源,并过CE 和BR 封装/解封装访问IPv4 互联网上的信息资源,也能与其他用户互访。值得指出的是,封装模式MAP-E 无法支持在IPv6 接入网内部署纯IPv6 服务器,也不支持可以与IPv4 互联网互联互通的纯IPv6 终端设备。

投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。