一种广播报文的转发方法及系统与流程

文档序号:17071395发布日期:2019-03-08 23:20阅读:418来源:国知局
一种广播报文的转发方法及系统与流程

本发明实施例涉及通信技术领域,具体涉及一种广播报文的转发方法及系统。



背景技术:

堆叠系统,即虚拟交换单元(virtualswitchunit,vsu),是将多台物理交换设备通过虚拟化技术组合成一台虚拟交换设备,堆叠系统可简化网络设备的配置复杂度,提供高可靠性、高冗余的网络。堆叠口,即hg口,是一种用于芯片间互联的端口类型。堆叠链路,即虚拟交换链路(virtualswitchlink,vsl),是指vsu中连接相邻两台物理交换设备间的链路。vsl链路两端的端口称为vsl口,其端口类型为hg口。在机箱式vsu中,为了保证更高的可靠性,vsl链路往往部署在不同的板卡上。图1为堆叠系统vsl链路示意图,如图1所示,堆叠系统包括交换1和交换机2,交换机1的6个卡槽分别为1、2、3、4、5和6,交换机2的6个卡槽分别为10、11、12、13、14和15,交换机1与交换机2之间有三条vsl链路:vsl1,对应的vsl口为2和11;vsl2对应的vsl口为4和13;vsl3,对应的vsl口为6和15。

物理trunk,是指硬件上将多个hg口进行组合,形成的链路聚合口。物理trunk可以有效的提升硬件芯片间的有效带宽,同时达到互相备份的高可靠性的目的。由于目前箱式交换机不支持不同芯片上的vsl口组成物理trunk,只能简单的基于报文的源目的信息进行处理,导致跨机箱流量无法很好的均衡到多条vsl链路上,在大流量的场景下,会出现部分vsl链路带宽不足的问题。特别的,对于广播报文,由于报文出口并不唯一,均衡效果更差。面对当前网络设备日益增多的流量,堆叠系统的跨设备广播流量均衡问题急需解决。

由于广播流量的转发行为是在对应的虚拟局域网(virtuallocalareanetwork,vlan)内泛洪,而有效的vlan范围是1-4094。因此,现有广播流量均衡方法是将这些vlan均匀的分布在vsl链路上,如图1所示,vlan1-vlan4094均匀分布到vsl链路vsl1、vsl2和vsl3上,可对广播流量进行简单的均衡。

然而现有方案仅基于vlan对广播报文进行均衡,即某个固定vlan的广播报文仅经过1条固定的vsl链路转发。当某一个vlan内广播报文较多时,会出现对应vsl链路的带宽不足,而其他vsl链路的带宽闲置的问题,影响报文的正常转发。



技术实现要素:

针对现有技术中的缺陷,本发明实施例提供了一种广播报文的转发方法及系统。

第一方面,本发明实施例提供一种广播报文的转发方法,包括:

接收广播报文,计算所述广播报文的哈希值;

根据哈希值与虚拟交换链路vsl的映射关系,确定所述广播报文对应的n条虚拟交换链路vsl,其中n大于等于1;

根据所述n条虚拟交换链路vsl各自对应的芯片配置的与所述哈希值对应的广播过滤表项中的转发行为,转发所述广播报文。

如上方法,可选地,所述确定所述广播报文对应的n条虚拟交换链路vsl之后,还包括:

当n大于等于2时,根据所述哈希值与虚拟交换链路vsl的映射关系,确定所述n条虚拟交换链路vsl中的第一虚拟交换链路vsl;

将所述第一虚拟交换链路vsl所在芯片中的与所述哈希值对应的广播过滤表项中的转发行为配置为允许转发;

将所述n条虚拟交换链路vsl中的除了所述第一虚拟交换链路vsl的其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的广播过滤表项中的转发行为配置为禁止转发。

如上方法,可选地,所述根据所述哈希值与虚拟交换链路vsl的映射关系,确定所述n条虚拟交换链路vsl中的第一虚拟交换链路vsl,包括:

若nh≥n,则根据链路总数均分所有哈希值,确定所述n条虚拟交换链路vsl中第一虚拟交换链路vsl,其中,n为链路总数,nh为哈希值总数。

如上方法,可选地,所述根据链路总数均分所有哈希值,确定所述n条虚拟交换链路vsl中第一虚拟交换链路vsl,包括:

根据下述公式确定每条虚拟交换链路vsl配置转发的至少一个哈希值:

yi=(i-1)+nv*j

其中,1≤i≤n,j≥0,i,j为整数,且yi≤nh,yi为第i条虚拟交换链路vsl配置的哈希值;

将配置转发所述哈希值的虚拟交换链路vsl,作为所述n条虚拟交换链路vsl中第一虚拟交换链路vsl。。

如上方法,可选地,还包括:

若判断获知虚拟交换链路vsl的链路总数n发生变化,则更新所述虚拟交换链路vsl的链路总数;

