摘要:要使IPv4主机与IPv6主机进行组播通信,必须做协议转换工作。采用多播转换网关(MTG)技术方案能较好地实现IPv4网和IPv6网之间的组播互通。方法是将MTG部署在IPv4和IPv6网络的边界,将IPv4网络和IPv6网络视为地位对等的两个异构网络。IPv6主机可以加入组播源位于IPv4网络的组播组,IPv4主机也可以加入组播源位于IPv6网络的组播组。在IPv4中,MTG作为IPv6的代理,参与IPv4的组播;同样,MTG在IPv6中则作为IPv4的代理。在MTG系统内部,两个代理之间进行协议转换。
关键词:组播;IPv6协议;过渡;网关;转发器
在下一代互联网中,已确定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的过渡进程,转发器可以有以下两种部署方案:当内容提供者所使用的协议没有被广泛支持,并且主机或应用程序不支持双协议时,转发器位于源附近;当接收者使用不同于源的另一种协议时,那么在接收者附近放置转发器也是非常有效的。
转发器方案主要缺陷是性能较低,不能支持大规模的组播应用。另外它必须为每个会话都启用一个实例,即使没有接收者,它仍执行接收重发的过程。
因为上述的局限,转发器可以被用来为多个组播组工作,但同时工作的会话数量有限。如果利用转发器在网络上提供服务,用户必须联系管理员,申请在有限的时间内分配一个会话;或者可以像隧道代理(Tunnel Broker)一样,使用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网络的组播组。
在IPv4中,MTG作为IPv6的代理,参与IPv4的组播;同样,MTG在IPv6中则作为IPv4的代理。图中MTG既可理解为单个双栈设备,也可理解为一个双栈网络。在MTG系统内部,两个代理之间进行协议转换。
2.1 模型结构
图2虚线框部分给出了MTG的模型结构。主要由IPv4组播代理(MP4)、IPv6组播代理(MP6)、组播协议转换器(MT)、地址映射器(AM)、简单网络管理协议(SNMP)接口、MTG管理信息库(MIB)组成。
(1)IPv4组播代理
IPv4组播代理作为IPv6接收节点的代理加入IPv4组播组,接收从IPv4流出的组播报文,再将报文转交给组播协议转换器。IPv4组播代理的主要工作包括:向IPv4网络发送Internet组管理协议(IGMP)消息,向IPv4网络发送组播数据,从IPv4网络接收组播报文。向IPv4网络发送IGMP消息包括响应IGMP查询、主动向路由器发送未经同意的成员关系报告以及主动发起离开组信息。接收组播报文时,必须进行有效性检查,如IPv6中所有主机都已离开该组播组,则报文不再向组播协议转换器转交,并立即向IPv4发起离开组信息。
(2)IPv6组播代理
IPv6组播代理作为IPv6接收节点的代理加入IPv4组播组,接收从IPv6流出的组播报文,再将报文转交给组播协议转换器。因为MTG在IPv4和IPv6中部署情况不同,IPv6组播代理的工作与IPv4有所区别。IPv6组播代理的工作主要包括:接收IPv6主机的组播监听发现(MLD)成员报告(作为组播指定路由器时)、接收协议无关组播(PIM)加入消息、向IPv6网络发送组播数据、从IPv6网络接收组播报文。MTG在IPv6中不再作为普通的主机,而是成为IPv6的组播路由器和RP,因此更多地表现出路由器的行为。当IPv6中没有IPv4组播接收者时,MTG能够获知并做出反应,离开IPv4组。这是IPv4组播代理所无法做到的,因此,IPv6组播数据总是无条件地被转交给组播协议转换器,并被向IPv4网络中发送。
(3)组播协议转换器
组播协议转换器对IPv4组播报文和IPv6组播报文进行相互转换。它主要工作于网络层,在IPv4和IPv6间进行报头转换,必要时还要对报文分片转发。
由图2可见,整个模型的核心模块是组播协议转换器,它主要负责在IPv4和IPv6报头间转换。表1为IPv4和IPv6报头字段转换表。
IPv6中8位业务类型(Traffic Class)字段目前并未有标准草案做出规范,但它与IPv4中8位服务类型(ToS)字段的作用是相似的,主要用于提供某种区分服务。目前MTG对此作等值转换,方便IPv4中基于服务类型的服务质量(QoS)工作能在IPv6中继续。另外MTG对此提供扩展接口,可以根据需要调节转换策略。
IPv6中跳限度(Hop Limit)字段与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组播组地址、IPv4 SSM源地址、IPv6 SSM源地址。当需要分配一个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.2 MTG的工作流程
下面以一视频会议为例说明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组播互通。
来源:中国联通网站