组播报文跨卡转发方法、装置、网络设备及可读存储介质与流程

文档序号:15845946发布日期:2018-11-07 09:01阅读:141来源:国知局
组播报文跨卡转发方法、装置、网络设备及可读存储介质与流程

本申请涉及通信技术领域,具体而言,涉及一种组播报文跨卡转发方法、装置、网络设备及可读存储介质。

背景技术

随着当今网络的飞速发展,网络承载业务量的激增和业务种类的多元化变迁,人们对网络设备提出了更高的要求。以路由器设备为例,不仅要保证数据的可靠性和安全性,同时要求更加高速的数据处理和转发能力。

目前大多数网络设备,数据处理的单元为转发卡,不同转发卡有着不同的数据处理能力,也为用户提供了应用环境的定制选择,在数据处理和转发能力要求比较高的地方,例如数据中心、运营商核心机房、省汇聚核心网等,单张转发卡的集中式设备已经不能满足业务处理的需求,因此便脱颖出了具有多张甚至十几张转发卡的分布式设备,这类设备对外提供的转发能力是所有转发卡转发能力的加权,因此其转发能力不言而喻。

而转发卡之间若需要进行数据交互,则在网络设备中,一般是通过包括交換芯片的跨卡交换单元(即交换卡)实现的,交换卡中主要包括交换芯片。如对于路由器而言,跨卡转发的数据不能直接交给交换卡处理,因为数据在转发前需要先通过各种路由协议学习到路由,然后从接口收到的以太ip报文在经过ip解析后才能查找路由并知道报文应该如何转发(比如判断数据是本卡转发还是跨卡转发),所以交换卡需要支持以太网和广域网的数据转发,且还需要存储大量的路由信息,目前主流交换芯片尚未支持广域网数据的转发,且要存储大量的路由信息还存在转发表项大小的限制。因此鉴于交换芯片无法实现跨卡数据的直接转发,且从数据转发的逻辑和层次考虑,数据的路由转发最好只在转发卡中进行,而交换卡只需作为一个逻辑通道,实现转发卡与转发卡之间的数据通信即可。

但是,为了让交换卡只作为一个逻辑通道实现跨卡数据转发,所以有多少张转发卡就必须在交换卡中创建相应转发卡个数2的幂次方个组播地址,而交换卡的交换芯片的组播地址表项都是有限的,这直接导致转发卡数量被限制,无法满足扩展更多转发卡的目的,该方案的实现严重依赖于交换卡的交换芯片组播表项的大小,因此当交换卡的交换芯片确定后就限制了转发卡的数量,无法进行转发卡的弹性扩展。



技术实现要素:

本申请实施例的目的在于提供一种组播报文跨卡转发方法、装置、交换卡及可读存储介质。

第一方面,本申请实施例提供了一种组播报文跨卡转发方法,所述方法包括:接收待转发的组播报文,从所述组播报文中获取组播目的mac地址;获取与所述组播目的mac地址对应的目的板卡组,将所述组播报文复制到所述目的板卡组的对应端口中;每个所述对应端口依据配置的访问控制列表acl,将所述组播报文转发到目的板卡。

在上述实施例中,通过获取与组播目的mac地址对应的目的板卡组,然后将组播报文发送至目的板卡组中的目的板卡,由此在设置组播mac地址时,一个板卡组只对应一个组播mac地址,每个板卡组包括至少两张板卡,由此,节省了交换卡中的交换芯片的组播地址表项资源,可以实现不依赖于交换芯片组播地址表项大小的数据跨卡转发,在交换芯片资源有限的情况下实现了资源的整合利用,提高了系统的可扩展性。

进一步地,所述获取与所述组播目的mac地址对应的目的板卡组,将所述组播报文复制到所述目的板卡组的对应端口中,包括:从所述组播目的mac地址中获取与所有板卡组对应的板卡组位图;根据所述板卡组位图的值指示的目的板卡组,在预先建立的组播地址表查找所述目的板卡组的对应端口,将所述组播报文复制到所述目的板卡组的对应端口中。

