IPv4 to IPv6 过渡阶段互通技术研究

2013-11-12 07:09
太原学院学报(社会科学版) 2013年2期
关键词:网关路由器报文

李 玮

(太原旅游职业学院 信息管理系,山西 太原 030032)

1 IPv4 及IPv6 网络现状

传统的IP,即IPv4 定义的IP 地址的长度为32 位,共有232(约43 亿)个IP 地址。根据IPv4地址分类规则,占地址总量12%的D 类和E 类地址,2%的特殊地址和1%的内部网络地址不能分配给用户使用,从而只有约85%的IPv4 地址能够供网络用户分配使用。IPv4 地址资源地区分布的不合理又进一步加剧了IP 地址短缺问题。根据中国互联网络信息中心(CNNIC)公布的数据,截至2012年8月30日,中国大陆IPv4 地址数量约为3.30 亿个,居全球第二,但却仅为美国IPv4地址数量的五分之一。据CNNIC 测算,中国目前拥有网民人数5.45 亿,互联网普及率为40.7%,是世界上网民人数最多的国家。国家发改委制定的《关于下一代互联网“十二五”发展建设的意见》提出“十二五”期间,我国互联网普及率达到45%以上,届时中国网民数量将达到6.02 亿,中国将成为了IPv4 地址短缺最为严重的国家。

网络地址转换技术(Network Address Translation,NAT)通过使用少量的公有IPv4 地址代表内部网络大量主机的私有IPv4 地址的形式,一定程度上缓解了IPv4 地址空间枯竭的问题,但却不能从跟本上解决这一问题。首先,NAT 技术使用一个公有IPv4 地址代表多个私有IPv4 地址,背离了IP 地址结构模型中每个IP 地址都标识了一个网络连接的设计原则。其次,NAT 技术使得原本面向无连接的IP 协议在通信过程中必须面向连接。为保证通信的正常,NAT 必须维护内部网络的私有IP 地址与外部网络的公有IP 地址及其端口号的映射关系,这样不仅降低了网络的性能,而且增加了网络维护的成本。第三,NAT 技术也违背了网络结构模型各层独立的原则,增加了网络的复杂程度。最后,NAT 技术采用外部公有IP地址替代了内部私有IP 地址,对外隐藏了内部网络结构,因而不能保障端到端的网络安全[1]。

IPv6 技术128 位的地址长度形成了巨大的地址空间,在未来可预测的时间内可以为全球所有的网络设备提供唯一的地址标识,解决了因IPv4 地址短缺从而制约互联网技术发展的问题。IPv6 地址不只是网络终端设备的网络标识,而且携带了表达路由器网络结构的信息,从而减少了网络中路由器路由表项的长度,提高了数据在网络中传输的速度。IPv6 在网络地址分配方案、网络服务质量、网络安全和网络节点移动性方面的优势,为移动互联网络和物联网技术的发展和新业务的开发奠定了基础。2011年12月23日国务院常务会议研究部署了发展我国下一代互联网络产业,明确了IPv6 网络在未来五年发展的时间表和路线图,标志着我国IPv4 向IPv6 网络过渡阶段已正式开始。

2 IPv4 to IPv6 过渡技术分析

IPv6 取代IPv4 将会一是个长期的过程,要分阶段逐步的进行。在每一个过渡阶段,首先要保证IPv6 网络与IPv4 网络互通从而实现平稳过渡。目前已经出现了多种过渡技术和互通方案,用于解决IPv4 to IPv6 过渡时期的不同阶段、不同环境下的互通问题;其中最基本的三种过渡技术分别是:双协议栈技术、隧道技术和网络地址转换-协议转换技术。

2.1 双协议栈技术

双协议栈技术(Dual Stack)是指在一个系统(主机或路由器)同时支持IPv4 和IPv6 两套协议栈。IPv4 和IPv6 是两种基于相同的底层平台的功能相似的网络层协议,加载于两种协议上的传输层TCP 和UDP 协议也基本没有区别,因此支持双协议栈的网络节点能同时与支持IPv4 协议或IPv6 协议的节点通信[2]。IPv4/IPv6 节点在数据链路层接收到数据包后,根据数据包头中IP 数据包的包头版本号来确定应该使用的协议栈。在IPv4 和IPv6 数据包的包头的前四位为版本号字段,如果IP 数据包的版本号为4(01002),则该IP 数据包由IPv4 协议栈进行处理;如果版本号为6(01102),则该IP 数据包由IPv6 协议栈来处理。

由于双栈节点同时支持IPv4 和IPv6 两种协议栈,所以在网络中进行数据传输是需要根据实际情况来确定使用哪一种协议栈来进行通信,在此过程中,数据包的目的地址是进行路由选择的主要参数。如节点A 向节点B 进行数据传输,源节点A 为支持双协议栈的节点。如果目的节点B 支持IPv4 协议,即目的地址为IPv4 地址,则使用IPv4 协议栈与节点B 进行通信;如果目的地址为IPv4 兼容的IPv6 地址,则将IPv6 数据包封装在IPv4 数据包中,使用IPv4 协议栈进行通信;如果目的地址为非IPv4 兼容的IPv6 地址,则使用IPv6 协议栈进行通信;如果应用层程序使用域名作为目的地址,则需通过域名服务器获得相应的IP 地址后,根据上述情况决定协议栈使用的类型。以上工作模式将随着IPv4 网络向IPv6 网络技术过渡技术的成熟和完善作出相应的调整。

