一种ONU的基于VLAN的IGMP Snooping实现方法技术

技术编号:9465184 阅读:102 留言:0更新日期:2013-12-19 02:53
本发明专利技术提供了一种ONU的基于IGMP?Snooping实现方法,内容主要集中在linux内核的二层桥处理的地方,在bridgenetfilter的钩子点NF_BR_PRE_ROUTING的钩子函数br_handle_frame_finish中再挂一个钩子函数igmp_snooping_handler,并实现一个igmp_snooping.ko的内核模块,当igmp_snooping.ko内核模块初始化时将igmp_snooping的实际处理函数br_handle_igmp_snooping(structsk_buff*skb)赋值给igmp_snooping_handler。

【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种ONU的基于IGMP?Snooping实现方法,内容主要集中在linux内核的二层桥处理的地方,在bridgenetfilter的钩子点NF_BR_PRE_ROUTING的钩子函数br_handle_frame_finish中再挂一个钩子函数igmp_snooping_handler,并实现一个igmp_snooping.ko的内核模块,当igmp_snooping.ko内核模块初始化时将igmp_snooping的实际处理函数br_handle_igmp_snooping(structsk_buff*skb)赋值给igmp_snooping_handler。【专利说明】—种ONU的基于VLAN的IGMP Snooping实现方法
本专利技术涉及网络通信终端领域,特别涉及。
技术介绍
IGMP Snooping 是 Internet Group Management Protocol Snooping (互联网组管理协议窥探)的简称,它是运行在二层设备上的组播约束机制,用于管理和控制组播组。运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。当二层设备没有运行IGMP Snooping时,组播数据在二层被广播;当二层设备运行了 IGMP Snooping后,已知组播组的组播数据不会在二层被广播,而在二层被组播给指定的接收者。许多网络设备都已经实现了 IGMP Snooping,尽管实现方式不尽相同,但是原理都是相通的,就是在网络的二层通过对收到的IGMP控制报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。若网络设备不支持IGMPSnooping或者没有运行IGMP Snooping时,组播数据在二层会被广播到每个端口 ;若网络设备支持IGMP Snooping而且运行了 IGMP Snooping后,组播数据不会在二层被广播,而在二层被组播给指定的接收者,若没有接收者点播组播服务,则不转发组播数据。IGMPSnooping使用户只在需要时才转发组播数据,这样不仅能够达到抑制二层组播泛滥的作用,同时在降低网络负荷方面也起到一定的作用,特别是在视频服务越来越丰富的今天。IGMP典型组网如图1的光纤到户拓扑图,ONU放置在用户家中,HomePC点播视频服务后,IGMP Server的组播数据流带上组播VLAN后发送到0NU,开启IGMP Snooping的ONU将组播数据的VLAN剥除后转发给HomePC,Laptop不会收到组播数据,从而不影响其上网等业务。还有一种情况,如图2的光纤到楼拓扑图,ONU放置在楼道中,下面接多台交换机,多台交换机都配置了 VLAN,且VLAN分别不同,这就要求ONU配置成VLAN透传模式,将IGMPServer带组播VLAN的数据流依然带上原有VLAN转发给下面的交换机。然而,很多ONU的IGMP Snooping不能处理带VLAN的组播数据流,原因是普通的IGMP Snooping处理的都是不带VLAN的报文,没有考虑到图2的VLAN透传的应用场景。所以当成普通的二层数据广播到各个SWICH,IGMP Snooping功能失效。
技术实现思路
为了克服目前如图2的光纤到楼拓扑图中,很多ONU的IGMP Snooping不能处理带VLAN的组播数据流,所以当成普通的二层数据广播到各个SWICH,IGMP Snooping功能失效的不足。提供一种可以实现带VLAN的IGMP Snooping方法。本专利技术的技术方案是:,该方法中,主要由Iinux内核的二层桥实现基于VLAN的IGMP Snooping,在bridge netfilter的钩子点NF_BR_PRE_ROUTING实现,内核收到组播报文以后,进入到钩子点NF_BR_PRE_ROUTING,包括以下步骤: 步骤1、报文进入到钩子点NF_BR_PRE_ROUTING时,确定是否为IGMP控制报文,如果是IGMP控制报文,转向步骤3,否则,转向步骤2 ; 步骤2、从bridge的mc_list组播转发表中查找报文对应的组播转发条目,若能找到则根据找到的组播转发条目的目的端口转发所述的IGMP数据报文,结束,否则进入步骤5处理; 步骤3、在启用带VLAN的IGMP Snooping功能的情况下,将IGMP控制报文的VLAN的标签去除,并记录下VLAN ID和VLAN优先级; 步骤 4、若 IGMP 控制报文是 IGMPV2_H0ST_MEMBERSHIP_REP0RT 或 IGMP_H0ST_MEMBERSHIP_REPORT时;先判断该报文对应的转发条目是否存在,存在则更新,不存在则添加对应的转发条目; 若IGMP控制报文为IGMPV3_H0ST_MEMBERSHIP_REP0RT时,对IGMPv3进行处理,更新或添加组播转发条目; 若IGMP控制报文是IGMP_HOST_LEAVE_MESSAGE ;删除报文对应的组播转发条目; 步骤5、所有的IGMP控制报文进入bridge 二层转发处理,bridge根据二层转发表条目来转发该报文,若二层转发条目不存在,则将报文转送到该bridge的每个端口。本专利技术中,通过删除VLAN标签,记录VLAN信息,最后还原VLAN标签来解决目前普通的IGMP Snooping处理的都是不带VLAN的报文,不能实现IGMP Snooping的不足。下面结合具体实施例对本专利技术作较为详细的描述。【专利附图】【附图说明】图1是光纤到户拓扑图(I)。图2是光纤到户拓扑图(2)。图3是本专利技术实施例流程图。【具体实施方式】实施例1,本实施例提供了一种类似于如图2所示的光纤到户拓扑结构的家庭网络中VLAN的IGMP Snooping实现方法。以下对本专利技术方法进行详细说明。本实施例中,需要在内核netfilter中的钩子点NF_BR_PRE_R0UTING的钩子函数 br_handle_frame_finish 中再挂一个钩子函数 igmp_snooping_handler。另外,还需要实现一个igmp_snooping的内核模块,当igmp_snooping内核模块初始化时将igmp_snooping 的实际处理函数 br_handle_igmp_snooping (struct sk_buff *skb)赋值给igmp_snooping_handler。如图3所示,是带VLAN的IGMP Snooping实现的处理流程图,包括如下步骤: 本实施例步骤Ml至M8是判断接收到的报文是IGMP控制报文,只有是IGMP控制报文才需要进行实现IGMP Snooping处理。步骤Ml:本步骤为内核在netif_receive_skb收到报文。步骤M2:本步骤为报文进入到内核钩子点BR_PRE_R0UTING的br_handle_frame_finish 函数。步骤M3:本步骤判断接收到的报文是否为组播报文,如果是组播报文则进入步骤M4处理,否则进入步骤M20处理。步骤M4:本步骤判断钩子函数igmp_snooping_ha本文档来自技高网
...

