二层组播的转发方法和装置的制作方法

文档序号:7694186阅读:147来源:国知局
专利名称:二层组播的转发方法和装置的制作方法
技术领域
本发明涉及通信领i或,具体而言,涉及一种二层組纟番的转发方 法和装置。
背景技术
因净争网纟且管理十办i义(Internet Group Management Protocol,简称 为IGMP )发展到目前已经有三个协议标准,分别为IGMPvl、 IGMPv2和IGMPv3。在下文中将主要以IGMPv2类型为主介绍。
IGMP负责所连网络組成员关系的收集和维护,IGMP作为基 本的信令机制,用于通知子网中的路由器某个主机希望成为某个组 播组的成员,在主机和组播路由器之间建立并维护这些组成员关系。
当 一个组^潘主才几成员希望加入指定的组^番组并且期望4妄收组一番 流量时,其发送IGMP消息以通知本地的组播路由器。组播路由器 获得主机的信息,然后维护一张组播组成员关系表,该组播成员关 系表用于表示哪些端口属于这个组播组。
对于交换才几(Switch)而言,其接收到从路由器下发的数据流, 在没有组一番组成员关系表时,会向虚拟局i或网(Virtual Local Area Network,简称为VLAN)转发,直接在VLAN内洪泛。
为了有效地控制组播流量在VLAN内洪泛,引入了 IGMP Snooping纟且"l番窃口斤4支术。IGMP Snooping是交4奐才几二层功肯b白勺一种特性,可以限制组播流量的转发,IGMP协议运行在网络层,而IGMP Snooping运行在链路层。
IGMP Snooping对主才几和路由器之间的IGMP协议通信进行监 听,使交换机在转发组播数据包时,属于组播成员关系表的端口可 以得到组播数据流。这样,组播包只会按照组播成员关系表转发到 这些成员端口,而不是所有端口,从而限制交换才几上组纟番包洪泛, 避免不必要的网络带宽浪费,提高交换机的转发效率。
组插—吏用的地址有两种IP组纟番地址和Ethernet组,潘地址。由 于所有IP数据包都封装在Ethernet帧中,所以需要一个组播Ethernet i也iil:来才示"i只。
图1是根据相关一支术的IP组播映射为々某体接入控制(Media Access Control,简称为MAC)纽j番地址的示意图。如图1所示, 对于以太网,IP组4番帧都^f吏用以0x01.00.5E.xx.xx.xx的24位前缀开 始的MAC层地址,但是这些MAC地址只有一半可以被IP组播使 用,因此,剩下的MAC地址空间的23位作为第3层IP组播地址 进入第2层MAC地址的映射使用。因为所有的第3层IP组播地址 必须4巴32位的前4位i殳为0x1110,剩下28位作为有意义的IP组 才番地址信息。这28位必须映射为可用的只有23位的MAC地址。 因此,在映射过程中丢失了 5位地址信息,当第3层IP地址映射为 第2层IEEE MAC地址时导致了 25=32个地址不明确的IP地址和1 个MAC地址相对应。这意味着每一个IEEE IP组#番MAC地址都能 表示32个IP组播-;也址。然而这种32:1的对应关系在某些应用中就 4艮可能出现一些问题。
例如,希望接收到组224.1.1,1信息的主机会对^各由器发送一个 IGMPv2的成员报告信息,路由器形成一个组播成员关系表,包括 MAC、 VLAN和用户端口信息,然而,相同的组4番MAC地址也被用于其他31个IP组#番组。如果其他31个组里面任意一个在VLAN 内活动,则无论何时,只要主机接收到任何一个其他组播组的帧, 主才几中央处理器(Central Processing Unit,简称为CPU)就^^妻4丈 到一个中断。CPU必须考察每个收到帧的IP部分以确定是否是组 224.1.1.1。如果这种虚假的流量足够大,就有可能对主机CPU的可 用性产生影响。这种32:1方式的不唯一性也会带来其他问题,比如 4又<又基于组播MAC地址的情况下,想要抑制局域网交换的组播扩 散时就会有问题。
下面以IGMPv2为主,结合一个基本实例,说明基于MAC的 情况下,同一 VLAN中具有相同目的MAC i也址^f旦是有不同目的组 IP地址的组播数据流同时到达不同组各自的私有用户的问题,图2 是根据相关技术的组网结构的示意图,如图2所示,搭建一个简单 环境上游为IGMP Router,中间i殳备为以太网交换^几,用户端为 主斗几。主才几1和2在同一个网革史,与交换才几相连的端口分别为a和 b,端口c将上游流量引下来,端口 a、 b、 c都属于VLAN100。
首先,监听IGMP主4几加入。具体地,当二层设备收到主才几和 路由器之间传递的IGMP报文时,IGMP Snooping分析其携带的信 息,形成一张组播成员关系表,从路由器下发的组播数据报文根据 该组播成员关系表进行转发。
具体实现步骤为主机1期望接收组224.1.1.1的组播数据流, 主机2期望接收组225.1.1.1的组播数据流。那么,首先,主机1和 主才几2都会发送IGMP report才艮文到Switch,此时,IGMP Snooping 会监听到主才几1发送了组224.1,1.1的组加入消息,VLAN 100,端 口号为a, IP会被转化为MAC,所以,形成组播成员关系表(MAC 为01005e010101, VLAN100,端口位图上标明出口为a),主机2 发送了 225.1.1.1的组加入消息,VLAN100,端口号为b。由于生成新成员关系表时会先;f企测转发表中是否有(MAC为 01005e010101, VLAN为100)的成员关系表项存在,如果没有, 则重新创建新的成员关系表,如果有,则将出口添加到对应成员关 系表的端口4立图中。因为主才几2的加入动作属于后者,因此端口 b 被添加到(MAC为01005e010101, VLAN为100)条目的出口位 图中。之后,组4番用户4妄收流量。具体实现步艰朵为乂人端口 c将VLAN100,组为224.1.1.1和 225.1.1.1的组才番凄t据流? 1入Switch。当流量到达本Switch后,查找相应的组播成员关系表,由于2 层组播转发最终是按照MAC + VLAN ID转发,因此,匹配到具体 组4番成员关系表(MAC为01005e010101, VLAN为100,出口位 图中的端口为a和b)。所以,端口 a牙口 b均可以4妾4丈224.1.1,1禾i 225.1.1.1这两个组的流量。然而实际上,a端口其实只想纟妻收 224.1.1.1的流,^f旦是,它也4妻收到了 225.1.1.1的流,同样,b端口 也4妄收到了它本不想4妾收的224.1.1.1的流。可以看出在2层4争发中,由于32个IP映射为一个MAC的 这种情况存在,只要有用户成功加入到了一个IP组里面,那么,就 可以接收其余31个组的数据流。因此,在实际应用中,基于MAC + VLAN ID的转发会导致主机收到很多不必要接收的数据流,占有 不必要的带宽。发明内容本发明旨在提供一种二层组播的转发方法和装置,以解决基于 MAC + VLAN ID的转发会导致主机收到很多不必要接收的数据流 的问题。根据本发明的一个方面,提供了 一种二层组播的转发方法。 在才艮据本发明实施例的二层组播的转发方法中,二层组播的转发方法包括当组播成员请求加入组时,建立组4番成员关系表,其 中,组4番成员关系表中包括々某体4妄入控制地址即MAC、虚拟局域网 地址即VLANID、以及用于标识组^番组的组地址;交换才几4艮据组4番 成员关系表中的MAC、 VLAN ID、以及组地址,检索匹配的组播 成员,并将组播数据流转发给检索到的组播成员。优选地,上述二层组纟番的转发方法进一步包括当后续有新的 组^番成员请求加入组时,才全索是否存在与新的组播成员请求的 MAC、 VLANID、组地址相匹配的组播成员关系表;在检索到匹配 的组播成员关系表的情况下,在检索到的匹配的组播成员关系表的 位图中添加新的组播组成员的端口位图;在才全索不到匹配的组^番成 员关系表的情况下,才艮据MAC、 VLAN ID、 "i青求加入的组的组地 址新建iai番成员关系表,并添加新的组播组成员端口位图。优选地,上述二层组播的转发方法进一步包括在组播成员离 开组时,通过4全索组4番成员关系表,判断组内是否还有其他成员; 在判断结果为是的情况下,则将组播成员的端口位图从组播成员关 系表中删除;在判断结果为否的情况下,则删除组播成员对应的组 #番成员关系表。根据本发明的另 一方面,提供了 一种二层组播的转发装置。在根据本发明实施例的二层组播的转发装置中,二层组播的转 发装置包括关系表维护模块,用于当组播成员请求加入组时,建 立组播成员关系表,其中,组播成员关系表中包括MAC、 VLANID、 以及用于标识组播组的组地址;检索模块,用于根据组播成员关系表中的MAC、 VLAN ID、以及组地址检索匹配的组播成员;转发 模块,用于将组播数据流转发给检索模块检索到的组播成员。优选地,在上述二层组播的转发装置中,检索模块还用于当后 续有新的组播成员请求加入组时,检索是否存在与新的组播成员请 求的MAC 、 VLAN ID 、纽J也址相匹配的组4番成员关系表;其中, 关系表维护模块还用于在检索模块检索到匹配的组播成员关系表的 情况下,在匹配的组播成员关系表的位图中添加新的组播成员的端 口位图;在检索模块检索不到匹配的组播成员关系表的情况下,根 据MAC、 VLANID、请求加入的组的组地址新建组播成员关系表, 并添加所述新的组4番组成员的端口位图。优选地,上述二层组播的转发装置进一步包括判断模块,用 于在组播成员离开组时,通过检索模块检索组播成员关系表,判断 组内是否还有其他成员;其中,关系表维护模块还用于在判断模块 的判断结果为是的情况下,将组播成员的端口位图从组播成员关系 表中删除,以及,在判断模块的判断结果为否的情况下,关系表维 护模块删除组播成员对应的组播成员关系表。在以上实施例中,通过在组^番才艮文中增加Group ID匹配字萃史, 相比于现有技术,避免了同一 VLAN中具有相同目的MAC地址, 4旦是有不同目的组IP ;也址的组4番凄t据流同时到达不同组的用户而 导致用户接收到很多不需要的组播流量的问题,达到了减少网络带 宽和负荷的岁丈果。


