堆叠链路管理方法、装置及网络设备转让专利

申请号 : CN201010544744.1

文献号 : CN102006184B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘忠东刘茗马晓靖施小郎

申请人 : 福建星网锐捷网络有限公司

摘要 :

本发明提供一种堆叠链路管理方法、装置及网络设备,方法包括:在堆叠交换机与所述堆叠交换机所在堆叠系统中相邻堆叠交换机之间建立两条或两条以上堆叠链路;根据所述两条或两条以上堆叠链路,建立堆叠邻居表,所述堆叠邻居表中包括所述堆叠链路对应的MAC地址和堆叠口信息;根据所述堆叠邻居表中的MAC地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定一条堆叠链路为所述堆叠交换机与所述相邻堆叠交换机之间的数据传输链路。本发明采用多条堆叠链路实现对数据传输链路的备份,解决了现有技术中单一堆叠链路故障时导致出现堆叠分裂的问题,进而提高了堆叠系统运行的稳定性。

权利要求 :

1.一种堆叠链路管理方法,其特征在于,包括:

在堆叠交换机与所述堆叠交换机所在堆叠系统中相邻堆叠交换机之间建立两条或两条以上堆叠链路;

所述堆叠交换机根据所述两条或两条以上堆叠链路,建立堆叠邻居表,所述堆叠邻居表中包括所述堆叠链路对应的媒体访问控制地址和堆叠口信息;

所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定一条堆叠链路为所述堆叠交换机与所述相邻堆叠交换机之间的数据传输链路。

2.根据权利要求1所述的堆叠链路管理方法,其特征在于,还包括:

所述堆叠交换机检测所述数据传输链路的第一堆叠口的状态;

所述堆叠交换机在检测到所述数据传输链路的第一堆叠口为断开状态时,根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定另一条堆叠链路为所述堆叠交换机与所述相邻堆叠交换机之间的数据传输链路。

3.根据权利要求1或2所述的堆叠链路管理方法,其特征在于,所述堆叠交换机根据所述两条或两条以上堆叠链路,建立堆叠邻居表包括:所述堆叠交换机接收所述相邻堆叠交换机通过所述两条或两条以上堆叠链路发送的第一堆叠协议报文,所述第一堆叠协议报文包括所述相邻堆叠交换机的媒体访问控制地址和所述两条或两条以上堆叠链路的第二堆叠口的标识;

所述堆叠交换机根据所述第一堆叠协议报文和接收所述第一堆叠协议报文的第一堆叠口,建立所述堆叠邻居表。

4.根据权利要求3所述的堆叠链路管理方法,其特征在于,还包括:

所述堆叠交换机通过所述两条或两条以上堆叠链路向所述相邻堆叠交换机发送第一堆叠协议报文,以供所述相邻堆叠交换机建立所述相邻堆叠交换机的堆叠邻居表;所述第一堆叠协议报文包括所述堆叠交换机的媒体访问控制地址和所述两条或两条以上堆叠链路的第一堆叠口的标识。

5.根据权利要求1或2所述的堆叠链路管理方法,其特征在于,所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定一条堆叠链路为所述堆叠交换机与所述相邻堆叠交换机之间的数据传输链路包括:所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,确定第一发送堆叠口;

所述堆叠交换机通过所述第一发送堆叠口,向所述相邻堆叠交换机发送第二堆叠协议报文,所述第二堆叠协议报文包括所述第一发送堆叠口的标识;

所述堆叠交换机接收所述相邻堆叠交换机根据所述第二堆叠协议报文发送的第二堆叠响应报文,并根据所述第二堆叠响应报文更新所述堆叠邻居表中的堆叠口信息;

所述堆叠交换机确定所述第一发送堆叠口所在的堆叠链路为所述堆叠交换机和所述相邻堆叠交换机之间的数据传输链路。

6.根据权利要求1或2所述的堆叠链路管理方法,其特征在于,所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定一条堆叠链路为所述堆叠交换机和所述相邻堆叠交换机之间的数据传输链路包括:所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,接收所述相邻堆叠交换机发送的第二堆叠协议报文,所述第二堆叠协议报文包括第一发送堆叠口的标识;所述第一发送堆叠口是由所述相邻堆叠交换机根据所述相邻堆叠交换机的堆叠邻居表中的媒体访问控制地址和堆叠口信息确定的;

所述堆叠交换机根据所述第二堆叠协议报文,更新所述堆叠邻居表中的堆叠口信息,并根据所述第二堆叠协议报文向所述相邻堆叠交换机发送第二堆叠响应报文,以供所述相邻堆叠交换机确定所述数据传输链路;

所述堆叠交换机确定所述第一发送堆叠口所在的堆叠链路为所述堆叠交换机和所述相邻堆叠交换机之间的数据传输链路。

7.根据权利要求2所述的堆叠链路管理方法,其特征在于,所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定另一条堆叠链路为所述堆叠交换机与所述相邻堆叠交换机之间的数据传输链路包括:所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,确定第二发送堆叠口;

所述堆叠交换机通过所述第二发送堆叠口,向所述相邻堆叠交换机发送第三堆叠协议报文,所述第三堆叠协议报文包括所述第二发送堆叠口的标识;

所述堆叠交换机接收所述相邻堆叠交换机根据所述第三堆叠协议报文发送的第三堆叠响应报文,并根据所述第三堆叠响应报文更新所述堆叠邻居表中的堆叠口信息;

所述堆叠交换机确定所述第二发送堆叠口所在的堆叠链路为所述堆叠交换机和所述相邻堆叠交换机之间的数据传输链路。

8.根据权利要求2所述的堆叠链路管理方法,其特征在于,所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定另一条堆叠链路为所述堆叠交换机与所述相邻堆叠交换机之间的数据传输链路包括:所述堆叠交换机根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,接收所述相邻堆叠交换机发送的第三堆叠协议报文,所述第三堆叠协议报文包括第二发送堆叠口的标识;所述第二发送堆叠口是由所述相邻堆叠交换机根据所述相邻堆叠交换机的堆叠邻居表中的媒体访问控制地址和堆叠口信息确定的;

所述堆叠交换机根据所述第三堆叠协议报文,更新所述堆叠邻居表中的堆叠口信息,并根据所述第三堆叠协议报文向所述相邻堆叠交换机发送第三堆叠响应报文,以供所述相邻堆叠交换机确定所述数据传输链路;

所述堆叠交换机确定所述第二发送堆叠口所在的堆叠链路为所述堆叠交换机和所述相邻堆叠交换机之间的数据传输链路。

9.一种堆叠链路管理装置,其特征在于,包括:

链路建立模块,用于在所述堆叠链路管理装置与所述堆叠链路管理装置所在堆叠系统中相邻堆叠链路管理装置之间建立两条或两条以上堆叠链路;

邻居表建立模块,用于根据所述两条或两条以上堆叠链路,建立堆叠邻居表,所述堆叠邻居表中包括所述堆叠链路对应的媒体访问控制地址和堆叠口信息;

第一链路确定模块,用于根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定一条堆叠链路为所述堆叠链路管理装置与所述相邻堆叠链路管理装置之间的数据传输链路。

10.根据权利要求9所述的堆叠链路管理装置,其特征在于,还包括:

状态检测模块,用于检测所述数据传输链路的第一堆叠口的状态;

第二链路确定模块,用于在所述检测模块检测到所述数据传输链路的第一堆叠口为断开状态时,根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定另一条堆叠链路为所述堆叠链路管理装置与所述相邻堆叠链路管理装置之间的数据传输链路。

11.根据权利要求9或10所述的堆叠链路管理装置,其特征在于,所述邻居表建立模块包括:第一协议报文接收单元,用于接收所述相邻堆叠链路管理装置通过所述两条或两条以上堆叠链路发送的第一堆叠协议报文,所述第一堆叠协议报文包括所述相邻堆叠链路管理装置的媒体访问控制地址和所述两条或两条以上堆叠链路的第二堆叠口的标识;

邻居表建立单元,用于根据所述第一堆叠协议报文和接收所述第一堆叠协议报文的第一堆叠口,建立所述堆叠邻居表。

12.根据权利要求11所述的堆叠链路管理装置,其特征在于,还包括:

报文发送模块,用于通过两条或两条以上堆叠链路向所述相邻堆叠链路管理装置发送第一堆叠协议报文,以供所述相邻堆叠链路管理装置建立所述相邻堆叠链路管理装置的堆叠邻居表;所述第一堆叠协议报文包括所述堆叠链路管理装置的媒体访问控制地址和所述两条或两条以上堆叠链路的第一堆叠口的标识。

13.根据权利要求9或10所述的堆叠链路管理装置,其特征在于,所述第一链路确定模块包括:第一堆叠口确定单元,用于根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,确定第一发送堆叠口;

第一协议报文发送单元,用于通过所述第一发送堆叠口,向所述相邻堆叠链路管理装置发送第二堆叠协议报文,所述第二堆叠协议报文包括所述第一发送堆叠口的标识;