在上述实施例中,通过将板卡组位图封装于组播mac地址中,由此可根据组播mac地址获得目的板卡组,由此节省了组播地址表项资源。

进一步地,所述每个所述对应端口依据配置的访问控制列表,将所述组播报文转发到目的板卡,包括:每个所述对应端口根据配置的访问控制列表,获取所述组播报文的源mac地址,从所述源mac地址中获取与所有板卡对应的板卡位图;根据所述板卡位图中的值指示的目的板卡,应用访问控制列表的匹配规则,如果匹配,则将所述组播报文转发至所述目的板卡,否则丢弃所述组播报文。

在上述实施例中,将板卡位图封装于组播报文的源mac地址中,从而可从源mac地址中获得目的板卡,由此可将组播报文发送至目的板卡,实现了组播报文的跨卡转发。

进一步地,接收待转发的组播报文之前,所述方法还包括:建立组播地址表项,所述组播地址表项中包括多个板卡组中每个板卡组对应的组播mac地址,所述每个板卡组包括至少两张板卡。

在上述实施例中,通过在建立的组播地址表项中设置一个板卡组只对应一个组播mac地址,每个板卡组包括至少两张板卡,由此,节省了交换卡中交换芯片的组播地址表项资源,可以实现不依赖于交换芯片组播地址表项大小的数据跨卡转发,在交换芯片资源有限的情况下实现了资源的整合利用,提高了系统的可扩展性。

第二方面,本申请实施例还提供了另一种组播报文跨卡转发方法,所述方法包括:接收待转发的报文;判断所述报文需要跨卡发送时,为所述报文封装组播目的mac地址和源mac地址,所述组播目的mac地址中包括目的板卡组信息,所述源mac地址包括目的板卡信息,所述目的板卡组包括至少两张目的板卡;将封装好的组播报文进行发送。

在上述实施例中,发送端板卡通过将报文中封装组播目的mac地址和源mac地址后进行发送至交换卡,由交换卡直接根据组播地址表来选择对报文进行跨卡转发,由此可节省交换卡的cpu资源且在交换卡的交换芯片资源有限的情况下实现了资源的整合利用,提高了系统的可扩展性。

第三方面,本申请实施例提供了一种组播报文跨卡转发装置,所述装置包括:

报文接收模块,用于接收待转发的组播报文,从所述组播报文中获取组播目的mac地址;

报文复制模块,用于获取与所述组播目的mac地址对应的目的板卡组,将所述组播报文复制到所述目的板卡组的对应端口中;

报文转发模块,用于每个所述对应端口依据配置的访问控制列表acl,将所述组播报文转发到目的板卡。

进一步地,所述报文复制模块,具体用于从所述组播目的mac地址中获取与所有板卡组对应的板卡组位图;根据所述板卡组位图的值指示的目的板卡组,在预先建立的组播地址表查找所述目的板卡组的对应端口,将所述组播报文复制到所述目的板卡组的对应端口中。

进一步地,所述报文转发模块,具体用于每个所述对应端口根据配置的访问控制列表,获取所述组播报文的源mac地址,从所述源mac地址中获取与所有板卡对应的板卡位图;根据所述板卡位图中的值指示的目的板卡,应用访问控制列表的匹配规则,如果匹配,则将所述组播报文转发至所述目的板卡,否则丢弃所述组播报文。

进一步地,所述装置还包括:

表项建立模块,用于建立组播地址表项,所述组播地址表项中包括多个板卡组中每个板卡组对应的组播mac地址,所述每个板卡组包括至少两张板卡。

第四方面,本申请实施例还提供了另一种组播报文跨卡转发装置,所述装置包括:

报文接收模块,用于接收待转发的报文;

报文封装模块,用于判断所述报文需要跨卡发送时,为所述报文封装组播目的mac地址和源mac地址,所述组播目的mac地址包括目的板卡组信息,所述源mac地址包括目的板卡信息,所述目的板卡组包括至少两张目的板卡;

报文发送模块,用于将封装好的组播报文进行发送。

第五方面,本申请实施例提供一种包括转发卡和交换卡,所述交换卡用于运行如上述第一方面中的步骤,所述转发卡用于运行如上述第二方面中的步骤。

