发明内容
本发明的目的是提供一种管理分布式网络设备的方法,以克服现有技术中对联合设备通过手工编号方式进行管理,使得管理复杂、扩展性差的缺点,简化对IRF架构的管理,实现对联合设备的动态扩展,并减少对业务的影响。
为此,本发明提供如下的技术方案:
一种管理分布式网络设备的方法,包括步骤:
A、由多个网络设备组成联合设备;
B、通过拓扑发现收集其内部的每个网络设备的信息;
C、为每个网络设备分配一个唯一的标识并将这些标识通知所述联合设备内的每个网络设备。
所述步骤B具体包括:
当所述联合设备上电时,通过拓扑发现其内部的每个网络设备;
在所述联合设备运行中,定时通过拓扑发现其内部的每个网络设备。
可选地,所述步骤C具体包括:
C11、各网络设备通过相同的算法选定主设备;
C12、在所述主设备上依次为每个网络设备分配一个唯一的标识;
C13、将分配的标识通知所述联合设备内的每个网络设备。
可选地,所述步骤C具体包括:
C21、各网络设备通过相同的算法选定主设备;
C22、从所述主设备开始,依次由各网络设备分别为自己分配标识;
C23、所有网络设备标识分配结束后,将分配的全部标识通知所述联合设备内的每个网络设备。
所述步骤C22包括:
(1)网络设备分配自身标识;
(2)如果还有未分配标识的网络设备,则选定下一个需要分配标识的网络设备,并将自身标识及自己获知的其他网络设备的标识通知给该网络设备;
重复上述步骤(1)至(2),直到所有网络设备标识分配结束。
优选地,
当所述网络设备为串行连接或环形连接时,选定与本网络设备下行接口或上行接口相连的网络设备作为下一个分配标识的网络设备;
当所述网络设备为混合连接时,选定与本网络设备下行接口或上行接口相连的网络设备作为下一个分配标识的网络设备,并且当某网络设备的下行接口或上行接口连接有多台设备时,依据与其相连的各网络设备的固有属性选择下一个分配标识的网络设备。
优选地,所述步骤C中为网络设备分配标识时,如果该网络设备已手工配置了标识,则优先使用该标识。
优选地,所述方法还包括步骤:
D、当分配给网络设备的标识与其原有标识不同时,更新本网络设备原有标识及存储的与标识有关的本地信息;
E、当本网络设备保存有其他网络设备的信息,并且其他网络设备标识已发生变化时,更新存储的这些非本地信息。
可选地,所述步骤E具体包括:
删除所有标识发生变化了的网络设备的信息;
重新从标识发生变化了的网络设备中获取该网络设备的信息。
可选地,所述步骤E具体包括:
修改本网络设备保存的标识发生变化了的网络设备的信息;
从标识发生变化了的网络设备中获取该网络设备由于标识变化引起的其他改变信息。
由以上本发明提供的技术方案可以看出,本发明通过fabric内设备间互相交互信息,实现系统给组成fabric的每个个体自动分配标识,可以通过集中分配方式或者分布式分配方式进行标识分配,由于标识分配过程无需人工干预,简化了对fabric的管理。当fabric的组成发生改变时,比如增、减其内部设备,人为强制修改一些个体标识等,通过系统自动为新加入的个体分配标识并解决不同设备间的标识冲突,使设备可以做到即插即用。由于无需人工修改设置就可以将多个单个设备进行连线组成联合设备,减少了标识分配及与标识相关的存储数据更新时对业务的影响,使fabric可以做到动态扩展。
具体实施方式
本发明的核心在于对IRF架构的分布式网络设备,当fabric上电启动、或其组成发生变化、或人为强制修改一些个体标识时,由系统自动给组成联合设备的每个个体分配唯一标识,通过信息交互发现与其相连的个体并为其分配标识,具体分配方式可以采用集中分配方式,也可以采用分布式分配方式。对于运行中的设备,如果新分配的标识与自身原有标识不同,更新自身保存的所有与设备标识相关的信息。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
将支持IRF架构的多台网络设备互相连接起来形成一个联合设备,即一个Fabric。在一个Fabric内,虽然直接相连的网络设备只有一种方式:一个设备的上行接口与另一个设备的下行接口相连。但对于Fabric,其拓扑结构可以有多种方式。例如:
图1所示为环形连接方式:
第一个设备(设备A)的下行接口与第二个设备(设备B)的上行接口相连,第二个设备(设备B)的下行接口与第三个设备(设备C)的上行接口相连,一直连接到最后一个设备(设备D),最后一个设备的下行接口与第一个设备的上行接口相连。
图2所示为串行连接方式:
第一个设备(设备A)的下行接口与第二个设备(设备B)的上行接口相连,第二个设备的下行接口与第三个设备(设备C)的上行接口相连,一直连接到最后一个设备(设备D)。
图3所示为混合连接方式:
第一个设备(设备A)的下行接口与第二个设备(设备B)的上行接口相连,第二个设备的下行接口分别与第三个设备(设备C)和最后一个设备(设备D)的上行接口相连,第三个设备(设备C)的下行接口还与最后一个设备(设备D)的上行接口相连,最后一个设备(设备D)的下行接口与第一个设备的上行接口相连。
当然,除上述连接方式外,在混合连接方式中,各网络设备间的连接关系可能更复杂,在此不再一一列举。
多个网络设备组成Fabric后,无论在管理还是使用上,就成为了一个整体。整个Fabric作为一台设备进行管理,大大提高了设备的扩展性及可靠性。
对于不同的Fabric拓扑结构,其内部各网络设备标识分配的具体过程会稍有不同,将在后面详细描述。
参照图4,图4是本发明方法的实现流程图:
首先,在步骤401:由多个网络设备组成联合设备,如前面所述,根据实际需要,其连接方式可以多种多样。
步骤402:通过拓扑发现收集其内部的每个网络设备的信息。
在联合设备上电时,通过拓扑发现收集其内部的每个网络设备的信息,这些信息不但包括了各网络设备中存储的一些设备的配置信息,如果某些网络设备已手工设定了其标识,则需要优先使用该标识,因此这些信息中还包括了网络设备的手工设定的标识信息。
在联合设备运行过程中,如果设备的组成发生了变化(比如,加入新设备,或单个设备脱离联合设备等)或人为强制修改一些网络设备的标识时会影响其他网络设备的标识,这时就需要为各网络设备重新分配标识。因此,在联合设备运行中,可以定时通过拓扑发现收集其内部的每个网络设备的信息。
可以使用专门的拓扑发现协议,比如,DDP(双工堆叠发现协议),使各设备之间交互信息,网络设备信息通过发现协议报文携带,也可以在拓扑发现后单独通过消息发送。
步骤403:为发现的每个网络设备分配一个唯一的标识并将这些标识通知联合设备内的每个网络设备。
标识的分配方式可以采用集中分配方式,也可以采用分布式分配方式。
设备标识可以是数字形式,也可以是几个固定的名字。
图5示出了集中分配方式的实现流程:
首先,在步骤501:各网络设备通过相同的算法选定主设备。
当网络设备为串行连接时,选定一端的网络设备为主设备;当网络设备为环行连接或混合连接时,依据各网络设备的固有属性,选定主设备。比如,选定MAC(媒体接入控制)地址最小的为主设备,或者选定设备硬件编号(可以是设备出厂时的唯一编号)最小的为主设备。
步骤502:在选定的主设备上依次为每个网络设备分配一个唯一的标识。
前面已经介绍,联合设备可以有各种不同的拓扑结构。针对这些不同的拓扑结构,其标识的分配过程也有所不同。
参照图1所示的环行连接方式及图2所示的串行连接方式:
设备A、设备B、设备C和设备D依次为本设备的上行接口和与其相连的设备的下行接口相连。此时,可以依据各网络设备下行接口或上行接口连接顺序依次为每个网络设备分配一个唯一的标识。
假设选定了设备A为主设备,并且所有网络设备都未手工设置标识。则在设备A上为所有网络设备分配标识。首先为设备A分配标识“1”,为设备B分配标识“2”,为设备C分配标识“3”,为设备D分配标识“4”。
再参照图3所示的混合连接方式:
设备A、设备B、设备C和设备D依次为本设备的上行接口和与其相连的设备的下行接口相连,而且设备B的下行接口还连接到设备D的上行接口。此时,不仅要依据各网络设备下行接口或上行接口连接顺序依次为每个网络设备分配一个唯一的标识,而且当某网络设备的下行接口或上行接口连接有多台设备时,还要依据与其相连的各网络设备的固有属性依次为每个网络设备分配一个唯一的标识。
假设选定了设备A为主设备,并且所有网络设备都未手工设置标识。则在设备A上为所有网络设备分配标识。首先为设备A分配标识“1”;与设备A下行接口相连的为设备B,为其分配标识“2”;与设备B下行接口相连的有两个设备:设备C和设备D,这时,可以再根据这两个设备的MAC地址大小决定其标识,假设设备C的MAC地址小于设备D的MAC地址,为设备分配标识“3”,为设备“D”分配标识“4”。
在上述为各网络设备分配标识时,都假设所有网络设备都未手工设置标识。但在实际网络中,有时需要对某些设备手工设置其标识。如果某网络设备已手工配置了标识,则优先使用该标识。
步骤503:将分配的标识通知联合设备内的每个网络设备。
可以通过不同网络设备间的信息交互将分配的标识通知联合设备内的每个网络设备。具体可以根据接口的不同、设备硬件的不同、收发方式的不同等,选用所需的协议及报文交互信息。
图6示出了分布式分配方式的实现流程:
首先,在步骤601:各网络设备通过相同的算法选定主设备。
当网络设备为串行连接时,选定一端的网络设备为主设备;当网络设备为环行连接或混合连接时,依据各网络设备的固有属性,选定主设备。比如,选定MAC地址最小的为主设备,或者选定设备硬件编号最小的为主设备。
步骤602:从主设备开始,依次由各网络设备分别为自己分配标识。
对于环形连接方式,当第一个需要分配标识的网络设备为自己分配标识后,判断是否还有未分配标识的网络设备,如果有,则将自身标识发送给下一个需要分配标识的网络设备。当然,如果该网络设备已手工配置了标识,则优先使用该标识。
当网络设备为串行连接或环形连接时,选定与本网络设备下行接口或上行接口相连的网络设备作为下一个分配标识的网络设备;
当网络设备为混合连接时,选定与本网络设备下行接口或上行接口相连的网络设备作为下一个分配标识的网络设备,并且当某网络设备的下行接口或上行接口连接有多台设备时,依据与其相连的各网络设备的固有属性选择下一个分配标识的网络设备。
这样,从选定的主设备开始,每分配一个设备标识,通过设备间的信息交互,将该标识通知到下一个需要分配标识的网络设备,直到最后一个网络设备。
步骤603:所有网络设备标识分配结束后,将分配的全部标识通知联合设备内的每个网络设备。
最后一个网络设备为自身分配标识后,对于环形连接或混合连接,可以由最后一个网络设备将所有网络设备的标识信息发送给主设备,然后再通过设备间的信息交互依次传送给联合设备内的所有网络设备;当然,也可以先由最后一个网络设备向前一个网络设备传送所有网络设备的标识信息,然后再依次向前传送,直到主设备。对于串形连接,可以由最后一个网络设备向前一个网络设备传送所有网络设备的标识信息,然后再依次向前传送,直到主设备。
在组成联合设备的各网络设备中,有时根据需要,可能保存有一些与设备标识相关的信息,比如,接口信息、存储设备、电源、风扇、CPU、控制台等信息,甚至需要保存其他网络设备与设备标识相关的信息。当网络设备的标识发生变化后,相应地也需要更新这些信息。也就是说,不仅需要进行本地数据的更新,也时还需要进行非本地数据的更新。
当分配给某网络设备的标识与其原有标识不同时,需要更新本网络设备原有标识及存储的与标识有关的本地信息。因此,为了减少数据修改量,可以只修改需要长期保存的数据。如果一些处理产生的临时数据中包含设备标识信息,可以终止当前处理,删除与设备标识相关的数据。
当本网络设备保存有其他网络设备的信息,并且其他网络设备标识已发生变化时,更新存储的这些非本地信息。对于非本地信息的更新,可以采用以下两种方式:
1.先删除所有标识发生变化了的网络设备的信息;然后重新从标识发生变化了的网络设备中获取该网络设备的信息。
2.修改本网络设备保存的标识发生变化了的网络设备的信息;然后如果需要,从标识发生变化了的网络设备中获取该网络设备由于标识变化引起的其他改变信息。
因为联合设备中的各网络设备具有相同的功能及配置信息,对于其中每个个体,不仅知道自己哪些信息变化了,而且也知道其他个体保存了自己哪些信息。通过设备间的信息交互,可以获取到自己所需的信息。
由以上的描述可以看到,标识的修改可能会带来很多相关处理。因此为了简化处理,在网络系统启动时,可以在系统主要部分运行前进行标识自动分配,这样,可以进一步减少数据修改量。此时,由于每个网络设备上没有保存其他个体信息,也不需要更新保存的其他个体信息。
另外,在网络设备运行过程中,尽量不修改已经存在的标识。运行中的多个单个设备或联合设备连接形成大的联合设备,或联合设备中的某个设备脱离联合设备的情况下,一些个体在连接发生变化前已经有标识,变化后可以尽量不改变其原有标识,即仅对原来没有标识的个体,或标识发生冲突的个体分配标识。对于标识发生冲突的个体,可以仅保留一个个体使用此标识,其他个体重新分配标识。
例如:
1.串形连接两端的网络设备失败时,其他网络设备的标识不变。图2中假设A设备失败,则B、C、D的标识均不变。
2.串形连接拿掉中间的一个网络设备,并接回到一起,则其他网络设备的标识不变。图2中假设其拓扑结构重新连接成A->C->D,B被拿掉,则A、C、D的标识均不变。
3.串形连接断开后,各网络设备的标识均不变。图2中假设B、C之间的连接断开,则A、B、C、D的标识均不变。
4.串形连接中间的网络设备失败,相当于一个断开过程,各网络设备的标识均不变。图2中假设B设备失败,则A、C、D的标识均不变。
5.串形连接在前面加入一个新设备。Fabric中空闲的上行接口与新设备的下行接口连接,这时原来各网络设备的标识不变,为新设备分配一个标识。假设原来空闲上行接口的设备为A,则为新设备分配的标识为A的标识的前一个号,如果此标识已经在Fabric中被使用,则依次向前查找一个没有使用的标识。
例如:假设原来的情况是A(Unit1)→B(Unit2)->C(Unit6)->D(Unit8),增加E变为E->A->B->C->D,这时发现1的前一个号8(假设支持最大8个Unit)已经被使用,再向前一个7未使用,则E为Unit7。
6.串形连接在中间加入一个新设备。这时原来各网络设备的标识不变,为新设备分配一个标识。假设在A、B之间加入新设备,则为新设备分配的标识为A的标识的下一个号,如果此标识已经在Fabric中被使用,则依次向后查找一个没有使用的标识。
例如:假设原来的情况是A(Unit1)→B(Unit2)->C(Unit3)->D(Unit5),在B、C中间增加E变为A->B->E->C->D,这时发现2的后一个号是3,3已经被使用,再向后一个4未使用,则E为Unit4。
7.串形连接融合。融合时如果没有标识冲突则维持原来的标识。如果有标识冲突,需要为冲突的设备分配新的标识。
例如:假设原来的情况是A(Unit1)→B(Unit2),C(Unit3)->D(Unit2)->E(Unit5),连接成A->B->C->D->E,这时发现D、B冲突,则D分配新的Unit ID为4。最终的结果为A(Unit1)→B(Unit2)->C(Unit3)->D(Unit4)->E(Unit5)。
对于环形连接及混合连接方式,同样可以依照上述原则,尽量减少对已存在标识的修改。在此不再详细举例。
可见,本发明通过将多个网络设备组成联合设备,对外将其作为一个设备进行管理,并在设备启动或运行过程中,由系统为各网络设备自动分配标识,大大简化了对分布式网络设备的管理。同时可以使设备做到即插即用,无需人工修改其标识就可以将多个单个设备进行连线组成联合设备,还可以将多个运行着的单个设备或联合设备连接成为大的联合设备,使联合设备可以任意动态扩展,并减少了对业务的影响,甚至可以不影响业务的运行。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。