IPv6过渡技术—翻译技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、翻译技术
IPv4/IPv6翻译技术能够成功实现IPv4网络与IPv6网络之间互访问题。翻译技术可以分为无状态翻译技术(stateless translation)和有状态翻译技术(stateful translation)两种,其中有状态地址翻译通过存储相应的地址、端口状态映射表来实现IPv4地址的复用,在这种方式中,状态表是基于连接(session)而建立的,因而状态表非常庞大,且动态性显著。而在无状态地址翻译中,IPV4地址和端口范围直接内嵌到IPV6地址中,这样就不需要有状态表来维护地址、端口的对应关系,但这种无状态的方式中IPv6地址格式受限,不能够支持灵活的IPv6地址分配。
1、有状态的翻译技术
(1)NAT-PT技术
为了实现IPv6与IPv4的互访,IETF(互联网工程任务组)在早期设计了NAT-PT(Network Address Translation-Protocol Translation)的解决方案(RFC2766)。NAT-PT是一种有状态的4-6报文翻译,它通过IPv6与IPv4的网络地址与协议转换,实现了IPv6网络与IPv4网络的双向互访。协议转换的目的是实现IPv4和IPv6协议头之间的转换;地址转换则是为了让IPv6和IPv4网络中的主机能够识别对方。
NAT-PT可以实现纯IPv6节点和纯IPv4节点之间通信,如图1所示。NAT-PT 使用网关设备连接IPV6和IPv4网络。当IPv4和IPv6节点互相访问时,NAT-PT 网关实现两种协议的转换翻译和地址的映射。NAT-PT网关在工作时, 将维护一个IPv4地址池。与系统NAT方式一样,NAT-PT网关支持为IPv6网络中的节点动态分配IPv4 地址, 维护地址映射关系, 并且完成IPV4协议和IPV6协议的转换[1]。
图1 NA T-64基本场景
但NAT-PT在实际网络应用中面临各种缺陷,IETF推荐不再使用,在RFC4966中被置为“historic”状态[2],理由如下:
①拓扑限制和扩展性问题;
②记录优选问题:IPv6 Host在和双栈主机通信时,DNS会同时返回两个记
录,一个IPv6记录,一个是由IPv4记录被DNS-ALG转换后的IPv6记录,IPv6 Host选的可能不是最优的;
③继承NAT的相关问题:复杂的ALG(Application Level Gateway,应用层网关)、分片报文转换复杂。
(2)NAT-64技术
为了解决NAT-PT中的各种缺陷,同时实现IPv6与IPv4之间的网络地址与协议转换技术,IETF重新设计一项新的解决方案:NAT64与DNS64技术。
NAT64是一种有状态的网络地址与协议转换技术,一般只支持通过IPv6网络侧用户发起连接访问IPv4侧网络资源。但NAT64也支持通过手工配置静态映射关系,实现IPv4网络主动发起连接访问IPv6网络。它主要解决在IPv6 接入网环境下,IPv6-only 终端可以访问IPv4-only 业务。
DNS64则主要是配合NAT64工作,将DNS查询信息中的A记录(IPv4地址)合成到AAAA记录(IPv6地址)中,返回合成的AAAA记录用户给IPv6侧用户。
NAT64解决了NAT-PT中的大部分缺陷,同时配合DNS64的协同工作,而不需要在IPv6客户端或IPv4服务器端做任何修改。
NAT64 基本场景如图2 所示[3]。
图2 NA T-64基本场景
图2 中,NAT64是部署在IPv6网络和IPv4网络之间的双栈路由器,负责IPv6数据包与IPv4数据包之间的翻译。因此,NAT64拥有至少一个IPv6前缀和一个IPv4公有地址池。NAT64收到终端发来的IPv6数据包后,翻译模块从IPv4公有地址池中选择一个IPv4地址及未使用的端口与源主机IPv6地址作映射,结果记录在BIB (binding information base)中,从而实现源地址翻译;目的地址的翻译则是直接去掉特定的IPv6前缀。接着,NAT64使用SIIT(stateless IP/ICMP translation)翻译算法将IPv6包头翻译为IPv4 包头,翻译后的IPv4 数据包便从NAT64的IPv4接口转发到外部IPv4网络中,从而实现对IPv4服务的访问。IPv6 主机获得目的IPv4主机对应的IPv6地址需要借助于DNS64设备。DNS64是双栈的,当源主机进行AAAA查询时,它会向目的主机所在网络的DNS服务器发送AAAA/A 查询请求,如果DNS64收到的是A记录,那么它会通过添加特定
IPv6 网络前缀的方法将其合成为AAAA记录,并返回给源主机。NAT64网关和DNS64 配置了相同的IPv6前缀。
NAT64克服了NAT-PT的缺点,实现了DNS-ALG和翻译模块的解耦合,只需改动网络侧,实现了IPv6终端对IPv4网络的访问。但它不能支持IPv4主机发起的到IPv6主机的通信。
2、无状态的翻译技术—IVI技术
IVI是清华大学提出的基于特殊地址前缀的、无状态的IPv4/v6翻译技术。“IVI”去掉右边的“I”是罗马字母4,去掉左边的“I”是罗马字母6,即试图实现“IPV4和IPv6互访”的技术。它的主要思想是运营商保留一段IPv4地址(称为IVI4地址),将其惟一映射为一段特殊的IPv6地址(称为IVI6地址),可以实现这部分地址的无状态转换。获得IVI6地址的用户可以直接访问全球IPv6网络,通过IVI网关翻译器可将地址转换IVI4地址,可以和全球IPv4网络通信,实现IPv4和IPv6 的互访[3]。
IVI功能主要有两个:一个是地址映射,即通过统一的规则实现IPv4地址与IPv6地址的一一映射,以进行地址的翻译;另一个是协议翻译,即根据标准规定,实现IPv4/ICMP协议和IPv6/ICMP协议各字段的对译,同时更新TCP/UDP协议的相关字段,完成完整数据包翻译操作[4]。
IVI 技术的基本工作场景如图3 所示。
图3 IVI基本工作场景
图中,IVI 网关与两侧的R1、R2 路由器通过IGP/BGP 实现路由可达,同时IVI 与R1 之间为IPv6路由,IVI 与R2 之间为IPv4 路由,并不增加全球IPv4/IPv6路由表的规模。
在IPv6网络中,每个IVI Server都要部署一个相应的IVI DNS64。IVI DNS64用于IPv4和IPv6之间的IVI地址解析。所有从IPv6主机发起的向IPv4服务器或主机的访问首先从IVI DNS64获得一个对应的IVI IPv6地址,该段地址的路由指向其对应的IVI网关,IPv6数据包统一经过网关,源地址和目的地址均转换为IVI IPv4地址,再转发到IPv4网络中。