IPv6的迁移策略

发布时间:2003-11-26 作者:彭海清 / 李明正 / 王雅琳 Peng Haiqing / Li Mingzheng / Wang Yalin 阅读量:

随着互联网技术的不断发展,IPv4的许多缺陷逐渐暴露出来。Internet工程任务组(IETF)的IPng工作组(IPng Working Group)提出了修改IP协议的建议,建议采用IP的下一代版本??IP版本6(IPv6)。目前,IETF已经成立了专门的工作组,研究IPv4到IPv6的转换问题,并且已提出了很多方案。本文针对IETF提出的几个主要的解决方案,并结合其在路由器设备上的实现进行详细讨论。

  1 双协议栈技术

  新的IPv6协议栈主要针对原有IPv4协议栈的网络层部分作了重大改动,对于传输层以及位于其上的其他协议基本没有作什么改动,当然由于IP协议本身发生了比较大的变化,与IP协议关系密切的路由协议也发生相应变化。支持IPv6和IPv4双协议栈路由器的协议结构如图1所示。


图1 双协议栈方案中的协议结构

  从图1可以看出,双协议栈的解决方案实际上就是在一个路由器设备中维护IPv6和IPv4两套路由协议栈,使网络中的主机可以分别支持IPv6和IPv4协议,也可以同时支持这两种协议,路由器既能与IPv4主机也能与IPv6主机通信,分别支持独立的IPv6和IPv4路由协议,IPv4和IPv6路由信息按照各自的路由协议进行计算,维护不同的路由表。IPv6数据报(包括与IPv4地址兼容的IPv6数据报)按照IPv6路由协议得到的路由表转发,IPv4数据报按照IPv4路由协议得到的路由表转发。

  在支持IPv4/IPv6双栈的网络中,需要一个路由器维护两套协议规范,实际上相当于一台路由器硬件平台模拟了两个路由器,因此这种解决方案比较复杂,需要维护大量的协议和数据。一种改进方案是采用一种兼容IPv6和IPv4双协议规范的路由协议,但到目前为止似乎还没有这样的协议规范出现。

  在过渡的初始阶段,路由器可以只运行有关IPv4的路由协议,对于兼容IPv4地址的IPv6数据报的转发完全按照以前IPv4的转发方式进行,这种方式有一些缺陷。首先它的路由协议不能生成新的地址方式的IPv6路由条目,另外对于以前的未经改造的IPv4路由器不适用。
双栈策略主要涉及对网络中路由器设备的改造,对于网络中的主机可以不作任何改动,当然这种情况下原有的IPv4主机不能和新的IPv6主机通信,如果需要通信可以将原有的IPv4主机改造为双栈主机或采用地址/协议转换方法。双栈策略是一种比较显而易见的解决办法,易于理解,同时对原有的网络设备影响比较小,但这种方法的一个缺点就是其维护工作比较复杂,一台路由器中需要维护两套协议栈,路由器负担较重,效率也比较低。

  2 地址/协议转换技术

  双栈策略解决了IPv6与IPv4的共存问题,但是对于如何实现过渡时期IPv4主机和IPv6主机之间的平滑通信还没有一个很自然的解决办法,因此IETF提出了地址/协议转化方案。该方案通常用于纯IPv4节点与IPv6节点之间的通信,对于纯IPv6节点与双栈节点中的IPv4协议通信不建议采用此方案。

  地址/协议转换采用了直接明了的转化方式,不用修改上层协议即能互相通信。该方案的中心设备,又称为NAT-PT网关,能够实现IPv4和IPv6协议栈的互相转换,包括网络层协议、传输层协议以及一些应用层协议之间的互相转换。NAT-PT网关的功能和作用如图2所示。


