在下一代互联网中,已确定IPv6必须实现对组播的支持,并安排了大量的组播地址空间。虽然在IPv6开始应用后纯IPv6节点会越来越多,但许多IPv4节点依然会因为它们的成功运作而继续存在。因此短期内IPv6无法全部替换IPv4,两者必定会在很长一段时间内共存。在这一漫长的共存期中,按照IPv6的部署策略,纯IPv6网络将会区域性地不断出现。此时,网络将呈现出纯IPv4网络和纯IPv6网络共同存在,互相交错的局面。

因此,必须有一套机制来保证IPv4与IPv6节点能直接通信以实现平滑过渡。目前,已有相当多的过渡技术被提出,但它们只适用于单播通信,还不能适用于组播通信。虽然组播通信的过渡技术尚未成为人们研究工作的重心,但作为一个很有实际应用意义的研究方向,已经开始被越来越多的组织和团体关注[1-4]。

1  组播过渡技术

1.1双栈技术

双栈的组播过渡解决方案实际上是纯IPv4组播网和纯IPv6组播网两者的叠加。单播中,可以将服务器配置成双栈,以便纯IPv4和纯IPv6的主机能够轻松地访问它。同样,组播源也可以配置成双栈,同时向IPv4组和IPv6组发送数据流,使运行不同协议栈的所有主机都能接收组播报文。

在双栈网络上IPv4和IPv6组播可以同时部署。IPv4和IPv6组播能同时运行在路由器和主机上,并且能同时存在于同一网络链路;路由器也能同时成为IPv4组和IPv6组的汇聚点(RP)。

对于简单的单源情况,如果数据流只存在于一个封闭环境中,所有潜在接收者都支持同一IP协议,则源只需要使用这一IP协议。在更多的开放环境中,潜在接收者及其支持的IP协议是未知的,为了确保所有接收者都能够接收,需要有一个IPv4源和一个IPv6源,此时必须保证两个源都使用同一源数据。

只有少量源时,可以利用双栈技术,将所有源配置成双栈,同时向IPv4组和IPv6组发送报文。但在一个视频会议中,几乎每个人都要同时接收和发送数据,并且一部分参与者使用纯IPv4,另一部分使用纯IPv6,在这种情况下双栈技术将无能为力。另外,使用双栈技术时,带宽的耗费将是原来的两倍。

双栈技术不需要额外的设备,也不需要对组播数据做额外的转换。因此,是最容易实施的一种方案。适用于应用环境中不需要IPv4主机与IPv6主机之间进行通信的情况,如内容分发。

1.2协议转换技术

协议转换技术可以在无需改动基础设施的情况下,使IPv6主机能像与IPv6组播组通信一样,使用普通的IPv6组播协议与任何IPv4组播组通信。其核心思想是:在使用一种IP协议的源和使用另一种IP协议的宿之间的路径上放置一个或多个转换设备。在极少数的情况下,转换也在发送或接收的主机上完成,这主要针对运行在双栈主机上但仅支持一种IP协议的应用程序。常用的转换方法有以下几种:

(1)转发器

IPv4中,转发器(Reflector)方案在无法全局组播时经常被采用。虚拟房间视频会议系统(VRVS)是一个典型的例子,它在核心网上采用纯组播,在无法直接通过组播的区域设置转发器作为此区域的组播代理。核心网与转发器之间采用单播方式连接,转发器与端系统之间可以采用纯组播也可以使用单播。

IPv4-IPv6组播转发器在IPv4和IPv6组播之间进行转换(Reflect),而不是在单播与组播之间进行转换。给定IPv4组地址和端口及IPv6组地址和端口,转发器将同时加入两个组并监听相应的端口,从一个组接收到的所有数据将重新发送(Resend)至另一组。

按照IPv6的过渡进程,转发器可以有以下两种部署方案:当内容提供者所使用的协议没有被广泛支持,并且主机或应用程序不支持双协议时,转发器位于源附近;当接收者使用不同于源的另一种协议时,那么在接收者附近放置转发器也是非常有效的。

