IPv6解决方案可控组播技术白皮书.docx
- 文档编号:2429844
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:16
- 大小:289.56KB
IPv6解决方案可控组播技术白皮书.docx
《IPv6解决方案可控组播技术白皮书.docx》由会员分享,可在线阅读,更多相关《IPv6解决方案可控组播技术白皮书.docx(16页珍藏版)》请在冰点文库上搜索。
IPv6解决方案可控组播技术白皮书
IPv6解决方案可控组播技术白皮书
关键词:
组播,可控组播,IPV6
摘要:
IP组播技术的出现使得对特定数据的分发能够大大的节约带宽。
但使用组播技术的同时,如何进行有效的安全控制也是目前组播技术研究的一个方向。
本文描述了在IPv6环境下的一种可控组播的技术及其部署方案。
缩略语清单:
缩略语
英文全名
中文解释
PIM
ProtocolIndependentMulticast
协议无关组播
PIMDM
ProtocolIndependentMulticastDenseMode
协议无关组播—密集模式
PIMSM
ProtocolIndependentMulticastSparseMode
协议无关组播—稀疏模式
MLD
MulticastListenerDiscovery
组播侦听者发现协议
MLDSnooping
MulticastListenerDiscoverySnooping
组播侦听者发现协议窥探
目录
1组播技术概述3
2IPv6组播技术介绍3
2.1IPv6组播地址3
2.2IPv6组播MAC地址4
2.3组播组管理协议5
2.4MLDSnooping技术8
2.5组播路由协议与组播转发11
3H3C可控组播技术12
3.1组播源控制12
3.2组播接收者控制13
3.3用户组播权限部署及计费14
3.4典型应用场景15
4总结15
1组播技术概述
组播是指在IP网络中将数据包以尽力传送的形式发送到某个确定的节点集合(即组
播组),其基本思想是:
源主机(即组播源)只发送一份数据,其目的地址为组播
组地址;组播组中的所有接收者都可收到同样的数据拷贝,并且只有组播组内的主
机可以接收该数据,而其它主机则不能收到。
组播技术有效地解决了单点发送、多点接收的问题,实现了IP网络中点到多点的高
效数据传送,能够大量节约网络带宽、降低网络负载。
作为一种与单播和广播并列
的通信方式,组播的意义不仅在于此。
更重要的是,可以利用网络的组播特性方便
地提供一些新的增值业务,如在线直播、网络电视、远程教育、远程医疗、网络
电台、实时视频会议等互联网的信息服务领域。
2IPv6组播技术介绍
组播技术的实现需要解决以下几方面问题:
✧组播源向一组确定的接收者发送信息,而如何来标识这组确定的接收者?
✧接收者通过加入组播组来实现对组播信息的接收,而接收者是如何动态地加入或离开组播组的?
✧组播报文在网络中是如何被转发并最终到达接收者的?
2.1IPv6组播地址
在IPv6中,使用组播组地址来确定一个组播组的接收者。
一个节点可能属于多个组播组。
发往组播地址的报文被组播地址标识的所有接口接收。
图1IPv6组播地址格式
IPv6组播地址的格式如上图所示,其中各字段的含义如下:
(1)0xFF:
最高8比特为11111111,标识此地址为组播地址。
(2)Flags:
4比特。
如图2所示,Flags字段中各位的取值如下:
图2Flags字段格式
✓最高位为保留位,必须为0。
✓Rbit:
取0表示非内嵌RP的组播地址;取1则表示内嵌RP的组播地址,此时P、T位都必须置1。
✓Pbit:
取0表示非基于单播前缀的组播地址;取1则表示基于单播前缀的组播地址,此时T位也必须置1。
✓Tbit:
取0表示永久分配组播地址;取1则表示非永久分配的组播地址。
(3)Scope:
4比特,用于标识此组播组的应用范围,其取值及含义如表1所示。
表1Scope字段的取值及其含义
(4)GroupID:
112比特,组播组标识号。
用来在由Scope字段所指定的范围内
唯一标识组播组,该标识可能是永久分配的或临时的,这由Flags字段的T位决定。
2.2IPv6组播MAC地址
IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。
如下图所示,是IPv6组播地址FF1E:
:
F30E:
101的MAC地址映射举例。
图3IPv6组播MAC地址
如上图所示,IPv6的组播MAC地址为将128bit的IPv6组播地址的低32bit:
F30E0101直接映射到了MAC地址的低32bit中。
2.3组播组管理协议
组成员关系管理是指在路由器/交换机上建立直联网段内的组成员关系信息,具体
说,就是管理各接口/端口下有哪些组播组的成员。
在IPv6中使用MLD协议作为组播组管理协议,MLD是运行于主机和与主机直连的路由器之间,其实现的功能是双向的:
一方面,主机通过MLD报告通知路由器希望接收某个特定组播组的信息;另一方面,路由器通过MLD查询周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护。
通过MLD协议,在路由器中记录的信息是某个组播组是否在本地有组成员,而不是组播组与主机之间的对应关系。
目前MLD有以下两个版本:
MLDv1(RFC2710)对应IGMPv2
MLDv2(RFC3810)对应IGMPv3
2.3.1MLDv1原理简介
MLDv1主要基于查询和响应机制完成对IPv6组播组成员的管理。
Ø查询器选举机制
当一个网段内有多台IPv6组播路由器时,由于它们都能从主机那里收到MLD成员关系报告报文(MulticastListenerReportMessage),因此只需要其中一台路由器发送MLD查询报文(QueryMessage)就足够了。
这就需要有一个查询器(Querier)的选举机制来确定由哪台路由器作为MLD查询器,其选举过程如下:
(1)所有MLD路由器在初始时都认为自己是查询器,并向本地网段内的所有主机和路由器发送MLD普遍组查询(GeneralQuery)报文(目的地址为FF02:
:
1);
(2)本地网段中的其它MLD路由器在收到该报文后,将报文的源IPv6地址与自己的接口地址作比较。
通过比较,IPv6地址最小的路由器将成为查询器,其它路由器成为非查询器(Non-Querier);
(3)所有非查询器上都会启动一个定时器(即其它查询器存在时间定时器OtherQuerierPresentTimer)。
在定时器超时前,如果收到了来自查询器的MLD查询报文,则重置该定时器;否则,就认为原查询器失效,并发起新的查询器选举过程。
ØIPv6组播组加入机制
如下图所示,假设HostB与HostC想要收到发往IPv6组播组G1的IPv6组播数据,而HostA想要收到发往IPv6组播组G2的IPv6组播数据,那么主机加入IPv6组播组以及MLD查询器(RouterB)维护IPv6组播组成员关系的基本过程如下:
(1)主机会主动向其要加入的IPv6组播组发送MLD成员关系报告报文以声明加入,而不必等待MLD查询器发来的MLD查询报文;
(2)MLD查询器(RouterB)周期性地以组播方式向本地网段内的所有主机和路由器发送普遍组查询报文(目的地址为FF02:
:
1);
(3)在收到该查询报文后,关注G1的HostB与HostC其中之一(这取决于谁的延迟定时器先超时)——譬如HostB会首先以组播方式向G1发送MLD成员关系报告报文,以宣告其属于G1。
由于本地网段中的所有主机都能收到HostB发往G1的报告报文,因此当HostC收到该报告报文后,将不再发送同样针对G1的报告报文,因为MLD路由器(RouterA和RouterB)已知道本地网段中有对G1感兴趣的主机了。
这个机制称为主机上的MLD成员关系报告抑制机制,该机制有助于减少本地网段的信息流量;
(4) 与此同时,由于HostA关注的是G2,所以它仍将以组播方式向G2发送报告报文,以宣告其属于G2;
(5) 经过以上的查询和响应过程,MLD路由器了解到本地网段中有G1和G2的成员,于是由IPv6组播路由协议(如IPv6PIM)生成(*,G1)和(*,G2)组播转发项作为IPv6组播数据的转发依据,其中的“*”代表任意IPv6组播源;
(6) 当由IPv6组播源发往G1或G2的IPv6组播数据经过组播路由到达MLD路由器时,由于MLD路由器上存在(*,G1)和(*,G2)组播转发项,于是将该IPv6组播数据转发到本地网段,接收者主机便能收到该IPv6组播数据了。
图4MLDv1组播组加入
ØIPv6组播组离开机制
当一个主机离开某IPv6组播组时:
(1)该主机向本地网段内的所有IPv6组播路由器(目的地址为FF02:
:
2)发送离开组(Done)报文;
(2)当查询器收到该报文后,向该主机所声明要离开的那个IPv6组播组发送特定组查询(Multicast-Address-SpecificQuery)报文(目的地址字段和组地址字段均填充为所要查询的IPv6组播组地址);
(3)如果该网段内还有该IPv6组播组的其它成员,则这些成员在收到特定组查询报文后,会在该报文中所设定的最大响应时间(MaximumResponseDelay)内发送成员关系报告报文;
(4)如果在最大响应时间内收到了该IPv6组播组其它成员发送的成员关系报告报文,查询器就会继续维护该IPv6组播组的成员关系;否则,查询器将认为该网段内已无该IPv6组播组的成员,于是不再维护这个IPv6组播组的成员关系。
2.3.2MLDv2原理简介
MLDv2的原理与MLDv1基本相同,并新增了一些特性:
Ø对IPv6组播源的过滤
MLDv2增加了针对IPv6组播源的过滤模式(INCLUDE/EXCLUDE),使主机在加入某IPv6组播组G的同时,能够明确要求接收或拒绝来自某特定IPv6组播源S的IPv6组播信息。
当主机加入IPv6组播组时:
✓若要求只接收来自指定IPv6组播源如S1、S2、……发来的IPv6组播信息,则其报
告报文中可以标记为INCLUDESources(S1,S2,……)
✓若拒绝接收来自指定IPv6组播源如S1、S2、……发来的IPv6组播信息,则其报告
报文中可以标记为EXCLUDESources(S1,S2,……)
如下图所示,网络中存在Source1(S1)和Source2(S2)两个IPv6组播源,均向IPv6组播组G发送IPv6组播报文。
HostB仅对从Source1发往G的信息感兴趣,而对来自Source2的信息没有兴趣。
图5指定源组播的组播流量路径
如果主机与路由器之间运行的是MLDv1,HostB加入IPv6组播组G时无法对IPv6组播源进行选择,因此无论HostB是否需要,来自Source1和Source2的IPv6组播信息都将传递给HostB。
当主机与路由器之间运行了MLDv2之后,HostB就可以要求只接收来自Source1、发往G的IPv6组播信息(S1,G),或要求拒绝来自Source2、发往G的IPv6组播信息(S2,G),这样就只有来自Source1的IPv6组播信息才能传递给HostB了。
2.4MLDSnooping技术
MLDSnooping是MulticastListenerDiscoverySnooping(组播侦听者发现协议窥探)的简称。
它是运行在二层设备上的IPv6组播约束机制,用于管理和控制IPv6组播组。
运行MLDSnooping的二层设备通过对收到的MLD报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发IPv6组播数据。
如下图所示,当二层设备没有运行MLDSnooping时,IPv6组播数据报文在二层被广播;当二层设备运行了MLDSnooping后,已知IPv6组播组的组播数据报文不会在二层被广播,而在二层被组播给指定的接收者。
图6MLDSnooping技术简介
2.4.1MLDSnooping技术分析
Ø普遍组查询
MLD查询器定期向本地网段内的所有主机与路由器(FF02:
:
1)发送MLD普遍组查询报文,以查询该网段有哪些IPv6组播组的成员。
在收到MLD普遍组查询报文时,交换机将其通过VLAN内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:
1.如果在路由器端口列表中已包含该动态路由器端口,则重置其老化定时器。
2.如果在路由器端口列表中尚未包含该动态路由器端口,则将其添加到路由器端口列表中,并启动其老化定时器。
Ø报告成员关系
在以下情况,主机会向MLD查询器发送MLD成员关系报告报文:
1.当IPv6组播组的成员主机收到MLD查询报文后,会回复MLD成员关系报告报文。
2.如果主机要加入某个IPv6组播组,它会主动向MLD查询器发送MLD成员关系报告报文以声明加入该IPv6组播组。
在收到MLD成员关系报告报文时,交换机将其通过VLAN内的所有路由器端口转发出去,从该报文中解析出主机要加入的IPv6组播组地址,并对该报文的接收端口做如下处理:
1.如果不存在该IPv6组播组所对应的转发表项,则创建转发表项,将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;
2.如果已存在该IPv6组播组所对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;
3.如果已存在该IPv6组播组所对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器。
Ø离开组播组
当主机离开IPv6组播组时,会通过发送MLD离开组报文,以通知组播路由器自己离开了某个IPv6组播组。
当交换机从某动态成员端口上收到MLD离开组报文时,首先判断要离开的IPv6组播组所对应的转发表项是否存在,以及该IPv6组播组所对应转发表项的出端口列表中是否包含该接收端口:
1.如果不存在该IPv6组播组对应的转发表项,或者该IPv6组播组对应转发表项的出端口列表中不包含该端口,交换机不会向任何端口转发该报文,而将其直接丢弃;
2.如果存在该IPv6组播组对应的转发表项,且该IPv6组播组对应转发表项的出端口列表中包含该端口,交换机会将该报文通过VLAN内的所有路由器端口转发出去。
同时,由于并不知道该接收端口下是否还有该IPv6组播组的其它成员,所以交换机不会立刻把该端口从该IPv6组播组所对应转发表项的出端口列表中删除,而是重置其老化定时器。
当MLD查询器收到MLD离开组报文后,从中解析出主机要离开的IPv6组播组的地址,并通过接收端口向该IPv6组播组发送MLD特定组查询报文。
交换机在收到MLD特定组查询报文后,将其通过VLAN内的所有路由器端口和该IPv6组播组的所有成员端口转发出去。
对于MLD离开组报文的接收端口(假定为动态成员端口),交换机在其老化时间内:
1.如果从该端口收到了主机响应该特定组查询的MLD成员关系报告报文,则表示该端口下还有该IPv6组播组的成员,于是重置其老化定时器;
2.如果没有从该端口收到主机响应该特定组查询的MLD成员关系报告报文,则表示该端口下已没有该IPv6组播组的成员,则在其老化时间超时后,将其从该IPv6组播组所对应转发表项的出端口列表中删除。
通过MLDSnooping技术,二层组播将信息只转发给有需要的接收者,可以带来以下好处:
1.减少了二层网络中的广播报文,节约了网络带宽
2.增强了IPv6组播信息的安全性
3.为实现对每台主机的单独计费带来了可能
2.5组播路由协议与组播转发
在组播技术中,使用组播路由协议来建立组播的转发路径,在实现中,组播路由和转发分为三种表:
1.每个组播路由协议自身的路由表,如PIM路由表
2.各组播路由协议的组播路由信息经过综合形成一个总的组播路由表
3.组播转发表(MulticastForwarding-Table)直接用于控制组播数据包的转发
组播路由表由一组(S,G)表项组成,其中(S,G)表示由源S向组播组G发送组播数据的路由信息。
如果路由器支持多种组播路由协议,则其组播路由表中将包括由多种协议生成的组播路由。
路由器根据组播路由和转发策略,从组播路由表中选出最优的组播路由,并下发到组播转发表中。
组播路由协议依赖于现有的单播路由信息、MBGP路由或组播静态路由来创建组播路由表项。
组播路由协议在创建组播路由表项时,运用了RPF(ReversePathForwarding,逆向路径转发)检查机制,以确保组播数据能够沿正确的路径传输,同时还能避免由于各种原因而造成的环路。
现有网络中,最常用的组播路由协议是PIM,在IPv6网络中,IPv6PIM协议与IPv4PIM协议除报文中IP地址结构不同外,其它协议行为基本相同,IPv6PIM也支持SM、DM和SSM这三种模式。
3H3C可控组播技术
H3C可控组播技术解决在园区网的部署组播的同时,需要对组播进行控制的环境中,对组播流量进行控制。
可控组播技术能够满足如下要求:
1.对组播源的严格控制,能够阻止未被授权的组播流的发送。
2.对组播接收者的严格控制,能够阻止特定的用户对未授权的组播流量的获取。
3.对用户身份的控制,能够针对用户的身份进行组播的授权。
4.抑制二层组播报文,使其无法在接入层泛滥。
5.能够与现有的认证计费系统配合,达到平滑升级的目的。
通过部署可控组播技术,园区网的管理者能够对接入网络的组播流量及接收者进行控制,达到对组播业务的可部署,可管理,可运营要求。
3.1组播源控制
对组播源的控制的实质是对网络中组播节目的控制,保证只有被授权的节目才能够在网络中传输。
在一个组播业务需要被发布之前,组播的提供者必须向园区网的管理者申请,管理者经过对组播业务的评审后,提供用于组播源发送的相关参数,包括组播源地址,组播组地址,所用带宽等必要信息。
当接入组播服务后,管理者回收这些信息。
当组播业务的提供者将组播流量发送到网络中后,需要提供给组播接收者接收组播数据的方式,一般来说,建议采用WEB网页的方式进行组播业务的的发布。
针对组播源的控制用于保证只有已申请并被授权的组播源才能够发组播报文进入网络。
H3C目前提供的组播源的控制方法如下:
目前H3C对组播源控制采用静态授权:
即园区网管理者为组播源分配源地址、组播地址、带宽等必要信息之后,通过在与组播源直接相连的边缘交换机上配置ACL,完成长期性的授权,直到组播提供者终止组播业务时取消授权。
在接入层及网络出口设备上,还需要配置在缺省情况下禁止转发接收的IPv6组播报文,这样配置后,除非组播流量符合配置的组播ACL参数,才能够被转发。
这样就限制了在一个园区网内部,只能使用被授权的组播流量。
3.2组播接收者控制
对组播接收者进行控制,主要是在网络边缘设备上对终端用户的组播接收权限进行控制,对用户的组播权限控制应是动态的过程,在用户使用组播前动态下发到网络边缘设备上并且应当能够与现有的认证计费系统配合,做到对组播用户的计费。
H3C结合用户认证技术提供了对组播接收者的控制技术,当一个用户接入网络时,首先需要通过802.1X认证确认其身份,在确认身份后,结合组播控制服务器,对特定用户的组播权限进行实时控制。
用户的组播权限的下发是使用H3C的UserProfile技术,UserProfile提供一个配置模板,能够保存预设配置(一系列配置的集合)。
用户可以根据不同的应用场景为UserProfile配置不同的内容,比如CAR(CommittedAccessRate,承诺访问速率)策略和QoS(QualityofService,服务质量)策略等。
在设备上配置的组播权限是包含在UserProfile中的,当用户上线时,会通过H3CiMC下发对应的UserProfile,对用户的组播权限进行动态授权。
如下图所示,一个组播用户在网络中获得组播权限的过程如下:
图7可控组播技术简介
1.当用户接入网络时,首先进行802.1X认证。
2.当用户通过认证后,根据在服务器侧针对此用户设置的组播用户控制权限,向接入层交换机下发对应此用户的组播控制权限,这个权限以User-Profile为表现形式。
3.当用户需要接收组播流量时,发送MLD的组播组通告报文,当MLD报文经过接入交换机时,接入交换机通过比较下发的针对此用户的UserProfile包含的过滤信息,将已经授权的组播加入报文发送到上游PIM设备。
当用户的MLD通告报文中的组播组未被授权,则接入交换机上丢弃此MLD报文,阻止未被授权的组播流被发送给终端用户。
4.当用户下线后,在接入设备上将已经下发的用户UserProfile删除。
可控组播技术通常结合MLDSnooping使用,这样能够做到在接入层基于每个用户的MAC地址,做到对用户的组播权限的动态控制。
当使用非H3C交换机时,可能不支持如上所述的动态组播权限下发,在这种情况下,如果交换机支持对IPv6组播报文的过滤,也是能够实现部分的可控组播功能。
通过在交换机接口上配置ACL,做到对组播报文的过滤,能够控制到基于端口的组播转发。
这种授权是一种静态的组播接收者控制,通过这种方式,可以部分实现可控组播的功能。
3.3用户组播权限部署及计费
H3C的组播权限控制模块用于对用户的组播权限配置,园区网管理者通过此模块对用户的组播权限进行配置。
在组播权限控制模块上,用户的组播权限在以套餐的形式表示,即针对与多个组播组,可以定义为一个组播套餐,这些组播套餐使用User-Profile标识,当用户进行802.1X认证时,User-Profile会随认证结果动态的下发到接入设备上。
当用户需要申请组播服务时,管理员将用户关联已经配置好的User-Profile即可。
在对组播用户的计费上,可以使用原有的计费系统进行计费,对于使用单播包月计费的用户,在计费时,添加组播的费率就可以实现对组播用户的计费。
使用按时长计费的用户,可以使用限时包月策略,单播与组播同时在一个月内有相同的使用时长,超过的部分采用一定的费率进行按时长收费,通过这些计费策略可以灵活的控制单播与组播的费率,方便计费。
3.4典型应用场景
图8可控组播的典型部署
可控组播的典型部署场景如上图所示,对组播源的控制上,使用静态组播授权,在校园网出口及校园网接入层进行过滤,对校外及校内的非法组播源进行过滤。
与组播权限控制模块及用户认证模块进行配合,对校园网内部的用户进行组播权限的动态下发,达到控制组播用户接入权限的目的。
4总结
通过在园区网部署可控组播技术,能够同时对网络中的组播源及接收者同时进行控制,使得在网络中部署组播业务时,能够达到可部署,可管理,可运营的效果。
在结合了计费系统后,可控组播技术能够逐步的为网络的管理者提供一套新的网络增值业务。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IPv6 解决方案 可控 技术 白皮书