图2 路由器中的地址转化策略

  图2中,网关设备R用于连接两个IPv4和IPv6网络,其中R定期向IPv6网络广播它的网络地址前缀(假定为PREFIX::/96)。当A节点向C节点发送IP报文时,其报文源地址为FEDC:BA98::7654:3210,目标地址为PREFIX::132.146.243.30。该报文路由到网络设备R后由它将报文格式转化为IPv4形式并发送到节点C。为实现地址/协议转换功能,R要预先分配一部分IPv4地址,如图中R已经分配了地址池120.130.26/24,转换时R从地址池中分配一个IPv4地址作为源目标地址,这样转换后的IPv4报文的源地址和目标地址分别为120.130.26.10和132.146.243.30。在协议转换时并不是针对每个报文都进行转换,而是对本次回话中的初始化报文进行转换,并将它的参数如分配的地址等存放在缓存中,其余的报文直接转换。

  地址/协议转换方法有一个限制,就是当分配给R的IPv4地址池使用完后,其余的IPv6节点就不能与网络外部的IPv4节点建立会话连接,对于TCP/UDP(传输控制协议/用户数据报协议)等使用端口的协议可以用端口号区分不同的连接,这样1个IPv4地址可以复用63 k个TCP或UDP会话,当然这种方法只适用于有端口号的协议类型。

  地址/协议转换技术较好地解决了IPv4和IPv6的互通问题,其最大优点是原有的各种协议不加改动就能与新的协议互通。但该技术在应用上有一些限制:首先在拓扑结构上要求一次会话中所有报文的转换都在同一个路由器上,因此地址/协议转换方法较适用于只有一个路由器出口的STUB网络(存根网络);其次一些协议字段在转换时不能完全保持原有的含义;另外协议转换方法缺乏端到端的安全性。

  3 隧道策略

  在过渡初期,将会出现许多局部的IPv6网络,但是这些IPv6网络需要通过骨干网络相联才能互相通信,将这些孤立的IPv6网络相互连通使用的另一项技术就是隧道。所谓隧道技术就是利用现有网络设施中运行的IPv4协议为载体建立IPv6的通信机制,隧道两头的节点间数据报的传送通过IPv4机制进行,隧道被看成一个直接连接的通道,隧道技术是IPv4向IPv6过渡的初期最易于采用的技术。隧道可以在路由器与路由器之间,路由器与主机之间以及主机与主机之间建立,隧道可以手工配置建立也可以自动建立。隧道策略的思路简要说来就是,路由器将IPv6的数据分组封装入IPv4,IPv4分组的源地址和目的地址分别对应隧道入口和出口的IPv4地址,在隧道的出口处,再将IPv6分组取出转发给目的站点。隧道技术只要求在隧道的入口和出口处进行修改,对其他部分没有要求,因而比较容易实现。目前隧道方式主要有4种:

  (1)手工配置的隧道

  在网络迁移的初期,互相独立的IPv6网络可以通过人工配置的IPv4隧道相连互通,如图3中两个IPv6主机A和B之间的通信。主机A的IPv6数据报到达路由器R1后,R1使用已经建立的隧道将数据报传送到路由器R2,最终到达主机B。同样具有双栈协议的主机C也可与路由器R2建立隧道,实现与两个IPv6网络的通信。


图3 迁移中的隧道方式

  手工配置隧道的方式比较简单,在网络组成不太复杂的情况下适用,但当网络规模比较大时,网络配置管理的负担较重,尤其对于那些已经有IPv4连接但想建立与IPv6连接的终端用户来说比较复杂。

  (2)IPv6 over IPv4

  随着IPv6的广泛应用,有些节点可能仅支持IPv6协议,这种节点一旦安装在IPv4网络中(没有直接相连的IPv6路由器),需考虑如何保证该节点能够与外界通信。IPv6 over IPv4方案利用IPv4网络的组播特性建立与外部的虚拟通信链路来提供保证。如图3所示,IPv6节点D需要与外部通信,它不需要手工配置隧道或与IPv4兼容的地址,而是直接将IPv6报文封装在IPv4报文中,通过IPv4网络的组播特性,将该报文传送到路由器R1发送到外部。

  IPv6 over IPv4的优点是可以使独立的没有和任何IPv6路由器连接的IPv6主机具有完全的IPv6主机功能,且不需要IPv4兼容地址和配置隧道的支持。但由于IPv6 over IPv4利用IPv4的组播特性作为虚拟链路层,是一种本地传送机制,因此其适用范围很小,只适用于双栈主机间的通信,同时必须具备IPv4的多播功能的网络,不能解决将一个孤立的节点连接到全局IPv6网络中的问题。

  (3)IPv6 to IPv4

  IPv6 to IPv4采用特殊的IPv6地址,使在IPv4“海洋”中的IPv6“孤岛”能相互连接,此时IPv6的出口路由器与其他的IPv6域建立隧道连接。在边界路由器上,IPv6包将被封装在IPv4包里并通过隧道传输。在隧道起点封装时,边界路由器将提取出IPv6 to IPv4地址中的IPv4地址作为隧道终点的地址。封装后的IP包到达目的IPv6 to IPv4路由器时被解封装。站点的IPv4地址包含在IPv6地址前缀中,因此IPv4隧道的末端可从IPv6域的地址前缀中自动提取。由于IPv6 to IPv4可以自动地从IPv6 地址的前缀中提取一个IPv4地址,因此站点能够配置IPv6而不需要向注册机构申请IPv6地址空间,这简化了ISP(Internet服务提供商)的管理工作。除IPv4地址自动提取外,IPv6 to IPv4机制还允许在采用IPv6 to IPv4的IPv6站点和纯IPv6站点之间通过中继路由器(IPv6 to IPv4 Relay Router )进行通信,这时不要求通信的两个端点之间具有可用的IPv4连接。

  IPv6 to IPv4是一个很有效的解决方案,在每个IPv6 to IPv4区域使用几个边界路由器的IPv4 地址就可以体现其在IPv4网络中的位置信息,由于不需要双栈主机和IPv4兼容地址,可解决IPv4地址空间的问题。IPv6 to IPv4设计使那些分割开的、独立的IPv6子网可轻松互联,而不需要任何ISP提供IPv6的服务,这个特点使其特别适合于VPN(虚拟专用网络)应用。

  (4)隧道代理

  隧道代理类似于虚拟的IPv6 ISP的功能,为连接到IPv4的网络用户提供IPv6的服务。隧道代理模型如图4所示,图中TB(隧道代理)和TS(隧道服务器)是主要组成单元。TB代表用户管理隧道的建立、修改和删除。TS是双栈路由器,它连接到Internet。隧道代理的主要思想是:隧道的使用者(双栈节点)TS连接到隧道代理(TB)上登记并激活隧道,隧道代理根据用户的需求生成、更改并配置相应的隧道。隧道的使用者TS和隧道代理之间的通道是预先建立的安全通路,因此只有经过授权的用户才能要求隧道代理建立隧道。