第六方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。

本申请实施例提供一种组播报文跨卡转发方法、装置、网络设备及可读存储介质,该方法中交换卡通过接收待转发的组播报文后,从所述组播报文中获取组播目的mac地址,然后获取与所述组播目的mac地址对应的目的板卡组,将所述组播报文复制到所述目的板卡组的对应端口中,然后每个所述对应端口依据配置的访问控制列表acl,将所述组播报文转发到目的板卡。本方案中,交换卡通过获取与组播目的mac地址对应的目的板卡组,然后将组播报文发送至目的板卡组中的目的板卡,由此在设置组播mac地址时,一个板卡组只对应一个组播mac地址,每个板卡组包括至少两张板卡,由此,节省了交换卡中交换芯片的组播地址表项资源,可以实现不依赖于交换芯片组播地址表项大小的数据跨卡转发,在交换芯片资源有限的情况下实现了资源的整合利用,提高了系统的可扩展性。

本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种网络设备的结构示意图;

图2为现有技术中通过交换卡实现跨卡数据交换的流程图;

图3为本申请实施例中通过交换卡实现跨卡数据交换的流程图;

图4为本申请实施例提供的一种组播报文跨卡转发方法的流程图;

图5为本申请实施例提供的另一种组播报文跨卡转发方法的流程图;

图6为本申请实施例提供的一种组播报文跨卡转发装置的结构框图;

图7为本申请实施例提供的另一种组播报文跨卡转发装置的结构框图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

网络设备中通过转发卡(即板卡)来进行报文转发,而转发卡之间的跨卡通信是通过网络设备中的交换卡来转发,交换卡连接所有的转发卡,交换卡对外提供了较多的数据通道资源,其可以实现跨卡数据的限速转发。如图1所示,网络设备中可以包括有多张转发卡,每张转发卡均与交换卡连接,其中,转发卡是通过高速接插件连接数据通道至网络设备的背板上,然后背板统一汇总到交换卡,然后通过交换卡实现跨卡数据转发。由图1可以看出,每张转发卡只为数据跨卡交互提供了一条数据通道,因此只要交换卡的背板通道资源足够,就可以实现更多转发卡之间的跨卡转发,而无需增加转发卡本身的通道资源。

若网络设备为路由器时,对于路由器而言,跨卡转发的数据不能直接交给交换卡处理,因为数据在转发前需要先通过各种路由协议学习路由,然后从接口收到的以太ip报文在经过ip解析后才能查找路由并知道报文应该如何转发(比如判断数据是本卡转发还是跨卡转发),如果交换卡要实现跨卡数据的直接转发,需要满足以下条件:1.用于交换卡的交换芯片需要支持以太网和广域网数据转发;2.用于交换卡的交换芯片需要存储大量的路由信息。

目前主流的交换芯片尚未支持广域网数据的转发,且要存储大量的路由信息,交换芯片还存在转发表项大小的限制。因此鉴于交换芯片无法实现跨卡数据的直接转发,且从数据转发的逻辑和层次考虑,数据的路由转发最好只在转发卡中进行,而交换卡只需作为一个逻辑通道,实现转发卡与转发卡之间的数据通信即可。

若要让交换芯片只作为一个数据转发的逻辑通道,而不需要关心转发数据本身,则转发卡需先将转发数据进行封装,使用交换芯片中的组播功能,通过设置交换芯片的组播表项,给数据封装对应的组播地址后交给交换芯片按照组播表项转发,这样无论是单播数据(数据从一张转发卡跨卡到另外一张转发卡)还是组播数据转发(数据从一张转发卡跨卡到另外多张转发卡),则都不需要关心跨卡数据本身,交换芯片只需按照数据封装的组播地址,查找组播表项将数据转发即可。例如,对于有8张转发卡的网络设备,可以构造目的mac地址为组播地址:01005f0000xx(后8bit每个bit表示一张转发卡),如果报文需要发送至该转发卡,则将对应的bit至1,否则为0,通过将端口绑定在对应的组播地址上实现交换芯片按照组播地址拷贝报文到对应端口的目的。假设转发卡1、2连接交换芯片的端口为1和2,则组播地址01005f000006对应绑定的端口即为1和2,也可以说如果报文需要跨卡发送至转发卡1和2,则只需要构造地址为01005f000006的组播报文,就可以将数据发送至转发卡1和2。