转发器方案主要缺陷是性能较低,不能支持大规模的组播应用。另外它必须为每个会话都启用一个实例,即使没有接收者,它仍执行接收重发的过程。

因为上述的局限,转发器可以被用来为多个组播组工作,但同时工作的会话数量有限。如果利用转发器在网络上提供服务,用户必须联系管理员,申请在有限的时间内分配一个会话;或者可以像隧道代理(TunnelBroker)一样,使用Web认证等辅助措施来使会话分配过程自动化。

(2)网关

组播过渡技术的发展晚于单播过渡技术,因此大部分组播过渡技术都不同程度地借鉴了单播过渡技术的思想。双栈技术自然毋须多言,因为它在组播过渡技术与单播过渡技术中完全是一致的。转发器技术工作于传输层,从而避免了报头转换,这与单播过渡的TCP-UDP中继技术的思想是一致的。IPv4-IPv6组播网关则是一种类网络地址转换/协议转换(NAT-PT)的方案。

NAT-PT[5]主要是针对单播提出的,并不能完全适用于组播。网关根据NAT-PT的思想,结合组播自身的特性优化改进,从而形成适合组播的IPv4-IPv6过渡技术。

网关的思想是将IPv4组播地址通过加上指定“/96”的前缀嵌入到IPv6地址中,从而每一个IPv4组播地址都有一个相应的IPv6组播地址;同样,每个IPv6地址也都和一个IPv4地址对应。参与组播过渡的IPv4与IPv6地址之间是一一映射的关系,这是IPv4-IPv6组播网关一个至关重要的特性。正是因为这个特性,协议转换的工作才能够顺利地进行。

网关可以部署在IPv4和IPv6网络的边界,也可以放置在双栈网络中。它可用于单个站点或组织,也可以作为服务在大型网络上提供。需要的话,甚至可以为同一网络部署多个网关。

网关的主要不足有两点:对IPv4组播的组成员及源的有效期不敏感、IPv4只能访问给定前缀的IPv6组。

网关最大的优势在于提供IPv4和IPv6组播的相互通信机制,使用网关可以建立同时存在IPv4和IPv6的多方视频会议,并可进行全双向连接。NAT-PT已逐渐成为主要的单播过渡方案,与之相近的网关组播过渡方案无疑是适用性最广泛的过渡方案之一。

(3)其他过渡技术

6over4过渡技术将IPv4网络当作具有组播功能的一条链路,通过IPv6组播地址和IPv4组播地址的映射关系实现IPv6协议的邻居发现功能,使孤立IPv6主机之间形成IPv6互联。这种单播过渡机制本身就是采用IPv4组播作为其底层载体,用于IPv6组播时,只将其目的地址映射到专私用组播地址域??239.0.0.0/8。因为6over4过渡技术本身并未大规模地应用,基于它的组播技术很少被提及。 
应用层组播(ALM)在应用层实现组播功能,而不是在网络层实现组播功能。其实际是一种叠加于单播网络的逻辑网。因此,ALM的过渡由应用层来保证。它的过渡问题最终归结为单播IPv6过渡。NAT-PT+ALG是在现有NAT-PT的基础上加入组播应用层网关(ALG)以满足组播的需求。韩国的ETRI项目和以及欧洲的GTPv6项目曾经提出过这种方案。

隧道技术将一种协议的组播报文封装在另一协议报文中,从而可以实现组播的跨网传输。虽然目前不是所有的隧道过渡技术都支持组播,但在加入需要额外的功能代码后,很多都可以支持。所有的隧道技术均是基于双栈的,因此不能实现纯IPv6主机和纯IPv4主机之间的通信。

2  多播转换网关模型

多播转换网关(MTG)模型是基于Linux2.4内核的网关协议转换方案原型。