根据更新后的链路总数,更新所述哈希值与虚拟交换链路vsl的映射关系;

根据更新后的映射关系确定每条虚拟交换链路vsl所在芯片中每个哈希值对应的广播过滤表项中的预更新转发行为,将配置结果标记为未处理;

遍历变化后的虚拟交换链路vsl中所有未处理的广播过滤表项,若变化后的虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为由允许转发预更新为禁止转发,则将所述第二虚拟交换链路vsl中所述哈希值对应的第二广播过滤表项中的转发行更新为禁止转发,并将所述第二广播过滤表项中所述哈希值对应的配置结果更新为已处理;

若虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为由禁止转发预更新为允许转发,则遍历变化后的虚拟交换链路vsl中的除所述第二虚拟交换链路vsl以外的其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的已处理的所有广播过滤表项,若其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的已处理的广播过滤表项中的转发行为全部为禁止转发,则将所述第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为更新为允许转发,并将所述第二广播过滤表项中所述哈希值对应的配置结果更新为已处理。

如上方法,可选地,还包括:

若第二广播过滤表项中所述哈希值对应的配置结果为已处理,则将所述哈希值对应的配置结果通告至其他虚拟交换链路vsl。

第二方面,本发明实施例提供一种广播报文的转发系统,包括:

接收模块,用于接收广播报文,计算所述广播报文的哈希值;

映射模块,用于根据哈希值与虚拟交换链路vsl的映射关系,确定所述广播报文对应的n条虚拟交换链路vsl,其中n大于等于1;

转发模块,用于根据所述n条虚拟交换链路vsl各自对应的芯片配置的与所述哈希值对应的广播过滤表项中的转发行为,转发所述广播报文。

如上述系统,可选地,还包括:

选择模块,用于当n大于等于2时,根据所述哈希值与虚拟交换链路vsl的映射关系,确定所述n条虚拟交换链路vsl中的第一虚拟交换链路vsl;

第一配置模块,用于将所述第一虚拟交换链路vsl所在芯片中的与所述哈希值对应的广播过滤表项中的转发行为配置为允许转发;

第二配置模块,用于将所述n条虚拟交换链路vsl中的除了所述第一虚拟交换链路vsl的其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的广播过滤表项中的转发行为配置为禁止转发。

如上述系统,可选地,所述选择模块具体用于:

若nh≥n,则根据链路总数均分所有哈希值,确定所述n条虚拟交换链路vsl中第一虚拟交换链路vsl,其中,n为链路总数,nh为哈希值总数。

如上述系统,可选地,所述选择模块具体用于:

根据下述公式确定每条虚拟交换链路vsl配置转发的至少一个哈希值:

yi=(i-1)+nv*j

其中,1≤i≤n,j≥0,i,j为整数,且yi≤nh,yi为第i条虚拟交换链路vsl配置的哈希值;

将配置转发所述哈希值的虚拟交换链路vsl,作为所述n条虚拟交换链路vsl中第一虚拟交换链路vsl。

如上述系统,可选地,还包括:

链路总数更新模块,用于若判断获知虚拟交换链路vsl的链路总数n发生变化,则更新所述虚拟交换链路vsl的链路总数;

映射关系更新模块,用于根据更新后的链路总数,更新所述哈希值与虚拟交换链路vsl的映射关系;

预配置模块,用于根据更新后的映射关系确定每条虚拟交换链路vsl所在芯片中每个哈希值对应的广播过滤表项中的预更新转发行为,将配置结果标记为未处理;

第一转发行为更新模块,用于遍历变化后的虚拟交换链路vsl中所有未处理的广播过滤表项,若虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为由允许转发预更新为禁止转发,则将所述哈希值对应的第二广播过滤表项中的转发行更新为禁止转发,并将所述第二广播过滤表项中所述哈希值对应的配置结果更新为已处理;

第二转发行为更新模块,用于若虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为由禁止转发预更新为允许转发,则遍历变化后的虚拟交换链路vsl中的除所述第二虚拟交换链路vsl以外的其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的已处理的所有广播过滤表项,若其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的已处理的广播过滤表项中的转发行为全部为禁止转发,则将所述第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为更新为允许转发,并将所述第二广播过滤表项中所述哈希值对应的配置结果更新为已处理。

如上述系统,可选地,还包括:

通告模块,用于若第二广播过滤表项中所述哈希值对应的配置结果为已处理,则将所述哈希值对应的配置结果通告至其他虚拟交换链路vsl。

本发明实施例提供的广播报文的转发方法,通过广播报文的哈希值,利用芯片的广播过滤表项,将广播报文按照哈希值分配到不同的虚拟交换链路中,避开了跨芯片vsl口不能组成物理trunk的限制,实现了跨设备广播流按照哈希值进行均衡的目的,减少了虚拟交换链路因广播流量过大导致的丢包,保证了跨设备系统的稳定运行。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为堆叠系统vsl链路示意图;

图2为本发明实施例提供的广播报文的转发方法流程示意图;