图4 隧道代理模型

  隧道代理的遂道配置原理如下:客户端为获得隧道代理服务,先向TB提出申请,并提供客户端IPv4地址、该客户机想使用的DNS(域名服务器)域名以及客户端的类型(主机还是路由器)等信息;TB接到客户申请后,首先选择一个TS作为隧道的端点,同时选出IPv6的前缀分配给客户端,用分配给客户的IPv6地址升级DNS;接下来配置隧道的TS端,同时把该隧道的信息和参数通知给客户机,完成隧道的配置工作。
隧道代理除完成隧道配置工作,还要负责通信期间的隧道管理、删除等工作。

  隧道代理机制的实现简单,无需升级任何特别的路由结构,这能在早期的IPv6运行时吸引更多的IPv6的试用者。它还具有可靠性高的优点,不会对上层应用产生任何影响,且不会降低传输的效率。但由于隧道代理服务需要客户端的身份验证,因此对于采用NAT(网络地址转换)方式隔离的主机无效。

  4 基于MPLS VPN的隧道机制

  随着MPLS技术和标准的成熟,出现了一种基于MPLS VPN的新的IPv6隧道机制。随着骨干网越来越多地采用MPLS技术,必须考虑如何在MPLS上集成IPv6。该方法将整个MPLS网络看成IPv6隧道,并充分利用MPLS的特性。

  该方案具有MPLS网络的一切优点,支持约束路由流量工程,可以把IPv4和IPv6的数据流当作不同的流,从而在核心网络减小IPv4/IPv6争抢资源的影响。同时由于在MPLS网络中,转发是根据标记进行的,不需要数据层面支持IPv6的数据转发,即无须核心网络软硬件的升级,只需要边缘路由器具有配置IPv6的能力即可。当IPv6核心网络达到一定的规模,且当其数据量足够大时,就可以采用这种方案。

  5 总结

  目前IPv4在网络设备中已经得到广泛的应用,因此在网络中引入新的IPv6协议不可避免地需要考虑与原有IPv4协议共存的一系列问题,包括IPv6报文的处理、报文的路由查找、转发等。这些机制在新的路由设备和主机设备中的实现要考虑到与原有IPv4协议的兼容。

  在IPv6和IPv4共存的时期,新的IPv6路由器设备在路由IPv6数据报时必须考虑以下问题:

  • 对IPv4数据报的路由转发;
  • 对IPv6数据报(包括与IPv4地址兼容和不兼容)的路由转发;
  • 手工配置的静态隧道的相关操作;
  • 自动隧道的操作,包括本地封装以及路由过程对该封装的影响。

  新的网络设备要支持以上机制,需要具备一些新的功能如双栈环境中路由的计算、对手工配置隧道的支持,以及为了支持自动封装而必须的路由泄漏功能等。上述一些迁移方法的技术细节还没有最终确定,有些需要在具体的应用中解决。相信随着IPv6技术的逐渐广泛应用,支持以上迁移技术的网络设备将在未来的几年内获得广泛应用。

  参考文献

1 RFC2185. Routing Aspects of IPv6 Transition. 1997
2 RFC2766. Network Address Translation-Protocol Translation. 2000
3 RFC3053. IPv6 Tunnel Broker. 2001
4 RFC3056. Connection of IPv6 Domain via IPv4 Clouds. 2001

[摘要] 文章结合IPv4向IPv6过渡的各种解决方案在具体网络设备中的实现,介绍了各种过渡机制的工作原理。

[关键词] IP版本6;迁移;隧道;双栈;地址转换

[Abstract] This paper focuses on the IPv4-to-IPv6 transition mechanisms, and the implementation of various transition schemes in real networks is discussed in detail.

[Keywords] IPv6; Transition; Tunnel; Dual stack; Address translation