如图2所示,图2为现有技术中通过交换卡实现跨卡数据交换的流程图,数据通过网络设备上的物理接口接收,然后由内部总线传输到转发卡中的数据处理单元;数据处理单元对数据进行解析、输入控制并进行选路后,得到数据出接口并判断出接口是否是在本转发卡,出接口在本转发卡,则直接将数据从物理接口发送出去,若出接口在本网络设备的另一张转发卡上,则根据数据需要发送的目的端转发卡封装组播地址,例如对于有8张转发卡的网络设备,可以构造目的mac为组播地址01005f0000xx(后8bit每个bit表示一张转发卡,bit0表示转发卡0,bit1表示转发卡1,以此类推),数据需要发送到哪张转发卡,就将对应的bit置1,如上图1,需要将数据跨卡发送至转发卡0、1、3,则需要构造目的mac为01005f00000b的组播地址。需要说明的是,由于转发卡的数量是明确的,因此需要提前将组播地址写入交换卡对应交换芯片的组播表项中,有多少张转发卡就需要写入转发卡数量2的幂次方减1个组播表项。

报文在第一张转发卡中封装组播地址后,经网络设备的背板数据通道发送给交换卡,交换卡在收到报文中封装的组播地址后查找组播表项,将报文发送给连接目的端转发卡的背板数据通道,报文经背板数据通道到达对应的发送目的端转发卡,其中,虚线1和2分别表示本转发数据转发和跨卡数据转发的路径。

但是上述方案中,若网络设备中有多少张转发卡就必须创建相应转发卡个数的2的幂次方减1个组播地址,而交换芯片的组播地址表项都是有限的,这直接导致转发卡数量被限制,无法满足扩展更多转发卡的目的,该方案的实现严重依赖于交换芯片组播表项的大小,因此当交换芯片确定后就限制了转发卡的数量,无法进行转发卡的弹性扩展。

所以,为了改善上述问题,本申请实施例提供了一种组播报文跨卡转发方法。

本申请实施例中的组播报文跨卡转发方法应用于上述的交换卡,为了描述的统一,本实施例中均以交换卡为例来进行说明,且转发卡均以板卡来描述。

请参照图3,图3为本申请实施例中交换卡实现跨卡数据交换的流程图,在交换芯片中可以预先建立组播地址表项,组播地址表项用于交换芯片对组播报文进行跨卡转发的依据。为了节约交换芯片的组播地址表项,使得可以拓展更多的板卡,所以,对网络设备中的板卡可以进行分组,如对板卡进行两两分组,每组板卡组中包括有两张板卡。当然,为了更多的节约交换芯片中组播地址表项资源,还可将板卡进行合理分组,并不一定一组板卡组中只包括两张板卡,一组板卡组中还可包括三张板卡,或者四张板卡等,即交换芯片的组播地址表项中包括有多个板卡组中每个板卡组对应的组播地址,所述每个板卡组包括至少两张板卡。也就是说,即组播地址表项中包括多个板卡组中每个板卡组对应的组播mac地址,每个板卡组包括至少两张板卡,至少两张板卡对应一个组播mac地址,由此可以大大节约组播地址表项资源。

例如,要满足16张板卡的跨卡转发需求,本方案中可将16张板卡两两分组,如图3所示,可将板卡0和板卡1分为第一板卡组,板卡2和板卡3分为第二板卡组,板卡4和板卡5分为第三板卡组,每个板卡组均对应一个组播地址,组播地址可以通过目的mac地址进行构造,例如,01005f0000xx,所以,组播地址也称为组播mac地址,为了描述的方便,下述均以组播mac地址来进行描述。