2.2 隧道技术

隧道技术是一种封装技术,它用一种协议类型的头部封装另一种协议类型的数据包,后者将前者当作它下层的数据链路。例如,在IPv4 网络向IPv6 网络过渡的初级阶段,IPv4 网络保持现有网络规模和网络拓扑结构,IPv6 网络孤岛之间要进行通信,则需将整个IPv6 报文封装在IPv4 数据包中,以此在当前的IPv4 网络中进行传输。隧道技术的实现包括封装、解封装和隧道管理三个步骤。封装是指在隧道起始点形成一个IPv4 包头,将IPv6 数据报作为IPv4 数据包的负载,从而组合成一个IPv4 数据包;解封装是封装的逆过程,即在隧道终结点去掉IPv4 包头,还原IPv6 数据包;隧道管理是指隧道的建立和拆除,以及隧道配置信息的维护等。对于采用隧道技术不需要对现有的网络终端设备和网络基础设施进行大规模的更新与改造,只需要对IPv6 数据包在隧道的起始端和终结端进行封装和解封装,封装后所形成的IPv4 数据包的源地址和目的地址分别是隧道入口和隧道出口的IPv4 地址,并且在IPv4数据包传输过程中不产生新的要求,因此技术上比较容易实现。但是隧道技术的核心是将IPv6报文封装在IPv4 数据包中经由IPv4 网络传输,从而隧道技术不能实现IPv4 主机与IPv6 主机之间的直接通信。

目前可用的隧道技术种类较多,包括手动配置隧道、自动配置隧道、6over4、6to4、Teredo 等多种方式。手动配置隧道通过通信两端网络手动协作配置的方式完成,适用于通信频度较高的网络,由于每一条隧道都需要进行手动配置,所以加重了网络管理的负担。自动配置隧道的建立和拆除是自动完成的,适用于通信频度较低的站点之间的连接。6over4 是一种以隧道端点的IPv4地址采用邻居发现机制来建立隧道的自动隧道技术,其实现的前提是IPv4 网络基础设施必须支持组播。6to4 是一种采用从站点的IPv4 地址派生出的特殊IPv6 地址的自动隧道技术,在这种隧道机制下不会在IPv4 路由表中引入新的条目,在IPv6 的路由表中也只增加了一条表项,是一种对边界路由器性能要求较低的隧道技术。以上隧道技术均不支持为解决IPv4 地址短缺而广泛采用的NAT 技术,因此微软开发了把IPv6 数据包作为UDP 净载荷,从而通过采用传统NAT 技术的IPv4 网络的Teredo 隧道技术。此外,专门针对Teredo 技术对称类型NAT 用户的因素,由中国科学院研究提出的Silkroad 隧道技术,采用客户端-服务器的系统结构,利用隧道服务器的有状态特性,为所有类型的NAT 用户提供了双向的IPv6连接[3]。表1 对以上各种隧道技术的关键技术特征进行了对比和分析。

2.3 网络地址转换-协议转换技术

网络地址转换-协议转换技术(NAT-PT,Network Address Translation- Protocol Translation),是通过修改报头来转换网络地址,从而实现IPv4 和IPv6 网络节点之间的互通。支持NAT-PT 的路由器将来自IPv6 网络的IPv6 报文报头去掉,并从中提取源地址、目的地址、源端口号和目的端口号等信息,组成IPv4 包头,即将IPv6 报文转换成IPv4 报文,使数据能够通过IPv4 网络传输。IPv4 报文在到达目的地后,再通过上述过程的逆过程将IPv4 报文转换成IPv6 报文。NAT-PT 技术适用于纯IPv4 站点和纯IPv6 站点之间的通信。NAT-PT 技术包括静态NAT-PT、动态NAT-PT 和结合ALG 的动态NAT-PT 三种主要类型。静态NAT-PT 技术是通过NAT-PT 网关静态的实现IPv4 地址和IPv6 地址一一对应的绑定。报文在到达NAT-PT 网关路由器时,路由器获取报文的目的地址,并根据配置检测该地址所对应的静态地址映射信息,并对报文进行转换。静态NAT-PT 原理简单,但由于要实现IPv4 地址与IPv6 地址的一一对应,从而增加了配置和维护的成本,并且需要消耗大量的IPv4 地址,无法解决IPv4 地址短缺的问题。在动态NAT-PT 技术中,NAT-PT 网关向IPv6 网络通告一个96 位的地址前缀,并结合IPv4 网络目的主机的32 为IPv4 地址构成IPv6 报文中目的地址。在IPv6 主机向IPv4 主机发送的报文到达NAT-PT 网关路由器时,路由器从IPv6 报文中提取其中的IPv4地址信息,作为转换后的IPv4 报文的目的地址,并从地址池中取得一个IPv4 地址来替换IPv6 报文的源地址,从而实现IPv6 报文到IPv4 报文的转换。动态NAT-PT 技术克服了静态NAT-PT配置复杂、IPv4 地址消耗大的缺点,但因为在协议转换过程中,IPv4 报文的源地址是有NAT-PT网关从地址池中随机分配的,IPv4 主机之前并不知道IPv6 主机地址,因此动态NAT-PT 只能由IPv6 主机一侧首先发起连接[4]。为解决这一问题,引入了结合应用层网关(ALG,Application Level Gateway)的动态NAT-PT 技术。由于某些应用在净载荷中包含有IP 地址,因此通过ALG对报文静载荷中的IP 地址进行格式转换,从而可以是IPv4 主机一侧也可以主动向IPv6 主机发起连接。