图3为本发明实施例提供的广播过滤表项配置过程示意图;

图4为本发明实施例提供的广播报文的转发系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2为本发明实施例提供的广播报文的转发方法流程示意图,如图2所示,该转发方法包括:

步骤s21、接收广播报文,计算所述广播报文的哈希值;

具体地,在机箱式堆叠系统(vsu)中,当其中一个交换设备的面板口接收到报文之后,若判断报文为广播报文,则将该广播报文通过该交换设备与其他交换设备之间的vsl链路转发至其他交换设备,例如,如图1所示,当交换机1的面板口接收到广播报文之后,会将广播报文转发交换机1的三个vsl口:2、4、6中,这三个vsl口通过对应的链路vsl1、vsl2和vsl将广播报文转发至交换机2,为了解决不同交换设备间的广播流量均衡问题,与直接将广播报文转发至vsl口不同,本发明实施例中,接收到广播报文之后,首先计算广播报文的哈希值,记为hash值,例如,根据广播报文的源mac地址、目的mac地址、源ip地址、目的ip地址或tcp/udp端口号,计算广播报文的hash值,此外,目前交换机中的已有交换芯片可以直接在接收到报文之后,计算报文的hash值,因此,也可以通过硬件直接获取广播报文的hash值。

步骤s22、根据哈希值与虚拟交换链路vsl的映射关系,确定所述广播报文对应的n条虚拟交换链路vsl,其中n大于等于1;

具体地,根据用于均衡的虚拟交换链路vsl链路数和广播报文的所哈希值范围,设置哈希值与虚拟交换链路vsl的映射关系,例如,虚拟交换单元vsu中有m1条vsl链路,其中m2条vsl链路用于广播报文均衡转发(m2<m1),广播报文的哈希值范围为0~1023,则将这1024个哈希值分配到m2条vsl链路上,形成哈希值与虚拟交换链路vsl的映射关系,即每个哈希值对应m2条vsl链路,根据该映射关系,确定每条广播报文对应的n条虚拟链路vsl,表示可能转发该广播报文的n条vsl链路,其中n大于等于1。例如哈希值为1的广播报文对应的虚拟交换链路vsl为vsl1。通过哈希值对广播报文进行均衡转发,可实现vsu内跨设备广播流量更加随机的均衡到不同vsl链路上,实现vsu内以最大带宽进行广播转发。

步骤s23、根据所述n条虚拟交换链路vsl各自对应的芯片配置的与所述哈希值对应的广播过滤表项中的转发行为,转发所述广播报文。

具体地,在交换设备内部的硬件芯片上存在广播过滤表项,其功能是通过对此表项的配置,实现广播报文在物理trunk中的多个hg成员口间进行选择性转发,即1个特定的广播报文仅能从物理trunk的部分hg成员口转发。该表项的索引是报文的hash值,索引到的内容是一个端口位图,该端口位图标识了禁止报文转发的所有hg端口。在芯片上,hash值由芯片计算,该值的取值范围为0~1023,即广播过滤表项有1024条表项。在当前交换设备中,该表项用于实现同一芯片内的广播过滤功能,因此,可以通过对不同芯片上广播过滤表项的统一分配管理,实现跨芯片的hg广播均衡,进而实现vsl口的广播均衡。具体地,预先在虚拟交换链路vsl所在芯片(即链路对应的vsl口的芯片)中配置映射关系中该vsl对应的hash值对应的广播过滤表项中的转发行为,转发行为包括允许转发和禁止转发,以使得这些hash值对应的广播报文只能从其对应的一条或多条vsl链路进行转发,从而实现广播报文的均衡转发。

这样,在计算得到广播报文的哈希值之后,根据哈希值和对应的n条vsl链路中各自对应的芯片配置的与该哈希值对应的广播过滤表项中的转发行为,就可均衡转发该广播报文。

本发明实施例提供的广播报文的转发方法,通过广播报文的哈希值,利用芯片的广播过滤表项,将广播报文按照哈希值分配到不同的虚拟交换链路中,避开了跨芯片vsl口不能组成物理trunk的限制,实现了跨设备广播流按照哈希值进行均衡的目的,减少了虚拟交换链路因广播流量过大导致的丢包,保证了跨设备系统的稳定运行。

在上述实施例的基础上,进一步地,所述确定所述广播报文对应的n条虚拟交换链路vsl之后,还包括:

当n大于等于2时,根据所述哈希值与虚拟交换链路vsl的映射关系,确定所述n条虚拟交换链路vsl中的第一虚拟交换链路vsl;

将所述第一虚拟交换链路vsl所在芯片中的与所述哈希值对应的广播过滤表项中的转发行为配置为允许转发;

将所述n条虚拟交换链路vsl中的除了所述第一虚拟交换链路vsl的其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的广播过滤表项中的转发行为配置为禁止转发。