组播报文由发送端板卡发送来的,而发送端板卡接收的报文是从别的网络设备发送过来的,即首先网络设备上的发送端板卡的物理接口接收从别的网络设备发送的报文,也就是网络设备上的发送端板卡接收到报文,然后该报文经过内部总线到发送端板卡的数据处理单元,数据处理单元对报文进行解析,输入控制并进行选路后,得到报文的出接口,然后并判断出接口是否在发送端板卡上,若出接口在发送端板卡,则直接将报文从物理接口发送出去,若出接口在网络设备中的另外一张板卡上,则发送端板卡根据报文需要发送的目的板卡组的组播地址对报文进行封装,即将组播目的mac地址和源mac地址封装到报文中。

发送端板卡在将报文中封装组播目的mac地址和源mac地址后,发送至交换卡,则交换卡接收到发送端板卡发送的组播报文。

由于发送端板卡在发送组播报文之前,先接收从外部网络设备发送过来的待转发的报文,然后按照上述的流程,判断报文是否是本卡转发还是跨卡转发,若判断报文需要跨卡发送时,将报文中封装组播目的mac地址和源mac地址,即报文中携带了组播目的mac地址,组播目的mac地址携带了目的板卡组信息,源mac地址中携带了目的板卡信息,然后再将封装后的组播报文发送至交换卡,所以,交换卡在对组播报文进行跨卡转发前,可以从组播报文中获取组播目的mac地址。以下为本发明实施例交换卡实现的跨卡数据交换的方法步骤。

请参照图4,图4为本申请实施例提供的一种组播报文跨卡转发方法的流程图,所述方法包括如下步骤:

步骤s110:接收待转发的组播报文,从所述组播报文中获取组播目的mac地址。

步骤s120:获取与所述组播目的mac地址对应的目的板卡组,将所述组播报文复制到所述目的板卡组的对应端口中。

组播地址表项中存储有每个板卡组对应的组播mac地址,所以,可以从组播地址表项中根据组播目的mac地址查找到组播目的mac地址对应的目的板卡组,如组播目的mac地址对应的目的板卡组为板卡组1,板卡组1包括至少两张目的板卡,则组播报文可以转发至目的板卡组1中的其中一张目的板卡或全部目的板卡。

组播报文若想要转发至目的板卡组,则需先将组播报文复制到目的板卡组中每张目的板卡对应的端口上。

可以理解地,为了将组播报文复制到所述目的板卡组的对应端口中,还可以从所述组播目的mac地址中获取与所有板卡组对应的板卡组位图,然后根据所述板卡组位图的值指示的目的板卡组,在预先建立的组播地址表中查找所述目的板卡组的对应端口,将所述组播报文复制到所述目的板卡组的对应端口中。

例如,若网络设备中有16张板卡,若将16张板卡进行两两分组(如图4所示,板卡0和板卡1分为一组,板卡2和板卡3分为一组等),构造目的mac地址为组播目的mac地址,如01005f0000xx,组播目的mac地址的后8bit,这8bit表示板卡组对应的板卡组位图,每个bit表示板卡组对应的两张板卡,即后8bit的值用于指示目的板卡组,如bit0表示板卡0和1对应的板卡组,bit1表示板卡2和3对应的板卡组,以此类推,如果组播报文需要发送至某个板卡组,则将对应的bit至1,否则为0。例如,若组播报文需要跨卡转发至板卡0、1、3,则表示组播报文需转发至第一板卡组和第二板卡组,则需要构造目的mac为01005f000003的组播目的mac地址,此时交换芯片对应组播目的mac地址绑定的端口即为组内两个板卡与对应交换芯片连接的端口,则可将组播报文复制到对应的端口中,然后根据端口将组播报文进行转发。

在上述实现过程中,由于对16张板卡进行了两两分组,这样在交换芯片中就实现了2的8次方减1即255个组播地址表项,满足了16张板卡组跨卡转发的需求,且大大减少了交换芯片的组播地址表项资源。