此处所说明的附图用来冲是供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其说明用于解释本发明,并 不构成对本发明的不当限定。在附图中图1是根据相关技术的IP组播映射为MAC组播地址的示意图;图2是根据相关技术的组网结构的示意图;图3是根据本发明实施例的二层组播的转发方法的流程图;图4是根据本发明实施例的二层组播的转发装置的方框图;图5是才艮据本发明实施例的二层组播的转发装置的结构实例的 方框图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。在现有技 术中,IGMP Snooping以及IGMP Snooping中有控制VLAN内洪泛 的才支术,比如访问控制列表(Access Control List,简称为ACL), 可以控制非法组播报文和干扰性组播报文在VLAN内扩散,建立组 播成员关系表功能,可以控制没有用户存在时,组播流在VLAN内 扩散。然而,还有一种扩散,是由于32位IP映射为一个MAC,而 二层流量转发检索不够准确引起特定情况下流量扩散。为了解决这 一问题,本发明的实施例采用的方法在二层转发流量时,检索可以 更准确。在转发表中添加属性"Group ID",以"MAC + VLAN ID+ Group ID"建立维护转发表,查找更准确的转发表出端口。方-法实施例根据本发明的实施例,提供了一种二层组播的转发方法。需要 说明的是,该方法优选地适用于局域网内的二层组播转发,适用相 关才莫块为IGMP Snooping组^番窃听技术,此夕卜,也同才羊适用于IPV6 的MLD Snooping組播窃听技术。图3是根据本发明实施例的二层组播的转发方法的流程图,如 图3所示,根据本发明实施例的二层组播的转发方法包括步骤S302,当组4番成员请求加入组时,建立组播成员关系表, 其中,组播成员关系表中包括MAC、 VLAN ID、以及用于标识组 播组的组地址(Group ID);步骤S304,交换机根据组播成员关系表中的MAC、 VLANID、 以及Group ID检索匹配的组播成员,并将组播数据流转发给检索到 的组播成员。以上实施例在二层组播成员关系表中添加了 "Group ID"属性, 通过在转发表中增加上述检索属性,在进行流量转发时,可以更精 确地下发到所请求的用户端口上,而不会干扰其他用户流量接收。当后续有新的组播成员请求加入组时,可以进行如下操作检索是否存在与新的组播成员的"MAC + VLAN ID+Group ID" 相匹配的组播成员关系表;在检索到匹配的组播成员关系表的情况 下,在检索到的匹配的组播成员关系表的位图中添加新的组播成员 的端口位图;在才全索不到匹配的组"J番成员关系表的情况下,才艮据 "MAC + VLAN ID+Group ID"新建组播成员关系表,并添加新的 组插-组成员的端口^立图。这样,相同VLAN、相同MAC、不同组IP的用户加入后,可 以将Group ID写成相应的组ID, 4全索4姿照"MAC + VLAN ID+ Group ID"检索查找转发表,形成自己独立的成员关系表,而不是 公用一条成员关系表项转发,方便各自维护自己的成员关系表项, 增强独立性。另一方面,在组播成员离开组时,例如,发送IGMP Leave报 文,可以进4于如下处理通过检索组播成员关系表,判断组内是否还有其他成员;在判 断才莫块的判断结果为是的情况下,将组,燔成员的端口位图从组播成员关系表中删除,以及,在判断结果为否的情况下,删除组播成员 对应的组播成员关系表。该处理避免3见有才支术因为只能通过"MAC+VLAN ID"匹配不 精确,而删除这类成员关系表项时,导致相同VLAN内其他31条 组的用户流量查找不到成员关系表项, >火而可以防止用户离开时, 另 一个相同MAC不同IP组的用户4妻收不到流量。通过上面的描述可以看出,通过本发明,无需像目前采用的技 术那才羊避开相同MAC不同IP组i也址添加用户的应用,并且能够有 效i也4空制二层组^番流量转发,防止同一 VLAN内具有相同MAC ;也 址不同IP组地址的组播流量到达多余的主机,从而可以防止组播流 量扩散到^皮此成员用户。此外,通过本发明,还可以节约利用组播 地址,增强地址利用密度和利用率。基于以上描述,以下进一步结合实例来描述本发明的实施例, 如下处理1:窃听IGMP主才几加入具体实现步骤为当主才几用户1发送VLAN 100的IGMP Report 报文到交换机端口 a,请求加入到组224.1.1,1时,形成组播成员关 系表(MAC: 01.00.5e.01.01,01, VLAN ID 100, Group ID: 224.1,1.1, 端口 a );当主才几用户2发送VLAN 100的IGMP Report报文到交 换才几端口 b,请求加入到组225.1.1,1时,形成组播成员关系表(MAC: 01.00.5e.01.01.01, VLAN ID 100, Group ID: 225.1.1.1,端口 b )。处理2: 乂人端口 c引入VLAN 100, 224.1.1.1和225.1.1.1的纟且播流具体实现步骤为当组地址为224.1.1.1和组地址为225.1.1.1 的数据流量从同VLAN的c端口下发,会以"MAC ID + VLAN ID + Group ID"为检索属性查找组播成员关系表,则查表后会找到 224.1.1.1的流量出口只有a, 225.1.1.1的流量出口只有b。处理3:主才几1 i青求离开组224.1.1.1具体实现步骤为当主机1发送IGMP Leave报文向交换机请 求离开组224.1.1.1时,首先IGMP Snooping 4企查224.1.1.1下是否还有其他用户(1 )当224.1.1.1下有其他用户存在时,才艮据"MACID + VLAN ID + Group ID"查找到VLAN 100,组224.1.1.1的转发表条目,在 Snooping确定主才几确实要求离开后,将转发表中端口 a删除,主才几 1随后不再接收224.1.1.1的组播流量;(2)当224.1.1.1下没有其4也用户时,Snooping发起删除 224.1.1.1整个转发条目的操:作,224.1.1.1 VLAN 100的转发表被删 除,主机1不再接收224.1.1.1的流量。由上述实施例可以看出通过增添检索转发表属性"Group ID" 的方法,可以有效控制相同VLAN内,由于32个IP映射为1个 MAC在特定情况下带来的组^番流量在VLAN内洪泛的3见象。装置实施例根据本发明的实施例,提供了一种二层组播的转发装置。图4 是根据本发明实施例的二层组播的转发装置的方框图,如图4所示,二层组播的转发装置包括关系表维护模块42,用于当组播成员请求加入组时,建立组播 成员关系表,其中,组播成员关系表中包括MAC、 VLAN ID、以 及用于标识组播组的Group ID;检索模块44,连接至关系表维护模块,用于根据组播成员关系 表中的MAC 、 VLAN ID 、以及Group ID 4企索匹配的组4番成员;转发模块46,连接至检索模块,用于将组播数据流转发给检索 到的组播成员。在才艮据本发明的一个优选实施例中,如图5所示,在上述二层 组播的转发装置中,当后续有新的组播成员请求加入组时,检索模 块44检索是否存在与新的组播成员请求的MAC、 VLAN ID、 Group ID相匹配的组播成员关系表。这样,检索模块44检索是否存在与新的组播成员的"MAC + VLAN ID+Group ID"相匹配的组4番成员关系表;在4全索到匹配的组 播成员关系表的情况下,关系表维护模块在检索到的组播成员关系 表中添加新组播成员端口位图;在检索不到匹配的组播成员关系表 的情况下,才艮据"MAC + VLAN ID+Group ID"新建组播成员关系 表,并添加所述新的组播组成员的端口位图。该才喿作可以减少查找 转发表时间,形成自己独立的成员关系表,而不是公用一条成员关 系表项转发,方便各自维护自己的成员关系表项,增强独立性。如图5所示,上述二层组播的转发装置还可以进一步包括判 断模块52,用于在组播成员离开组时,通过检索模块检索组播成员 关系表,判断组内是否还有其他成员。这样,在判断模块的判断结果为是的情况下,关系表维护模块 将组播成员的端口位图从组播成员关系表中删除,以及,在判断模 块的判断结果为否的情况下,关系表维护模块删除组播成员对应的 纟且才番成员关系表。该才喿作可以防止用户离开时,另一个相同MAC 相同VLAN、不同IP组的用户4妄收不到流量。其中,上述的判断模块52可以连接至关系表维护模块42。当 然,上述的关系表维护才莫块42也可以分离设置为分别用于进行创 建、添加、删除等才喿作的建立才莫块、添加才莫块、删除才莫块等,同样 可以对组4番成员关系表进4亍建立、添加、删除等各项维护才喿作,均 在本发明的保护范围之内。采用本发明的实施例后,在以太网组4番业务的环境中,当同一 VLAN内具有相同MAC不同IP组的用户请求加入时,各自建立自 己的组播成员关系表,维护自身成员关系,避免组播流量小范围内 扩散,提高了网络环境中对于组播数据报文在局域网中洪泛的控制 和保护,提升了交换机的性能。并且,在以上实施例中添加的Group ID,并不^f又仅局限于是一 个组4番Group ID,任何可以和MAC +VLAN ID结合起来。舉一表示 一个组播组的信息都与本实施例中Group ID类似,都属本专利保护 范围。此外,在该实施例中交换设备^f又以三层交换才几为例,本发明 对于任何以太网交换机均适用。显然,本领域的技术人员应该明白,上述的本发明的各模块或 各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们 可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成 电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模 块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述^f又为本发明的优选实施例而已,并不用于限制本发明, 对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在 本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1.一种二层组播的转发方法,其特征在于,包括当组播成员请求加入组时,建立组播成员关系表,其中,所述组播成员关系表中包括媒体接入控制地址即MAC、虚拟局域网地址即VLAN ID、以及用于标识组播组的组地址;交换机根据所述组播成员关系表中的所述MAC、VLANID、以及组地址检索匹配的组播成员,并将组播数据流转发给检索到的组播成员。
2. 根据权利要求1所述的转发方法,其特征在于,进一步包括当后续有新的组播成员请求加入组时,检索是否存在与所 述新的组#番成员请求的MAC 、 VLAN ID 、组地址相匹配的组 #番成员关系表;在检索到匹配的组播成员关系表的情况下,在检索到的所 述组播成员关系表的位图中添加所述新的组播成员的端口位 图;在检索不到匹配的组播成员关系表的情况下,根据所述 MAC、所述VLANID、请求加入的所述组的组地址新建组"l番 成员关系表,并添加所述^f的isi番《且成员的端口^f立图。
3. 根据权利要求1所述的转发方法,其特征在于,进一步包括在组播成员离开组时,通过检索组播成员关系表,判断所 述组内是否还有其他成员;在判断结果为是的情况下,则将所述组播成员的端口位图 从所述组播成员关系表中删除;在判断结果为否的情况下,删除所述组播成员对应的组播 成员关系表。
4. 一种二层组播的转发装置,其特征在于,包括关系表维护^^莫块,用于当组播成员请求加入组时,建立组 播成员关系表,其中,所述组播成员关系表中包括MAC、 VLAN ID 、以及用于标识组纟番组的组地址;检索模块,用于根据所述组播成员关系表中的所述MAC、 VLANID、以及组地址检索匹配的组播成员;转发模块,用于将组播数据流转发给所述检索模块检索到 的组播成员。
5. 根据权利要求4所述的转发装置,其特征在于-.所述才全索才莫块还用于当后续有新的组# 番成员请求加入组 时,检索是否存在与所述新的组播成员请求的MAC、 VLAN ID 、组地址相匹配的组播成员关系表;其中,所述关系表维护模块还用于在所述检索模块检索到 匹配的组播成员关系表的情况下,在所述组播成员关系表的位 图中添加所述新的组播成员的端口位图;在所述4全索才莫块4全索 不到匹配的组播成员关系表的情况下,才艮据MAC、 VLANID、 请求加入的所述组的组地址新建组^番成员关系表,并添加所述 新的组^番组成员的端口位图。
6. 根据权利要求4所述的转发装置,其特征在于,进一步包括判断模块,用于在组播成员离开组时,通过所述检索模块 才全索组播成员关系表,判断组内是否还有其他成员;其中,所述关系表维护模块还用于在所述判断模块的判断 结果为是的情况下,将所述组播成员的端口位图从所述组播成员关系表中删除,以及,在所述判断模块的判断结果为否的情 况下,删除所述组,潘成员对应的组^番成员关系表。
全文摘要
本发明公开了二层组播的转发方法和装置,其中,二层组播的转发方法包括当组播成员请求加入组时,建立组播成员关系表,其中,组播成员关系表中包媒体接入控制地址即MAC、虚拟局域网地址即VLAN ID、以及用于标识组播组的组地址;交换机根据组播成员关系表中的MAC、VLAN ID、以及组地址,检索匹配的组播成员,并将组播数据流转发给检索到的组播成员。本发明提高了对于组播数据报文在局域网中洪泛的控制和保护。
文档编号H04L12/54GK101286990SQ200810108238
公开日2008年10月15日 申请日期2008年5月27日 优先权日2008年5月27日
发明者鸾 王 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1