具体地,为了得到更好的均衡效果,当映射关系中某个哈希值对应的vsl链路数n大于等于2时,可以选择n条vsl链路中的其中一条链路转发该哈希值对应的广播报文,该链路记为第一虚拟交换链路vsl。具体地,可以随机选取其中一条作为第一虚拟交换链路vsl,也可以按照其他规则选取其中一条作为第一虚拟交换链路vsl。

之后将第一虚拟交换链路vsl所在芯片中与该哈希值对应的广播过滤表项中的转发行为配置为允许转发,将n条vsl链路中除第一虚拟交换链路vsl以外的其他n-1条vsl链路所在芯片中与该哈希值对应的广播过滤表项中的转发行为配置为禁止转发。

当计算得到广播报文的哈希值之后,广播报文仅从第一虚拟交换链路vsl转发,保证了一个哈希值对应的广播报文仅从一条vsl链路转发,将广播报文按照哈希值均衡分配到不同的虚拟交换链路中,实现了跨设备广播流按照哈希值进行均衡的目的,减少了虚拟交换链路因广播流量过大导致的丢包,保证了跨设备系统的稳定运行。

例如,如图1所示,图中存在三条vsl链路,分别部署在交换机1的2槽、4槽、6槽与交换机2的11槽、13槽、15槽。在vsl口创建时,会将该vsl口加入所有vlan。这样,从交换机1面板口收到的广播报文会转发到交换机1的三个vsl口。假设该广播报文的hash值为100,则在交换机1上,配置2槽的广播过滤表项中第100条表项的端口位图中对应vsl口的那一位为0,表示允许从该vsl口转发,同时配置4槽和6槽的广播过滤表项中第100条表项的端口位图中对应vsl口的那一位为1,表示禁止从4槽、6槽的vsl口转发。这样该报文就只从vsl1这条链路转发到交换机2。同样的,对于不同的广播报文,将1024个hash值均匀分散在这三个vsl链路上,保证每个hash结果只允许一个vsl口转发,这样就可以保证广播报文均衡分散在三条vsl链路上。交换机1的2、4、6三个槽位的广播过滤表项配置如表1所示:

表1交换机1的vsl槽位广播过滤表项配置表

通过表1,就可以将hash值均衡分配,从而实现跨设备间的广播流量均衡。

本发明实施例提供的广播报文的转发方法,根据广播报文的哈希值和硬件芯片中的广播过滤表项,将跨设备的广播报文均衡到所有虚拟交换链路上,降低因广播流量均衡效果差而导致的跨设备转发丢包的可能性,保证了跨设备系统的稳定运行。

在上述各实施例的基础上,进一步地,所述根据所述哈希值与虚拟交换链路vsl的映射关系,确定所述n条虚拟交换链路vsl中的第一虚拟交换链路vsl,包括:

若nh≥n,则根据链路总数均分所有哈希值,确定所述n条虚拟交换链路vsl中第一虚拟交换链路vsl,其中,n为链路总数,nh为哈希值总数。

具体地,由于广播报文的哈希值总数是固定的,当哈希值总数nh≥n时,例如,哈希值总数为1024,虚拟链路总数n为4,此时,一条vsl虚拟链路可能需要转发多个哈希值对应的广播报文,为了保证均衡转发效果,可以将这些哈希值均匀划分为链路总数个哈希值组,将每个哈希值组分配给一条vsl链路,就可确定每条vsl链路允许转发的一个或多个哈希值对应的广播报文。例如,哈希值总数为1024,链路总数n为4,则可以将哈希值等分为4等份,例如划分方式为0-255,256-511,512-767,768-1023,将每组哈希值分配给一条vsl链路,即该组哈希值对应的第一虚拟交换链路vsl。例如,哈希值0-255对应的第一虚拟交换链路为vsl1,哈希值256-511对应的第一虚拟交换链路为vsl2,哈希值512-767对应的第一虚拟交换链路为vsl3,哈希值768-1023对应的第一虚拟交换链路为vsl4,当然还可以有其他哈希值均分方法,本发明对此不做限定。确定每个哈希值对应的第一虚拟交换链路vsl之后,将第一虚拟交换链路vsl所在芯片中与该哈希值对应的广播过滤表项中的转发行为配置为允许转发,将n条vsl链路中除第一虚拟交换链路vsl以外的其他n-1条vsl链路所在芯片中与该哈希值对应的广播过滤表项中的转发行为配置为禁止转发。由于将哈希值均衡分配到不同的vsl链路上,实现更好的广播报文跨芯片转发的均衡效果。

本发明实施例提供的广播报文的转发方法,通过广播报文的哈希值,利用芯片的广播过滤表项,将广播报文按照哈希值均衡分配到不同的虚拟交换链路中,实现了跨设备广播流按照哈希值进行均衡的目的,减少了虚拟交换链路因广播流量过大导致的丢包,保证了跨设备系统的稳定运行。