其中,每个组播地址对应绑定的端口即为相应板卡连接交换芯片的数据通道,交换芯片根据组播地址进行转发其实就是将组播报文转发至组播地址对应的数据通道上,组播地址对应多个数据通道就将数据复制多份并转发至多个数据通道,这样8组板卡组就对应了16张板卡,255个组播地址也表示了全部的跨卡转发情况,对应的组播地址与端口的绑定关系(组播地址表项)如下:

按照上述方式就实现了255个组播地址表项满足了16张板卡组播跨卡转发的需要,由于组播地址是将板卡组内的板卡对应连接交换卡的交换芯片的数据通道都进行了绑定,因此组播报文会被复制并转发到板卡组内所有的板卡对应的端口上。

步骤s130:每个所述对应端口依据配置的访问控制列表acl,将所述组播报文转发到目的板卡。

由于组播目的mac地址对应的是目的板卡组,目的板卡组中包括有至少两张板卡,但是若组播报文只需要发送给目的板卡组中的部分板卡,则由端口上配置的访问控制列表来对组播报文进行转发。

为了将组播报文转发至目的板卡,则每个所述对应端口根据配置的访问控制列表,获取所述组播报文的源mac地址,从所述源mac地址中获取与所有板卡对应的板卡位图,根据所述板卡位图中的值指示的目的板卡,应用访问控制列表的匹配规则,如果匹配,则将所述组播报文转发至所述目的板卡,否则丢弃所述组播报文。

访问控制列表(accesscontrollist,acl)用于对组播报文发送到目的板卡进行控制,其作用于交换卡的端口上,acl表项中存储有与源mac地址进行匹配的规则,即将组播报文复制到目的板卡组的对应端口中后,从源mac地址的板卡位图中的值获得指示的目的板卡,将目的板卡与acl表项中的匹配规则进行匹配,由此获得本端口是否是目的板卡,从而可将组播报文发送至属于所述目的板卡组中的目的板卡,从而完成组播报文的跨卡转发。

本实施例中,在接收待转发的组播报文后,从所述组播报文中获得组播目的mac地址,然后获取与所述组播目的mac地址对应的目的板卡组,将所述组播报文复制到所述目的板卡组的对应端口中,每个所述对应端口依据配置的访问控制列表acl,将所述组播报文转发到目的板卡。本实施例中,过获取与组播目的mac地址对应的目的板卡组,然后将组播报文发送至目的板卡组中的目的板卡,由此在设置组播mac地址时,一个板卡组只对应一个组播mac地址,每个板卡组包括至少两张板卡,由此,本方案实现了不依赖于交换芯片组播地址表项大小的数据跨卡转发,在交换芯片资源有限的情况下实现了资源的整合利用,提高了系统的可扩展性。

其中,如上述的16张板卡需要16个bit位(2字节)表示,将这16bit位放在源mac地址的后16bit,这后16bit表示板卡位图,每个bit表示一张板卡,如bit0表示板卡0,bit1表示板卡1,以此类推,组播报文发送至哪张板卡,则将对应的bit至1,否则为0,对应的源mac地址与目的板卡的关系如下表所示(其中“xx”表示不关心该字节):

当组播报文根据组播表项复制到对应的端口时,端口上启用acl表项来匹配源mac地址中对应的板卡位图(源mac的后16bit),板卡0匹配第1位bit,板卡1匹配第2位bit,如此等等,当对应的bit位为1时转发组播报文,否则根据acl策略丢弃报文,这样就可以将组播报文只发送至目的板卡组中的某一张目的板卡。

所以,上述实施例在基于1张只有255个组播地址表项的交换芯片的路由器环境中实现了16张板卡的数据跨卡转发,由此,通过对板卡进行分组的方式实现了不依赖于交换芯片组播地址表项大小的数据跨卡转发,在硬件芯片资源有限的情况下实现了资源的整合利用。

请参照图5,为本申请实施例提供的另一种组播报文跨卡转发方法的流程图,该方法应用于发送端板卡,该方法包括如下步骤:

步骤s210:接收待转发的报文。

步骤s220:判断所述报文需要跨卡发送时,为所述报文封装组播目的mac地址和源mac地址。

其中,所述组播目的mac地址中包括目的板卡组信息,所述源mac地址包括目的板卡信息,所述目的板卡组包括至少两张目的板卡。

