IPv4/v6综合组网研究现状
对于如何从IPv4过渡到IPv6的问题,IETF(互联网工程任务组)成立了“下一代网络过渡工作组(Ngtrans)”。这个工作组的工作成果反映在14个RFC和20多个草案中。新成立的“IPv6网络互操作工作组(IPv6ops)”负责研究集成和互操作问题。研究成果表明,在过渡过程中,IPv4网将与IPv6网长期共存。
研究IPv4/v6综合组网,有助于探索下一代互联网的发展方向和技术模式;有利于下一代电信网络的技术研究;为设备制造商的IPv6产品研发提供参考依据;促进IPv6的实用化和商用化进程。所以对IPv4/v6综合组网的研究是十分紧迫和必需的。
IPv4/v6综合组网技术的主要研究内容包括:现有不同过渡策略与网络过渡工具的技术特点及其适用范围;承载网引入IPv6后的网络结构;不同的电信网络环境对IPv4/v6综合组网提出的技术要求;针对不同网络环境(不同需求)提出可能的综合组网方案;综合组网时的路由和域名问题、安全性分析、地址分配策略、不同组网技术在网络中的互联互通性(相容性)等。
对IPv4/v6综合组网技术的研究已经形成了包含多个网络过渡工具的工具箱,具体组网方式的研究也越来越受到重视,但从整体来讲,研究还处于起步阶段。由于相应的组网需求不能确定,所以现在IETF对处于草案阶段的有关网络环境与组网需求的研究均是针对互联网的。在电信运营网络中,关于IPv4/v6综合网的组网环境和组网方案的研究虽然也受到重视,并取得了一些成果(主要表现在IPv6设备制造商提出了一些和自己产品相关的IPv4/v6综合组网方案),但客观地讲,无论是研究深度还是研究广度,均处于初级阶段。
IPv4/v6综合组网基本原则
在进行IPv4/v6综合组网时,应遵循以下一些原则:最大限度地保护终端用户、ISP、ICP和电信运营商的既有投资;保证IPv4和IPv6主机之间的互通;在IPv4业务和IPv6业务互不影响的前提下,支持两者业务的互通;保证现有IPv4应用在综合组网环境中的正常应用;避免设备之间的依赖性,设备的更新须具有独立性;综合组网过程对于网络管理者和终端用户来讲要易于理解和实现;提高组网灵活性,支持网络的逐步升级,用户拥有选择何时过渡和如何过渡的权利;综合组网以后,网络的服务质量不应该有明显的影响,网络的可靠性和稳定性不能削弱,网络管理功能应该较原有网络有所加强;应着重考虑从边缘到骨干的逐步演进策略(同时关注从骨干到边缘的策略);应考虑为终端用户所能带来的好处(业务、兴趣点等);综合组网时应统筹考虑对现有IPv4网络中存在的一些问题的改进(NAT、地址规划等);网络各部分之间的技术选择应该具有独立性,如城域核心网、接入网、驻地网应该可以选择不同的技术。
IPv4/v6综合组网策略
根据综合组网基本原则,经常采用的组网策略包括双栈策略(Dual Stack Transition Mechanism,DSTM)、隧道策略和翻译策略。其中,双栈策略可分为主机双栈和路由器双栈两种类型;隧道策略包括手工隧道和自动隧道两种;翻译策略的实现协议包括NAT-PT(Network Address Translation Protocol Translation)、TRT(Transport Relay Translations)、BIS(Bump In the Stack)、BIA(Bump In the Application program interface)。上述策略通常综合使用。
在3种组网策略中,双栈策略通常解决的是IPv6网络中的双栈主机(平时只有IPv6地址而无IPv4地址)如何与外部IPv4网络中的网元(只拥有IPv4地址)进行通信的问题,一般只能用在内部网络中,不适合应用于骨干网和核心网。翻译策略不需要任何的协议调整就允许IPv4网与IPv6网方便地互通,但这种互通的通信效率不高,且限制了一些通用协议的应用,如IPsec、组播协议等,因此就目前的技术水平来看,出于扩展性等性能方面的考虑,在进行核心网和骨干网互联时,一般不适宜采用这种技术。通常,双栈策略和翻译策略用于企业网或驻地网;而在组建核心网和骨干网时,则采用隧道策略。下面重点介绍隧道策略。
隧道策略
隧道策略是IPv4/v6综合组网技术中经常用到的一种机制。隧道利用一种协议来传输另一种协议的数据。它包括隧道入口和隧道出口(隧道终点),这些隧道端点通常都是双栈节点。在隧道入口,以一种协议的形式来对另外一种协议的数据进行封装并发送;在隧道出口,对接收到的协议数据解封装,并做相应的处理。通常,在隧道入口还要维护一些与隧道相关的信息,如记录隧道MTU等参数;在隧道出口,出于安全性考虑,要对封装的数据进行过滤,以防止来自外部的恶意攻击。
隧道策略通常按配置方式进行区分,有手工配置隧道和自动隧道两种类型。在骨干网和核心网中经常采用的MPLS隧道可以通过手工和自动两种形式进行配置。
手工配置隧道包括Manual Tunnel(RFC2893)和GRE(RFC2473)两种类型。Manual Tunnel在隧道入口必须显式指定隧道终点的IPv4地址(双向);GRE主要应用在个别IPv6主机或网络需要通过IPv4网络进行通信的场合,其他应用与Manual Tunnel基本相同。手工配置隧道方式实现相对简单,但扩展性较差,当隧道增多时,隧道配置和维护的工作量较大,故适合于综合组网的初期。在综合组网后期,其也可以以“缺省隧道”的方式而存在。
自动隧道包括隧道代理(Tunnel Broker)、6to4隧道、6over4隧道、ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)隧道、TEREDO隧道、MPLS隧道、兼容地址自动隧道等。其中兼容自动隧道方式已不推荐使用,其扩展性较差,这里就不介绍了。下面重点介绍其他方式。
隧道代理(RFC3053)
隧道代理通常应用于独立的小型IPv6站点,特别是独立分布在IPv4互联网中的IPv6主机需要连接到已有的IPv6网的情况。它提供了一种简化配置隧道的方法,可以减少繁重的隧道配置工作。其思想就是通过专用的服务器自动管理用户发出的隧道请求。用户通过隧道代理能够方便地和IPv6网络建立隧道连接,从而访问外部可用的IPv6资源。隧道代理为早期的IPv6提供商提供了一种非常简捷的接入方式。目前在台湾和日本已有一些应用。
6to4隧道(RFC3056)
6to4隧道是IETF较为重视并得到深入研究的有广阔应用前景的一种网络过渡机制,可以使连接到纯IPv4网络上的孤立IPv6子网或IPv6站点与其他同类站点在尚未获得纯IPv6连接时彼此间进行通信。在IPv4网络内可以采用多种路由协议(OSPF、BGP、RIP、IS-IS等),在两个6to4域之间可以通过MP-BGP路由方式实现路由可达。
6to4隧道采用特殊的IPv6地址。IANA(因特网编号分配委员会)为6to4隧道方式地分配了一个永久性的IPv6格式前缀0x2002,表示成IPv6地址前缀格式为2002::/16。如果一个用户站点拥有至少一个有效的全球惟一的32位IPv4地址(v4ADDR),那么该用户站点将不需要任何分配申请即可拥有如下的IPv6地址前缀2002:(v4ADDR)::/48。
6to4隧道的应用环境有两种:一种是通信双方都处于6to4域中,并且均采用6to4地址;另一种是通信的一端处于6to4域中,并采用6to4地址,而另一端则处于纯IPv6域中,采用纯IPv6地址,此时应使用6to4中继器进行连接。6to4中继器在其纯IPv6接口上参与IPv6单播路由协议;在6to4伪接口上参与IPv6单播路由协议;在支持6to4的IPv4接口上参与IPv4单播路由协议。
6to4隧道实现相对简单,支持的设备较多,但这种机制在网络布置中有一定的耦合性,6to4域与纯IPv6进行通信时需要6to4中继器。当然,作为一种隧道机制,6to4同样也面临着安全问题,而且由于有6to4中继器的存在,问题更为复杂。
6over4隧道(RFC2529)
6over4隧道使得没有直接与IPv6路由器相连的孤立IPv6主机通过IPv4组播域(以此作为虚拟链路层)形成IPv6的互联。所以,在同一个IPv4的组播域中,至少需要有一个使用6over4的IPv6路由器和该6over4主机连接。通过6over4机制,IPv6可以独立于底层的链路,而且可以跨越支持组播的IPv4子网。
6over4机制要求IPv4网络支持组播功能,但目前的大多数网络均没有此功能,因此在实际应用中,它很少被利用。另外,利用IPv4的组播特性作为虚拟链路层,是一种本地传送机制,适用范围很小,只适用于双栈主机间的通信,不能解决将一个孤立节点连接到全局IPv6网络中的问题。6over4隧道通常只能应用在网络边缘,例如企业网和接入网。
ISATAP机制
ISATAP可以使IPv4站点内的双栈节点通过自动隧道接入到IPv6路由器,允许与IPv6路由器不共享同一物理链路的双栈节点通过IPv4自动隧道将数据包送达IPv6下一跳。ISATAP使用一个内嵌IPv4地址的IPv6地址,无论站点使用的是全球还是私有IPv4地址,都可以在站点内使用IPv6-in-IPv4自动隧道技术。ISATAP地址格式既可以使用站点单播IPv6地址前缀,也可以使用全局单播IPv6地址前缀,即能够支持站点和全局的IPv6路由。ISATAP机制通常应用在网络边缘,如企业网或接入网。ISATAP可以和6to4技术联合使用。
Teredo隧道
位于NAT后的IPv6节点采用一般的隧道技术(IPv6-over-IPv4)是不能和NAT域外的IPv6节点进行通信的,因为目前的NAT一般不支持协议类型为41(也就是IPv6-over-IPv4)的数据包。Teredo隧道有别于一般的IPv6-over-IPv4隧道,确切地讲,它是一种IPv6-over-UDP隧道,数据包通过被封装在UDP载荷中的方式穿过NAT。
Teredo隧道的通信实体包括客户端、服务器、中继、特定于Teredo主机的中继。Teredo客户端是指支持Teredo隧道接口的IPv4/v6节点,通过此隧道界面,数据包传送给其他的Teredo客户端以及IPv6网络上的其他节点(通过Teredo中继)。Teredo地址只是分配给 Teredo客户端,其他实体并不分配Teredo地址。Teredo服务器指连接IPv4网络与IPv6网络的IPv4/v6节点,支持用来接收数据包的Teredo隧道接口,其常见作用是帮助 Teredo客户端进行地址配置,协助在Teredo客户端之间或者客户端与纯IPv6主机之间建立通信连接,它使用UDP 3544端口侦听Teredo通信。Teredo中继指能够在IPv4网络上的Teredo客户端之间(使用Teredo隧道接口)以及与纯IPv6主机之间传送数据包的IPv4/v6路由器,它使用UDP 3544端口侦听Teredo通信。特定于Teredo主机的中继指同时具有IPv4与IPv6 Internet连接并无需Teredo中继即可通过 IPv4网络直接与Teredo客户端通信的IPv4/v6节点,它使用UDP 3544端口侦听Teredo通信。它能够使Teredo客户端与6to4主机、带有非6to4全球地址前缀的IPv6主机或者组织内部地址中使用全球前缀的ISATAP以及6over4 主机进行有效通信。
Teredo隧道可使NAT域内的IPv6节点获得全球性的IPv6连接,在IPv4地址匮乏而广泛运行NAT的地区,尤其是中国,它无疑具有较好的应用前景。但Teredo的运行需要Relay的支持,而且它不支持隧道中间存在Symmetric NAT;另外,Teredo地址采用规定格式的前缀也不符合IPv6路由分等级的思想。这些不足在一定程度上将影响Teredo的部署。
如果原来的IPv6、6to4或者ISATAP连接可用,那么主机就不必作为Teredo的客户端。现在,越来越多的IPv4 NAT经过了升级以便能够支持6to4 ,而且IPv6连接变得越来越普遍,因此,Teredo的使用将会越来越少,直到完全被放弃。
MPLS隧道主要有3种形式:在CE(客户边缘)路由器上配置IPv6隧道、MPLS上的电路透传(二层隧道)IPv6、在PE(提供商边缘)路由器起用IPv6(6PE)。其中,前两者在扩展性上存在一定的问题;后者是一种较好的策略。
6PE要求IPv6站点必须通过CE连接到一个或多个运行MP-BGP(多协议扩展-边界网关协议)的双栈PE上,这些PE之间通过MP-BGP来交换IPv6的路由可达信息,通过隧道来传送IPv6数据包。6PE适合从边缘到核心的网络过渡策略。首先它在骨干网和城域核心网仍然可以保持原有的IPv4协议,而只是在网络边缘通过MPLS技术来实现IPv4数据包和IPv6数据包的传送。其次它扩展性较好,当原有网络已经实现了MPLS时,各个边缘网络可以自主选择网络过渡时间和组网方式(本地网的组网方式不受MPLS隧道机制的影响)。6PE路由器用两层的MPLS标签来封装IPv6数据:顶层标签由核心网络设备使用的LDP(标记分布路径)来分发,用来根据路由信息将数据包承载到目的地的6PE;第二层或底部标签与目的地的IPv6前缀有关,通过multi-protocol BGP-4来传播。6PE的缺点主要是,其实施是以网络中已经部署实施了MPLS为前提条件的,对于尚没有部署MPLS的网络不适用。表1是几种MPLS隧道方式特点的比较。#p# 3.2 连接的不同组合方式
移动网络、移动终端、连接到的不同主机的IP版本都存在两种可能性,它们之间的连接会出现不同的组合方式。一条基本规则是:如果两个通信的IP节点的IP版本不同,网络中的某些节点就需要协议翻译。网络元素和移动终端采用IPv4/IPv6双协议栈是一个确保通信节点能用同一种IP版本通信的很好的解决方案。
在过渡期将会有三种不同的网络业务类型:
(1)传统的IPv4业务通过全球连接的IPv4网络来传输:由于缺乏公用IPv4地址,必须采用私有IPv4地址和NAT。
(2)IPv6网络上的IPv6业务:这种情况下原生的IPv6路由即可完成,不需要IPv4网络上的隧道或者协议翻译。
(3)IPv4网络上的IPv6业务:通信的IPv6节点/网络通过IPv4网络采用隧道技术实现连接,有可能使用协议翻译。
使用以上三种网络业务的移动终端类型可以是纯IPv4的终端(常见的第一代GPRS/WCDMA终端)、双IPv4/IPv6协议栈的终端、或纯IPv6的终端(正在研发阶段),同样与之通信的对等主机也可以是双协议栈、纯IPv4或者纯IPv6的。
3.3 过渡方式
(1)纯IPv4终端
纯IPv4终端主要是第一代的GPRS终端,提供给纯IPv4终端的是纯IPv4业务,在很多情况下没有足够的公用IPv4地址来分配给这些移动终端,因此通常情况下移动终端分配到的是私有IPv4地址。如果一个拥有私有IPv4地址的移动终端要通过公用的IPv4网络连接到某个主机上,网络中必须有NAT。
图5描述了三种情况:
◆移动终端连接到同一网内的某个主机上,这时仅用私有IPv4地址就足够了;
◆移动终端连接到公共因特网上的某个主机,移动终端将从运营商的地址空间中分配到一个公用IPv4地址并通过全球的IPv4路由来实现连接,由于公用IPv4地址池中的地址有限,图5中的b)情形很少发生。
◆移动终端有一个私有的IPv4地址,NAT分配一个临时的公用IPv4地址给它,移动终端通过这个临时的地址实现连接。