在上述各实施例的基础上,进一步地,所述根据链路总数均分所有哈希值,确定所述n条虚拟交换链路vsl中第一虚拟交换链路vsl,包括:

根据下述公式确定每条虚拟交换链路vsl配置转发的至少一个哈希值:

yi=(i-1)+nv*j

其中,1≤i≤n,j≥0,i,j为整数,且yi≤nh,yi为第i条虚拟交换链路vsl配置的哈希值;

将配置转发所述哈希值的虚拟交换链路vsl,作为所述n条虚拟交换链路vsl中第一虚拟交换链路vsl。

具体地,对于一个拥有n条虚拟交换链路vsl的vsu环境,第i(1≤i≤n,i为整数)条vsl链路配置转发的哈希值为:

yi=(i-1)+nv*j

其中j=0,1,…,且(i-1)+nv*j≤nh,之后将配置转发该哈希值的vsl链路作为该哈希值对应的第一虚拟交换链路vsl,按照该算法配置n条vsl链路的转发行为之后,广播报文即可按照hash结果,自动均衡到n条vsl链路上,实现带宽的最大利用。在实际应用中,还需配置vsl口收到的非本机箱的报文不再从vsl口转发出去,以防环路出现。

例如,哈希值总数为1024,链路总数为3,则vsl1配置转发的哈希值为0,3,6,9,…,1023,vsl2配置转发的哈希值为1,4,7,10,…,1021,vsl3配置转发的哈希值为2,5,8,11,…,1022。

本发明实施例提供的广播报文的转发方法,根据广播报文的哈希值,将跨设备的广播报文均衡到所有虚拟交换链路上,降低因广播流量均衡效果差而导致的跨设备转发丢包的可能性,保证了跨设备系统的稳定运行。

在上述各实施例的基础上,进一步地,所述方法还包括:

若判断获知虚拟交换链路vsl的链路总数n发生变化,则更新所述虚拟交换链路vsl的链路总数;

根据更新后的链路总数,更新所述哈希值与虚拟交换链路vsl的映射关系;

根据更新后的映射关系确定每条虚拟交换链路vsl所在芯片中每个哈希值对应的广播过滤表项中的预更新转发行为,将配置结果标记为未处理;

遍历变化后的虚拟交换链路vsl中所有未处理的广播过滤表项,若变化后的虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为由允许转发预更新为禁止转发,则将所述第二广播过滤表项中所述哈希值对应的第二广播过滤表项中的转发行更新为禁止转发,并将所述第二广播过滤表项中所述哈希值对应的配置结果更新为已处理;

若虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为由禁止转发预更新为允许转发,则遍历变化后的虚拟交换链路vsl中的除所述第二虚拟交换链路vsl以外的其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的已处理的所有广播过滤表项,若其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的已处理的广播过滤表项中的转发行为全部为禁止转发,则将所述第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为更新为允许转发,并将所述第二广播过滤表项中所述哈希值对应的配置结果更新为已处理。

具体地,在实际应用过程中,由于vsl链路建立的时间并不相同,需要考虑vsl链路变动时的配置流程。当vsl链路变动时,若采用vlan进行广播均衡,对vlan成员的变动配置耗时较多,会出现较长时间的丢包。为了减少配置耗时避免较长时间的丢包,在本发明实施例中,vsl链路变动分为vsl加入和vsl退出,两种事件的处理逻辑均相同:

当映射关系中哈希值对应的虚拟交换链路vsl的链路总数n发生变化时,更新vsl链路的链路总数,将更新后的链路总数记为n1,根据更新后的链路总数n1,重新配置哈希值与虚拟交换链路vsl的映射关系,根据更新后的映射关系确定每条虚拟交换链路vsl所在芯片中每个哈希值对应的广播过滤表项中的预更新转发行为,需要注意的是,当确定预更新转发行为后,并不能直接配置到硬件中。为了避免同一报文的多份转发,需始终保持1个hash值只能从1条vsl链路转发,当一个vsl链路的广播过滤表项中的预更新转发行为确定时,并不能保证配置结果配置到硬件后不出现多份转发。因此,需要一定的算法来控制时序。