表1 主要隧道技术特征对比

3 IPv4 to IPv6 过渡技术应用分析

在IPv4 网络向IPv6 网络发展研究过程中,各种不同的过渡的技术更具起特有的技术特点适用与不用的发展阶段和应用场景,以下针对三大类型的过渡技术分别作出分析。

双协议栈技术是一种IPv4 向IPv6 网络过渡技术中应用较为简单的技术。但是双协议栈技术需要升级整个网络软件系统后才能独立的运行两种协议栈,设备的升级将在过渡过程中产生较大迁徙成本。双协议栈技术在数据传输过程中要根据情况决定使用协议栈的类型,需要为两种协议栈配置路由协议,同步存储所有路由表,加重路由器的负荷。同时由于在网络节点中要使用到IPv4 地址,也无法从根本上解决IPv4 地址短缺的问题。因此,双协议栈技术将作为一种IPv4 网络向IPv6 网络演进早期阶段的过渡技术存在,并结合其它过渡技术共同使用,不适宜大面积推广和普及。

随着IPv6 网络的发展,在现有网络体系结构的基础上,将出现许多的IPv6 网络“孤岛”,应用隧道技术,可以借助现有的IPv4 骨干网络实现局部的IPv6“孤岛”之间的互通,是实现IPv4 向IPv6 平滑过渡的一种有效解决方案。现有隧道技术种类较多,其技术特点也不尽相同,因此具有很好的灵活性,适用于较多的应用场景。采用隧道技术在不对现有网络基础设施进行大规模改造和升级的基础上,就可以实现IPv6“孤岛”之间的互连,是一种实现成本较低的过渡技术。由于可以解决IPv4 网络向IPv6 网络演进过程中早期阶段IPv6“孤岛”之间以及IPv6 网络占据主导地位之后的IPv4“孤岛”之间的互连,隧道技术在次演进过程中将被大量使用。

由于隧道技术无法实现纯IPv6 节点和纯IPv4 节点之间的互通,NAT-PT 技术将是隧道技术的一种有效补充。NAT-PT 技术在不修改现有IPv4 网络的前提下,仅需要在IPv6 与IPv4 网络边沿增加NAT-PT 网关,即可实现IPv4 网络与IPv6 网络的互通,是一种较为实用的过渡技术,但是在网络连接过程中,同一会话的请求和响应都需要通过NAT-PT 网关,从而对NAT-PT 网关的性能要求非常苛刻,成为制约NAT-PT 技术大面积推广和普及的瓶颈。NAT-PT 技术是实现IPv6 网络与IPv4 海洋之间通信的一种有效方案,适用于IPv4 向IPv6 网络过渡的整个发展过程。

4 总结

从IPv4 网络向IPv6 网络过渡是一个相对缓慢的过程,IPv4 网络和IPv6 网络将在相当长的时期内共同存在。在此期间,如何解决好IPv4 网络和IPv6 网络之间的互通问题将是一个现实而关键的问题。本文在对比三类过渡技术的基础上,结合过渡时期不同阶段的特点,分析了三类过渡技术的适用性。随着这一过程的逐步推进,三类过渡技术也将不断的发展和完善,最后实现IPv4到IPv6 网络的平稳过渡。

[1]杨云江,高鸿峰.IPv6 技术与应用[M].北京:清华大学出版社,2010.

[2]封红旗,胡冬艳.IPv4/IPv6 双栈网络访问方案的设计与实现[J].微计算机信息,2010(30).

[3]吴国贤,刘敏,李忠诚.面向NAT 用户的IPv6 隧道技术研究[J].计算机学报,2007,30(1).

[4]王永华.以应用为中心的IPv4 向IPv6 过渡策略研究[D].山东大学,2010.

猜你喜欢
网关路由器报文
基于J1939 协议多包报文的时序研究及应用
买千兆路由器看接口参数
维持生命
路由器每天都要关
路由器每天都要关
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
信号系统网关设备的优化
基于ETC在线支付网关的停车场收费系统设计
ATS与列车通信报文分析