组播报文转发方法和装置与流程

文档序号:14879508发布日期:2018-07-07 09:21阅读:217来源:国知局
本申请涉及网络通信技术,特别涉及组播报文转发方法和装置。
背景技术
:图1示出了组播报文在网络设备内的转发示意图,如图1所示,当网络设备收到外部发送的组播报文后,收到组播报文的端口所在的业务板会查询本业务板上交换芯片记录的组播转发表得到组播组id,将得到的组播组id封装到一个头部标签中,再将这个头部标签加到组播报文的前面然后发送到网板。网板接收业务板发送的组播报文,并向本网板相连的每一业务板上的每一交换芯片广播接收的组播报文。每一业务板上的交换芯片收到网板广播的组播报文后,根据组播报文所带的头部标签中的组播组id查询本交换芯片记录的组播转发表得到出端口,当查找到的至少一个出端口为本交换芯片本地端口时,去掉组播将报文的头部标签并从本交换芯片本地作为出端口的端口发送出去,当查找到的所有出端口均不为本本交换芯片本地端口时,丢弃组播报文。然而,网板向相连的每一业务板上的每一交换芯片广播组播报文,会导致一些业务板上的交换芯片即使没有组播报文的出端口也会接收到组播报文,这极大浪费网板至交换芯片的上行带宽,导致没有多余的上行带宽传输单播报文或其他组播报文等,当组播报文的出端口较少时,这种带宽浪费更加严重。技术实现要素:本申请提供了组播报文转发方法和装置,以防止组播报文在网络设备内部转发过程中网板向相连的每一业务板上的每一交换芯片广播组播报文带来的带宽浪费等问题。本申请提供的技术方案包括:本设备的主控板生成组播查询表并下发至本设备各网板,所述组播查询表中每一组播查询表项包含:组播组标识id、出端口、出端口所在交换芯片对应的交换芯片标识;本设备各网板接收并存储所述组播查询表,当接收到本设备的业务板发送的组播报文时,在所述组播查询表中查询所述组播报文携带的组播组id匹配的组播查询表项,向查询到的组播查询表项中每一交换芯片标识对应的交换芯片发送所述组播报文。一种组播报文转发装置,该装置应用于网络设备的网板,包括:主控板处理模块,处于主控板,用于生成组播查询表并下发至本设备各网板,所述组播查询表中每一组播查询表项包含:组播组标识id、出端口、出端口所在交换芯片对应的交换芯片标识;网板处理模块,处于网板,包含:存储单元,用于存储所述组播查询表;接收单元,用于接收本设备的业务板发送的组播报文;查询单元,用于在所述组播查询表中查询所述组播报文携带的组播组id匹配的组播查询表项,发送单元,用于向所述查询单元查询到的组播查询表项中每一交换芯片标识对应的交换芯片发送所述组播报文。由以上技术方案可以看出,本发明中,网板通过组播查询表实现仅向组播报文的出端口所在交换芯片发送组播报文,不包含组播报文的出端口的交换芯片不会收到组播报文,防止网板向相连的每一业务板上的每一交换芯片广播组播报文带来的带宽浪费等问题,进而解决了大流量组播导致交换芯片拥塞,影响其他业务的问题。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1为现有网络设备内部组播报文转发示意图;图2为本发明提供的方法流程图;图3为本发明提供的实施例示意图;图4为本发明提供的装置结构示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。参见图2,图2为本发明提供的方法流程图。该流程应用于网络设备,具体实现时,该网络设备可为二层交换设备也可为三层路由设备。如图2所示,该流程可包括以下步骤:步骤201,本设备的主控板生成组播查询表并下发至本设备各网板。在本发明中,主控板生成的组播查询表不同于业务板上交换芯片记录的组播转发表。主控板生成的组播查询表用于指示网络设备内部转发过程中网板仅向组播报文的出端口所在交换芯片发送组播报文,防止网板向相连的每一业务板上的每一交换芯片广播组播报文带来的带宽浪费等问题;而交换芯片记录的组播转发表用于业务板上的交换芯片控制组播报文按照最优转发路由向网络设备外部转发。作为一个实施例,本发明中,主控板生成组播查询表包括:依据各业务板上交换芯片与端口的对应关系确定已学习的各组播转发表项中的出端口所在的交换芯片;将各组播转发表项中的组播组id、出端口以及确定出的该出端口所在交换芯片对应的交换芯片标识生成组播查询表。其中,组播查询表中每一组播查询表项包含:组播组id、出端口、出端口所在交换芯片对应的交换芯片标识。表2_1示出了组播查询表项的结构:组播组id出端口交换芯片标识表2_1步骤202,本设备各网板接收并存储所述组播查询表,当接收到本设备的业务板发送的组播报文时,在组播查询表中查询组播报文携带的组播组id匹配的组播查询表项。之后执行步骤203。当网络设备通过端口收到外部发送的组播报文后,该端口所在的业务板会查询本业务板上交换芯片记录的组播转发表得到组播组id,将得到的组播组id封装到一个头部标签中,再将这个头部标签加到组播报文的前面然后发送到网板。如此,如步骤202描述,网板最终收到的组播报文携带头部标签,该头部标签中包含组播组id。基于上面描述,再加上如步骤201描述的组播查询表中每一组播查询表项包含组播组id、出端口、出端口所在交换芯片对应的交换芯片标识,则本步骤202中在组播查询表中查询组播报文携带的组播组id匹配的组播查询表项具体可为:以组播报文携带的头部标签中的组播组id为关键字,在组播查询表中查询包含该关键字的组播查询表项。步骤203,向查询到的组播查询表项中每一交换芯片标识对应的交换芯片发送组播报文。举例,假如查询到的组播查询表项中交换芯片标识有三个,分别为switch2_1、switch2_2、switch2_3,则本步骤203中,网板复制3份组播报文,将复制的3份组播报文分别发送给switch2_1、switch2_2、switch2_3,以实现仅向查询到的组播查询表项中每一交换芯片标识对应的交换芯片发送组播报文,防止网板向相连的每一业务板上的每一交换芯片广播组播报文带来的带宽浪费等问题。至此,完成图2所示流程。通过图2所示流程可以看出,本发明中,网板通过组播查询表实现仅向组播报文的出端口所在交换芯片发送组播报文,不包含组播报文的出端口的交换芯片不会收到组播报文,防止网板向相连的每一业务板上的每一交换芯片广播组播报文带来的带宽浪费等问题,进而解决了大流量组播导致交换芯片拥塞,影响其他业务的问题。下面通过一个具体实施例对图2所示流程进行描述:参见图3,图3为本发明提供的实施例应用组网图。图3仅以网络设备示出1个网板为例。多个网板的情况类似,这里不再一一举例描述。图3以网络设备有以下3个业务板为例:slot0、slot1、slot2。在图3中,slot0上存在两个交换芯片,这两个交换芯片的交换芯片标识分别为:switch0_1、switch0_2。slot1上存在两个交换芯片,这两个交换芯片的交换芯片标识分别为:switch1_1、switch1_2。slot2上存在一个交换芯片,该交换芯片的交换芯片标识为:switch2_1。表3_1示出了业务板与交换芯片对应关系:板号芯片号slot0switch0_1、switch0_2slot1switch1_1、switch1_2slot2switch2_1表3_1在图3中,以每个交换芯片本地有3个物理端口为例,表3_2示出了交换芯片与端口之间的对应关系:表3_2假如网络设备上的主控板学习组播转发表项如下表3_3所示:组播组id出端口1port6、port7、port122port5、port9、port103port0、port2表3_3基于表2_1所示的组播查询表的结构,则主控板基于表3_3和表3_2生成如表3_4所示的组播查询表:组播组id出端口交换芯片标识1port6、port7、port12switch1_1、switch2_12port5、port9、port10switch0_2、switch1_23port0、port2switch0_1表3_4主控板将生成的如表3_4所示的组播查询表下发给网络设备上的各网板。网板接收主控板下发的组播查询表并存储。如图3所示,业务板slot0通过交换芯片switch0_2上的port3接收组播报文。为便于描述,这里将接收的组播报文记为报文3_1。交换芯片switch0_2查询本地组播转发表项获得对应的组播组id1。交换芯片switch0_2将得到的组播组id1封装到一个头部标签中,再将这个头部标签加到报文3_1的前面然后发送到网板。为便于描述,这里将有头部标签的报文3_1记为报文3_2。网板接收报文3_2,解析出头部标签中的组播组id1,网板在本地组播查询表中查询包含组播组id1的组播查询表项。网板发现查询到的组播查询表项中有两个交换芯片标识:switch1_1、switch2_1。网板复制两份报文3_2,复制的两份报文3_2分别记为报文3_2_1、3_2_2。网板发送复制的其中一份报文(以报文3_2_1为例)给业务板slot1上的switch1_1,发送复制的另一份报文(以报文3_2_2为例)给业务板slot2上的switch2_1。业务板slot1上的switch1_1收到网板发送的报文3_2_1后,根据报文3_2_1所带的头部标签中的组播组id1查询本交换芯片记录的组播转发表得到出端口,去掉报文3_2_1的头部标签恢复为报文3_1并从查找到的出端口发送出去。业务板slot2上的switch2_1收到网板发送的报文3_2_2后,根据报文3_2_2所带的头部标签中的组播组id1查询本交换芯片记录的组播转发表得到出端口,去掉报文3_2_2的头部标签恢复为报文3_1并从查找到的出端口发送出去。至此,完成了报文3_1网络设备内部各单板的转发过程。从图3所示的实施例可以看出,上述实施例中,网板仅向业务板slot1上的switch1_1、业务板slot2上的switch2_1发送组播组id1的组播报文,而业务板slot0上的switch0_1、switch0_2、以及业务板slot1上的switch1_2因为没有组播组id1的出端口,则网板不会向业务板slot0上的switch0_1、switch0_2、以及业务板slot1上的switch1_2发送组播组id1的组播报文,这防止网板向相连的每一业务板上的每一交换芯片广播组播报文带来的带宽浪费等问题,进而解决了大流量组播导致交换芯片拥塞,影响其他业务的问题。需要说明的是,在本发明中,组播查询表中组播查询表项中的出端口为单一的端口(物理端口或逻辑端口),也可为聚合组或者跨框堆叠口;其中,当出端口为聚合组时,出端口所在交换芯片为聚合组中每一成员端口所在的交换芯片;当出端口为跨框堆叠口时,出端口所在交换芯片为所述跨框堆叠口所在的交换芯片。还需要说明的是,本发明中,当组播组id对应的出端口发生变化时,主控板还会根据组播组id对应的出端口发生的变化更新本设备各网板上与该组播组id匹配的组播查询表项。具体地,主控板根据组播组id对应的出端口发生的变化更新本设备各网板上与该组播组id匹配的组播查询表项包括:当新增组播组id对应的出端口时,检测组播组id匹配的组播查询表项中是否存在该新增的出端口所在交换芯片对应的交换芯片标识,如果否,则在本设备各网板上与组播组id匹配的组播查询表项中增加该新增的出端口所在交换芯片对应的交换芯片标识;当组播组id对应的出端口离开时,若组播组id匹配的组播查询表项中其他出端口与该离开的出端口处于不同的交换芯片,则从本设备各网板上与组播组id匹配的组播查询表项中删除该离开的出端口、以及该离开的出端口所在交换芯片对应的交换芯片标识。比如,以出端口为单一的端口为例,假如上述示出的出端口port12离开组播组id1,从表3_4所示的包含组播组id1的组播查询表项中删除组播组id1对应的出端口port12。但因为组播组id1的出端口port7、出端口port6与出端口port12处于不同交换芯片,所以还需删除组播组id1对应的交换芯片标识switch2_1。再假如上述示出的出端口port6(为单一的端口为例)离开组播组id1,则基于上面描述,从表3_4所示的包含组播组id1的组播查询表项中删除组播组id1对应的出端口port6。但因为组播组id1的出端口port7与出端口port6同处交换芯片switch1_1,所以组播组id1对应的交换芯片标识依然有switch1_1。再比如,以出端口为聚合组为例,假设组播组id4对应的出端口为聚合组1和port4_3,port4_1和port4_2为聚合组1中的成员端口,port4_3为单一的端口。port4_1所在的交换芯片对应的交换芯片标识为switch4_1,port4_2所在的交换芯片对应的交换芯片标识为switch4_2,port4_3所在的交换芯片对应的交换芯片标识为switch4_3。表4_1示出了包含组播组id4的组播查询表项:组播组id出端口交换芯片标识4聚合组1、port4_3switch4_1、switch4_2、switch4_3表4_1当port4_1离开聚合组1时,port4_1就不再是组播组id4的出端口,从表4_1所示的包含组播组id4的组播查询表项中删除交换芯片标识switch4_1。进一步地,若port4_2再离开聚合组1时,port4_2就不再是组播组id4的出端口,也即聚合组1中所有成员端口即port4_1和port4_2都不再是组播组id4的出端口,聚合组1也就不是组播组id4的出端口,基于此,从表4_1所示的包含组播组id4的组播查询表项中删除聚合组1和交换芯片标识switch4_2。同理,出端口为堆叠口时组播查询表项的更新方式类似上述更新方式,不再一一举例描述。以上对本发明提供的方法进行了描述。下面对本发明提供的装置进行描述:参见图4,图4为本发明提供的装置结构图。该装置应用于网络设备,包括:主控板处理模块,处于主控板,用于生成组播查询表并下发至本设备各网板,所述组播查询表中每一组播查询表项包含:组播组标识id、出端口、出端口所在交换芯片对应的交换芯片标识;网板处理模块,处于网板,包含:存储单元,用于存储所述组播查询表;获取单元,用于本设备的网板获取组播查询表,所述组播查询表中每一组播查询表项包含:组播组标识id、出端口、出端口所在交换芯片对应的交换芯片标识;接收单元,用于接收本设备的业务板发送的组播报文;查询单元,用于在所述组播查询表中查询所述组播报文携带的组播组id匹配的组播查询表项,发送单元,用于向所述查询单元查询到的组播查询表项中每一交换芯片标识对应的交换芯片发送所述组播报文。优选地,主控板处理模块生成组播查询表包括:依据各业务板上交换芯片与端口的对应关系确定已学习的各组播转发表项中的出端口所在的交换芯片;将各组播转发表项中的组播组id、出端口以及确定出的该出端口所在交换芯片对应的交换芯片标识生成组播查询表。优选地,所述组播查询表中组播查询表项中的出端口为聚合组或者跨框堆叠口;其中,当所述出端口为聚合组时,所述出端口所在交换芯片为所述聚合组中每一成员端口所在的交换芯片;当所述出端口为跨框堆叠口时,所述出端口所在交换芯片为所述跨框堆叠口所在的交换芯片。优选地,所述主控板处理模块进一步在检测到组播组id对应的出端口发生变化时,根据组播组id对应的出端口发生的变化更新本设备各网板上的存储单元存储的与该组播组id匹配的组播查询表项。优选地,所述主控板处理模块根据组播组id对应的出端口发生的变化更新本设备各网板上的存储单元存储的与该组播组id匹配的组播查询表项包括:当新增组播组id对应的出端口时,检测组播组id匹配的组播查询表项中是否存在该新增的出端口所在交换芯片对应的交换芯片标识,如果否,则在本设备各网板上的存储单元存储的与组播组id匹配的组播查询表项中增加该新增的出端口所在交换芯片对应的交换芯片标识;当组播组id对应的出端口离开时,若组播组id匹配的组播查询表项中其他出端口与该离开的出端口处于不同的交换芯片,则从本设备各网板上的存储单元存储的与组播组id匹配的组播查询表项中删除该离开的出端口、以及该离开的出端口所在交换芯片对应的交换芯片标识。至此,完成本发明提供的装置描述。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1