一种地址分配方法和装置、及交换机与流程

文档序号:13010359阅读:176来源:国知局
一种地址分配方法和装置、及交换机与流程
本发明涉及数据通信领域,尤指一种地址分配方法和装置、及交换机。
背景技术
:数据中心规模的扩大和虚拟化的引入,除了带来了物理设备的增加,数据中心的服务器、存储和网络的虚拟化更是带来了虚拟设施的指数增长。这些都导致了mac地址的消耗急剧上升。由此也暴露出来传统mac地址的很多问题,比如:mac地址空间容量已不能满足日益消耗的mac地址;mac地址是固定不变的;mac地址并不分层,不提供位置信息等。而这些问题也带来了数据中心中的许多其他的问题,比如:路由转发耗时长、引发广播风暴和设备迁移的不方便等等。因此,我们可以为交换机分配新型的mac地址,减少对mac地址的消耗并且通过mac地址管理位置信息。在数据中心中,为了节省管理资金、维护费用和升级费用,虚拟机常常需要进行迁移。而虚拟机的迁移范围通常需要在相同的二层网络内部。大型的三层数据中心通常将二层网络的范围限制在接入层以下,因此,大型三层数据中心内,vm的迁移是无法实现的。在反过来即,二层网络规模有多大,虚拟机才能迁移有多远。我们需要扩大二层网络的规模来实现vm的大范围的迁移。因此,为了实现数据中心的扁平化和对交换机的集中管理,我们可以在交换机网络中选举一台指定交换机,为其他交换机集动态分配新型mac地址并进行集中管理,使网络中的设备能根据分层地址快速寻址并且不占用过多mac地址。在众多于类似指定交换机的选举方案中,最典型的是stp及其一系列的改进协议中的根网桥选举,其选举的依据是网桥优先级和网桥mac地址组合成的桥id,桥id最小的网桥将成为网络中的根桥;在三层网络中也有类此的选举方案,ospf协议通过发送hello包来进行指定路由器的选举,为了能够平滑地转换到新的dr,ospf提出了备份指定路由器,bdr同样通过hello协议中选举。每个hello包中都列出了网络的bdr,此外在光纤通道中也涉及到主交换机选举。在stp和rstp中,都只选举了一台根网桥。如果该根网桥崩溃后,stp协议需要重新选举根网桥,而网络再次收敛需要浪费大量的时间;虽然rstp协议提出了备份端口和替换端口的概念,如果不是根网桥崩溃,可以较快的在不产生环路的情况下恢复运转,并且提出了p/a机制,在一定程度上提高了收敛的速度,但是,在根网桥崩溃后仍需要较长时间才能恢复正常。技术实现要素:为了解决上述问题,本发明提出了一种地址分配方法和装置、及交换机,能够减少指定交换机崩溃后数据中心的恢复时间。为了解决上述技术问题,本发明提出了一种地址分配方法,所述方法包括:第一交换机为备用指定交换机bds时,在当前的指定交换机ds崩溃时,第一交换机切换为ds;第一交换机为ds时,为交换机分配对应的moose交换机地址。优选地,还包括:第一交换机根据预设的ds/bds选举启动条件,启动ds/bds选举过程;第一交换机根据预设的bds选举启动条件,启动bds选举过程。优选地,所述ds/bds选举启动条件包括如下内容的任一项或多项:第一交换机在非选举状态下,收到ds配置帧;第一交换机在初始化过程中,启动第一定时器,在定时器超时时,没有收到ds配置帧、ds通知帧、或bds选举帧中的任一个;第一交换机在正常运行过程中,在预定的时间间隔内,没有收到ds配置帧、ds通知帧、或bds选举帧中的任一个;所述bds选举启动条件包括如下内容的任一项或多项:第一交换机在非选举状态下,收到ds通知帧,且ds通知帧的bdsid为空;第一交换机在非选举状态下,收到bds选举帧;第一交换机为ds时,在预定的时间间隔内,没有收到bds发送的数据同步的请求。优选地,所述ds配置帧、ds通知帧、和bds选举帧这三种数据帧格式相同,均包括操作类型、保留位、ds的dsid和bds的bdsid;其中,dsid包括ds的优先级和ds的mac地址、bdsid包括bds的优先级和bds的mac地址;所述ds配置帧、ds通知帧、和bds选举帧的操作类型的数值不同。优选地,第一交换机中存储有ds/bds信息表,所述ds/bds信息表用于记录当前的ds的dsid和bds的bdsid,其中,dsid为ds的switchid,bdsid为bds的switchid;ds的switchid包括ds的优先级、ds的mac地址;bds的switchid包括bds的优先级、bds的mac地址。优选地,所述ds/bds选举过程包括:第一交换机使用第一交换机的switchid填充ds/bds信息表和ds配置帧中的dsid,同时将ds/bds信息表和ds配置帧中的bds置为空;向所有端口洪泛该ds配置帧,同时开启第二定时器;在第二定时器没有超时时,第一交换机收到其他交换机发送的ds配置帧之后,将接收的ds配置帧中的dsid和bdsid字段与本交换机中ds/bds表中的数据对比,并根据对比的结果更新ds/bds信息表和ds配置帧中的dsid和bdsid的赋值;并根据更新的ds配置帧向所有端口洪泛该ds配置帧。优选地,在所述第二定时器超时之后,所述方法还包括:本交换机转为监听状态,并监听ds配置帧,将接收的ds配置帧中的dsid和bdsid字段与本交换机中ds/bds表中的数据对比,并根据对比的结果更新ds/bds信息表中的ds和bds的赋值。优选地,根据对比的结果更新ds/bds信息表和ds配置帧中的dsid和bdsid的赋值包括:比较ds1和ds2;在ds1大于ds2、且bds1为空的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds2;在ds1大于ds2、且bds1不为空的情况下,比较bds1和ds2;如果bds1小于ds2,将ds/bds信息表和ds配置帧中的bdsid赋值为ds2;在ds1小于ds2的情况下,将ds/bds信息表和ds配置帧中的dsid赋值为ds2;在ds1小于ds2、且bds2为空的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds1;在ds1小于ds2、且bds2不为空的情况下,比较bds2和ds1,在bds2大于ds1的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为bds2;在bds2小于或等于ds1的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds1;在ds1等于ds2、且bds1为空的情况下,且bds2不为空的情况下,将ds/bds信息表和dsc中的dsid赋值为bds2;在ds1等于ds2、且bds1不为空、且bds2为空的情况下,将ds/bds信息表和dsc中的dsid赋值为bds1;在ds1等于ds2、且bds1不为空、且bds2不为空的情况下,比较bds1和bds2;如果bds1大于bds2,将ds/bds信息表和dsc中的bdsid赋值为bds1;其中,ds1为第一交换机中ds/bds表中的dsid,ds2为第一交换机收到其他交换机发送的ds配置帧中的dsid;bds1为第一交换机中ds/bds表中的bdsid,bds2为第一交换机收到其他交换机发送的ds配置帧中的bdsid。优选地,所述bds选举过程包括:在收到新的ds通知帧或收到bds选举帧的情况下,启动第三定时器;在收到新的ds通知帧的情况下,交换机将本交换机的switchid填写至bds选举帧中的bdsid字段,并向网络洪泛bds选举帧;在第三定时器没有超时时,交换机收到其他交换机发送的bds选举帧之后,将接收的bds选举帧中的bdsid字段与本交换机中ds/bds表中的bdsid进行对比,并根据对比的结果更新ds/bds信息表中的bds的赋值;交换机根据更新的bds选举帧向所有端口洪泛该bds选举帧;其中,根据对比的结果更新ds/bds信息表和bds选举帧中的bds的赋值包括:比较bds1和bds3的switchid的大小,在ds/bds信息表和bds选举帧中的bdsid不是其中数值较大的switchid的情况下,将ds/bds信息表和bds选举帧中的bdsid赋值为其中数值较大的switchid。优选地,所述bds选举过程还包括:在第三定时器超时之后,本交换机转为监听状态,监听bds选举帧,将接收的bds选举帧中的bdsid字段与本交换机中ds/bds表中的bdsid对比,并根据对比的结果更新ds/bds信息表中的bds的赋值。优选地,还包括:在第一交换机为bds的情况下,在预定的周期时间内,当第一交换机没有收到ds发送的ds通知帧时,第一交换机切换为ds,第一交换机向所有的其他交换机发送ds通知帧,所述ds通知帧中,dsid设置为本交换机的switchid,bdsid设置为空。优选地,在所述第一交换机切换为ds之前,所述方法还包括:第一交换机执行初始化过程。优选地,所述初始化过程包括:启动第一定时器;在第一定时器没有超时的情况下,如果收到ds通知帧,在ds通知帧bdsid非空的情况下,根据ds通知帧的dsid和bdsid来填充ds/bds信息表,向ds申请本交换机对应的moose地址,并接收ds为本交换机分配的moose地址;在第一定时器没有超时的情况下,如果收到ds通知帧,在ds通知帧bdsid为空的情况下,执行bds选举过程;在第一定时器没有超时的情况下,如果收到bds选举帧,执行bds选举过程;在第一定时器没有超时的情况下,如果收到ds配置帧,则执行ds/bds选举过程;在第一定时器超时的情况下,如果没有收到数据帧,则执行ds/bds选举。为了解决上述技术问题,本发明还提出了一种地址分配装置,设置在任一第一交换机上,所述装置包括:备用指定单元,用于在第一交换机为备用指定交换机bds时,在当前的指定交换机ds崩溃时,第一交换机切换为ds;指定单元,用于第一交换机为ds时,为交换机分配对应的moose交换机地址。优选地,所述装置还包括:ds/bds选举单元,用于根据预设的ds/bds选举启动条件,启动ds/bds选举过程;bds选举单元,用于根据预设的bds选举启动条件,启动bds选举过程。优选地,所述ds/bds选举启动条件包括如下内容的任一项或多项:第一交换机在非选举状态下,收到ds配置帧;第一交换机在初始化过程中,启动第一定时器,在定时器超时时,没有收到ds配置帧、ds通知帧、或bds选举帧中的任一个;第一交换机在正常运行过程中,在预定的时间间隔内,没有收到ds配置帧、ds通知帧、或bds选举帧中的任一个;所述bds选举启动条件包括如下内容的任一项或多项:第一交换机在非选举状态下,收到ds通知帧,且ds通知帧的bdsid为空;第一交换机在非选举状态下,收到bds选举帧;第一交换机为ds时,在预定的时间间隔内,没有收到bds发送的数据同步的请求。优选地,所述ds配置帧、ds通知帧、和bds选举帧这三种数据帧格式相同,均包括操作类型、保留位、ds的dsid和bds的bdsid;其中,dsid包括ds的优先级和ds的mac地址、bdsid包括bds的优先级和bds的mac地址;所述ds配置帧、ds通知帧、和bds选举帧的操作类型的数值不同。优选地,所述地址分配装置还包括,信息表存储单元,用于存储ds/bds信息表,所述ds/bds信息表用于记录当前的ds的dsid和bds的bdsid,其中,dsid为ds的switchid,bdsid为bds的switchid;ds的switchid包括ds的优先级、ds的mac地址;bds的switchid包括bds的优先级、bds的mac地址。优选地,所述ds/bds选举单元包括:第一填充模块,用于使用第一交换机的switchid填充ds/bds信息表和ds配置帧中的dsid,同时将ds/bds信息表和ds配置帧中的bds置为空;第一洪泛模块,用于向所有端口洪泛该ds配置帧,第一定时模块,用于开启第二定时器;第一比较模块,用于在第二定时器没有超时时,第一交换机收到其他交换机发送的ds配置帧之后,将接收的ds配置帧中的dsid和bdsid字段与本交换机中ds/bds表中的数据对比,并根据对比的结果更新ds/bds信息表和ds配置帧中的dsid和bdsid的赋值;并根据更新的ds配置帧向所有端口洪泛该ds配置帧。优选地,所述ds/bds选举单元还包括:第一监听模块,用于在所述第二定时器超时之后,本交换机转为监听状态,并监听ds配置帧,将接收的ds配置帧中的dsid和bdsid字段与本交换机中ds/bds表中的数据对比,并根据对比的结果更新ds/bds信息表中的ds和bds的赋值。优选地,所述第一比较模块根据对比的结果更新ds/bds信息表和ds配置帧中的dsid和bdsid的赋值包括:比较ds1和ds2;在ds1大于ds2、且bds1为空的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds2;在ds1大于ds2、且bds1不为空的情况下,比较bds1和ds2;如果bds1小于ds2,将ds/bds信息表和ds配置帧中的bdsid赋值为ds2;在ds1小于ds2的情况下,将ds/bds信息表和ds配置帧中的dsid赋值为ds2;在ds1小于ds2、且bds2为空的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds1;在ds1小于ds2、且bds2不为空的情况下,比较bds2和ds1,在bds2大于ds1的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为bds2;在bds2小于或等于ds1的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds1;在ds1等于ds2、且bds1为空的情况下,且bds2不为空的情况下,将ds/bds信息表和dsc中的dsid赋值为bds2;在ds1等于ds2、且bds1不为空、且bds2为空的情况下,将ds/bds信息表和dsc中的dsid赋值为bds1;在ds1等于ds2、且bds1不为空、且bds2不为空的情况下,比较bds1和bds2;如果bds1大于bds2,将ds/bds信息表和dsc中的bdsid赋值为bds1;其中,ds1为第一交换机中ds/bds表中的dsid,ds2为第一交换机收到其他交换机发送的ds配置帧中的dsid;bds1为第一交换机中ds/bds表中的bdsid,bds2为第一交换机收到其他交换机发送的ds配置帧中的bdsid。优选地,所述bds选举单元包括:第二定时模块,用于在收到新的ds通知帧或收到bds选举帧的情况下,启动第三定时器;第二填充模块,用于在收到新的ds通知帧的情况下,交换机将本交换机的switchid填写至bds选举帧中的bdsid字段,第二洪泛模块,用于向网络洪泛所述bds选举帧;第二比较模块,用于在第三定时器没有超时时,交换机收到其他交换机发送的bds选举帧之后,将接收的bds选举帧中的bdsid字段与本交换机中ds/bds表中的bdsid进行对比,并根据对比的结果更新ds/bds信息表中的bds的赋值;所述第二洪泛模块还用于根据更新的bds选举帧向所有端口洪泛该bds选举帧;其中,根据对比的结果更新ds/bds信息表和bds选举帧中的bds的赋值包括:比较bds1和bds3的switchid的大小,在ds/bds信息表和bds选举帧中的bdsid不是其中数值较大的switchid的情况下,将ds/bds信息表和bds选举帧中的bdsid赋值为其中数值较大的switchid。优选地,所述bds选举单元还包括:第二监听模块,用于在第三定时器超时之后,转为监听状态,监听bds选举帧,将接收的bds选举帧中的bdsid字段与本交换机中ds/bds表中的bdsid对比,并根据对比的结果更新ds/bds信息表中的bds的赋值。优选地,还包括:所述备用指定单元还用于在第一交换机为bds的情况下,在预定的周期时间内,当第一交换机没有收到ds发送的ds通知帧时,第一交换机切换为ds,第一交换机向所有的其他交换机发送ds通知帧,所述ds通知帧中,dsid设置为本交换机的switchid,bdsid设置为空。优选地,所述装置还包括:初始化单元,用于执行初始化过程。优选地,所述初始化单元执行初始化过程包括:启动第一定时器;在第一定时器没有超时的情况下,如果收到ds通知帧,在ds通知帧bdsid非空的情况下,根据ds通知帧的dsid和bdsid来填充ds/bds信息表,向ds申请本交换机对应的moose地址,并接收ds为本交换机分配的moose地址;在第一定时器没有超时的情况下,如果收到ds通知帧,在ds通知帧bdsid为空的情况下,执行bds选举过程;在第一定时器没有超时的情况下,如果收到bds选举帧,执行bds选举过程;在第一定时器没有超时的情况下,如果收到ds配置帧,则执行ds/bds选举过程;在第一定时器超时的情况下,如果没有收到数据帧,则执行ds/bds选举。为了解决上述技术问题,本发明还提出了一种交换机,所述交换机包括上述任一地址分配装置。与现有技术相比,本发明提供的技术方案包括:第一交换机为备用指定交换机bds时,在当前ds崩溃时,第一交换机切换为新的ds,通过ds为交换机分配新型moose交换机地址;第一交换机为指定交换机ds时,根据其它交换机的地址分配申请,为其它交换机分配对应的moose交换机地址。通过本发明的方案,通过备用指定交换机,在ds崩溃时,就不需要重新开始选择指定交换机,可以直接进行ds/bds的快速切换,将之前选举的bds作为新的ds,从而加快在指定交换机崩溃时的恢复速度,以维护数据中心中网络的稳定和可靠性。附图说明下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。图1为本发明实施例提供的地址分配方法的流程图;图2为本发明实施例提供的交换机的初始化过程的流程示意图;图3为本发明实施例提供的ds/bds选举过程的流程示意图;图4为本发明实施例提供的步骤330中的流程示意图;图5为本发明实施例提供的bds选举过程的流程示意图;图6为本发明实施例提供的地址分配装置的结构示意图。具体实施方式为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的各种方式可以相互组合。本发明提出了一种地址分配方法,所述方法包括:第一交换机为备用指定交换机bds时,在当前的指定交换机ds崩溃时,第一交换机切换为ds;切换后,当前的ds更改为第一交换机;第一交换机为ds时,为交换机分配对应的moose交换机地址。本发明实施例中,数据中心的交换机包括指定交换机、备用指定交换机和非指定交换机,其中,指定交换机和备用指定交换机的数目均为1个。参见图1,本发明提出了一种地址分配方法,所述方法包括:步骤110,通过执行指定交换机ds/备用指定交换机bds选举过程,确定指定交换机ds和备用指定交换机bds;步骤120,ds为交换机分配moose地址。本发明实施例中,ds为非指定交换机分配moose地址,也为本ds和bds分配moose地址。其中,优选地,ds根据非指定交换机的地址分配申请,为非指定交换机分配对应的moose交换机地址。步骤130,在ds崩溃时,将bds设置为新的ds;步骤150,新的ds为交换机分配moose交换机地址。在步骤130之后,还包括:步骤140,在所述将bds设置为新的ds之后,通过执行bds选举过程确定新的bds。首先,对指定交换机ds、备用指定交换机bds、普通交换机normalswitch、switchid、ds/bds信息表、mooseswitchaddress、mooseswitchaddress信息表进行说明。(1)、指定交换机(ds,designedswitch)统一的为数据中心中的所有交换机动态分配mooseswitchaddress,并且对所有非指定交换机进行集中管理的交换机。(2)、备用指定交换机(bds,backupdesignedswitch)引入集中管理方式有一个缺点:一旦指定交换机崩溃,会造成网络需要重新选举指定交换机,从而导致网络的震荡。为了解决这一问题,本发明实施例提供了一种bds,在ds崩溃时,不需要重新开始选举指定交换机,可以直接进行ds/bds的快速切换,将现有的bds作为新的ds,从而加快ds崩溃时的恢复速度,以维护数据中心中网络的稳定和可靠性。(3)、普通交换机(normalswitch)在数据中心中,除了指定交换机和备用指定交换机以外的其他交换机,称为普通交换机,也就是非指定交换机。(4)、switchid:switchid包括交换机的优先级和mac地址,如表1所示,为示例性的switchid的示意格式。表1(5)、ds/bds信息表:存储在每个交换机上的表格,用于记录当前的ds和bds。每台交换机都需要知道所选举出的ds,因此,每台交换机都需要记录一张ds/bds表,表中包含了dsid,bdsid;其中,dsid为ds的switchid,初始值为空,bdsid为bds的switchid,初始值为空。如表2所示,为示例性的ds/bds信息表的示意格式。表2(6)、mooseswitchaddressds交换机为每个交换机分配的moose交换机地址。其格式如表3所示。表3(7)、mac/mooseswitchaddress信息表保存在ds交换机中的mac地址和mooseswitchaddress的对应表。其格式表4所示。其中syn为更新确认标志位。mac地址(48bit)mooseswitchaddress(24bit)syn(1bit)表4本发明实施例中,为了执行ds和bds的选举过程,提出了ds配置帧、ds通知帧、bds选举帧,这三种数据帧的格式相同,通过操作类型字段来区分这三种数据帧,下面,对ds配置帧、ds通知帧、bds选举帧分别进行说明。上述三种数据帧中,均包括操作类型、保留位、指定交换机的优先级、指定交换机的mac地址、备用指定交换机的优先级、备用指定交换机的mac地址。表5(8)、ds配置帧本发明实施例提供一种ds配置帧,用于ds选举。参见表5所示,为示例性的ds配置帧的示意格式。结合表5所示,其中op为操作类型,其值为1;reserve为保留位;dspriority为所选举指定交换机的优先级;dsmacaddress为所选举指定交换机的mac地址;bdspriority为所选举备用指定交换机的优先级;bdsmacaddress为所选举备用指定交换机的mac地址。其中,dsid字段包括dspriority字段和dsmacaddress字段;bdsid字段包括bdspriority字段和bdsmacaddress字段。(9)、ds通知帧本发明实施例提供一种ds通知帧。ds周期性地向所有交换机发送ds通知帧,ds通知帧中包括ds的优先级、ds的mac地址。参见表5所示,为示例性的ds通知帧的示意格式,其中op为操作类型,其值为2;reserve为保留位;dspriority为指定交换机的优先级;dsmacaddress为指定交换机的mac地址;bdspriority值为空;bdsmacaddress值为空。将dspriority和dsmacaddress字段合称为dsid字段;同时,将bdspriority和bdsmacaddress字段合称为bdsid字段。(10)、bds选举帧本发明实施例提供一种bds选举帧,用于非指定交换机间的bds选举。参见表5所示,为示例性的bds选举帧的示意格式,其中op为操作类型,其值为3;reserve为保留位;dspriority为指定交换机的优先级,该值不能被改变;dsmacaddress为指定交换机的mac地址,该值不能被改变;bdspriority为所选举备用指定交换机的优先级;bdsmacaddress为所选举备用指定交换机的mac地址。将dspriority和dsmacaddress字段合称为dsid字段;同时,将bdspriority和bdsmacaddress字段合称为bdsid字段。下面结合上述定义和说明,对ds/bds选举过程、bds选举过程、以及交换机初始化过程进行说明。交换机上电之后,会执行初始化过程,参见图2,为交换机的初始化过程的流程示意图,如图2所示,交换机的初始化过程包括:步骤210,启动第一定时器;交换机在初始化时,需要检查ds/bds信息表,此时该表为空,同时启动第一定时器timer1。第一定时器的默认值为60s。步骤220,第一定时器是否超时;步骤231,在第一定时器没有超时的情况下,收到ds通知帧;步骤232,在第一定时器没有超时的情况下,如果收到ds通知帧,判断ds通知帧中bdsid是否为空,如果为空,执行步骤252,如果非空,执行步骤233;步骤233,根据ds通知帧的dsid和bdsid来填充ds/bds信息表;步骤234,向ds申请本交换机对应的mooseswitchaddress;即moose地;步骤235,接收ds为本交换机分配的mooseswitchaddress;步骤241,在第一定时器没有超时的情况下,收到ds配置帧;步骤260,在第一定时器没有超时的情况下,如果收到ds配置帧,则执行ds/bds选举过程;步骤251,在第一定时器没有超时的情况下,收到bds选举帧;步骤252,在第一定时器没有超时的情况下,如果收到bds选举帧,则执行bds选举过程;步骤260,在第一定时器超时的情况下,如果没有收到数据帧,则执行ds/bds选举。下面结合上述定义和说明,对ds/bds选举过程进行说明。根据如下方法来选举ds和bds:在选举ds/bds时,通过比较switchid的大小来确定指定交换机和备份指定交换机,switchid最大的交换机作为ds,switchid第二大的交换机作为bds;switchid包括优先级和mac地址,因此,具体为通过比较优先级和mac地址的大小来确定指定交换机和备份指定交换机,(a)、比较交换机的优先级的大小,优先级越大的交换机被选择;(b)、如果交换机的优先级相同,则比较交换机的mac地址的大小,选择mac地址较大的作为选择的交换机。最终,网络中switchid最大的交换机作为ds,switchid第二大的交换机作为bds。为了保持数据中心网络的稳定性,在初始化选择完ds/bds后,如果有switchid比此时ds更大的交换机加入到网络中时,不会重新选举ds/bds,除非ds/bds崩溃。参见图3,为ds/bds选举过程的流程示意图,在ds/bds选举过程中,对于任意一个交换机,按如下方法进行执行选举:步骤310,使用本交换机的switchid填充ds/bds信息表和dsc中的dsid,同时将ds/bds信息表和dsc中的bds置为空;步骤320,向所有端口洪泛该ds配置帧,同时开启第二定时器timer2;timer2默认为60秒。步骤330,在第二定时器没有超时时,交换机收到其他交换机发送的dsc帧(ds配置帧)之后,将接收的dsc帧中的dsid和bdsid字段与本交换机中ds/bds表中的数据对比,并根据对比的结果更新ds/bds信息表中的ds和bds的赋值。其中,本交换机ds/bds表中的数据值为ds1和bds1,dsc中的dsid与bdsid字段的数据值分别为ds2和bds2;步骤330中,根据对比的结果更新ds/bds信息表和dsc帧中的dsid和bdsid的赋值:比较ds1、bds1、ds2和bds2的switchid的大小,在ds/bds信息表和dsc中的dsid不是其中数值最大的switchid的情况下,将ds/bds信息表和dsc中的dsid赋值为其中数值最大的switchid;在ds/bds信息表和dsc中的bdsid不是其中数值第二大的switchid的情况下,将ds/bds信息表和dsc中的bdsid赋值为其中数值第二大的switchid;在一种比较方式中,如图4所示,步骤330包括:比较ds1和ds2;如果ds1大于ds2,执行步骤3311,如果ds1或等于ds2,执行步骤3312,如果ds1小于ds2,执行步骤3320,步骤3313,在ds1大于ds2的情况下,判断bds1是否为空;如果为空,执行步骤3321,如果不为空,执行步骤3314;步骤3321,在bds1为空的情况下,将ds/bds信息表和dsc中的bdsid赋值为ds2;结束;步骤3314,在bds1不为空的情况下,比较bds1和ds2;如果ds2大于bds1,执行步骤3321,如果ds2小于bds1,执行步骤3322;步骤3322,在ds2小于bds1的情况下,将ds/bds信息表和dsc中的bdsid赋值为bds1;结束;步骤3315,在ds1大于ds2的情况下,判断bds1是否为空;如果为空,执行步骤3324,如果不为空,执行步骤3316;步骤3324,在bds1为空的情况下,将ds/bds信息表和dsc中的bdsid赋值为bds2;结束;步骤3316,在ds1等于ds2、且bds1不为空的情况下,判断bds2是否为空;如果为空,执行步骤3322,如果不为空,执行步骤3317;步骤3317,在ds1等于ds2、且bds1、bds2不为空的情况下,比较bds1和bds2;如果bds1大于bds2,执行步骤3322,否则,执行步骤3324;步骤3323,在ds1小于ds2的情况下,将ds/bds信息表和dsc中的dsid赋值为ds2;步骤3318,判断bds2是否为空;如果为空,执行步骤3325,如果不为空,执行步骤3319;步骤3325,在bds2为空的情况下,将ds/bds信息表和dsc中的bdsid赋值为ds1;步骤3319,在bds2不为空的情况下,比较bds2和ds1;如果bds2大于ds1,执行步骤3324,否则,执行步骤3325;步骤340,交换机根据更新的dsc向所有端口洪泛该dsc帧。步骤350,在第二定时器超时之后,交换机转为监听状态,交换机监听dsc帧,将接收的dsc帧中的dsid和bdsid字段与本交换机中ds/bds表中的数据对比,并根据对比的结果更新ds/bds信息表中的ds和bds的赋值。下面结合上述定义和说明,对bds选举过程进行说明。步骤410,交换机在收到新的ds通知帧或收到bds选举帧的情况下,启动第三定时器timer3;在第三定时器没到定时时间,或者监听状态下,收到bds选举帧不会重新启动第三定时器。步骤420,在收到新的ds通知帧的情况下,交换机将本交换机的switchid填写至bds选举帧中的bdsid字段,并向网络洪泛bds选举帧;新的ds通知帧的bdsid字段为空。步骤430,在第三定时器没有超时时,交换机收到其他交换机发送的bds选举帧之后,将接收的bds选举帧中的bdsid字段与本交换机中ds/bds表中的bdsid进行对比,并根据对比的结果更新ds/bds信息表和bds选举帧中的bds的赋值。本交换机ds/bds表中的数据值为ds1和bds1,bds选举帧中的bdsid字段的数据值为bds3;步骤430中,根据对比的结果更新ds/bds信息表和bds选举帧中的bds的赋值包括:比较bds1和bds3的switchid的大小,在ds/bds信息表和bds选举帧中的bdsid不是其中数值较大的switchid的情况下,将ds/bds信息表和bds选举帧中的bdsid赋值为其中数值较大的switchid;步骤440,交换机根据更新的bds选举帧向所有端口洪泛该bds选举帧。步骤450,在第三定时器超时之后,交换机转为监听状态,交换机监听bds选举帧,将接收的bds选举帧中的bdsid字段与本交换机中ds/bds表中的bdsid对比,并根据对比的结果更新ds/bds信息表中的bds的赋值。本发明实施例中,任一个第一交换机为bds的情况下,第一交换机设定第四定时器,如果在第四定时器超时时,第一交换机没有收到ds发送的ds通知帧,第一交换机切换为ds,第一交换机向所有的其他交换机发送新的ds通知帧,该ds通知帧中,dsid为本交换机的switchid,bdsid为空。通过该ds通知帧,将启动bds选举过程。如果在第四定时器没有超时时,第一交换机收到ds发送的ds通知帧,则将第四定时器清空。第四定时器设置为60s。本实施例中,bds如果没有按时收到ds发送的ds通知帧,则认为ds崩溃,因此,会切换为ds,并启动bds选举过程,选举新的ds。本发明实施例中,各个定时器设置的定时时间为30~90s,优选地,为60s,例如,还可以设置为30s,45s等。其他非ds交换机在收到新的ds通知帧或者收到其他非ds交换机发出的bds选举帧后,向其他端口转发该ds通知帧,并且将本交换机ds/bds表中的dsid更新为现有的bdsid,然后将bds设置为本交换机的switchid。其中,新的ds通知帧是指相对于之前收到的ds通知帧,其中的dsid出现变化。在非ds崩溃后重启时,该交换机进入初始化过程。当一台交换机新加入交换网络时,该交换机进入初始化过程。根据定时器设置的时间,如果到时没有收到ds发送的dsn帧,则启动ds/bds选举或者bds选举过程。在ds/bds选举或者bds选举之后,会根据新的选举结果更新新的ds和/或bds的结果。在第一交换机为ds时,根据bds和ds之间定期的数据同步,如果ds在预定的时间间隔内,没有收到bds发送的数据同步的请求,则ds判断bds崩溃,ds发起bds选举过程。基于与上述实施例相同或相似的构思,本发明实施例还提供一种地址分配装置,设置在任意第一交换机上,参见图6,本发明提出的一种地址分配装置包括:备用指定单元10,用于在第一交换机为备用指定交换机bds时,在当前的指定交换机ds崩溃时,第一交换机切换为ds;指定单元20,用于第一交换机为ds时,为交换机分配对应的moose交换机地址。本发明实施例中,所述装置还包括:ds/bds选举单元30,用于根据预设的ds/bds选举启动条件,启动ds/bds选举过程;bds选举单元40,用于根据预设的bds选举启动条件,启动bds选举过程。本发明实施例中,所述ds/bds选举启动条件包括如下内容的任一项或多项:第一交换机在非选举状态下,收到ds配置帧;第一交换机在初始化过程中,启动第一定时器,在定时器超时时,没有收到ds配置帧、ds通知帧、或bds选举帧中的任一个;所述bds选举启动条件包括如下内容的任一项或多项:第一交换机在非选举状态下,收到ds通知帧,且ds通知帧的bdsid为空;第一交换机在非选举状态下,收到bds选举帧。本发明实施例中,所述ds配置帧、ds通知帧、和bds选举帧这三种数据帧格式相同,均包括操作类型、保留位、ds的dsid和bds的bdsid;其中,dsid包括ds的优先级和ds的mac地址、bdsid包括bds的优先级和bds的mac地址;所述ds配置帧、ds通知帧、和bds选举帧的操作类型的数值不同。本发明实施例中,所述地址分配装置还包括,信息表存储单元50,用于存储ds/bds信息表,所述ds/bds信息表用于记录当前的ds的dsid和bds的bdsid,其中,dsid为ds的switchid,bdsid为bds的switchid;ds的switchid包括ds的优先级、ds的mac地址;bds的switchid包括bds的优先级、bds的mac地址。本发明实施例中,所述ds/bds选举单元包括:第一填充模块,用于使用第一交换机的switchid填充ds/bds信息表和ds配置帧中的dsid,同时将ds/bds信息表和ds配置帧中的bds置为空;第一洪泛模块,用于向所有端口洪泛该ds配置帧,第一定时模块,用于开启第二定时器;第一比较模块,用于在第二定时器没有超时时,第一交换机收到其他交换机发送的ds配置帧之后,将接收的ds配置帧中的dsid和bdsid字段与本交换机中ds/bds表中的数据对比,并根据对比的结果更新ds/bds信息表和ds配置帧中的dsid和bdsid的赋值;并根据更新的ds配置帧向所有端口洪泛该ds配置帧。本发明实施例中,所述ds/bds选举单元还包括:第一监听模块,用于在所述第二定时器超时之后,本交换机转为监听状态,并监听ds配置帧,将接收的ds配置帧中的dsid和bdsid字段与本交换机中ds/bds表中的数据对比,并根据对比的结果更新ds/bds信息表中的ds和bds的赋值。本发明实施例中,所述第一比较模块根据对比的结果更新ds/bds信息表和ds配置帧中的dsid和bdsid的赋值包括:比较ds1和ds2;在ds1大于ds2、且bds1为空的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds2;在ds1大于ds2、且bds1不为空的情况下,比较bds1和ds2;如果bds1小于ds2,将ds/bds信息表和ds配置帧中的bdsid赋值为ds2;在ds1小于ds2的情况下,将ds/bds信息表和ds配置帧中的dsid赋值为ds2;在ds1小于ds2、且bds2为空的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds1;在ds1小于ds2、且bds2不为空的情况下,比较bds2和ds1,在bds2大于ds1的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为bds2;在bds2小于或等于ds1的情况下,将ds/bds信息表和ds配置帧中的bdsid赋值为ds1;在ds1等于ds2、且bds1为空的情况下,且bds2不为空的情况下,将ds/bds信息表和dsc中的dsid赋值为bds2;在ds1等于ds2、且bds1不为空、且bds2为空的情况下,将ds/bds信息表和dsc中的dsid赋值为bds1;在ds1等于ds2、且bds1不为空、且bds2不为空的情况下,比较bds1和bds2;如果bds1大于bds2,将ds/bds信息表和dsc中的bdsid赋值为bds1;其中,ds1为第一交换机中ds/bds表中的dsid,ds2为第一交换机收到其他交换机发送的ds配置帧中的dsid;bds1为第一交换机中ds/bds表中的bdsid,bds2为第一交换机收到其他交换机发送的ds配置帧中的bdsid。本发明实施例中,所述bds选举单元包括:第二定时模块,用于在收到新的ds通知帧或收到bds选举帧的情况下,启动第三定时器;第二填充模块,用于在收到新的ds通知帧的情况下,交换机将本交换机的switchid填写至bds选举帧中的bdsid字段,第二洪泛模块,用于向网络洪泛所述bds选举帧;第二比较模块,用于在第三定时器没有超时时,交换机收到其他交换机发送的bds选举帧之后,将接收的bds选举帧中的bdsid字段与本交换机中ds/bds表中的bdsid进行对比,并根据对比的结果更新ds/bds信息表中的bds的赋值;所述第二洪泛模块还用于根据更新的bds选举帧向所有端口洪泛该bds选举帧;其中,根据对比的结果更新ds/bds信息表和bds选举帧中的bds的赋值包括:比较bds1和bds3的switchid的大小,在ds/bds信息表和bds选举帧中的bdsid不是其中数值较大的switchid的情况下,将ds/bds信息表和bds选举帧中的bdsid赋值为其中数值较大的switchid。本发明实施例中,所述bds选举单元还包括:第二监听模块,用于在第三定时器超时之后,转为监听状态,监听bds选举帧,将接收的bds选举帧中的bdsid字段与本交换机中ds/bds表中的bdsid对比,并根据对比的结果更新ds/bds信息表中的bds的赋值。本发明实施例中,还包括:所述备用指定单元还用于在第一交换机为bds的情况下,在预定的周期时间内,当第一交换机没有收到ds发送的ds通知帧时,第一交换机切换为ds,第一交换机向所有的其他交换机发送ds通知帧,所述ds通知帧中,dsid设置为本交换机的switchid,bdsid设置为空。本发明实施例中,所述装置还包括:初始化单元,用于执行初始化过程。本发明实施例中,所述初始化单元执行初始化过程包括:启动第一定时器;在第一定时器没有超时的情况下,如果收到ds通知帧,在ds通知帧bdsid非空的情况下,根据ds通知帧的dsid和bdsid来填充ds/bds信息表,向ds申请本交换机对应的moose地址,并接收ds为本交换机分配的moose地址;在第一定时器没有超时的情况下,如果收到ds通知帧,在ds通知帧bdsid为空的情况下,执行bds选举过程;在第一定时器没有超时的情况下,如果收到bds选举帧,执行bds选举过程;在第一定时器没有超时的情况下,如果收到ds配置帧,则执行ds/bds选举过程;在第一定时器超时的情况下,如果没有收到数据帧,则执行ds/bds选举。基于与上述实施例相同或相似的构思,本发明实施例还提供一种交换机,所述交换机包括本发明实施例提供的任一地址分配装置需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1