专利名称:一种在快速生成树环网下实现组播的方法
技术领域:
本发明涉及通信技术领域的组播技术,尤其涉及一种在快速生成树(RSTP)环网下实现组播的方法。
背景技术:
RSTP环采用的链路冗余方法增强了网络的可靠性和健壮性,RSTP环是城域网中二层汇聚层常用的组网模式,随着对接入网可靠性要求的提高,这一组网形式也逐渐成为接入网组网的一个发展方向。
如图1所示,接入层设备和汇聚设备组成链路环,环上任意一点出现故障,仍然可以保证每一个接入设备和汇聚设备之间的通信链路不被中断,从而极地大提高了接入网抵御单点故障的能力。
RSTP环上采用RSTP协议作为倒换控制协议,但是RSTP环的应用却给以组播技术为基础的宽带视频业务的开展带来了一定障碍。这主要是因为接入层设备和汇聚设备之间一般通过Internet组播控制协议(IGMP)协议作为组播视频转发的控制协议,为了维持节目的组成员关系,接入设备需要发送组播控制协议加入(IGMP REPORT)报文给汇聚设备,而RSTP环上的接入设备到汇聚设备之间至少存在两条链路,其中只有一条链路可用,链路可用性的识别就变成了接入设备首先要解决的问题。如果IGMP REPORT报文发送到错误的链路可能会导致上层汇聚层设备长时间无法收到IGMP REPORT报文,则认为接入设备已经不再需要该节目,不再向接入设备转发该节目的组播报文。
其次,为了防止未经认证的组播报文通过组播表转发,接入设备需要对进入的组播报文进行源端口和源IP地址检查,保证只有特定端口、特定视频服务器发出的组播报文才能转发到用户端口,防止非法组播报文干扰终端用户正常收看节目。而在RSTP环的应用环境中,提供特定节目的服务器所在端口会动态的变化,而接入设备对组播节目的源端口检查所使用端口不相应改变的话,就会造成检查无法通过,丢弃正常的视频报文。
例如在图2的组网示意图中,一个汇聚设备和两个接入设备组成RSTP环,启动RSTP协议后,经过生成树计算,将接入设备B上的低优先级端口0/5闭塞,这时,汇聚设备是根桥,接入设备A通过0/7端口和汇聚设备通信,接入设备A的根端口(和根桥通信的端口)是0/7,IGMP REPORT报文会通过端口0/7发送出去,所有视频节目的入端口是0/7;接入设备B通过0/1端口和汇聚设备间接通信(中间要通过A设备),根端口是0/1端口,IGMP REPORT报文通过0/1发送出去,所有视频节目的入端口是0/1。当汇聚设备和接入设备A之间的直连链路0/1---0/7因为某种原因中断后,RSTP协议会重新收敛,将接入设备上的端口0/5重新启动,此时接入设备A变成通过0/4端口和汇聚设备通信,根端口变为0/4,此时如果设备A还是通过0/7端口发送IGMP REPORT报文的话就会导致无法得到汇聚设备的视频流,如果源端口检查时仍然使用0/7端口作为节目的入端口(实际视频节目流是从0/4发送过来的),则会导致正常的视频流也无法通过检查。同理接入设备B上也会产生同样的问题。
为了解决上述问题,目前的解决方法是在向上发送IGMP REPORT报文时不区分端口,向所有的上行口发送,这样可以规避需要识别上行链路可用性的问题,同时,对视频报文不做源端口检查。但这种方法存在以下缺点1、接入设备的上行口不光连接了1个汇聚设备,可能还连接其他的网络设备,这些设备上可能也存在很多组播组(常见的情况是多个内容提供商都提供视频业务,而这些视频业务之间可能使用了相同的组地址),如果不加区分的将IGMP REPORT报文发送给所有上行端口,会导致其他设备也收到IGMPREPORT报文,这些设备就会将另外的节目发送给接入设备(注意,这个节目和接入设备请求的节目不一样,但是采用同一个组地址),导致接入设备收到不需要的组播报文。
2、不加区分的将IGMP REPORT报文发送给所有上行端口,IGMP报文需要CPU处理,会增加其他上行设备的处理负担。
3、不做节目的源端口检查,可能导致不需要的组播报文发送给用户,导致用户无法正常收看节目。
发明内容
本发明提供一种在快速生成树(RSTP)环网下实现组播的方法,以解决现有技术在RSTP环网下实现组播时存在接入设备不正确组播节目的问题。
为解决上述问题,本发明提供以下技术方案一种在快速生成树环网下实现组播的方法,所述环网中具有接入设备,该接入设备上具有组播模块和节目表;该方法包括如下步骤在接入设备上将各节目所对应端口配置为固定端口模式、绑定根端口模式或跟随上层查询器端口模式;所述接入设备上的组播模块在收到切换根端口的消息时遍历节目表,将所有配置为绑定根端口模式的节目所对应的端口更新为变化后的根端口;或所述组播模块在从一个端口接收到组播控制协议查询报文并在确定该端口与记录的全局查询器端口不同时,将该全局查询器端口更新为接收查询报文的端口,并遍历节目表,将所有配置为跟随上层查询器端口模式的节目所对应的端口更新为收到组播控制协议查询报文的端口。
其中在更新根端口后,从当前的根端口向上层查询器发送组播控制协议(IGMP)加入(IGMP REPORT)报文,以保证接入设备包含在节目的组成员内。
若配置为绑定根端口模式的节目已经配置了硬件组播转发表项,则将该硬件组播转发表项的入端口更新为变化后的根端口。
将全局查询器端口更新为接收查询报文的端口后,从更新后的全局查询器端口向上层查询器发送组播控制协议(IGMP)加入报文,以保证接入设备包含在节目的组成员内。
若配置为跟随上层查询器端口的节目已经配置了硬件组播转发表项,则将该硬件组播转发表项的入端口更新为收到组播控制协议查询报文的端口。
在节目表中,通过入端口、组播地址和源地址来确定一个节目。
本发明具有以下有益效果1、解决了RSTP环网中IGMP控制报文发送端口的变换问题,环网的链路出现倒换时,使用消息机制通知组播模块根端口的变换,使得IGMP控制报文从新的根端口发送,防止了IGMP报文的丢失。
2、解决了RSTP环网中组播表进行入端口检查的问题,环网的链路出现倒换时,使用消息机制通知组播模块根端口的变换,刷新硬件转发表中的组播组入端口,保证了视频报文转发正确和节目源的检查。
3、节目上行口配置模式多样,每个节目可以单独设置,不但可以应用于正常组网,还可以应用于RSTP环网。
4、每个节目支持单独的上行口配置模式和单独的上行口,可以支持多个节目分布在不同端口,而且各个端口的视频组网可以独立。
5、采用入端口、组播IP、源IP唯一确定一个节目,可以解决组播IP地址冲突问题,组网适应性更强;同时,对节目来源的校验更加严格,防止非法组播报文进行恶意传播,安全性更好。
图1为采用RSTP环组网的接入网模型示意图;图2为采用RSTP环组网的网络中设备端变化示意图;图3为节目对应端配置的初始化流程图;图4为设备根端口变化时组播模块的处理流程图;图5为查询器端口的学习流程图。
具体实施例方式
根端口是RSTP协议中定义的,指的是和根桥最近的一个端口;查询器端口IGMP协议中定义的,指的是节目下发下来的端口。在RSTP环网中,若节目流从根桥转发到环网的各个设备,此时根端口和查询器端口是相同端口,若节目流从环网上一个接入设备转发出来,则两者就可能不相同。
在RSTP环网中,不管是否启动RSTP协议,全局查询器都要进行学习,即从定时向接入设备发送IGMP查询报文,接入设备收到IGMP查询报文后,向查询器应答自己所需要的节目组,上层查询器根据接入设备的应答确定节目组的转发成员。
在接入设备中组播的每一个节目都有两个属性,一个是上行口配置模式,另外一个是节目当前对应端口(即上行端口)。在本发明中,一个节目对应端口可配置为固定端口模式、绑订RSTP根端口模式和跟随上层查询器端口模式。
若某个节目端口配置为固定端口模式,配置节目的组播转发表项入端口和发送上行组播控制协议(IGMP)报文时就采用固定的端口。这种模式在节目源和查询器端口固定不变时采用。
若某个节目对应端口配置为绑订RSTP根端口时,配置节目的组播转发表项入端口和发送上行IGMP报文时就采用当前的RSTP根端口。当根端口发生变化时,RSTP协议模块发送消息通知视频组播模块,视频组播模块检查根端口所对应的节目,将这些节目所对应端口切换到新的根端口上,同时刷新硬件组播转发表中这些节目的入端口,这些节目的上行IGMP报文的发送端口相应也切换到新的根端口上。这种模式一般应用在部分节目的节目源来自于RSTP环的环境。
上层查询器端口指的是定期接收到IGMP查询报文的端口,接入设备可以通过IGMP查询报文的接收来确定上层查询器所在端口,该端口在使用中也可能会发生变化。当某个节目配置为跟随查询器端口,则配置该节目的转发表入口和发送IGMP报文都采用学习到的上层查询器端口。这种模式一般应用在单查询器,并且查询器与节目源一致的情况和查询器端口可能会发生变化的情况。
修改节目的端口配置模式时,接入设备中节目端口配置模式和节目对应的端口作相应修改。
参阅图3所示,系统上电初始化时,节目上行口配置过程为步骤1从本配置文件中读取所有节目的配置信息恢复到节目表中;
步骤2调用接口函数获取默认根端口;步骤3判断当前节目是否绑定RSTP根端口,如果是,则进行步骤4,否则进行步骤5;步骤4更新当前节目对应端口为RSTP根端口;步骤5判断是否所有节目都已处理完毕,若是,则进行步骤7,否则继续步骤6;步骤6取下一个节目作为当前节目,返回步骤3;步骤7调用接口函数获取默认上层查询器端口;步骤8判断当前节目是否绑定查询器端口,若是,则进行步骤9,否则进行步骤10;步骤9更新节目对应端口为查询器端口;步骤10判断是否所有节目都已处理完毕,若是,则结束,否则进行步骤11;步骤11取下一个节目作为当前节目,返回步骤8。
参阅图5所示,根端口变化时的处理过程如下步骤20组播模块接收到RSTP协议模块发送的根端口切换消息。
RSTP环因为中间链路发生故障后,需要重新计算生成树,接入设备的根端口会发生变化,RSTP协议会发送一个消息,通知组播模块进行跟端口的切换。
步骤21根端口切换消息中指明了新的根端口,组播模块从消息中取出新的根端口参数来更新全局变量中的根端口参数。
步骤22组播模块遍历节目表,确定当前节目是否是绑订根端口模式,若是,则进行步骤23,否则进行步骤26。
步骤23将当前节目对应端口更新为新的RSTP根端口,即将新的根端口填写到节目对应端口属性中。
步骤24检查当前节目是否已经配置了硬件组播转发表项,若是,则进行步骤25,否则进行步骤26。
步骤25修改硬件转发表项中的入端口为新的根端口,以防止进入的组播视频报文进行入端口检查时无法通过。
更新了节目对应端口之后,从新的端口发送一个IGMP加入报文给上层查询器,从而保证上层查询器中该节目的组成员仍然包括本地接入设备。
步骤26判断是否所有的节目都已处理完,若是则结束处理流程,否则进行步骤27。
步骤27从节目表中取下一个节目作为当前节目,返回步骤22。
参阅图6所示,上层查询器端口的学习过程如下步骤30从一个上行端口A收到一个IGMP查询报文。
步骤31检查全局变量中存放的全局查询器端口和端口A是否相同,若不同则继续步骤32,否则将查询器端口的老化定时器时间清0,重新开始老化计数并继续其他处理。
步骤32修改全局变量中的查询器端口参数为端口A的参数,并启动老化定时器和发送查询器端口切换告警。定时器超时时间设为查询器老化值,该值由用户配置。
步骤33判断当前节目是否绑定了查询器端口,若是则进行步骤34,否则进行步骤37。
步骤34更新节目表中节目对应端口为端口A。
步骤35判断当前节目是否已经设置了硬件组播转发表项,若是则进行步骤36,否则进行步骤37。
步骤36修改硬件转发表项中的入端口为端口A,防止进入的组播视频报文进行入端口检查时无法通过。更新了节目对应端口之后,端口A发送一个IGMP REPORT报文给上层查询器,保证上层查询器中该节目的组成员仍然包括本地接入设备。
步骤37判断是否已处理完节目表中的所有节目,若是,则继续其他处理,否则进行步骤38。
步骤38从节目表中取下一个节目作为当前节目,返回步骤33。
为了记录上层查询器的故障,接入设备对于学习到的查询器端口设置了一个老化定时器,如果长时间无法从该端口收到新的IGMP查询报文,说明上层查询器或者链路出现故障,则利用告警或者日志将这个错误予以记录,以便日后跟踪。
在本发明中,接入设备上的节目表采用入端口、源IP地址和组播地址3个参数组合来唯一确定一个节目,这样不同的节目只要源IP不相同就可以使用同一个组播IP地址。因此,不同内容提供商可以采用相同组地址,从而节省组IP地址。同样,采用入端口、源IP地址和组播地址3个参数来对组播报文进行合法性检查。
例如系统管理员定义了网络节目A的组播IP是239.1.1.1,来源端口是0/7/0,来源服务器IP是211.38.10.2,将这些来源信息设置到硬件(LSW芯片或者FPGA芯片中),并要求对这个节目进行来源检查。若第三方采用伪造服务器(211.38.9.10)从端口0/1/13向互联网发布虚假的节目A,在接入设备上这些伪造的节目报文会因为源端口和源IP不符合而被丢弃,也就不会干扰正常的节目发布。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种在快速生成树环网下实现组播的方法,所述环网中具有接入设备,该接入设备上具有组播模块和节目表;其特征在于,该方法包括如下步骤在接入设备上将各节目所对应端口配置为固定端口模式、绑定根端口模式或跟随上层查询器端口模式;所述接入设备上的组播模块在收到切换根端口的消息时遍历节目表,将所有配置为绑定根端口模式的节目所对应的端口更新为变化后的根端口;或所述组播模块在从一个端口接收到组播控制协议查询报文并在确定该端口与记录的全局查询器端口不同时,将该全局查询器端口更新为接收查询报文的端口,并遍历节目表,将所有配置为跟随上层查询器端口模式的节目所对应的端口更新为收到组播控制协议查询报文的端口。
2.如权利要求1所述的方法,其特征在于,在更新根端口后,从当前的根端口向上层查询器发送组播控制协议加入(IGMP REPORT)报文,以保证接入设备包含在节目的组成员内。
3.如权利要求2所述的方法,其特征在于,若配置为绑定根端口模式的节目已经配置了硬件组播转发表项,则将该硬件组播转发表项的入端口更新为变化后的根端口。
4.如权利要求1所述的方法,其特征在于,将全局查询器端口更新为接收查询报文的端口后,从更新后的全局查询器端口向上层查询器发送组播控制协议(IGMP)加入报文,以保证接入设备包含在节目的组成员内。
5.如权利要求4所述的方法,其特征在于,若配置为跟随上层查询器端口的节目已经配置了硬件组播转发表项,则将该硬件组播转发表项的入端口更新为收到组播控制协议查询报文的端口。
6.如权利要求4所述的方法,其特征在于,将全局查询器端口更新为接收查询报文的端口后,若在预定时间内未从该端口收到新的查询报文,则告警和记录日志。
7.如权利要求1到6任一项所述的方法,其特征在于,在节目表中,通过入端口、组播地址和源地址来确定一个节目。
8.如权利要求7所述的方法,其特征在于,接入设备利用所述入端口、组播地址和源地址校验节目来源。
全文摘要
本发明公开了一种在快速生成树环网下实现组播的方法,该方法在接入设备上将节目配置为固定端口模式、绑定根端口模式或跟随上层查询器端口模式;接入设备上的组播模块在收到切换根端口的消息时遍历节目表,将所有配置为绑定根端口模式的节目所对应的端口更新为变化后的根端口;或组播模块在从一个端口接收到组播控制协议查询报文并在确定该端口与记录的全局查询器端口不同时,将该全局查询器端口更新为接收查询报文的端口,并遍历节目表,将所有配置为跟随上层查询器端口模式的节目所对应的端口更新为收到组播控制协议查询报文的端口。
文档编号H04L29/06GK1848820SQ20051006313
公开日2006年10月18日 申请日期2005年4月4日 优先权日2005年4月4日
发明者罗勇 申请人:华为技术有限公司