MTG模型在网络中的部署如图1所示,MTG部署在IPv4和IPv6网络的边界。MTG模型将IPv4网络和IPv6网络视为地位对等的两个异构网络。从网关向两边看,一边是纯IPv4网络,另一边是纯IPv6网络。网关的工作对IPv4和IPv6而言也是对等的:IPv6主机可以加入组播源位于IPv4网络的组播组,IPv4主机也可以加入组播源位于IPv6网络的组播组。
IPv6中8位业务类型(TrafficClass)字段目前并未有标准草案做出规范,但它与IPv4中8位服务类型(ToS)字段的作用是相似的,主要用于提供某种区分服务。目前MTG对此作等值转换,方便IPv4中基于服务类型的服务质量(QoS)工作能在IPv6中继续。另外MTG对此提供扩展接口,可以根据需要调节转换策略。

IPv6中跳限度(HopLimit)字段与IPv4中生存时间(TTL)字段的作用是一致的,用于限制报文的传播范围。它的处理与业务类型和服务类型的转换处理是相同的,也使用等值转换,并提供扩展接口。对于非指定源组播(SSM)而言,源地址的转换使用MTG的固定IPv4单播地址或固定IPv6单播地址。从IPv6接收者的角度,网关是所有IPv4数据重发的源;从IPv4的角度,网关也是所有IPv6数据重发的源。对于SSM,同一个组可能同时用于多个频道,从而存在多个源,因此无法使用一个固定组播源地址,必须为它在地址映射器中分配新地址。

宿地址即组播组地址。IPv4向IPv6转换时,使用IPv6组播前缀标识??FFxy::/96[6],并将IPv4组播组地址置于低32位。当IPv4组播地址是一个由全球Internet编址中心(GINA)永久分配的组播地址时,组播前缀标识中x标记置为“0”,否则为“1”;当使用SSM时,组播前缀标识中变量x标记置为“3”。组播前缀标识中y按IPv4组播前缀和标准草案RFC2365中定义的IPv6域值的映射进行转换。IPv6向IPv4转换时,必须根据x和y确定地址类型,再从地址映射器中分配IPv4组播组地址。注意,IPv6的会话公告协议(SAP)地址必须转换为FF0y::2:7FFE形式。当IPv4的组播会话地址在224.2.128.0?224.2.255.255内时,SAP地址一般为224.2.127.254;其他情况可参见标准草案RFC2974中的具体定义。

另外,组播协议转换器还向应用层提供回调接口链,满足应用层协议转换的要求。默认的应用层回调用于SAP报文的协议转换。

(4)地址映射器

地址映射器为IPv4和IPv6维护一个单播地址池和一个由IPv4和IPv6地址对组成的地址映射表。IPv4地址池用于IPv6节点在IPv4域中的临时IPv4地址,IPv6地址池用于IPv4节点在IPv6域中的临时IPv6地址。它们被通告给IPv4/IPv6单播路由器,以便发送给他们的报文能够被转发给网关及通过逆向路径转发(RPF)检查。

地址映射器涉及3类地址的分配:IPv4组播组地址、IPv4SSM源地址、IPv6SSM源地址。当需要分配一个IPv6地址对应一个IPv4地址(IPv4源地址)时,地址映射器从地址映射表中选择一个合适的IPv6地址返回;当没有一个合适的项对应IPv4单播地址时,地址映射器从IPv6地址池中选择返回一个IPv6单播地址,并向地址映射表中注册一个新的项;当没有一个合适的项对应IPv4组播地址时(IPv4目的地址),地址映射器向表中注册一个包含IPv4组播组地址和对应IPv6地址的新项。IPv4地址的分配与之类似。

(5)SNMP接口

SNMP接口分为内部接口和外部接口。内部接口主要为内部模块与MIB交互提供一套完整的方法。外部接口则为用户提供管理MTG的方法。用户可使用标准SNMP命令获知MTG的当前运行状态和动态更改部分的可调参数。