具体地,根据更新后的映射关系确定每条虚拟交换链路vsl所在芯片中每个哈希值对应的广播过滤表项中的预更新转发行为之后,首先将配置结果标记为未处理,之后遍历虚拟交换链路vsl中所有的未处理广播过滤表项,若变化后的虚拟交换链路vsl中的某个虚拟交链路,记为第二虚拟交换链路vsl,所在芯片中的与某个哈希值对应的第二广播过滤表项中的转发行为由允许转发预更新为禁止转发,则将该第二广播过滤表项中该哈希值对应的第二广播过滤表项中的转发行更新为禁止转发,并将该第二广播过滤表项中该哈希值对应的配置结果更新为已处理;如果虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与某个哈希值对应的第二广播过滤表项中的转发行为由禁止转发预更新为允许转发,则遍历变化后的虚拟交换链路vsl中的除该第二虚拟交换链路vsl以外的其他虚拟交换链路vsl所在芯片中的与该哈希值对应的已处理的所有广播过滤表项,若其他虚拟交换链路vsl所在芯片中的与该哈希值对应的已处理的广播过滤表项中的转发行为全部为禁止转发,则将该第二虚拟交换链路vsl所在芯片中的与该哈希值对应的第二广播过滤表项中的转发行为更新为允许转发,并将该第二广播过滤表项中该哈希值对应的配置结果更新为已处理。否则跳过该广播过滤表项,继续处理下一条未处理表项,这样,仅在n1条vsl链路中,每个vsl链路对应的广播过滤表项中某个哈希值对应的配置结果均为禁止转发时,才允许将某个vsl链路中的广播过滤表项中该哈希值对应的配置结果更新为允许转发,保证在vsl链路发生变化时一个哈希值对应的广播报文仍然仅能从一条vsl进行转发,减少vsl链路变动导致的广播丢包。

本发明实施例提供的广播报文的转发方法,根据广播报文的哈希值和硬件芯片中的广播过滤表项,将跨设备的广播报文均衡到所有虚拟交换链路上,在vsl链路变动时,取消vsl口的vlan成员变动,缩短配置耗时,减少了vsl链路变动导致的广播丢包,保证了跨设备系统的稳定运行。

在上述各实施例的基础上,进一步地,所述方法还包括:

若第二广播过滤表项中所述哈希值对应的配置结果为已处理,则将所述哈希值对应的配置结果通告至其他虚拟交换链路vsl。

具体地,当第二广播过滤表项中哈希值对应的配置结果为已处理后,将广播过滤表项已经配置到硬件中,此时将哈希值对应的配置结果通告至其他虚拟交换链路vsl,其他vsl链路便可获知每个已处理的广播过滤表项。

图3为本发明实施例提供的广播过滤表项配置过程示意图,如图3所示,该配置过程包括:

步骤s31、判断哈希值对应的n条vsl链路中,vsl链路数是否发生变化,若是则执行步骤s32,否则,不处理。在vsl建联时,根据建立通告确定添加vsl链路,当vsl链路退出时,根据退出通告确定有vsl链路删除;

步骤s32、重新基于vsl链路数目n1确定每条vsl链路所在芯片中每个哈希值对应的广播过滤表项中的配置信息,即预更新发行为,并将配置的结果标识为未处理;

步骤s33、遍历所有未处理广播过滤表项,判断未处理广播过滤表项中某个哈希值对应的广播过滤表项的预更新发行为为允许转发,若是,则执行步骤s34,否则执行步骤s35;

步骤s34、判断已处理的广播过滤表项中,该哈希值对应的其他广播过滤表项的预更新发行为是否都为禁止转发,即对于某个hash值来说,,其对应的其他广播过滤表项的预更新转发行为是否均禁止转发,若是,则执行步骤s36,否则跳过该表项,执行步骤s37,vsl链路通过接收其他vsl链路通告获取;

步骤s35、判断该表项的预更新转发行为是否为由允许转发预更改为禁止转发,若是,则执行步骤s36;

步骤s36、将预更改的广播过滤表项进行配置,并将配置的结果通告给其他vsl链路,同时将表项标识为已处理;

步骤s37、判断所有广播过滤表项是否均配置完成,即是否还有未处理的表项,若是,则继续执行步骤s33。

其中,每次遍历过后,可以等待10ms再进行下一次遍历,以防cpu占用过高。通过上述流程,vsu系统内的跨设备广播流就会依据其hash值,在所有vsl链路上进行均衡,均衡效果可通过调整hash算法来控制。除vsu系统外,其他涉及到hg口之间的跨芯片广播均衡的场景,均可利用本发明实施例提供的广播均衡转发方法,实现广播流量的均衡。

本发明实施例提供的广播报文的转发方法,根据广播报文的哈希值和硬件芯片中的广播过滤表项,将跨设备的广播报文均衡到所有虚拟交换链路上,对跨设备的广播流量进行均衡,减少vsl链路因广播流量过大导致的丢包,保证系统更稳定的运行。同时,减少vsl链路变动时的配置时间,降低丢包数。

图4为本发明实施例提供的广播报文的转发系统的结构示意图,如图4所示,该转发系统包括:接收模块41、映射模块42和转发模块43,其中:

接收模块41用于接收广播报文,计算所述广播报文的哈希值;映射模块42用于根据哈希值与虚拟交换链路vsl的映射关系,确定所述广播报文对应的n条虚拟交换链路vsl,其中n大于等于1;转发模块43用于根据所述n条虚拟交换链路vsl各自对应的芯片配置的与所述哈希值对应的广播过滤表项中的转发行为,转发所述广播报文。

