未知组播报文的处理方法和装置的制造方法
【专利摘要】本申请提供了未知组播报文的处理方法和装置。本申请中,通过预先配置用于指示未知组播报文转发的第二类组播转发表项,能够保证网络设备在收到未知组播报文时直接基于第二类组播转发表项转发未知组播报文,避免了现有技术中每次接收到未知组播报文都上送至CPU而对CPU造成的冲击。
【专利说明】
未知组播报文的处理方法和装置
技术领域
[0001]本申请涉及网络通信技术,特别涉及未知组播报文的处理方法和装置。
【背景技术】
[0002]在网络应用中,各网络设备本地会存储一条ACL表项,该ACL表项用于指示未知组播报文上送CPU。这里的未知组播报文具体是指与本地已有的组播转发表项不匹配的组播报文,其可包含未知组播数据报文和未知组播协议报文。
[0003]基于此,当网络设备收到未知组播报文,基于上述ACL表项将未知组播报文上送CPU。当CPU接收到未知组播报文,下发一条组播转发表项(具体可为TCAM表项)至网络设备本地硬件,组播转发表项的匹配特征为未知组播报文的目的IP地址,出口为未知组播报文所属VLAN内的本地路由器端口。之后,当网络设备后续收到上述目的IP地址的组播报文时,匹配到上述组播转发表项,通过匹配的组播转发表项中的出端口转发组播报文。
[0004]也就是说,网络设备对于收到的每一个未知组播报文,都会上送CPU,这会大大冲击 CPU。
【发明内容】
[0005]本申请提供了未知组播报文的处理方法和装置,以防止未知组播报文上送CPU对CHJ造成的冲击。
[0006]本申请提供的技术方案包括:
[0007]—种未知组播报文的处理方法,该方法应用于网络设备,包括:
[0008]接收组播报文;
[0009]在本地第一类组播转发表项中未查找到所述组播报文匹配的转发表项,确定所述组播报文为未知组播报文;
[0010]在本地第二类组播转发表项中找到与所述未知组播报文匹配的组播转发表项,通过找到的组播转发表项转发所述未知组播报文;
[0011]其中,所述第一类组播转发表项为基于组播协议动态创建的组播转发表项,所述第二类组播转发表项为预先配置的用于指示未知组播报文转发的组播转发表项,所述第一类组播转发表项的掩码比所述第二类组播转发表项的掩码长。
[0012]—种未知组播报文的处理装置,该装置应用于网络设备,包括:
[0013]接收单元,用于接收组播报文;
[0014]匹配单元,用于在存储单元的本地第一类组播转发表项中未查找到所述组播报文匹配的转发表项,确定所述组播报文为未知组播报文,在存储单元的本地第二类组播转发表项中找到与所述未知组播报文匹配的组播转发表项;
[0015]存储单元,用于存储第一类组播转发表项和第二类组播转发表项;其中,所述第一类组播转发表项为基于组播协议动态创建的组播转发表项,所述第二类组播转发表项为预先配置的用于指示未知组播报文转发的组播转发表项,所述第一类组播转发表项的掩码比所述第二类组播转发表项的掩码长;
[0016]转发单元,用于通过所述匹配单元匹配到的组播转发表项转发所述未知组播报文。
[0017]由以上技术方案可以看出,本发明中,通过预先配置用于指示未知组播报文转发的第二类组播转发表项,能够保证网络设备在收到未知组播报文时直接基于第二类组播转发表项转发未知组播报文,避免了现有技术中每次接收到未知组播报文都上送至CPU而对CHJ造成的冲击。
【附图说明】
[0018]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0019]图1为本发明提供的方法流程图;
[0020]图2为本发明提供的实施例示意图;
[0021]图3为本发明提供的装置结构示意图。
【具体实施方式】
[0022]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0023]参见图1,图1为本发明提供的方法流程图。该流程应用于网络设备。如图1所示,该流程可包括以下步骤:
[0024]步骤101,接收组播报文。
[0025]步骤102,在本地第一类组播转发表项中未查找到组播报文匹配的转发表项,确定所述组播报文为未知组播报文。
[0026]在本申请中,第一类组播转发表项为基于组播协议动态创建的组播转发表项。在步骤102中,当本地第一类组播转发表项中找到组播报文匹配的转发表项,则通过该找到的转发表项转发组播报文,这类似现有组播报文的转发处理。
[0027]步骤103,在本地第二类组播转发表项中找到与所述未知组播报文匹配的组播转发表项,通过找到的组播转发表项转发所述未知组播报文。
[0028]在本申请中,第二类组播转发表项不同于第一类组播转发表项,其为预先配置的用于指示未知组播报文转发的组播转发表项。
[0029]作为一个实施例,在本申请中,不管是第一类组播转发表项还是第二类组播转发表项,其优选下发至三态内容寻址存储器(TCAM:ternary content addressable memory),也称为TCAM表项。TCAM支持基于掩码的匹配功能,而且是优先匹配掩码长的组播转发表项。基于此,本申请中,为保证接收到的组播报文先与第一类组播转发表项匹配,会配置第二类组播转发表项的掩码小于第一类组播转发表项。通常,按照组播协议,第一类组播转发表项的掩码长度为32位,如此,可配置第二类组播转发表项的掩码长度小于32位,比如为11位等。
[0030]至此,完成图1所示的流程。
[0031]可以看出,在本申请中,通过预先配置用于指示未知组播报文转发的第二类组播转发表项,能够保证网络设备在收到未知组播报文时直接基于第二类组播转发表项转发未知组播报文,避免了现有技术中每次接收到未知组播报文都上送至CPU而对CHJ造成的冲击。
[0032]作为一个实施例,上面描述的第二类组播转发表项可包含两种类型不同的组播转发表项,为便于描述,将两种类型不同的组播转发表项分别记为第一组播转发表项、第二组播转发表项。这里,第二类组播转发表项包含的第一组播转发表项的数量N大于等于I,当N大于I时,N个第一组播转发表项不同,下文会具体描述第一组播表项的结构。同样,第二类组播转发表项包含的第二组播转发表项的数量M大于等于I,当M大于I时,M个第二组播转发表项不同,下文会具体描述第二组播表项的结构。
[0033]在本申请中,第一组播转发表项用于指示未知组播协议报文转发,第二组播转发表项用于指示未知组播数据报文转发。
[0034]作为一个实施例,第一组播转发表项的掩码比第二组播转发表项的掩码长。基于上面描述的优先匹配掩码长的组播转发表项,则上述步骤102中,在本地第二类组播转发表项中找到与未知组播报文匹配的组播转发表项包括:
[0035]步骤al,在本地第二类组播转发表项包含的所有第一组播转发表项中查找与未知组播报文匹配的第一组播转发表项,如果查找到,执行步骤a2,如果未查找到,执行步骤a3;
[0036]步骤a2,将查找到的第一组播转发表项作为与未知组播报文匹配的组播转发表项;
[0037]步骤a3,在本地第二类组播转发表项包含的所有第二组播转发表项中查找到与未知组播报文匹配的第二组播转发表项,将查找到的第二组播转发表项作为与未知组播报文匹配的组播转发表项。
[0038]在本申请中,不管是第一组播转发表项,还是第二组播转发表项,其结构类似,都至少包含匹配特征和出端口。其中,匹配特征至少包含地址段、VLAN标识(ID)。不同的第一组播转发表项,其包含的地址段、VLAN ID是不完全相同的。也就是说,上述N个不同的第一组播转发表项可通过包含的地址段、VLAN ID区分不同。在本申请中,通过配置第一组播转发表项的匹配特征包含地址段,能够保证同一 VLAN内同一个地址段的所有未知组播协议报文共用一个第一组播转发表项,大大减少了组播转发表项的数量,节省硬件表项资源。同样,通过配置第二组播转发表项的匹配特征包含地址段,能够保证同一 VLAN内同一个地址段的所有未知组播数据报文共用一个第二组播转发表项,大大减少了组播转发表项的数量,节省硬件表项资源。
[0039]基于上面描述的第一组播转发表项和第二组播转发表项的结构,则上述步骤al中,在本地第二类组播转发表项包含的所有第一组播转发表项中查找与未知组播报文匹配的第一组播转发表项包括:
[0040]确定未知组播报文所属的VLAN和未知组播报文的目的IP地址所属的地址段,在本地第二类组播转发表项包含的所有第一组播转发表项中查找匹配特征包含该确定的地址段和VLAN的第一组播转发表项。
[0041]同样的,上述步骤a3中,在本地第二类组播转发表项包含的所有第二组播转发表项中查找到与未知组播报文匹配的第二组播转发表项包括:
[0042]在本地第二类组播转发表项包含的所有第二组播转发表项中查找到匹配特征包含该确定出的地址段和LAN的第二组播转发表项。
[0043]在本申请中,第一组播转发表项和第二组播转发表项包含的出端口是不完全相同的。这里,第一组播转发表项的出端口为除接收到未知组播报文的端口之外的本地其他端口,具体实现时,第一组播转发表项的出端口的内容可设置在出端口表项中,而第一组播转发表项的出端口可直接填写出端口表项的索引。第二组播转发表项的出端口为本地连接上游三层组播设备的路由器端口。
[0044]作为一个举例,比如,第一组播转发表项为U O,224.0.0.0/224.255.254.0,VLANl ),出端口:除接收到未知组播报文的端口之外的本地其他端口 },其中,(0,224.0.0.0/224.255.254.0)表示地址段。第二组播转发表项为{(0,224.0.0.0/224.0.0.0,VLAN2),路由器端口 },其中,(O,224.0.0.0/224.0.0.0)表示地址段。
[0045]基于上面描述的第一组播转发表项和第二组播转发表项的出端口,则上述步骤103中,通过找到的组播转发表项转发未知组播报文包括:
[0046]当未知组播报文匹配的组播转发表项为第一组播转发表项,通过该第一组播转发表项中的出端口转发未知组播报文,第一组播转发表项中的出端口为本设备除接收到未知组播报文的端口之外的本地其他端口 ;
[0047]当未知组播报文匹配的组播转发表项为第二组播转发表项,通过该第二组播转发表项中的出端口转发所述未知组播报文,该第二组播转发表项中的出端口为本地连接上游三层组播设备的路由器端口。
[0048]至此,通过上面描述,最终实现了未知组播报文转发。图2示出了未知组播报文转发的示意图。
[0049]需要说明的是,本申请中,当网络设备接收到广播报文,则直接在广播报文所属的VLAN内广播广播报文;当网络设备接收到未知单播报文,直接在未知单播报文所属的VLAN内广播未知单播报文。
[0050]还需要说明的是,作为一个实施例,本申请中,第二类组播转发表项是在针对VLAN使能未知丢弃(drop-unknown)功能时配置的。其中,第二类组播转发表项中不管是第一组播转发表项还是第二组播转发表项中的VLAN ID都是使能了drop-unknown功能的VLAN的ID0
[0051]以上对本发明提供的方法进行了描述。下面对本发明提供的装置进行描述:
[0052]参见图3,图3为本申请提供的装置结构图。该装置应用于网络设备。
[0053]如图3所示,该装置可包括:
[0054]接收单元311,用于接收组播报文;
[0055]匹配单元312用于存储单元313的本地第一类组播转发表项中未查找到组播报文匹配的转发表项,确定组播报文为未知组播报文;在存储单元313的本地第二类组播转发表项中找到与未知组播报文匹配的组播转发表项;
[0056]存储单元313,用于存储第一类组播转发表项和第二类组播转发表项;其中,所述第一类组播转发表项为基于组播协议动态创建的组播转发表项,所述第二类组播转发表项为预先配置的用于指示未知组播报文转发的组播转发表项,所述第一类组播转发表项的掩码比所述第二类组播转发表项的掩码长;
[0057]转发单元314,用于通过匹配单元312匹配到的组播转发表项转发未知组播报文。
[0058]优选地,第二类组播转发表项包含:第一组播转发表项和第二组播转发表项;第一组播转发表项的掩码比第二组播转发表项的掩码长,第一组播转发表项用于指示未知组播协议报文转发,第二组播转发表项用于指示未知组播数据报文转发;
[0059]基于此,作为一个实施例,匹配单元312在存储单元313的本地第二类组播转发表项中找到与未知组播报文匹配的组播转发表项包括:
[0060]在存储单元313的本地第二类组播转发表项包含的所有第一组播转发表项中查找与未知组播报文匹配的第一组播转发表项,如果查找到,将查找到的第一组播转发表项作为与未知组播报文匹配的组播转发表项;如果未查找到,在存储单元313的本地第二类组播转发表项包含的所有第二组播转发表项中查找到与未知组播报文匹配的第二组播转发表项,将查找到的第二组播转发表项作为与未知组播报文匹配的组播转发表项。
[0061]优选地,匹配单元312在存储单元313的本地第二类组播转发表项包含的所有第一组播转发表项中查找与未知组播报文匹配的第一组播转发表项包括:确定未知组播报文所属的VLAN和未知组播报文的目的IP地址所属的地址段,在存储单元313的本地第二类组播转发表项包含的所有第一组播转发表项中查找匹配特征包含地址段和VLAN的第一组播转发表项;
[0062]优选地,匹配单元312在存储单元313的本地第二类组播转发表项包含的所有第二组播转发表项中查找到与未知组播报文匹配的第二组播转发表项包括:在存储单元313的本地第二类组播转发表项包含的所有第二组播转发表项中查找到包含地址段和VLAN的第二组播转发表项。
[0063]优选地,转发单元314通过找到的组播转发表项转发未知组播报文包括:
[0064]当未知组播报文匹配的组播转发表项为第一组播转发表项,通过该第一组播转发表项中的出端口转发未知组播报文,第一组播转发表项中的出端口为本设备除接收到未知组播报文的端口之外的本地其他端口 ;
[0065]当未知组播报文匹配的组播转发表项为第二组播转发表项,通过该第二组播转发表项中的出端口转发未知组播报文,该第二组播转发表项中的出端口为本设备本地连接上游三层组播设备的路由器端口。
[0066]优选地,接收单元311进一步接收广播报文或未知单播报文;
[0067]转发单元314进一步用于将接收单元311接收的广播报文在广播报文所属的VLAN内广播;以及,将接收单元311接收的未知单播报文在未知单播报文所属的VLAN内广播。
[0068]至此,完成本发明提供的装置描述。
[0069]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种未知组播报文的处理方法,其特征在于,该方法应用于网络设备,包括: 接收组播报文; 在本地第一类组播转发表项未查找到所述组播报文匹配的转发表项,确定所述组播报文为未知组播报文;在本地第二类组播转发表项中查找到到所述未知组播报文匹配的组播转发表项,通过找到的组播转发表项转发所述未知组播报文; 其中,所述第一类组播转发表项为基于组播协议动态创建的组播转发表项,所述第二类组播转发表项为预先配置的用于指示未知组播报文转发的组播转发表项,所述第一类组播转发表项的掩码比所述第二类组播转发表项的掩码长。2.根据权利要求1所述的方法,其特征在于,所述第二类组播转发表项包含:第一组播转发表项和第二组播转发表项;第一组播转发表项的掩码比第二组播转发表项的掩码长,第一组播转发表项用于指示未知组播协议报文转发,第二组播转发表项用于指示未知组播数据报文转发; 所述在本地第二类组播转发表项中找到与未知组播报文匹配的组播转发表项包括: 在本地第二类组播转发表项包含的所有第一组播转发表项中查找与所述未知组播报文匹配的第一组播转发表项,如果查找到,将查找到的第一组播转发表项作为与所述未知组播报文匹配的组播转发表项;如果未查找到,在本地第二类组播转发表项包含的所有第二组播转发表项中查找到与所述未知组播报文匹配的第二组播转发表项,将查找到的第二组播转发表项作为与所述未知组播报文匹配的组播转发表项。3.根据权利要求2所述的方法,其特征在于,所述在本地第二类组播转发表项包含的所有第一组播转发表项中查找与所述未知组播报文匹配的第一组播转发表项包括:确定所述未知组播报文所属的VLAN和所述未知组播报文的目的IP地址所属的地址段,在本地第二类组播转发表项包含的所有第一组播转发表项中查找匹配特征包含所述地址段和所述VLAN的第一组播转发表项; 所述在本地第二类组播转发表项包含的所有第二组播转发表项中查找到与所述未知组播报文匹配的第二组播转发表项包括:在本地第二类组播转发表项包含的所有第二组播转发表项中查找到包含所述地址段和所述VLAN的第二组播转发表项。4.根据权利要求2或3所述的方法,其特征在于,所述通过找到的组播转发表项转发未知组播报文包括: 当所述未知组播报文匹配的组播转发表项为第一组播转发表项,通过该第一组播转发表项中的出端口转发所述未知组播报文,第一组播转发表项中的出端口为本设备除接收到所述未知组播报文的端口之外的本地其他端口; 当所述未知组播报文匹配的组播转发表项为第二组播转发表项,通过该第二组播转发表项中的出端口转发所述未知组播报文,该第二组播转发表项中的出端口为本设备本地连接上游三层组播设备的路由器端口。5.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 接收广播报文,在所述广播报文所属的VLAN内广播所述广播报文; 接收未知单播报文,在所述未知单播报文所属的VLAN内广播所述未知单播报文。6.—种未知组播报文的处理装置,其特征在于,该装置应用于网络设备,包括: 接收单元,用于接收组播报文; 匹配单元,用于在存储单元的本地第一类组播转发表项中未查找到所述组播报文匹配的转发表项,确定所述组播报文为未知组播报文,在存储单元的本地第二类组播转发表项中找到与所述未知组播报文匹配的组播转发表项; 存储单元,用于存储第一类组播转发表项和第二类组播转发表项;其中,所述第一类组播转发表项为基于组播协议动态创建的组播转发表项,所述第二类组播转发表项为预先配置的用于指示未知组播报文转发的组播转发表项,所述第一类组播转发表项的掩码比所述第二类组播转发表项的掩码长; 转发单元,用于通过所述匹配单元匹配到的组播转发表项转发所述未知组播报文。7.根据权利要求6所述的装置,其特征在于,所述第二类组播转发表项包含:第一组播转发表项和第二组播转发表项;第一组播转发表项的掩码比第二组播转发表项的掩码长,第一组播转发表项用于指示未知组播协议报文转发,第二组播转发表项用于指示未知组播数据报文转发; 所述匹配单元在所述存储单元的本地第二类组播转发表项中找到与未知组播报文匹配的组播转发表项包括: 在所述存储单元的本地第二类组播转发表项包含的所有第一组播转发表项中查找与所述未知组播报文匹配的第一组播转发表项,如果查找到,将查找到的第一组播转发表项作为与所述未知组播报文匹配的组播转发表项;如果未查找到,在所述存储单元的本地第二类组播转发表项包含的所有第二组播转发表项中查找到与所述未知组播报文匹配的第二组播转发表项,将查找到的第二组播转发表项作为与所述未知组播报文匹配的组播转发表项。8.根据权利要求7所述的装置,其特征在于,所述匹配单元在所述存储单元的本地第二类组播转发表项包含的所有第一组播转发表项中查找与所述未知组播报文匹配的第一组播转发表项包括:确定所述未知组播报文所属的VLAN和所述未知组播报文的目的IP地址所属的地址段,在所述存储单元的本地第二类组播转发表项包含的所有第一组播转发表项中查找匹配特征包含所述地址段和所述VLAN的第一组播转发表项; 所述匹配单元在所述存储单元的本地第二类组播转发表项包含的所有第二组播转发表项中查找到与所述未知组播报文匹配的第二组播转发表项包括:在所述存储单元的本地第二类组播转发表项包含的所有第二组播转发表项中查找到包含所述地址段和所述VLAN的第二组播转发表项。9.根据权利要求7或8所述的装置,其特征在于,所述转发单元通过找到的组播转发表项转发未知组播报文包括: 当所述未知组播报文匹配的组播转发表项为第一组播转发表项,通过该第一组播转发表项中的出端口转发所述未知组播报文,第一组播转发表项中的出端口为本设备除接收到所述未知组播报文的端口之外的本地其他端口; 当所述未知组播报文匹配的组播转发表项为第二组播转发表项,通过该第二组播转发表项中的出端口转发所述未知组播报文,该第二组播转发表项中的出端口为本设备本地连接上游三层组播设备的路由器端口。10.根据权利要求6所述的装置,其特征在于, 所述接收单元进一步接收广播报文或未知单播报文; 所述转发单元进一步用于将所述接收单元接收的广播报文在所述广播报文所属的VLAN内广播;以及,将所述接收单元接收的未知单播报文在所述未知单播报文所属的VLAN内广播。
【文档编号】H04L12/761GK106059935SQ201610621771
【公开日】2016年10月26日
【申请日】2016年7月29日
【发明人】谢瑞涛, 李华舟, 胡海
【申请人】杭州华三通信技术有限公司