(2)双协议栈的终端
如图6所示,双协议栈的移动终端在IPv6模式下操作——移动终端打开IPv6类型的PDP上下文并且从GGSN接收到一个全球的IPv6地址,该终端通过IPv6网络连接到纯IPv6主机上,这时所有的选路都是在IPv6的域上,不需要任何翻译机制,在这种情况下纯IPv6终端与双协议栈终端的工作方式是一样的。

如图7所示,PDP上下文在移动终端和GGSN(AP类型是IPv6)之间打开,在这种情况下,边际路由器被配置为对IPv6分组封装/解除封装,因此边际路由器是运营商网络上唯一需要公用IPv4地址的设备。

来自移动节点发送到主机的IPv6数据包可以通过IPv4网络上的隧道技术来传输,或者可以直接通过IPv6网络传输。但在很多情况下不能通过IPv6网络来发送,因为还没有直接的连接。
发送到主机的数据包采用“6to4”类型的主机地址,如果数据包的所有选路都是通过IPv6网络就不需要“6to4”隧道技术,否则在边际路由器和路由器1之间将采用自动“6to4”隧道技术。
如图8所示,双协议栈的移动终端连接到纯IPv4的主机(例如IPv4的公司接入网络上的邮件服务器)上,双协议栈的移动终端在IPv4模式下工作,由于公用IPv4地址的缺乏而被分配到一个私有的IPv4地址,需要用NAT来为移动终端提供临时的公用IPv4地址。

(3)纯IPv6终端
纯IPv6移动终端的通信与双协议栈终端的主要区别在于:移动终端与纯IPv4主机之间的通信需要在网络上有翻译器(如NAT-PT)。
如图9所示,纯IPv6移动节点从GGSN(GGSN的AP类型是IPv6)获得了全球的IPv6地址,由于纯IPv6移动终端连接到的纯IPv4主机有公用IPv4地址,因此需要NAT-PT和其它的翻译机制来实现IPv6-IPv4协议和地址之间的翻译,边际路由器是双协议栈的路由器,既有全球的IPv4地址也有IPv6地址。

在这种情况下,双协议栈终端能工作得更好,因为双协议栈的终端不需要NAT-PT。
4、应用和服务
IPv6对有些应用来说至关重要,如VoIP、WAP、推送和其它需要“永远在线”支持(如实时连接)的业务。
由于过渡策略是不依赖于应用的,也就是说两者是分离的,因此建议所有的新业务都在IPv6平台上实现,实际上所有的业务在可能的条件下都可以移植到IPv6平台上。