具体地,接收模块41接收广播报文,计算广播报文的哈希值,映射模块42预先设置哈希值与虚拟交换链路vsl的映射关系,根据计算出的哈希值和映射关系,确定广播报文对应的n条虚拟交换链路vsl,转发模块43预先在n条虚拟交换链路vsl各自对应芯片配置该哈希值对应的广播过滤表项中的转发行为,包括允许转发和禁止转发。根据n条虚拟交换链路vsl中各自对应芯片配置的该哈希值对应的广播过滤表项中的转发行为,转发该广播报文。本发明实施例提供的系统,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。

本发明实施例提供的广播报文的转发系统,通过广播报文的哈希值,利用芯片的广播过滤表项,将广播报文按照哈希值均衡分配到不同的虚拟交换链路中,避开了跨芯片vsl口不能组成物理trunk的限制,实现了跨设备广播流按照哈希值进行均衡的目的,减少了虚拟交换链路因广播流量过大导致的丢包,保证了跨设备系统的稳定运行。

在上述实施例的基础上,进一步地,还包括:

选择模块,用于当n大于等于2时,根据所述哈希值与虚拟交换链路vsl的映射关系,确定所述n条虚拟交换链路vsl中的第一虚拟交换链路vsl;

第一配置模块,用于将所述第一虚拟交换链路vsl所在芯片中的与所述哈希值对应的广播过滤表项中的转发行为配置为允许转发;

第二配置模块,用于将所述n条虚拟交换链路vsl中的除了所述第一虚拟交换链路vsl的其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的广播过滤表项中的转发行为配置为禁止转发。

具体地,当映射关系中某个哈希值对应的vsl链路数n大于等于2时,选择模块可以选择n条vsl链路中的其中一条链路转发该哈希值对应的广播报文,该链路记为第一虚拟交换链路vsl。具体地,选择模块可以随机选取其中一条作为第一虚拟交换链路vsl,也可以按照其他规则选取其中一条作为第一虚拟交换链路vsl。之后第一配置模块将第一虚拟交换链路vsl所在芯片中与该哈希值对应的广播过滤表项中的转发行为配置为允许转发,第二配置模块将n条vsl链路中除第一虚拟交换链路vsl以外的其他n-1条vsl链路所在芯片中与该哈希值对应的广播过滤表项中的转发行为配置为禁止转发。

当计算得到广播报文的哈希值之后,广播报文仅从第一虚拟交换链路vsl转发,保证了一个哈希值对应的广播报文仅从一条vsl链路转发,将广播报文按照哈希值均衡分配到不同的虚拟交换链路中,实现了跨设备广播流按照哈希值进行均衡的目的,减少了虚拟交换链路因广播流量过大导致的丢包,保证了跨设备系统的稳定运行。

在上述各实施例的基础上,进一步地,所述选择模块具体用于:

若nh≥n,则根据链路总数均分所有哈希值,确定所述n条虚拟交换链路vsl中第一虚拟交换链路vsl,其中,n为链路总数,nh为哈希值总数。

具体地,由于广播报文的哈希值总数是固定的,当哈希值总数nh≥n时,例如,哈希值总数为1024,虚拟链路总数n为4,此时,一条vsl虚拟链路可能需要转发多个哈希值对应的广播报文,为了保证均衡转发效果,可以将这些哈希值均匀划分为链路总数个哈希值组,将每个哈希值组分配给一条vsl链路,就可确定每条vsl链路允许转发的一个或多个哈希值对应的广播报文。确定每个哈希值对应的第一虚拟交换链路vsl之后,将第一虚拟交换链路vsl所在芯片中与该哈希值对应的广播过滤表项中的转发行为配置为允许转发,将n条vsl链路中除第一虚拟交换链路vsl以外的其他n-1条vsl链路所在芯片中与该哈希值对应的广播过滤表项中的转发行为配置为禁止转发。由于将哈希值均衡分配到不同的vsl链路上,实现更好的广播报文跨芯片转发的均衡效果。

在上述各实施例的基础上,进一步地,

所述选择模块具体用于:

根据下述公式确定每条虚拟交换链路vsl配置转发的至少一个哈希值:

yi=(i-1)+nv*j

其中,1≤i≤n,j≥0,i,j为整数,且yi≤nh,yi为第i条虚拟交换链路vsl配置的哈希值;

将配置转发所述哈希值的虚拟交换链路vsl,作为所述n条虚拟交换链路vsl中第一虚拟交换链路vsl。

具体地,对于一个拥有n条虚拟交换链路vsl的vsu环境,第i(1≤i≤n,i为整数)条vsl链路配置转发的哈希值为:

yi=(i-1)+nv*j

其中j=0,1,…,且(i-1)+nv*j≤nh,之后将配置转发该哈希值的vsl链路作为该哈希值对应的第一虚拟交换链路vsl,按照该算法配置n条vsl链路的转发行为之后,广播报文即可按照hash结果,自动均衡到n条vsl链路上,实现带宽的最大利用。在实际应用中,还需配置vsl口收到的非本机箱的报文不再从vsl口转发出去,以防环路出现。本发明实施例提供的系统,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。