第一响应报文接收单元,用于接收所述相邻堆叠链路管理装置根据所述第二堆叠协议报文发送的第二堆叠响应报文;

第一信息更新单元,用于根据所述第二堆叠响应报文更新所述堆叠邻居表中的堆叠口信息;

第一链路确定单元,用于确定所述第一发送堆叠口所在的堆叠链路为所述堆叠链路管理装置和所述相邻堆叠链路管理装置之间的数据传输链路。

14.根据权利要求9或10所述的堆叠链路管理装置,其特征在于,所述第一链路确定模块包括:第二协议报文接收单元,用于根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,接收所述相邻堆叠链路管理装置发送的第二堆叠协议报文,所述第二堆叠协议报文包括第一发送堆叠口的标识;所述第一发送堆叠口是由所述相邻堆叠链路管理装置根据所述相邻堆叠链路管理装置的堆叠邻居表中的媒体访问控制地址和堆叠口信息确定的;

第二信息更新单元,用于根据所述第二堆叠协议报文,更新所述堆叠邻居表中的堆叠口信息,并根据所述第二堆叠协议报文向所述相邻堆叠链路管理装置发送第二堆叠响应报文,以供所述相邻堆叠链路管理装置确定所述数据传输链路;

第二链路确定单元,用于确定所述第一发送堆叠口所在的堆叠链路为所述堆叠链路管理装置和所述相邻堆叠链路管理装置之间的数据传输链路。

15.根据权利要求10所述的堆叠链路管理装置,其特征在于,所述第二链路确定模块包括:第二堆叠口确定单元,用于根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,确定第二发送堆叠口;

第二协议报文发送单元,通过所述第二发送堆叠口,向所述相邻堆叠链路管理装置发送第三堆叠协议报文,所述第三堆叠协议报文包括所述第二发送堆叠口的标识;

第二响应报文接收单元,用于接收所述相邻堆叠链路管理装置根据所述第三堆叠协议报文发送的第三堆叠响应报文;

第三信息更新单元,用于根据所述第三堆叠响应报文更新所述堆叠邻居表中的堆叠口信息;

第三链路确定单元,用于确定所述第二发送堆叠口所在的堆叠链路为所述堆叠链路管理装置和所述相邻堆叠链路管理装置之间的数据传输链路。

16.根据权利要求10所述的堆叠链路管理装置,其特征在于,所述第二链路确定模块包括:第三协议报文接收单元,用于根据所述堆叠邻居表中的媒体访问控制地址和堆叠口信息,接收所述相邻堆叠链路管理装置发送的第三堆叠协议报文,所述第三堆叠协议报文包括第二发送堆叠口的标识;所述第二发送堆叠口是由所述相邻堆叠链路管理装置根据所述相邻堆叠链路管理装置的堆叠邻居表中的媒体访问控制地址和堆叠口信息确定的;

第四信息更新单元,用于根据所述第三堆叠协议报文,更新所述堆叠邻居表中的堆叠口信息,并根据所述第三堆叠协议报文向所述相邻堆叠链路管理装置发送第三堆叠响应报文,以供所述相邻堆叠链路管理装置确定所述数据传输链路;

第四链路确定单元,用于确定所述第二发送堆叠口所在的堆叠链路为所述堆叠链路管理装置和所述相邻堆叠链路管理装置之间的数据传输链路。

17.一种包括权利要求9-16任一项所述的堆叠链路管理装置的网络设备。

说明书 :

堆叠链路管理方法、装置及网络设备

技术领域

[0001] 本发明涉及交换机堆叠技术,尤其涉及一种堆叠链路管理方法、装置及网络设备。

背景技术

[0002] 随着宽带应用的普及以及网络规模的不断增长,网络的整体速度不断提高,大吞吐量数据交换和各种智能应用的需要也日益增加。为了满足大型网络对端口数量的要求,一般可以利用交换机的堆叠技术将多台堆叠交换机连接起来组成一个堆叠系统。其中,堆叠交换机指具有堆叠端口的交换机,交换机的堆叠是指通过线缆将堆叠交换机的堆叠端口连接起来,以实现单台交换机端口数的扩充。
[0003] 堆叠系统最常用的拓扑结构为“菊花链”拓扑,菊花链,,拓扑有两种结构:环型拓扑和链型拓扑。图1为现有技术环型拓扑的堆叠系统的结构示意图,如图1所示,图1中的A13和A14、B11和B12、C13和C14、D11和D12、E11和E12分别为堆叠交换机A、堆叠交换机B、堆叠交换机C、堆叠交换机D和堆叠交换机E的堆叠端口。图2为现有技术链型拓扑的堆叠系统的结构示意图,如图2所示,图2中的A23、B23和B24、C21和C22、D21和D22、E21分别为堆叠交换机A、堆叠交换机B、堆叠交换机C、堆叠交换机D和堆叠交换机E的堆叠端口。从图1和图2中可以看出,环型拓扑的堆叠系统中每个堆叠交换机均有两个堆叠端口;链型拓扑的堆叠系统中有两个堆叠交换机只有一个堆叠端口,除这两个堆叠交换机之外的其他堆叠交换机均有两个堆叠端口。在堆叠系统中,报文转发遵循最短路径原则。例如:在环型拓扑结构中,堆叠交换机A的报文会直接通过堆叠端口A13和堆叠端口E12发送到堆叠交换机E,而不会像链式拓扑的堆叠系统需要依次经过堆叠交换机A、堆叠交换机B、堆叠交换机C、堆叠交换机D再到堆叠交换机E。
[0004] 在堆叠系统中,所有交换机被视为一个整体的交换机来进行管理,也就是说,堆叠系统中所有交换机从拓扑结构上可视为一个交换机,例如:具有唯一的媒体访问控制(Media Access Control;简称为:MAC)地址、通过一个网际协议(Internet Protocol;简称为:IP)地址来管理、以及共用一份配置文件等。堆叠系统通过从中选择一个交换机作为主设备,其他交换机作为从设备;从设备隶属于主设备,由主设备负责管理整个堆叠系统,包括配置分发、协议计算等。
[0005] 但是,堆叠系统在实际运行过程经常会碰到堆叠电缆和堆叠端口之间缺乏足够的电磁接触,堆叠电缆脱落,又或堆叠模块故障等情况,上述情况将严重影响堆叠系统的稳定性和可靠性,以致使堆叠系统无法正常工作。当堆叠检测到某个堆叠端口故障(Down)时,整个堆叠系统会复位重启,并重新选举主设备。上述方式可能导致原来的堆叠系统分裂为多个子堆叠系统,由于个子堆叠系统共用一份配置文件,因此可能产生配置冲突,导致各个子堆叠系统中的设备出现网络不可用等严重故障,尤其对于像语音、视频和电子交易等关键应用上述故障是不可接受的。
[0006] 为了解决上述堆叠分裂的问题,现有技术通过多主设备检测机制来判断是否存在多个主设备冲突,并在检测到多个主设备时,只保留一个主设备,将其他主设备的网络接口设置为不可用。该方式可以解决堆叠分裂产生的配置冲突,但是,接入到网络接口被设置为不可用的网络设备的所有用户将出现长时间断网。由此可见,现有技术方案并不能很好的解决堆叠分裂问题,因此,需要一种新的技术方案来更好的解决堆叠分裂导致的配置冲突问题。

发明内容

[0007] 本发明提供一种堆叠链路管理方法、装置及网络设备,用以解决现有技术堆叠系统存在的堆叠分裂问题,提高堆叠系统运行的稳定性。
[0008] 本发明提供一种堆叠链路管理方法,包括:
[0009] 在堆叠交换机与所述堆叠交换机所在堆叠系统中相邻堆叠交换机之间建立两条或两条以上堆叠链路;
[0010] 根据所述两条或两条以上堆叠链路,建立堆叠邻居表,所述堆叠邻居表中包括所述堆叠链路对应的MAC地址和堆叠口信息;
[0011] 根据所述堆叠邻居表中的MAC地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定一条堆叠链路为所述堆叠交换机与所述相邻堆叠交换机之间的数据传输链路。
[0012] 本发明提供一种堆叠链路管理装置,包括:
[0013] 链路建立模块,用于在所述堆叠链路管理装置与所述堆叠链路管理装置所在堆叠系统中相邻堆叠链路管理装置之间建立两条或两条以上堆叠链路;
[0014] 邻居表建立模块,用于根据所述两条或两条以上堆叠链路,建立堆叠邻居表,所述堆叠邻居表中包括所述堆叠链路对应的MAC地址和堆叠口信息;
[0015] 第一链路确定模块,用于根据所述堆叠邻居表中的MAC地址和堆叠口信息,从所述两条或两条以上堆叠链路中确定一条堆叠链路为所述堆叠链路管理装置与所述相邻堆叠链路管理装置之间的数据传输链路。
[0016] 本发明提供一种网络设备,包括本发明提供的任一堆叠链路管理装置。
[0017] 本发明提供的堆叠链路管理方法、装置及网络设备,通过在堆叠交换机与相邻堆叠交换机之间建立两条或两条以上的堆叠链路,并通过堆叠邻居表对多条堆叠链路进行管理,根据堆叠邻居表中存储的堆叠链路对应的MAC地址和堆叠口信息从多条堆叠链路中确定一条作为堆叠交换机和相邻堆叠交换机之间的数据传输链路;上述方案通过堆叠邻居表对多条堆叠链路进行管理实现了在两个相邻堆叠交换机之间建立多条堆叠链路的方案,采用多条堆叠链路实现对数据传输链路的备份,以保证向两个相邻堆叠交换机至少提供一条可用的堆叠链路,解决了现有技术中单一堆叠链路故障时导致出现堆叠分裂的问题,进而提高了堆叠系统运行的稳定性。