【技术保护点】
一种ONU的基于VLAN的IGMP?Snooping实现方法,该方法中,主要由linux内核的二层桥实现基于VLAN的IGMP?Snooping,在bridge?netfilter的钩子点NF_BR_PRE_ROUTING实现,其特征在于:内核收到组播报文以后,进入到钩子点NF_BR_PRE_ROUTING,包括以下步骤:步骤1、报文进入到钩子点NF_BR_PRE_ROUTING时,确定是否为IGMP控制报文,如果是IGMP控制报文,转向步骤3,否则,转向步骤2;步骤2、从bridge的mc_list组播转发表中查找报文对应的组播转发条目,若能找到则根据找到的组播转发条目的目的端口转发所述的IGMP数据报文,结束,否则进入步骤5处理;步骤3、在启用带VLAN的IGMP?Snooping功能的情况下,将IGMP控制报文的VLAN的标签去除,并记录下VLAN?ID和VLAN?优先级;步骤4、若IGMP控制报文是IGMPV2_HOST_MEMBERSHIP_REPORT或IGMP_HOST_MEMBERSHIP_REPORT时;先判断该报文对应的转发条目是否存在,存在则更新,不存在则添加对应的转发条目;若IGMP控制报文为IGMPV3_HOST_MEMBERSHIP_REPORT时,对IGMPv3进行处理,更新或添加组播转发条目;若IGMP控制报文是IGMP_HOST_LEAVE_MESSAGE;删除报文对应的组播转发条目;步骤5、所有的IGMP控制报文进入bridge二层转发处理,bridge根据二层转发表条目来转发该报文,若二层转发条目不存在,则将报文转送到该bridge的每个端口。...

【技术特征摘要】

【专利技术属性】
技术研发人员:伍国祥郭小东黄铮张炜
申请(专利权)人:深圳市共进电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1