本发明实施例提供的广播报文的转发系统,根据广播报文的哈希值,将跨设备的广播报文均衡到所有虚拟交换链路上,降低因广播流量均衡效果差而导致的跨设备转发丢包的可能性,保证了跨设备系统的稳定运行。

在上述各实施例的基础上,进一步地,该系统还包括:

链路总数更新模块,用于若判断获知虚拟交换链路vsl的链路总数n发生变化,则更新所述虚拟交换链路vsl的链路总数;

映射关系更新模块,用于根据更新后的链路总数,更新所述哈希值与虚拟交换链路vsl的映射关系;

预配置模块,用于根据更新后的映射关系确定每条虚拟交换链路vsl所在芯片中每个哈希值对应的广播过滤表项中的预更新转发行为,将配置结果标记为未处理;

第一转发行为更新模块,用于遍历变化后的虚拟交换链路vsl中所有未处理的广播过滤表项,若虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为由允许转发预更新为禁止转发,则将所述哈希值对应的第二广播过滤表项中的转发行更新为禁止转发,并将所述第二广播过滤表项中所述哈希值对应的配置结果更新为已处理;

第二转发行为更新模块,用于若虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为由禁止转发预更新为允许转发,则遍历变化后的虚拟交换链路vsl中的除所述第二虚拟交换链路vsl以外的其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的已处理的所有广播过滤表项,若其他虚拟交换链路vsl所在芯片中的与所述哈希值对应的已处理的广播过滤表项中的转发行为全部为禁止转发,则将所述第二虚拟交换链路vsl所在芯片中的与所述哈希值对应的第二广播过滤表项中的转发行为更新为允许转发,并将所述第二广播过滤表项中所述哈希值对应的配置结果更新为已处理。

具体地,当虚拟交换链路vsl的链路总数n发生变化时,链路总数更新模块更新vsl链路的链路总数,将更新后的链路总数记为n1,映射关系更新模块根据更新后的链路总数n1,重新配置哈希值与虚拟交换链路vsl的映射关系,预配置模块根据更新后的映射关系确定每条虚拟交换链路vsl所在芯片中每个哈希值对应的广播过滤表项中的预更新转发行为,将配置结果标记为未处理,之后第一转发行为更新模块遍历虚拟交换链路vsl中所有的未处理广播过滤表项,若变化后的虚拟交换链路vsl中的某个虚拟交链路,记为第二虚拟交换链路vsl,所在芯片中的与某个哈希值对应的第二广播过滤表项中的转发行为由允许转发预更新为禁止转发,则将该第二广播过滤表项中该哈希值对应的第二广播过滤表项中的转发行更新为禁止转发,并将该第二广播过滤表项中该哈希值对应的配置结果更新为已处理;如果虚拟交换链路vsl中的第二虚拟交换链路vsl所在芯片中的与某个哈希值对应的第二广播过滤表项中的转发行为由禁止转发预更新为允许转发,则第二转发行为更新模块遍历变化后的虚拟交换链路vsl中的除该第二虚拟交换链路vsl以外的其他虚拟交换链路vsl所在芯片中的与该哈希值对应的已处理的所有广播过滤表项,若其他虚拟交换链路vsl所在芯片中的与该哈希值对应的已处理的广播过滤表项中的转发行为全部为禁止转发,则将该第二虚拟交换链路vsl所在芯片中的与该哈希值对应的第二广播过滤表项中的转发行为更新为允许转发,并将该第二广播过滤表项中该哈希值对应的配置结果更新为已处理。否则跳过该广播过滤表项,继续处理下一条未处理表项,本发明实施例提供的系统,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。

本发明实施例提供的广播报文的转发系统,根据广播报文的哈希值和硬件芯片中的广播过滤表项,将跨设备的广播报文均衡到所有虚拟交换链路上,在vsl链路变动时,取消vsl口的vlan成员变动,缩短配置耗时,减少了vsl链路变动导致的广播丢包,保证了跨设备系统的稳定运行。

在上述各实施例的基础上,进一步地,该系统还包括:

通告模块,用于若第二广播过滤表项中所述哈希值对应的配置结果为已处理,则将所述哈希值对应的配置结果通告至其他虚拟交换链路vsl。

具体地,当哈希值对应的广播过滤表项已经配置到硬件中后,其对应的配置结果标记为已处理,通告模块将哈希值对应的配置结果通告至其他虚拟交换链路vsl,其他vsl链路便可获知每个已处理的广播过滤表项。本发明实施例提供的系统,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。

本发明实施例提供的广播报文的转发系统,根据广播报文的哈希值和硬件芯片中的广播过滤表项,将跨设备的广播报文均衡到所有虚拟交换链路上,对跨设备的广播流量进行均衡,减少vsl链路因广播流量过大导致的丢包,保证系统更稳定的运行。同时,减少vsl链路变动时的配置时间,降低丢包数。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的系统等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。

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