附图说明

[0018] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019] 图1为现有技术环型拓扑的堆叠系统的结构示意图;
[0020] 图2为现有技术链型拓扑的堆叠系统的结构示意图;
[0021] 图3为本发明各实施例所基于的链型拓扑的堆叠系统的一种结构示意图;
[0022] 图4为本发明实施例一提供的堆叠链路管理方法的流程图;
[0023] 图5为本发明实施例二提供的堆叠链路管理方法的流程图;
[0024] 图6A为本发明实施例三提供的堆叠交换机建立堆叠邻居表的方法的流程图;
[0025] 图6B为本发明实施例中各堆叠协议报文的一种结构示意图;
[0026] 图7为本发明实施例四提供的堆叠交换机确定数据传输链路的方法的流程图;
[0027] 图8为本发明实施例五提供的堆叠口故障时重新确定数据传输链路的方法的流程图;
[0028] 图9A为本发明实施例六提供的一种环型拓扑的堆叠系统的结构示意图;
[0029] 图9B为本发明实施例六提供的堆叠链路管理方法的流程图;
[0030] 图10为本发明实施例七提供的堆叠链路管理装置的结构示意图;
[0031] 图11为本发明实施例八提供的堆叠链路管理装置的结构示意图。

具体实施方式

[0032] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 本发明技术方案是基于堆叠系统提出的,且对堆叠系统的拓扑结构不做限定。在现有技术堆叠系统中,两个相邻堆叠交换机之间仅建有一条堆叠链路,详见图1和图2所示;而在本发明各实施例的堆叠系统中,两个相邻堆叠交换机之间建立有两条或两条以上的堆叠链路,其中只有一条堆叠链路被选为数据传输链路,用于完成两个相邻堆叠交换机之间的数据传输,而其他堆叠链路作为备用堆叠链路,用于在当前数据传输链路故障时替换当前数据传输链路,以避免因数据传输链路故障时造成的堆叠系统分裂,进而克服堆叠分裂造成的配置冲突、用户长时间无法上网等问题。其中,图3为本发明各实施例所基于的链型拓扑的堆叠系统的一种结构示意图,如图3A所示,图3A中A11和A12,A21、A22、B21和B22,B31和B32分别为堆叠交换机1,堆叠交换机2和堆叠交换机3的堆叠口。其中,堆叠口A11和堆叠口A21,以及堆叠口A12和堆叠口A22构成堆叠交换机1和堆叠交换机2之间的堆叠链路11和堆叠链路12;堆叠口B21和堆叠口B31,以及堆叠口B22和堆叠口B32构成堆叠交换机2和堆叠交换机3之间的堆叠链路21和堆叠链路22。本发明以下各实施例将以图3所示的相邻两个堆叠交换机之间建立两条堆叠链路的堆叠系统为例进行说明,但是对于建立两条以上堆叠链路的链型拓扑的堆叠系统,或环型拓扑的堆叠系统,本发明技术方案同样适用。
[0034] 实施例一
[0035] 图4为本发明实施例一提供的堆叠链路管理方法的流程图。如图4所示,本实施例的堆叠链路管理方法包括:
[0036] 步骤401、在堆叠交换机与该堆叠交换机所在堆叠系统中相邻堆叠交换机之间建立两条或两条以上堆叠链路;
[0037] 结合图3,本实施例中的堆叠交换机和相邻堆叠交换机可以为图3中的堆叠交换机1与堆叠交换机2,也可以为图3中的堆叠交换机2与堆叠交换机3。其中所建立的两条或两条以上的堆叠链路可以是通过电缆或光纤线连接普通的千兆口或万兆口进行堆叠,也可以是通过专用堆叠模块和堆叠线缆进行堆叠。其中采用普通的千兆口或万兆口堆叠的方式成本低,但是提供的堆叠带宽有限;而采用专用堆叠模块和堆叠线缆堆叠的方式成本高,但所提供的带宽比较大。本实施例对堆叠的具体实现方式不作限定,本领域技术人员可以根据需要结合各种实现方式的优点自行选择。
[0038] 具体地,通过本步骤401分别在堆叠交换机1和堆叠交换机2之间建立了两条堆叠链路,即堆叠链路11和堆叠链路12;在堆叠交换机2和堆叠交换机3之间建立了两条堆叠链路,即堆叠链路21和堆叠链路22,形成图3所示的堆叠系统。
[0039] 步骤402、根据两条或两条以上堆叠链路,建立堆叠邻居表,所述堆叠邻居表中包括堆叠链路对应的MAC地址和堆叠口信息;
[0040] 其中,堆叠链路对应的MAC地址是指堆叠链路连接的堆叠交换机的和相邻堆叠交换机的MAC地址;结合图3,堆叠交换机1和堆叠交换机2之间的堆叠链路11和堆叠链路12所对应的MAC地址是指堆叠交换机1的和堆叠交换机2的MAC地址;堆叠交换机2和堆叠交换机3之间的堆叠链路21和堆叠链路22所对应的MAC地址是指堆叠交换机2的和堆叠交换机3的MAC地址。
[0041] 堆叠链路的堆叠口信息是指堆叠链路的两个堆叠口的相关信息。在本发明各实施例中将作为执行主体的堆叠交换机上的堆叠口称为第一堆叠口,而将相邻另一堆叠交换机上的堆叠口称为第二堆叠口。如图3所示,堆叠链路11的堆叠口为堆叠口A11和堆叠口A21;堆叠链路12的堆叠口为堆叠口A12和堆叠口A22;堆叠链路21的堆叠口为堆叠口B21和堆叠口B31,堆叠链路22的堆叠口为堆叠口B22和堆叠口B32。其中,以堆叠交换机1和堆叠交换机2为例,当以堆叠交换机1为基准对本发明技术方案进行说明时,堆叠口A11和堆叠口A12属于第一堆叠口,相应的堆叠口A21和堆叠口A22属于第二堆叠口。
[0042] 在本发明各实施例中堆叠口信息包括堆叠口的状态(例如:up或down)、堆叠口标识(用于区分不同堆叠口)和路由标识(用于标识堆叠口所在链路是否为当前数据传输链路)等信息。
[0043] 步骤403、根据堆叠邻居表中的MAC地址和堆叠口信息,从两条或两条以上堆叠链路中确定一条堆叠链路为堆叠交换机与相邻堆叠交换机之间的数据传输链路。
[0044] 由于堆叠邻居表中包括多条堆叠链路,因此需要确定其中一条作为数据传输链路,完成堆叠交换机和邻居堆叠交换机之间的数据传输。而由于本发明技术方案是通过堆叠交换机的MAC地址以及堆叠口的状态、标识等信息来管理堆叠链路的,因此,本实施例将上述信息作为从多条堆叠链路中选择数据传输链路的依据。在此需要说明,当管理堆叠链路时的信息发生变化时,本实施例用于选择数据传输链路的信息也可以随之发生变化,本实施例并不限于此。
[0045] 本实施例的堆叠链路管理方法,通过为两个相邻堆叠交换机建立多条堆叠链路,并通过堆叠邻居表对多条堆叠链路进行管理,从多条堆叠链路中选择一条进行数据传输,其他堆叠链路可作为备用堆叠链路。其中,通过堆叠邻居表对多条堆叠链路进行管理实现了两个相邻堆叠交换机之间存在多条堆叠链路的方案,采用多条堆叠链路实现对数据传输链路的备份,保证向两个相邻堆叠交换机至少提供一条可用的堆叠链路,解决了现有技术中单一堆叠链路故障时导致出现堆叠分裂的问题,进而提高了堆叠系统运行的稳定性。
[0046] 实施例二
[0047] 图5为本发明实施例二提供的堆叠链路管理方法的流程图。本实施例基于实施例一实现,如图5所示,本实施例的堆叠链路管理方法包括:
[0048] 步骤501、在堆叠交换机与该堆叠交换机所在堆叠系统中相邻堆叠交换机之间建立两条或两条以上堆叠链路;
[0049] 步骤502、根据两条或两条以上堆叠链路,建立堆叠邻居表,所述堆叠邻居表中包括堆叠链路对应的MAC地址和堆叠口信息;
[0050] 步骤503、根据堆叠邻居表中的MAC地址和堆叠口信息,从两条或两条以上堆叠链路中确定一条堆叠链路为堆叠交换机与相邻堆叠交换机之间的数据传输链路;
[0051] 其中,上述步骤501-步骤503与实施例一中的步骤401-步骤403相同,可参见实施例一的描述,在此不再赘述。
[0052] 进一步,在本实施例中,上述步骤501-步骤503主要为各堆叠交换机在开机后进行的初始操作,通过上述操作可以在两两相邻堆叠交换机之间确定了唯一一条数据传输链路;之后,各堆叠交换机基于所确定的数据传输链路进行主设备的选举,建立起堆叠系统。其中,根据所建立的数据传输链路进行主设备的选举以及建立堆叠系统的过程为现有技术,本实施例不再赘述。当堆叠系统建立后,本实施例的堆叠链路管理方法进一步包括以下步骤:
[0053] 步骤504、堆叠交换机检测数据传输链路的第一堆叠口的状态;
[0054] 具体地,堆叠交换机检测数据传输链路的第一堆叠口是否发生故障,当发生故障时,数据传输链路的第一堆叠口的状态为断开;反之为正常状态,即连接状态。当检测到发生故障时,执行步骤505;反之,不进行任何操作。其中,本步骤504中的第一堆叠口是指作为执行主体的堆叠交换机上作为数据传输链路的堆叠链路的堆叠口。
[0055] 步骤505、堆叠交换机在检测到数据传输链路的第一堆叠口为断开状态时,根据堆叠邻居表中的MAC地址和堆叠口信息,从两条或两条以上堆叠链路中确定另一条堆叠链路为堆叠交换机与相邻堆叠交换机之间的数据传输链路。
[0056] 具体地,该步骤用于在堆叠系统运行过程中出现堆叠链路(即数据传输链路)故障时对堆叠链路进行的处理。即重新选择一条堆叠链路作为堆叠交换机和相邻堆叠交换机之间的数据传输链路,以解决堆叠链路故障造成的堆叠系统分裂、配置冲突以及网络震荡等问题,提高堆叠系统运行的稳定性和可靠性。
[0057] 本实施例提供的堆叠链路管理方法,通过在两个相邻堆叠交换机之间建立多条堆叠链路,并通过堆叠邻居表对多条堆叠链路进行管理的方案实现两个相邻堆叠交换机之间存在多条堆叠链路的方案,在当前数据传输链路出现故障时,根据堆叠邻居表重新从多条堆叠链路中选择一条新的堆叠链路作为数据传输链路,以避免因堆叠链路故障造成的堆叠系统分裂、配置冲突以及网络震荡等问题,提高了堆叠系统运行的稳定性和可靠性。
[0058] 本发明以下实施例提供一种堆叠交换机根据两条或两条以上堆叠链路,建立堆叠邻居表的具体实施方式。
[0059] 实施例三
[0060] 图6A为本发明实施例三提供的堆叠交换机建立堆叠邻居表的方法的流程图。本实施例基于实施例一或实施例二,即本实施例的方法可以作为步骤402或步骤502的一种具体实施方式。如图6A所示,本实施例的方法包括:
[0061] 步骤601、堆叠交换机接收相邻堆叠交换机通过两条或两条以上堆叠链路发送的第一堆叠协议报文,所述第一堆叠协议报文包括相邻堆叠交换机的MAC地址和两条或两条以上堆叠链路的第二堆叠口的标识;
[0062] 具体地,在堆叠交换机开机之后并且在进行主设备选举之前,每个堆叠交换机都会向本地的堆叠口发送第一堆叠协议报文,该第一堆叠协议报文通过之前建立的堆叠链路被传输给相邻的堆叠交换机。其中,第一堆叠协议报文用于使堆叠系统的堆叠交换机建立堆叠邻居表,主要包括发送方的MAC地址和发送第一堆叠协议报文的堆叠口的标识。其中,本实施例并不对第一堆叠协议报文的发送频率做限定。例如:可以以每秒一个报文的频率在进行主设备选举之前一小段时间内持续发送第一堆叠协议报文,其中进行主设备选举之前的一小段时间可预先预定,其具体值也不做限定。
[0063] 因此,本实施例的堆叠交换机会接收到相邻堆叠交换机发送的第一堆叠协议报文,其中相对于本实施例的堆叠交换机而言,第一堆叠协议报文中携带有相邻堆叠交换机的MAC地址和传输第一堆叠协议报文的堆叠链路的第二堆叠口(即位于相邻堆叠交换机上的堆叠口)的标识。
[0064] 同理,本实施例的堆叠交换机也会通过与相邻堆叠交换机之间建立的两条或两条以上堆叠链路向相邻堆叠交换机发送第一堆叠协议报文,以供相邻堆叠交换机建立其堆叠邻居表;此时,仍以本实施例的堆叠交换机为基准,第一堆叠协议报文中携带的是本实施例作为执行主体的堆叠交换机的MAC地址和传输第一堆叠协议报文的堆叠链路的第一堆叠口的标识。
[0065] 步骤602、堆叠交换机根据第一堆叠协议报文和接收第一堆叠协议报文的第一堆叠口,建立堆叠邻居表。
[0066] 当本实施例的堆叠交换机接收到第一堆叠协议报文后,提取第一堆叠协议报文中的相邻堆叠交换机的MAC地址和第二堆叠口的标识;其中预先预定的第一堆叠协议报文的格式可获知如下信息:目的MAC为广播地址,源MAC地址为相邻堆叠交换机的MAC地址,以太网类型(Type)为堆叠协议,例如:0xbbbb,并通过填充代码(Code)字段为预设值(例如:1)来表示该协议报文为第一堆叠协议报文,路由标识字段默认置为0,发送方MAC为源MAC地址,发送方堆叠口标识为相邻堆叠交换机上发生第一堆叠协议报文的堆叠口标识,其它字段均填充为0。然后,根据上述信息建立包括邻居堆叠口标识、邻居堆叠口状态、本地堆叠口标识、本地堆叠口状态以及路由标识等信息的堆叠邻居表。
[0067] 其中,堆叠系统中的每个堆叠交换机均会采用上述方式建立自己的堆叠邻居表。
[0068] 本实施例提供的通过在每个堆叠口上发送第一堆叠协议报文以提供相应堆叠口信息使堆叠交换机建立堆叠邻居表的技术方案,具有简单便于实施的优点,同时各堆叠交换机以交互方式提供的堆叠口信息,可以保证堆叠口信息的准确度和实时性。
[0069] 本实施例具体提供一种第一堆叠协议报文的实施结构,如图6B所示,但并不限于此。具体的,该第一堆叠协议报文中各字段的意义如表1所示。
[0070] 表1
[0071]
[0072] 上述第一堆叠协议报文的实现结构包括了建立堆叠邻居表所需的相关信息,用相对简单的报文形式传输了大量信息,可以节约系统资源。
[0073] 结合图3所示堆叠系统,以堆叠交换机1根据堆叠交换机2发送的第一堆叠协议报文建立堆叠邻居表为例详细说明本实施例建立堆叠邻居表的具体实施过程。
[0074] 具体的,在进行主设备选举之前,堆叠交换机2根据图6B所示堆叠协议报文的结构构造第一堆叠协议报文,并分别通过堆叠口A21和堆叠口A22发送给堆叠交换机1。其中,发往堆叠口A21的第一堆叠协议报文包含的信息为:源MAC地址为堆叠交换机2的MAC地址,记为MAC 2;目的MAC地址为广播地址,设为FFFF.FFFFF.FFFF;类型值为0xbbbb;代码值为1;识别字段值为0;发送方MAC为MAC 2;发送方堆叠口为A21;接收方MAC和接收方堆叠口分别取值为0。发往堆叠口A22的第一堆叠协议报文包含的信息为:源MAC地址为堆叠交换机2的MAC地址,即MAC 2;目的MAC地址为广播地址,设为FFFF.FFFFF.FFFF;类型值为0xbbbb;代码值为1;识别字段值为0;发送方MAC为MAC 2;发送方堆叠口为A22;
接收方MAC和接收方堆叠口分别取值为0。
[0075] 对于堆叠交换机1来说,分别从本地堆叠口A11和A12收到了堆叠交换机2发送的第一堆叠协议报文,根据收到的第一堆叠协议报文中携带的发送方MAC和发送方堆叠口标识创建如表2所示的堆叠邻居表。
[0076] 表2
[0077]
[0078] 其中,邻居MAC为堆叠交换机2的MAC地址,邻居堆叠口标识为堆叠交换机2的堆叠口,邻居堆叠口状态为up,本地堆叠口标识为堆叠交换机1收到该第一堆叠协议报文的堆叠口,本地堆叠口状态为up,路由标志为0,表示该堆叠口不是数据流转发的出口,即该堆叠口所在堆叠链路不是数据传输链路。
[0079] 同理,堆叠交换机2和堆叠交换机3也会以同样的方式根据其相邻的堆叠交换机发送的第一堆叠协议报文建立其各自的堆叠邻居表,分别如表3和表4所示。
[0080] 表3
[0081]
[0082] 表4
[0083]
[0084] 基于上述技术方案本发明实施例四提供一种堆叠交换机根据堆叠邻居表确定数据传输链路的具体实施方式。
[0085] 实施例四
[0086] 图7为本发明实施例四提供的堆叠交换机确定数据传输链路的方法的流程图。本实施例可以基于实施例一、实施例二或实施例三实现,本实施例可视为步骤403或步骤503的一种具体实施方式。如图7所示,本实施例的方法包括:
[0087] 步骤701、堆叠交换机将堆叠邻居表中的邻居MAC地址和本地MAC地址进行比较;若比较结果为本地MAC地址大于该邻居MAC地址,则执行步骤702;反之,则执行步骤706。
[0088] 具体的,在本实施例中,堆叠交换机将堆叠邻居表中的各个邻居MAC地址和本地MAC地址进行比较;对于MAC地址比本地MAC地址小的相邻堆叠交换机,按照步骤702进行后续处理;对于MAC地址比本地MAC地址大的相邻堆叠交换机,按照步骤706进行后续处理。
[0089] 步骤702、堆叠交换机根据堆叠口信息从堆叠邻居表中堆叠交换机和相邻堆叠交换机之间的备用堆叠链路所在条目中,选择本地堆叠口标识最大的堆叠口作为第一发送堆叠口。
[0090] 其中,第一发送堆叠口是除了当前数据传输链路所在堆叠链路之外的堆叠交换机和相邻堆叠交换机之间的某条备用堆叠链路的堆叠口,用于重新确定为堆叠交换机和相邻堆叠交换机之间的数据传输链路。备用堆叠链路是指堆叠交换机和相邻堆叠交换机之间除当前数据传输链路所在堆叠链路以外的其他堆叠链路。在此需要说明,本实施例步骤701和步骤702具体提供了一种根据MAC地址和堆叠口信息确定第一发送堆叠口的方法,但并不限于;例如:在步骤701中还可以以“本地MAC地址小于邻居MAC地址”作为执行步骤702的条件,还可以是预设的能够被各堆叠交换机所识别的其他判断条件等。同理,在步骤702中除了选择本地堆叠口标识最大的堆叠口作为第一发送堆叠口之外,也可以选择本地堆叠口标识最小的堆叠口作为第一发送堆叠口,还可以是预设的能够被各堆叠交换机所识别的其他选择条件等。
[0091] 步骤703、堆叠交换机通过第一发送堆叠口,向相邻堆叠交换机发送第二堆叠协议报文,所述第二堆叠协议报文包括第一发送堆叠口的标识;
[0092] 其中,第二堆叠协议报文中除了包括第一发送堆叠口的标识外,还会包括堆叠邻居表中的邻居MAC地址、邻居堆叠口标识、本地MAC地址以及路由标识等,并相应封装到第二堆叠协议报文中的各字段中。第二堆叠协议报文的具体实施结构可以参见图6B所示,其与第一堆叠协议报文的区别在于:识别字段的取值为1,用于表示要求相邻堆叠交换机进行响应并返回第二堆叠协议响应报文;代码字段取值为2,用于标记该第二堆叠协议报文用于初始确定数据传输链路。
[0093] 步骤704、堆叠交换机接收相邻堆叠交换机根据第二堆叠协议报文发送的第二堆叠响应报文,并根据第二堆叠响应报文更新堆叠邻居表中的堆叠口信息;
[0094] 当相邻堆叠交换机接收到第二堆叠协议报文时,会根据第二堆叠协议报文中的第一发送堆叠口的标识查询其堆叠邻居表,获取第一发送堆叠口的标识所对应的条目,并将对应条目中的路由标识修改为1,以确定该条目对应的堆叠链路将作为数据传输链路;然后,向堆叠交换机返回第二堆叠响应报文。
[0095] 堆叠交换机收到第二堆叠响应报文之后,获知相邻堆叠交换机已经修改其堆叠邻居表且已经确定出数据传输链路,同样修改本地堆叠邻居表中第一发送堆叠口的标识所在条目的路由标识为1。
[0096] 其中,第二堆叠响应报文的格式也可以参见图6B所示,其与第二堆叠协议报文的区别在于:识别字段取值为2,用于表示其为响应报文。第二响应报文所携带的各种信息可以从第二堆叠协议报文和相邻堆叠交换机的堆叠邻居表中获取。其各字段的含义不再赘述。
[0097] 步骤705、堆叠交换机确定第一发送堆叠口所在的堆叠链路为堆叠交换机和相邻堆叠交换机之间的数据传输链路。至此,堆叠交换机确定数据传输链路的操作结束,此后,可进行主设备选举操作以建立堆叠系统等操作。
[0098] 堆叠交换机修改第一发送堆叠口对应的路由标识为1之后,即可确定第一发送堆叠口所在的堆叠链路为数据传输链路,并通过该数据传输链路进行后续报文传输。
[0099] 步骤706、堆叠交换机接收相邻堆叠交换机发送的第二堆叠协议报文,所述第二堆叠协议报文包括第一发送堆叠口的标识;所述第一发送堆叠口是由相邻堆叠交换机根据其堆叠邻居表中的MAC地址和堆叠口信息确定的;
[0100] 具体的,当堆叠交换机的本地MAC地址小于相邻堆叠交换机的MAC地址时,相邻堆叠交换机会判断得出其本地MAC地址大于邻居MAC地址的结论,并执行类似步骤702和步骤703的操作。而堆叠交换机将会接收到相邻堆叠交换机发送的第二堆叠协议报文。
[0101] 步骤707、堆叠交换机根据第二堆叠协议报文,更新堆叠邻居表中的堆叠口信息,并根据第二堆叠协议报文向相邻堆叠交换机发送第二堆叠响应报文,以供相邻堆叠交换机确定所述数据传输链路;
[0102] 具体的,堆叠交换机根据第二堆叠协议报文中由相邻堆叠交换机确定的第一发送堆叠口的标识,修改其堆叠邻居表中的路由标识为1,以更新堆叠邻居表。其中,第二堆叠响应报文所携带的各种信息可以从第二堆叠协议报文和堆叠交换机的堆叠邻居表中获取。其各字段的含义不再赘述。第二堆叠响应报文用于供相邻堆叠交换机更新其邻居堆叠表,并确定数据传输链路,其中相邻堆叠交换机根据第二响应报文确定所述数据传输链路的具体操作过程可参见步骤702-步骤705的描述。
[0103] 步骤708、堆叠交换机确定第一发送堆叠口所在的堆叠链路为堆叠交换机和相邻堆叠交换机之间的数据传输链路。
[0104] 堆叠交换机修改其堆叠邻居表中的路由标识为1后,即可确定第一发送堆叠口所在的堆叠链路为数据传输链路。至此,堆叠交换机初始确定数据传输链路的操作结束,并可继续执行主设备选举操作以建立堆叠系统。
[0105] 本实施例提供了一种堆叠交换机根据堆叠邻居表在堆叠系统建立之前确定数据传输链路的方法,其中步骤701、步骤702和步骤706具体为根据堆叠邻居表中的MAC地址和堆叠口信息确定第一发送堆叠口的一种实施方式。而步骤702-步骤705和步骤706-步骤708分别为在不同条件下堆叠交换机确定数据传输链路的方法。该技术方案直接利用堆叠邻居表中的相关信息,其信息获取方便,具有简单易于实施的优点。
[0106] 结合图3所示堆叠系统详细说明本实施例上述技术方案的实施过程。其中,假设堆叠交换机1的MAC地址大于堆叠交换机2的MAC地址大于堆叠交换机3的MAC地址。且假设堆叠口A21的标识大于堆叠口A22的标识;堆叠口B21的标识大于堆叠口B22的标识。
[0107] 堆叠交换机1对本地MAC地址和邻居MAC地址进行比较,发现比本地MAC地址小的堆叠交换机2;接着,查找表2所示的堆叠邻居表中本地堆叠口状态为up的表项,发现存在2条堆叠交换机2的表项,且这两条表项对应的本地堆叠口为A11和A12。堆叠交换机1从中选择本地堆叠口标识大的堆叠口,即堆叠口A11,将该堆叠口A11作为到达堆叠交换机2的数据流转发的出口,即堆叠口A11为第一发送堆叠口。
[0108] 堆叠交换机1在确定堆叠口A11后,通过该堆叠口A11发送第二堆叠协议报文给堆叠交换机2。该第二堆叠协议报文包括如下信息:发送方的MAC地址、发送方堆叠口标识、接收方MAC地址(即堆叠邻居表中堆叠口A11所在条目中的邻居MAC)、接收方的堆叠口标识(即堆叠邻居表中堆叠口A11所在条目中的邻居堆叠口标识)。此时,堆叠交换机1等待堆叠交换机2返回第二堆叠响应报文。
[0109] 堆叠交换机2对本地MAC地址和邻居MAC地址进行比较,发现比本地MAC地址小的堆叠交换机3和比本地MAC地址大的堆叠交换机1。对于比本地MAC地址大的堆叠交换机1,堆叠交换机2不进行任何操作,等待接收堆叠交换机1发送的第二堆叠协议报文。堆叠交换机2接收到堆叠交换机1发送的第二堆叠协议报文之后,提取第二堆叠协议报文中的相关信息(例如发送方的MAC地址、发送方堆叠口标识、接收方MAC地址、接收方的堆叠口标识等),然后,在堆叠交换机2的本地堆叠邻居表中查找到对应条目,并更新堆叠邻居表,即修改堆叠邻居表对应条目的路由标识为1,设置到达堆叠交换机1的数据流转发出口为堆叠口A21。同时,堆叠交换机2向堆叠交换机1返回第二堆叠响应报文。堆叠交换机1根据第二堆叠响应报文更新堆叠口A11所在条目的路由标识为1,堆叠交换机1的更新后的堆叠邻居表如表5所示。
[0110] 对于比本地MAC地址小的堆叠交换机3,堆叠交换机2继续查找表3所示的堆叠邻居表中本地堆叠口状态为up的表项,发现存在2条堆叠交换机3的表项,且这两条表项对应的本地堆叠口为B21和B2。堆叠交换机2从中选择本地堆叠口标识大的堆叠口,即堆叠口B21,将该堆叠口B21作为到达堆叠交换机3的数据流转发的出口,即堆叠口B21为第一发送堆叠口。
[0111] 堆叠交换机2在确定堆叠口B21后,通过该堆叠口B21发送第二堆叠协议报文给堆叠交换机3。该第二堆叠协议报文包括如下信息:发送方的MAC地址、发送方堆叠口标识、接收方MAC地址(即堆叠邻居表中堆叠口B21所在条目中的邻居MAC)、接收方的堆叠口标识(即堆叠邻居表中堆叠口B21所在条目中的邻居堆叠口标识)。此时,堆叠交换机2等待接收堆叠交换机3返回的第二堆叠响应报文。
[0112] 堆叠交换机3对本地MAC地址和邻居MAC地址进行比较,发现比本地MAC地址大的堆叠交换机2;堆叠交换机3不进行任何操作,等待接收堆叠交换机2发送的第二堆叠协议报文。堆叠交换机3接收到堆叠交换机2发送的第二堆叠协议报文之后,提取第二堆叠协议报文中的相关信息(例如发送方的MAC地址、发送方堆叠口标识、接收方MAC地址、接收方的堆叠口标识等),然后,在堆叠交换机3的本地堆叠邻居表中查找到对应条目,并更新堆叠邻居表,即修改堆叠邻居表对应条目的路由标识为1,设置到达堆叠交换机2的数据流转发出口为堆叠口B31。同时,堆叠交换机3向堆叠交换机2返回第二堆叠响应报文。堆叠交换机2根据第二堆叠响应报文更新堆叠口B21所在条目的路由标识为1,堆叠交换机2的更新后的堆叠邻居表如表6所示,堆叠交换机3更新后的堆叠邻居表如表7所示。
[0113] 表5
[0114]
[0115] 表6
[0116]
[0117] 表7
[0118]
[0119] 可见通过上述方式,堆叠交换机1、堆叠交换机2和堆叠交换机3之间分别确定了数据传输链路,即为各自的堆叠邻居表中的路由标识为1的堆叠链路。
[0120] 进一步,各堆叠交换机建立了数据传输链路之后,可以通过数据传输链路发送其他堆叠协议报文以进行主设备的选举,由选举出的主设备负责对堆叠系统进行管理,以建立堆叠系统。当堆叠系统建立之后,在运行过程中通过实时检测数据传输链路的堆叠口的状态,当发现数据传输链路的堆叠口故障(例如down),可以根据堆叠邻居表重新选定数据传输链路。本发明以下实施例提供一种在数据传输链路故障时重新确定数据传输链路的实施方式。
[0121] 实施例五
[0122] 图8为本发明实施例五提供的堆叠口故障时重新确定数据传输链路的方法的流程图。本实施例可基于实施例二、实施例三或实施例四实现,本实施例可视为实施例二中步骤505的一种具体实施方式。如图8所示,本实施例的方法包括:
[0123] 步骤801、当堆叠交换机检测到当前数据传输链路的第一堆叠口故障时,堆叠交换机将堆叠邻居表中的邻居MAC地址和本地MAC地址进行比较;若比较结果为本地MAC地址大于该邻居MAC地址,则执行步骤802;反之,则执行步骤806。
[0124] 步骤802、堆叠交换机根据堆叠口信息从堆叠邻居表中堆叠交换机和相邻堆叠交换机之间的备用堆叠链路所在条目中,选择本地堆叠口标识最大的堆叠口作为第二发送堆叠口。其中,确定第二发送堆叠口的过程可以参见实施例四中步骤702的描述。第二发送堆叠口是由堆叠交换机从除第一发送堆叠口之外的堆叠口中确定的,是将要确定的新的数据传输链路的堆叠口。
[0125] 步骤803、堆叠交换机通过第二发送堆叠口,向相邻堆叠交换机发送第三堆叠协议报文,所述第三堆叠协议报文包括第二发送堆叠口的标识。其中,第三堆叠协议报文与第二堆叠协议报文的格式相同,其区别在于:代码字段取值为3,用于标记该第三堆叠协议报文用于在链路故障时重新确定数据传输链路。
[0126] 步骤804、堆叠交换机接收相邻堆叠交换机根据第三堆叠协议报文发送的第三堆叠响应报文,并根据第三堆叠响应报文更新堆叠邻居表中的堆叠口信息。
[0127] 步骤805、堆叠交换机重新确定第二发送堆叠口所在的堆叠链路为堆叠交换机和相邻堆叠交换机之间的数据传输链路,至此,堆叠交换机重新确定数据传输链路的操作结束,此后,可继续执行检测新数据传输链路的堆叠口的状态等操作。
[0128] 步骤806、堆叠交换机接收相邻堆叠交换机发送的第三堆叠协议报文,所述第三堆叠协议报文包括第二发送堆叠口的标识;所述第二发送堆叠口是由相邻堆叠交换机根据其堆叠邻居表中的MAC地址和堆叠口信息确定的;
[0129] 具体的,当堆叠交换机的本地MAC地址小于相邻堆叠交换机的MAC地址时,相邻堆叠交换机会判断得出其本地MAC地址大于邻居MAC地址的结论,并执行类似步骤802和步骤803的操作。而堆叠交换机将会接收到相邻堆叠交换机发送的第三堆叠协议报文,并执行步骤807。
[0130] 步骤807、堆叠交换机根据第三堆叠协议报文,更新堆叠邻居表中的堆叠口信息,并根据第三堆叠协议报文向相邻堆叠交换机发送第三堆叠响应报文,以供相邻堆叠交换机确定所述数据传输链路,并执行步骤808。
[0131] 具体的,堆叠交换机根据第三堆叠协议报文中由相邻堆叠交换机确定的第二发送堆叠口的标识,修改其堆叠邻居表中的路由标识为1,以更新堆叠邻居表;其中,第三响应报文用于供相邻堆叠交换机重新确定新的数据传输链路所用,相邻堆叠交换机确定数据传输链路的过程可参见上述步骤802-步骤805的描述,所述第三响应报文包括的信息可以从第三堆叠协议报文和堆叠交换机的堆叠邻居表中获取。
[0132] 步骤808、堆叠交换机重新确定第二发送堆叠口所在的堆叠链路为堆叠交换机和相邻堆叠交换机之间的数据传输链路。
[0133] 堆叠交换机修改其堆叠邻居表中的路由标识为1后,即可确定第二发送堆叠口所在的堆叠链路为新的数据传输链路。至此,堆叠交换机重新确定数据传输链路的操作结束,并可继续执行检测新数据传输链路的堆叠口的状态等操作。
[0134] 在此需要说明,本实施例提供的重新确定数据传输链路的方法与实施例四提供的初始确定数据传输链路的方法相适应,例如要求实施例四中步骤701与本实施例步骤801的判断条件相同,实施例四中步骤703和本实施例步骤803选择条件相同。关于本实施例技术方案的详细论述可参见实施例四,在此不再详细赘述。
[0135] 结合图3所示的堆叠系统详细说明本实施例重新确定数据传输链路的实施过程。其中,关于对图3中各堆叠交换机所作的假设条件请参见实施例四部分,在本实施例还假设堆叠交换机1与堆叠交换机2之间的数据传输链路故障。
[0136] 堆叠交换机1检测到堆叠口A11为断开状态后,对本地MAC地址和邻居MAC地址进行比较,发现比本地MAC地址小的堆叠交换机2;接着,查找表2所示的堆叠邻居表中本地堆叠口状态为连接(up)的表项,发现存在1条堆叠交换机2的表项,且该条表项对应的本地堆叠口为A12。由于只有一条表项,因此不存在比较选取本地堆叠口标识最大的堆叠口的操作,堆叠交换机1可以直接选择堆叠口A12,将该堆叠口A12作为到达堆叠交换机2的数据流转发的出口,即堆叠口A12为第二发送堆叠口。
[0137] 堆叠交换机1在确定堆叠口A12后,通过该堆叠口A12发送第三堆叠协议报文给堆叠交换机2。该第三堆叠协议报文包括如下信息:发送方的MAC地址、发送方堆叠口标识、接收方MAC地址(即堆叠邻居表中堆叠口A12所在条目中的邻居MAC)、接收方的堆叠口标识(即堆叠邻居表中堆叠口A12所在条目中的邻居堆叠口标识)。此时,堆叠交换机1等待堆叠交换机2返回第三堆叠响应报文。
[0138] 堆叠交换机2检测到堆叠口A21为断开状态后,对本地MAC地址和邻居MAC地址进行比较,发现比本地MAC地址大的堆叠交换机1。对于比本地MAC地址大的堆叠交换机1,堆叠交换机2不进行任何操作,等待接收堆叠交换机1发送的第三堆叠协议报文。堆叠交换机2接收到堆叠交换机1发送的第三堆叠协议报文之后,提取第三堆叠协议报文中的相关信息(例如发送方的MAC地址、发送方堆叠口标识、接收方MAC地址、接收方的堆叠口标识等),然后,在堆叠交换机2的本地堆叠邻居表中查找到对应条目,并更新堆叠邻居表,即修改堆叠邻居表对应条目的路由标识为1,同时修改堆叠口A21所在条目的邻居堆叠状态和本地堆叠状态均为故障(down)、路由标识为0,设置到达堆叠交换机1的数据流转发出口为堆叠口A22。同时,堆叠交换机2向堆叠交换机1返回第三堆叠响应报文。堆叠交换机
1根据第三堆叠响应报文更新堆叠口A11和A12所在条目的路由标识分别为0和1,同时更新堆叠口A11所在条目的邻居堆叠口状态和本地堆叠口状态为故障(down)。其中,堆叠交换机1的更新后的堆叠邻居表如表8所示;堆叠交换机2的更新后的堆叠邻居表如表9所示。
[0139] 表8
[0140]
[0141] 表9
[0142]
[0143] 同理,当堆叠交换机2和堆叠交换机3之间的数据传输链路故障时,或者再次检测到堆叠交换机1和堆叠交换机2之间新确定的数据传输链路故障时,均可采用相同方式重新确定新的数据传输链路。
[0144] 进一步,在后续检测过程中堆叠交换机1检测到堆叠口A11或堆叠交换机2检测到堆叠口A21重新连接时,可以修改堆叠邻居表中对应条目中的本地堆叠口状态和邻居堆叠口状态为连接(up),以使该条目对应的堆叠链路再次作为备用堆叠链路,以在当前数据传输链路故障时被确定为新的数据传输链路。
[0145] 通过上述描述可知:本实施例通过在两个相邻堆叠交换机之间建立多条堆叠链路,可以在当前数据传输链路故障时用其他堆叠链路作为新的数据传输链路,与现有技术单一堆叠链路相比,可降低堆叠链路故障造成的堆叠分裂、配置冲突或网络震荡等问题的几率,提高了堆叠系统运行的稳定性和可靠性,以满足用户需求。
[0146] 实施例六
[0147] 图9A为本发明实施例六提供的一种环型拓扑的堆叠系统的结构示意图。图9B为本发明实施例六提供的堆叠链路管理方法的流程图。本实施例可基于前述实施例实现,其与前述实施例的区别在于:本实施例中的堆叠系统为环型拓扑,包括堆叠交换机1、堆叠交换机2和堆叠交换机3。如图9B所示,本实施例的堆叠链路管理方法包括:步骤901、在各相邻堆叠交换机之间建立两条堆叠链路。经过该步骤之后,图9A所示三个堆叠交换机之间分别建立起两条堆叠链路。其中,堆叠口A11和堆叠口A21,堆叠口A12和堆叠口A22构成堆叠交换机1和堆叠交换机2之间的两条堆叠链路;堆叠口B21和堆叠口B31,堆叠口B22和堆叠口B32构成堆叠交换机2和堆叠交换机3之间的两条堆叠链路;堆叠口C11和堆叠口C31,堆叠口C12和堆叠口C32构成堆叠交换机1和堆叠交换机3之间的两条堆叠链路。
[0148] 步骤902、各堆叠交换机起机后在建立堆叠系统之前,分别向本地堆叠口发送第一堆叠协议报文,并接收相邻堆叠交换机发送的第一堆叠协议报文,然后,根据接收到的第一堆叠协议报文构建堆叠邻居表。
[0149] 举例说明,堆叠交换机1分别通过其堆叠口A11和堆叠口A12向堆叠交换机2发送第一堆叠协议报文,通过其堆叠口C11和堆叠口C12向堆叠交换机3发送第一堆叠协议报文;堆叠交换机1还会通过堆叠口A11和堆叠口A12以及堆叠口C11和堆叠口C12分别接收堆叠交换机2和堆叠交换机3发送的第一堆叠协议报文。
[0150] 步骤903、各堆叠交换机将本地MAC地址和堆叠邻居表中的邻居MAC地址进行比较;当本地MAC地址比对端邻居MAC地址小,则等待对端发送的第二堆叠协议报文来更新堆叠邻居表和设置数据流转发出口;当本地MAC地址比对端邻居MAC地址大,则查找堆叠邻居表获取MAC地址比自身小的对端邻居对应的表项;如果存在多条表项,在多条同一邻居的多条表项中选择一条对应的本地堆叠口状态为连接(up),且该本地堆叠口标识最大的表项,并朝所选择的表项对应的本地堆叠口发送第二堆叠协议报文,并等待对端邻居的回应,然后更新堆叠邻居表的路由标识,设置数据流转发出口。
[0151] 步骤904、各堆叠交换机通过设置的数据流转发出口开始选举主设备,建立堆叠系统。
[0152] 步骤905、堆叠系统运行,各堆叠交换机检测其堆叠口状态。当堆叠系统运行过程中出现某一堆叠链路故障,该堆叠链路所连接的两个堆叠交换机检测到当前堆叠口断开,则修改堆叠邻居表中对应的该断开的堆叠口的堆叠口状态和对应的邻居堆叠口状态为故障(down),并将路由标识修改为0。之后,查找堆叠邻居表获取本地断开的堆叠口对应的邻居MAC,比较本地MAC地址和邻居MAC地址的大小;当本地MAC地址比对端邻居MAC地址小,则等待对端发送的第三堆叠协议报文来更新堆叠邻居表和设置新的数据流转发出口;当本地MAC地址大于邻居MAC地址时,则查找堆叠邻居表找到邻居MAC地址对应的另一堆叠口,并将另一堆叠口状态以及对应的邻居堆叠口状态修改为连接(up),同时通过该另一堆叠口发送第三堆叠协议报文,并等待对端邻居的响应。
[0153] 步骤906、各堆叠交换机根据对端邻居发送的第三堆叠协议报文或者对第三堆叠协议报文做出的响应报文,更新本地堆叠邻居表,修改堆叠邻居表中该另一堆叠口对应表项的路由标识为1,修改到达对端邻居的数据流转发出口为该表项对应的本地堆叠口。
[0154] 步骤907、当故障堆叠链路恢复连接后,堆叠交换机检测到断开的堆叠口又重新连接,则修改堆叠邻居表中该重新连接的堆叠口的堆叠口状态和对应邻居堆叠口状态为连接(up),使连接后的堆叠链路重新成为一条可用的堆叠链路,并转去执行步骤905。
[0155] 其中,上述各步骤的详细过程可参见本发明上述各实施例的描述,在此不再赘述。
[0156] 本实施例的堆叠链路管理方法,通过增加额外的堆叠链路,并在主设备选举之前通过相互发送特定的堆叠协议报文创建堆叠邻居表以实现对多条堆叠链路的管理,使得发现数据转发链路故障时能够修改数据流转发出口为另一堆叠口,从而保证堆叠系统运行的稳定性,有效降低了堆叠链路故障导致堆叠系统分裂的几率,提高了网络运行的可靠性。
[0157] 实施例七
[0158] 图10为本发明实施例七提供的堆叠链路管理装置的结构示意图。如图10所示,本实施例的堆叠链路管理装置包括:链路建立模块91、邻居表建立模块92和第一链路确定模块93。
[0159] 链路建立模块91,用于在堆叠链路管理装置与堆叠链路管理装置所在堆叠系统中相邻堆叠链路管理装置之间建立两条或两条以上堆叠链路;邻居表建立模块92,用于根据两条或两条以上堆叠链路,建立堆叠邻居表,所述堆叠邻居表中包括堆叠链路对应的MAC地址和堆叠口信息;第一链路确定模块93,用于根据堆叠邻居表中的MAC地址和堆叠口信息,从两条或两条以上堆叠链路中确定一条堆叠链路为堆叠链路管理装置与相邻堆叠链路管理装置之间的数据传输链路。
[0160] 本实施例的堆叠链路管理装置,可用于执行本发明实施例提供的堆叠链路管理方法的流程,通过链路建立模块可以在相邻堆叠链路管理装置之间建立起多条堆叠链路,通过邻居表建立模块对多条堆叠链路进行管理,由第一链路确定模块从多条堆叠链路中选择一条作为数据传输链路,而其他堆叠链路作为备用堆叠链路,可以在作为数据传输链路的堆叠链路故障时提供新的数据传输链路。因此,本实施例技术方案与现有技术中单一堆叠链路相比,可以保证堆叠系统运行的稳定性,有效降低堆叠链路故障导致堆叠系统分裂的几率,提高网络运行的可靠性。
[0161] 实施例八
[0162] 图11为本发明实施例八提供的堆叠链路管理装置的结构示意图。本实施例可基于实施例七,如图11所示,本实施例的装置还包括:状态检测模块94和第二链路确定模块95。
[0163] 其中,状态检测模块94,与第一链路确定模块93连接,用于检测数据传输链路的第一堆叠口的状态;第二链路确定模块95,分别与状态检测模块94和邻居表建立模块92连接,用于在状态检测模块94检测到数据传输链路的第一堆叠口为断开状态时,根据堆叠邻居表中的MAC地址和堆叠口信息,从两条或两条以上堆叠链路中确定另一条堆叠链路为堆叠链路管理装置与相邻堆叠链路管理装置之间的数据传输链路。
[0164] 基于上述技术方案,本实施例提供一种邻居表建立模块92的实现结构。如图11所示,邻居表建立模块92包括:第一协议报文接收单元921和邻居表建立单元922。第一协议报文接收单元921,与链路建立模块91连接,用于接收相邻堆叠链路管理装置通过两条或两条以上堆叠链路发送的第一堆叠协议报文,所述第一堆叠协议报文包括相邻堆叠链路管理装置的MAC地址和两条或两条以上堆叠链路的第二堆叠口的标识;邻居表建立单元922,与第一协议报文接收单元921连接,用于根据第一堆叠协议报文和接收第一堆叠协议报文的第一堆叠口,建立堆叠邻居表。
[0165] 上述邻居表建立模块的结构用于实施相互发送第一堆叠协议报文建立堆叠邻居表的技术方案。其中,各个堆叠链路管理装置需要相互发送第一堆叠协议报文,因此,本实施例的堆叠链路管理装置还包括:报文发送模块96,与链路建立模块91连接,用于通过两条或两条以上堆叠链路向相邻堆叠链路管理装置发送第一堆叠协议报文,以供相邻堆叠链路管理装置建立其堆叠邻居表;所述第一堆叠协议报文包括本地堆叠链路管理装置的MAC地址和两条或两条以上堆叠链路的第一堆叠口的标识。
[0166] 进一步,本实施例的第一链路确定模块具体根据堆叠邻居表中的邻居MAC地址和本地MAC地址以及堆叠口信息确定数据传输链路。一种具体实施方式是将本地MAC地址和邻居MAC地址进行比较,并根据比较结果确定数据传输链路的确定方式。例如:当本地MAC地址大于邻居MAC地址时,由本地堆叠链路管理装置发起确定数据传输链路的操作;反之,由相邻堆叠链路管理装置发起确定数据传输链路的操作。其中,可用于实施上述技术方案的本实施例的第一链路确定模块包括:第一堆叠口确定单元、第一协议报文发送单元、第一响应报文接收单元、第一信息更新单元和第一链路确定单元。通过上述功能单元可在一种情况下,例如本地MAC地址大于邻居MAC地址时,由本地堆叠链路管理装置发起并完成数据传输链路的确定。
[0167] 具体地,第一堆叠口确定单元,用于根据堆叠邻居表中的MAC地址和堆叠口信息,确定第一发送堆叠口;第一协议报文发送单元,用于通过第一发送堆叠口,向相邻堆叠链路管理装置发送第二堆叠协议报文,所述第二堆叠协议报文包括第一发送堆叠口的标识;第一响应报文接收单元,用于接收相邻堆叠链路管理装置根据第二堆叠协议报文发送的第二堆叠响应报文;第一信息更新单元,用于根据第二堆叠响应报文更新堆叠邻居表中的堆叠口信息;第一链路确定单元,用于确定第一发送堆叠口所在的堆叠链路为堆叠链路管理装置和相邻堆叠链路管理装置之间的数据传输链路。
[0168] 进一步,本实施例的第一链路确定模块还包括:第二协议报文接收单元、第二信息更新单元和第二链路确定单元。通过上述功能单元可在另一情况下,例如本地MAC地址小于邻居MAC地址时,完成数据传输链路的确定。
[0169] 具体地,第二协议报文接收单元,用于根据堆叠邻居表中的MAC地址和堆叠口信息,接收相邻堆叠链路管理装置发送的第二堆叠协议报文,所述第二堆叠协议报文包括第一发送堆叠口的标识;所述第一发送堆叠口是由相邻堆叠链路管理装置根据其堆叠邻居表中的MAC地址和堆叠口信息确定的;第二信息更新单元,用于根据第二堆叠协议报文,更新堆叠邻居表中的堆叠口信息,并根据第二堆叠协议报文向相邻堆叠链路管理装置发送第二堆叠响应报文,以供相邻堆叠链路管理装置确定所述数据传输链路;第二链路确定单元,用于确定第一发送堆叠口所在的堆叠链路为堆叠链路管理装置和相邻堆叠链路管理装置之间的数据传输链路。
[0170] 基于上述技术方案,本实施例中第二链路确定模块也可以采用根据堆叠邻居表中的MAC地址和堆叠口信息来重新确定数据传输链路。与第一链路确定模块相类似,本实施例的第二链路确定模块包括:第二堆叠口确定单元、第二协议报文发送单元、第二响应报文接收单元、第三信息更新单元和第三链路确定单元。第二链路确定模块通过上述功能单元可在一种情况下实现对数据传输链路的重新确定。
[0171] 具体地,第二堆叠口确定单元,用于根据堆叠邻居表中的MAC地址和堆叠口信息,确定第二发送堆叠口;第二协议报文发送单元,通过第二发送堆叠口,向相邻堆叠链路管理装置发送第三堆叠协议报文,所述第三堆叠协议报文包括第二发送堆叠口的标识;第二响应报文接收单元,用于接收相邻堆叠链路管理装置根据第三堆叠协议报文发送的第三堆叠响应报文;第三信息更新单元,用于根据第三堆叠响应报文更新堆叠邻居表中的堆叠口信息;第三链路确定单元,用于确定第二发送堆叠口所在的堆叠链路为堆叠链路管理装置和相邻堆叠链路管理装置之间的数据传输链路。
[0172] 进一步,第二链路确定模块还包括:第三协议报文接收单元、第四信息更新单元和第四链路确定单元,用于在另一种情况下重新确定数据传输链路。
[0173] 具体地,第三协议报文接收单元,用于根据堆叠邻居表中的MAC地址和堆叠口信息,接收相邻堆叠链路管理装置发送的第三堆叠协议报文,所述第三堆叠协议报文包括第二发送堆叠口的标识;所述第二发送堆叠口是由相邻堆叠链路管理装置根据其堆叠邻居表中的MAC地址和堆叠口信息确定的;第四信息更新单元,用于根据第三堆叠协议报文,更新堆叠邻居表中的堆叠口信息,并根据第三堆叠协议报文向相邻堆叠链路管理装置发送第三堆叠响应报文,以供相邻堆叠链路管理装置确定所述数据传输链路;第四链路确定单元,用于确定第二发送堆叠口所在的堆叠链路为堆叠链路管理装置和相邻堆叠链路管理装置之间的数据传输链路。
[0174] 在此需要说明,第一链路确定模块和第二链路确定模块可以同时包括上述两种结构,也可以只包括一种结构,具体可根据所要实施的方法流程以及预先设定的各个堆叠链路管理装置的MAC地址的大小而定。
[0175] 基于上述对本实施例的堆叠链路管理装置的具体实现方式的介绍可知:本实施例的堆叠链路管理装置也可用于执行本发明实施例提供的堆叠链路管理方法的流程。本发明技术方案通过在相邻堆叠链路管理装置之间建立起多条堆叠链路,并通过对多条堆叠链路的管理,可在数据传输链路发生故障时从其堆叠链路选择一条作为新的数据传输链路,与现有技术中单一堆叠链路相比,可以保证堆叠系统运行的稳定性,有效降低堆叠链路故障导致堆叠系统分裂的几率,提高网络运行的可靠性。
[0176] 实施例九
[0177] 本发明实施例九提供一种网络设备,该网络设备包括堆叠链路管理装置。其中,本实施例的网络设备可以是堆叠系统中的堆叠交换机,也可以是其他可实现堆叠技术的设备,例如路由器。其中,堆叠链路管理装置可以采用本发明以上实施例提供的堆叠链路管理装置,其具体结构和工作原理在此不再赘述,请详见以上实施例的描述。
[0178] 本实施例提供的网络设备包括本发明提供的堆叠链路管理装置,也可以执行本发明实施例提供的堆叠链路管理方法的流程。当采用本实施例的网络设备建立堆叠系统时,可以保证堆叠系统运行的稳定性,并可有效降低堆叠链路故障导致堆叠系统出现分裂的几率,提高网络运行的可靠性。
[0179] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0180] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。