(6)MTG管理信息库

MTG管理信息库提供MTG运行所需的环境配置和记录MTG当前运行状态。

2.2MTG的工作流程

下面以一视频会议为例说明MTG的工作流程。

IPv4中两名参与者F1和F2,IPv6中也有两名参与者S1和S2。其中F1为会议的组织者。所有参与者都运行会话描述协议(SDR)或类似SAP的监听器获取会话信息。MTG的IPv4和IPv6地址分别为202.112.25.214和3FFE:3206:1000::19D6。同时将MTG配置为IPv6组播指定路由器。

参与者F1首先向224.2.127.254:9875公告会议信息,通知其他会议参与者使用224.5.5.5作为会话地址,并同时向IPv4发送视频/音频流。

参与者F2通过SDR直接收到该SAP公告,并启动组播会议工具。此时F1和F2可以进行会话。当SAP公告到达MTG,MP4将其转交至MT,MT对其进行报头转换,源地址转换为MTG的固定IPv6地址3FFE:3206:1000::19D6,宿地址为FF0E:0::2:7FFE。并调用应用层回调函数解析出组播会话地址224.5.5.5,然后从AM取得对应的IPv6地址 
FF1E::224.5.5.5,在应用层上对其携带的信息进行修改。MT再将已转换的SAP报文转交给MP6,将之发送到IPv6网络。SAP第一次到达时,AM会更新映射表。

参与者S1和参与者S2收到SAP公告之后,发起MLD成员报告。MP6收到MLD报告之后,转交给MT,MT将MLD报告转换成IGMP成员报告,通过MP4向IPv4发送成员关系报告,并加入224.5.5.5组。至此,4个参与者均加入组播会话。

MP4接收到参与者F1发出的IPv4组播报文,并转交给MT,MT对其进行报头转换,源地址转换为MTG的固定IPv6地址3FFE:3206:1000::19D6,宿地址224.5.5.5转换为对应的IPv6地址FF1E::224.5.5.5,再经由MP6组播给参与者S1和参与者S2。MP6接收到参与者S1和参与者S2发出的IPv6组播报文,并转交给MT,MT对其进行报头转换,源地址转换为MTG的固定IPv4地址202.112.25.214,宿地址FF1E::224.5.5.5转换为对应的IPv4地址224.5.5.5,再经由MP4组播给参与者F1和参与者F2。当参与者S1和参与者S2都退出时,MP4不再向MT转交该组组播报文。

当不使用SAP时,会话地址202.5.5.5必须通过人工传达或Web公布等方法告之所有会议参与者。管理员或者被授权的终端用户通过SNMP外部接口注册202.5.5.5组播组,并取得IPv6映射地址FF1E::224.5.5.5。IPv6用户使用FF1E::224.5.5.5地址加入组播会话。

3  结束语

要使IPv4主机与IPv6主机进行组播通信,必须做诸如转发器(在传输层)或网关(在网络层)之类的协议转换工作。

MTG在实现网关基本功能的基础上,对网关作了一定程度的改进。网关对IPv4组播的组成员及源的有效期不敏感的问题,可以通过使MTG同时成为IPv4的组播路由器,而使MTG具有获知组成员状态的能力;对于网关中IPv4只能访问给定前缀的IPv6组,从MTG模型结构可以看出,在附加前缀的基础上,通过可管理的静态地址映射,消除了IPv4对IPv6的访问限制。

MTG还对网关方案未曾具体涉及的问题进行了探讨。根据标准草案RFC2365,加入对不同协议间组播管理域的映射;通过SNMP接口和扩展MIB,将网关的管理标准化。另外在底层实现上,MTG采用了逐级细化的处理流程,增加了可配置的网关的拥塞控制策略和报文调度策略,可根据QoS和流量控制要求对高速缓存中的报文进行可控调度。

使用MTG,可以有效实现IPv4-IPv6组播互通。