步骤s230:将封装好的组播报文进行发送。

本实施例中,发送端板卡通过将报文中封装组播目的mac地址和源mac地址后进行发送至交换卡,由交换卡直接根据组播地址表来选择对报文进行跨卡转发,由此可节省交换卡的cpu资源且在交换卡的交换芯片资源有限的情况下实现了资源的整合利用,提高了系统的可扩展性。

该实施例的实现过程为发送端板卡对组播报文进行组播mac地址封装的过程,其具体实现过程可参照上述实施例的实现过程,为了描述的简洁,在此不再过多赘述。

请参照图6,图6为本申请实施例提供的一种组播报文跨卡转发装置200的结构框图,所述装置包括:

报文接收模块210,用于接收待转发的组播报文,从所述组播报文中获取组播目的mac地址;

报文复制模块220,用于获取与所述组播目的mac地址对应的目的板卡组,将所述组播报文复制到所述目的板卡组的对应端口中;

报文转发模块230,用于每个所述对应端口依据配置的访问控制列表acl,将所述组播报文转发到目的板卡。

进一步地,所述报文复制模块220,具体用于从所述组播目的mac地址中获取与所有板卡组对应的板卡组位图;根据所述板卡组位图的值指示的目的板卡组,在预先建立的组播地址表查找所述目的板卡组的对应端口,将所述组播报文复制到所述目的板卡组的对应端口中。

进一步地,所述报文转发模块230,具体用于每个所述对应端口根据配置的访问控制列表,获取所述组播报文的源mac地址,从所述源mac地址中获取与所有板卡对应的板卡位图;根据所述板卡位图中的值指示的目的板卡,应用访问控制列表的匹配规则,如果匹配,则将所述组播报文转发至所述目的板卡,否则丢弃所述组播报文。

进一步地,所装置还包括:

表项建立模块,用于建立组播地址表项,所述组播地址表项中包括多个板卡组中每个板卡组对应的组播mac地址,所述每个板卡组包括至少两张板卡。

请参照图7,图7为本申请实施例提供的另一种组播报文跨卡转发装置300的结构框图,所述装置包括:

报文接收模块310,用于接收待转发的报文;

报文封装模块320,用于判断所述报文需要跨卡发送时,为所述报文封装组播目的mac地址和源mac地址,所述组播目的mac地址中包括目的板卡组信息,所述源mac地址包括目的板卡信息,所述目的板卡组包括至少两张目的板卡;

报文发送模块330,用于将封装好的组播报文进行发送。

如图1所示,图1为本申请实施例提供的一种网络设备的结构示意图,所述网络设备可以包括:包括转发卡和交换卡,所述交换卡用于运行图4中所述方法中的步骤,所述转发卡用于运行图5中所述的方法中的步骤。

本申请实施例提供一种可读取存储介质,所述计算机程序被处理器执行时,执行如图4所示方法实施例中交换卡所执行的方法过程。

本申请实施例还提供一种可读取存储介质,所述计算机程序被处理器执行时,执行如图5所示方法实施例中交换卡所执行的方法过程。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

综上所述,本申请实施例提供一种组播报文跨卡转发方法、装置、网络设备及可读存储介质,该方法中交换卡通过接收待转发的组播报文后,从所述组播报文中获取组播目的mac地址,然后获取与所述组播目的mac地址对应的目的板卡组,将所述组播报文复制到所述目的板卡组的对应端口中,然后每个所述对应端口依据配置的访问控制列表acl,将所述组播报文转发到目的板卡。本方案中,交换卡通过获取与组播目的mac地址对应的目的板卡组,然后将组播报文发送至目的板卡组中的目的板卡,由此在设置组播mac地址时,一个板卡组只对应一个组播mac地址,每个板卡组包括至少两张板卡,由此,节省了交换卡中交换芯片的组播地址表项资源,可以实现不依赖于交换芯片组播地址表项大小的数据跨卡转发,在交换卡的交换芯片资源有限的情况下实现了资源的整合利用,提高了系统的可扩展性。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1