本申请涉及通信领域,尤其涉及一种网络设备堆叠方法、网络设备及存储介质。
背景技术:
堆叠技术是指把多个可堆叠网络设备组合在一起,从逻辑上合为一台网络设备,该逻辑上的单台网络设备可称为堆叠。在建立堆叠之前,网络设备都是单独的设备,有独立的网际协议(internetprotocol,ip)地址。当建立堆叠后,堆叠中的网络设备对外体现为一个逻辑设备。可以通过增加堆叠中的网络设备来增加堆叠系统的物理端口数和带宽。
网络设备可以用专用堆叠端口建立堆叠,也可以用普通物理端口建立堆叠。如果用普通物理端口建立堆叠,网络设备的堆叠需要人工配置,例如在多个物理端口中指定用来建立堆叠的物理端口。人工配置堆叠端口的效率低。
技术实现要素:
本申请提供一种网络设备堆叠方法、网络设备及存储介质,用于提高配置网络设备堆叠的效率。
第一方面,本申请提供一种网络设备堆叠方法,该方法包括第一网络设备用第一物理端口接收第二网络设备发送的第一发现协议报文;其中,第一发现协议报文的报文头包括第二网络设备的标识,第一发现协议报文的净荷包括链路聚合组的标识;第一网络设备用第二物理端口接收第三网络设备发送的第二发现协议报文,其中,第二发现协议报文的净荷包括第二网络设备的标识和链路聚合组标识,第二发现协议报文用于指示第三网络设备接收到来自于第二网络设备的链路聚合组标识;基于第一堆叠建立条件,第一网络设备与第三网络设备用第二物理端口建立堆叠,第一堆叠建立条件包括第一发现协议报文中的第二网络设备的标识和第二发现协议报文中的第二网络设备的标识相同,第一发现协议报文中的链路聚合组标识和第二发现协议报文中的链路聚合组标识相同。
由于第一网络设备用第一物理端口接收第二网络设备发送的第一发现协议报文,可确定第一网络设备与第二网络设备连接,又由于第一网络设备用第二物理端口接收第三网络设备发送的第二发现协议报文,第二发现协议报文用于指示第三网络设备接收到来自于第二网络设备的链路聚合组标识,可确定第三网络设备与第二网络设备连接。进一步,若第一网络设备判定第一发现协议报文和第二发现协议报文满足第一堆叠建立条件,则说明第二网络设备的分别与第一网络设备和第三网络设备连接的至少两个物理端口属于同一个链路聚合组,而且第一网络设备,第二网络设备和第三网络设备两两相联。属于同一个链路聚合组的至少两个物理端口相当于一个逻辑端口。若第一网络设备不与第三网络设备之间建立堆叠,则第二网络设备上的一个逻辑端口分别连接两台不同的网络设备,这种情况下,报文传输会发送错误。比如第二网络设备通过该逻辑端口学习到的mac地址可能一会是第一网络设备的mac地址,一会又是第三网络设备的mac地址,这种mac地址震荡会造成报文发送错误。第二网络设备上的一个逻辑端口分别连接两台不同的网络设备可能是错误配置也可能是这两台不同的网络设备将会作为一台逻辑设备工作,即这两台网络设备将会加入一个堆叠。如果第一网络设备和第三网络设备不相连,错误配置的可能性较大。然而,不配置链路聚合组的两两相联的三台网络设备可能造成广播风暴:第二网络设备发送给第一网络设备的广播,未知单播或组播(bum)报文会被第一网络设备通过第三网络设备又发送给第二网络设备。该bum报文可能在该环形网络中一直发送下去。因此,如果第二网络设备上的一个逻辑端口分别连接两台网络设备并且这两台网络设备又彼此相连,则错误配置的可能性较小,这两台网络设备应当加入一个堆叠的可能性较大。而本申请可以在第一网络设备和第三网络设备属于同一个链路聚合组的情况下,将第一网络设备和第三网络设备之间建立堆叠,如此,第一网络设备和第三网络设备逻辑上为一台网络设备。进一步,第一网络设备和第三网络设备之间相连的物理端口被用来建立堆叠,即第二物理端口被自动配置为堆叠端口,从而提高堆叠配置效率。
在一种可能的实现方式中,第一网络设备用第二物理端口接收第三网络设备发送的第二发现协议报文之后,还包括:第一网络设备用第一物理端口外的其他物理端口发送第三发现协议报文;其中,第三发现协议报文的净荷包括第二网络设备的标识和链路聚合组标识,第三发现协议报文用于指示第一网络设备接收到来自于第二网络设备的链路聚合组标识。
在一种可能的实现方式中,第二发现协议报文中还包括:第三网络设备的设备型号;第一堆叠建立条件还包括第一网络设备的设备型号与第三网络设备的设备型号匹配。设备型号可以反映出网络设备的性能参数,如此,可以使得建立堆叠的网络设备之间的性能参数比较接近。可选的,第一网络设备的设备型号和第三网络设备的设备型号匹配可以是指建立多个设备型号的集合,每个设备型号的集合中包括的设备型号所反映的性能参数都较为接近,当第一网络设备的设备型号和第三网络设备的设备型号都属于同一个设备型号的集合时,确定第一网络设备的设备型号与第三网络设备的设备型号匹配。参加堆叠的一般是性能接近的多个网络设备。当第一网络设备和第三网络设备的设备型号不匹配时,可能是因为第二网络设备的链路聚合组配置错误,并且连接第一网络设备与第三网络设备的网线也是被错误连接的,因此不建立堆叠。进一步的,第一网络设备可以向网络管理者告警。
在一种可能的实现方式中,第一网络设备与第三网络设备建立堆叠之前,可以确定出一个主设备,用于管理整个堆叠系统,比如确定堆叠后的网络设备的堆叠槽位、堆叠端口等。主设备可以通过第二网络设备来指定。这种情况下,第一发现协议报文中还包括用于指示堆叠的主设备的指示信息。
第二方面,本申请提供一种网络设备堆叠方法,该方法包括第二网络设备用属于链路聚合组的多个物理端口中的第五物理端口发送第一发现协议报文,第一发现协议报文的报文头包括网络设备的标识,第一发现协议报文的净荷包括链路聚合组的标识和指示信息,指示信息用于指示与第五物理端口连接的网络设备成为与多个物理端口连接的多个网络设备待组成的堆叠的主设备;第二网络设备用属于链路聚合组的多个物理端口中的第六物理端口发送第四发现协议报文,第四发现协议报文的报文头包括网络设备的标识,第四发现协议报文的净荷包括链路聚合组的标识。第二网络设备确定出第一网络设备和第三网络设备中主设备,不需要第一网络设备和第三网络设备来确定主设备,进一步提高堆叠配置效率。
第三方面,本申请提供一种网络设备堆叠方法,该方法包括第三网络设备用第三物理端口接收第二网络设备发送的第四发现协议报文,所述第四发现协议报文的报文头包括所述第二网络设备的标识,所述第四发现协议报文的净荷包括链路聚合组的标识;所述第三网络设备用所述第三物理端口外的其他物理端口发送第二发现协议报文,其中,所述第二发现协议报文的净荷包括所述第二网络设备的标识和所述链路聚合组标识,所述第二发现协议报文用于指示所述第三网络设备接收到来自于所述第二网络设备的所述链路聚合组标识。
第四方面,本申请提供一种网络设备,网络设备包括多个物理端口和处理器,可选地,还可以包括存储器,当其包括存储器时,存储器用于存储指令;处理器用于根据执行存储器存储的指令,并控制物理端口进行信号接收和信号发送,当处理器执行存储器存储的指令时,网络设备用于执行上述第一方面至第三方面以及上述第一方面至第三方面中任一方面中的任意可能的实现方式中的方法。
第五方面,本申请提供一种网络设备,网络设备用于执行上述第一方面至第三方面以及上述第一方面至第三方面中任一方面中的任意可能的实现方式中的方法。网络设备包括相应的功能模块,分别用于实现以上方法中的步骤。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,网络设备的结构中包括处理单元和多个物理端口,这些单元和物理端口可以执行上述方法示例中相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第六方面,本申请提供一种计算机可读存储介质,计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面以及上述第一方面至第三方面中任一方面中的任意可能的实现方式中的方法。
第七方面,本申请提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面以及上述第一方面至第三方面中任一方面中的任意可能的实现方式中的方法。
附图说明
图1为本申请实施例提供的一种通信系统架构示意图;
图2为本申请实施例提供的另一种通信系统架构示意图;
图3为本申请实施例提供的一种网络设备堆叠方法流程示意图;
图4为本申请实施例提供的一种lldp报文的结构示意图;
图5为本申请实施例提供的一种网络设备的结构示意图;
图6为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
图1示例性示出了本申请实施例提供的一种通信系统架构示意图,该通信系统可以包括一层网络设备和二层网络设备,一层网络设备也可以称为二层网络设备的上游网络设备,属于同一层的网络设备之间可以互相堆叠。一种可能的实施方式中,一层网络设备可以是核心层网络设备,这种情况下,二层网络设备可以是汇聚层网络设备。另一种可能的实施方式中,一层网络设备可以是汇聚层网络设备,这种情况下,二层网络设备可以是接入层网络设备。可选的,一层网络设备和二层网络设备可为交换机。
如图1所示,一层网络设备包括网络设备101,二层网络设备包括网络设备102、网路设备103和网络设备104。本申请实施例中网络设备101可配置多个链路聚合组(linkaggregationgroup),每个链路聚合组对应一个链路聚合组标识。其中,链路聚合组是指将多条链路聚合成一个逻辑链路。当链路聚合组的一条链路故障,可以将链路重新分布链路聚合组中的其他链路上。
每个链路聚合组对应网络设备上的多个物理端口,同一个链路聚合组中的多个物理端口聚合称为一个逻辑端口,图1以一个链路聚合组为例说明。网络设备101和网络设备102之间、网络设备101和网络设备103之间、网络设备101和网络设备104之间、以及网络设备102和网络设备103之间的连线已经连接完毕。
网络设备101包括物理端口101a、物理端口101b和物理端口101c,其中,物理端口101a和物理端口101b属于同一个链路聚合组。网络设备102包括物理端口102a和物理端口102b。网络设备103包括物理端口103a和物理端口103b。网络设备104包括物理端口104a。网络设备101的物理端口101a与网络设备102的物理端口102a连接。网络设备101的物理端口101b与网络设备103物理端口103a连接。网络设备101的物理端口101c与网络设备104的物理端口104a连接。网络设备102的物理端口102b与网络设备103的物理端口103b连接。
如图1所示,对于网络设备101来说,端口101a和端口101b属于同一个链路聚合组,则端口101a和端口101b是一个逻辑端口,但是网络设备102和网络设备103没有进行网络堆叠,则分别为两个网络设备,这种情况下网络设备101的一个逻辑端口连接两台不同的网络设备,则报文传输会发送错误。比如网络设备101通过该逻辑端口学习到的mac地址可能一会是网络设备102的mac地址,一会又是网络设备103的mac地址,这种mac地址震荡会造成报文发送错误。再比如,网络设备101上的一个逻辑端口分别连接网络设备102和网络设备103,可能是错误配置也可能是网络设备102和网络设备103将会作为一台逻辑设备工作,即网络设备102和网络设备103将会加入一个堆叠。如果网络设备102和网络设备103不相连,错误配置的可能性较大。然而,不配置链路聚合组的两两相联的三台网络设备可能造成广播风暴:网络设备101发送给网络设备102的广播,未知单播或组播(bum)报文会被网络设备102通过网络设备103又发送给网络设备101。该bum报文可能在该环形网络中一直发送下去。因此,如果网络设备101上的一个逻辑端口分别连接网络设备102和网络设备103,并且网络设备102和网络设备103又彼此相连,则错误配置的可能性较小,网络设备102和网络设备103应当加入一个堆叠的可能性较大。而本申请实施例可以在网络设备102和网络设备103属于同一个链路聚合组的情况下,将网络设备102和网络设备103之间建立堆叠,如此,网络设备102和网络设备103逻辑上为一台网络设备。进一步,网络设备102和网络设备103之间相连的物理端口被用来建立堆叠,即第二物理端口被自动配置为堆叠端口,从而提高堆叠配置效率。
图2示例性示出了本申请实施例提供的另一种通信系统架构示意图,该通信系统可以包括一层网络设备和二层网络设备。如图2所示,一层网络设备包括网络设备201,二层网络设备包括网络设备202、网络设备203和网络设备204。图2以包括一个链路聚合组、且一个链路聚合组中包括三个物理端口为例说明。网络设备201和网络设备202之间、网络设备201和网络设备203之间、网络设备201和网络设备204之间、网络设备202和网络设备203之间、以及网络设备203和网络设备204之间的连线已经连接完毕。
网络设备201包括物理端口201a、物理端口201b和物理端口201c,网络设备202包括物理端口202a、物理端口202b和物理端口202c,其中,物理端口201a、物理端口201b和物理端口201c属于同一个链路聚合组,网络设备203包括物理端口203a、物理端口203b和物理端口203c,网络设备204包括物理端口204a、物理端口204b和物理端口204c。网络设备201的物理端口201a与网络设备202的物理端口202a连接,网络设备201的物理端口201b与网络设备203物理端口203a连接;网络设备202的物理端口201c与网络设备204的物理端口204a连接,网络设备202的物理端口202b与网络设备203的物理端口203b连接,网络设备202的物理端口202c与网络设备204的物理端口204b连接,网络设备203的物理端口203c和网络设备204的物理端口204c连接。属于同一个链路聚合组的物理端口连接的网络设备可以进行堆叠,图2中的网络设备202、网络设备203和网络设备204可建立环形堆叠。举个例子,当图2中的网络设备202、网络设备203和网络设备204之间环形连接。在建立环形堆叠时,网络设备202的物理端口202b和物理端口202c均切换为堆叠端口,网络设备203的物理端口203b和物理端口203c均切换为堆叠端口,且网络设备204的物理端口204b和物理端口204c均切换为堆叠端口。
基于上述内容,图3示例性示出了本申请实施例提供的一种网络设备堆叠方法流程示意图。第一网络设备和第三网络设备可以是上述图1中网络设备102和网络设备103,这种情况下,第二网络设备可以是上述图1中的网络设备101。第一网络设备和第三网络设备可以是上述图2中的网络设备202、网络设备203和网络设备204中的任两个网络设备,这种情况下,第二网络设备可以是图2中的网络设备201。如图3所示,该方法包括:
步骤301,第二网络设备发送第一发现协议报文,发送第四发现协议报文。
本申请实施例中任一个网络设备都可以多个物理端口,任两个网络设备之间都可以通过一对物理端口相连,也可以通过多对物理端口相连。若两个网络设备通过多对物理端口相连,则该多对网络设备对应属于同一个链路聚合组。比如,第二网络设备可以有多个物理端口。举个例子,第二网络设备可以通过两个物理端口与第一网络设备连接,这种情况下,第二网络设备与第一网络设备连接的两个物理端口属于同一个链路聚合组。
第二网络设备若确定出了链路聚合组中的与主设备连接的物理端口,则第二网络设备通过第二网络设备上的与主设备连接的物理端口向该主设备发送第一发现协议报文,第一发现协议报文中的净荷包括链路聚合组的标识和指示信息,指示信息用于指示与第五物理端口连接的网络设备成为与多个物理端口连接的多个网络设备待组成的堆叠的主设备。也可以说,第二网络设备通过第二网络设备上的与主设备连接的物理端口向该主设备所发送的发现协议报文中包括第一类型tlv和第二类型tlv,第一类型tlv包括链路聚合组的标识,第二类型tlv包括指示信息。可选地,若第二网络设备通过多个物理端口与主设备连接,则第二网络设备可以通过与主设备连接的多个物理端口分别发送包括第一类型tlv和第二类型tlv的发现协议报文。
在第二网络设备确定出链路聚合组中的与主设备连接的物理端口的情况下,第二网络设备通过链路聚合组中的除与主设备连接的所有物理端口(第二网络设备可能与主设备之间通过多对物理端口连接)之外的所有物理端口发送第四发现协议报文。第四发现协议报文的报文头包括网络设备的标识,第四发现协议报文的净荷包括链路聚合组的标识。也可以说,第二网络设备通过链路聚合组中一个物理端口发送的包括第一类型tlv和第二类型tlv,通过链路聚合组中的所有其他物理端口所发送的发现协议报文中包括第一类型tlv,但不包括第二类型tlv。
一种实施方式中,第二网络设备可以确定出堆叠中的一个主设备或多个主设备,若第二网络设备确定出多个主设备,则第二网络设备可以确定出多个主设备中的一个活跃主设备,该多个主设备中的其他主设备可以作为备用主设备。一种实施方式中,第二网络设备可以根据mac地址等信息确定出堆叠中的主设备,比如将一个链路聚合组所连接的所有网络设备中mac地址最小的网络设备指定为主设备,或者将一个链路聚合组所连接的所有网络设备中设备运行时间最长的网络设备指定为主设备。另一种实施方式中,第二网络设备可以从一个链路聚合组的所有物理端口中选择端口号最大或最小的一个,将其连接的网络设备作为主设备。另一种实施方式中,第二网络设备可以从一个链路聚合组的所有物理端口中随机指定一个物理端口,将其连接的网络设备作为主设备。确定出多个主设备时实施方式可以参照上述根据mac地质选择或者随机选择的方式,在此不再赘述。
本申请实施例中示例性的以第一网络设备包括第五物理端口和第六物理端口,第一网络设备上包括第一物理端口和第二物理端口,以及第三网络设备上包括第三物理端口和第四物理端口为例介绍。其中,第五物理端口和第一物理端口连接,第六物理端口和第三物理端口连接,第二物理端口和第四物理端口连接。若第一网络设备为主设备,则第二网络设备通过第五物理端口发送的发现协议报文中包括第一类型tlv和第二类型tlv,而通过第六物理端口发送的发现协议报文中包括第一类型tlv但不包括第二类型tlv。
第二网络设备用属于链路聚合组的多个物理端口中的第五物理端口发送第一发现协议报文,用属于链路聚合组的多个物理端口中的第六物理端口发送第四发现协议报文,相对应地,第一网络设备通过第一物理端口接收第二网络设备发送的第一发现协议报文,第三网络设备通过第三物理端口接收第二网络设备发送的第四发现协议报文。
结合图1来举例说明,第一网络设备可以是上述图1中网络设备102,第三网络设备可以是上述图1中网络设备103,第二网络设备可以是上述图1中网络设备101,则第五物理端口是上述图1中的101a,第六物理端口是上述图1中的101b,第一物理端口是上述图1中的102a,第二物理端口是上述图1中的102b,第三物理端口是上述图1中的103a,第四物理端口是上述图1中的103b。
一种实施方式中,链路聚合组包括多个物理端口,链路聚合组的标识可以是该链路聚合组中包括的每个物理端口的标识的集合,也可以是该链路聚合组对应的一个组标识,也可以是该链路聚合组的组标识和该链路聚合组中包括的每个物理端口的标识的组合。举个例子,上述步骤301中的链路聚合组标识可以是第五物理端口的标识和第六物理端口的标识;或者是链路聚合组的组标识;或者是链路聚合组的组标识、第五物理端口的标识和第六物理端口的标识的组合。
本申请实施例中,第一发现协议报文、第二发现协议报文、第三发现协议报文和第四发现协议报文都属于发现协议报文,可选地,发现协议报文可以是链路层发现协议(linklayerdiscoveryprotocol,lldp)报文,还可以是私有的二层发现协议,例如思科发现协议(ciscodiscoveryprotocol,cdp)报文,网捷发现协议(foundrydiscoveryprotocol,fdp)或北电发现协议(norteldiscoveryprotocol,ndp)等等。
步骤302,第一网络设备在接收到第一发现协议报文之后,可以用除与第二网络设备连接的所有物理端口之外的所有其他的物理端口发送第三发现协议报文,第三网络设备在接收到第四发现协议报文之后,可以用除与第二网络设备连接的所有物理端口之外的所有其他的物理端口发送第二发现协议报文。第三网络设备发送第二发现协议报文和第一网络设备发送第三发现协议报文之间没有先后顺序。
结合步骤301中的示例,第三网络设备用除第三物理端口外的其他物理端口发送第二发现协议报文。第一网络设备用除第一物理端口外的其他物理端口发送第三发现协议报文。
其中,第二发现协议报文的净荷包括第一类型tlv和第三类型tlv,其中,第三类型tlv包括第二网络设备的标识。第二发现协议报文用于指示第三网络设备接收到来自于第二网络设备的链路聚合组标识。也就是说,第三网络设备在通过与第二网络设备连接的物理端口接收到包括有第一类型tlv的发现协议报文之后,会通过除与第二网络设备连接的所有物理端口之外的所有物理端口发送包括第一类型tlv和第三类型tlv的发现协议报文,以告诉其他网络设备第三网络设备接收到了来自第二网络设备的链路聚合组标识。
第三发现协议报文的净荷包括第一类型tlv和第三类型tlv,其中,第三类型tlv包括第二网络设备的标识。第三发现协议报文用于指示第一网络设备接收到来自于第二网络设备的链路聚合组标识。也就是说,第一网络设备在通过与第二网络设备连接的物理端口接收到包括有第一类型tlv的发现协议报文之后,会通过除与第二网络设备连接的所有物理端口之外的所有物理端口发送包括第一类型tlv和第三类型tlv的发现协议报文,以告诉其他网络设备第一网络设备接收到了来自第二网络设备的链路聚合组标识。
步骤302,第一网络设备基于第一堆叠建立条件,第一网络设备与第三网络设备用第二物理端口建立堆叠,第一堆叠建立条件包括第一发现协议报文中的第二网络设备的标识和第二发现协议报文中的第二网络设备的标识相同,第一发现协议报文中的链路聚合组标识和第二发现协议报文中的链路聚合组标识相同。
相对应地,第三网络设备基于第二堆叠建立条件,第三网络设备与第一网络设备用第四物理端口建立堆叠,第二堆叠建立条件包括第一发现协议报文中的第二网络设备的标识和第三发现协议报文中的第二网络设备的标识相同,第一发现协议报文中的链路聚合组标识和第三发现协议报文中的链路聚合组标识相同。
由于第一网络设备用第一物理端口接收第二网络设备发送的第一发现协议报文,可确定第一网络设备与第二网络设备连接,又由于第一网络设备用第二物理端口接收第三网络设备发送的第二发现协议报文,第二发现协议报文用于指示第三网络设备接收到来自于第二网络设备的链路聚合组标识,可确定第三网络设备与第二网络设备连接。进一步,若第一网络设备判定第一发现协议报文和第二发现协议报文满足第一堆叠建立条件,则说明第二网络设备的分别与第一网络设备和第三网络设备连接的至少两个物理端口属于同一个链路聚合组,而且第一网络设备,第二网络设备和第三网络设备两两相联。属于同一个链路聚合组的至少两个物理端口相当于一个逻辑端口。若第一网络设备不与第三网络设备之间建立堆叠,则第二网络设备上的一个逻辑端口分别连接两台不同的网络设备,这种情况下,报文传输会发送错误。比如第二网络设备通过该逻辑端口学习到的mac地址可能一会是第一网络设备的mac地址,一会又是第三网络设备的mac地址,这种mac地址震荡会造成报文发送错误。第二网络设备上的一个逻辑端口分别连接两台不同的网络设备可能是错误配置也可能是这两台不同的网络设备将会作为一台逻辑设备工作,即这两台网络设备将会加入一个堆叠。如果第一网络设备和第三网络设备不相连,错误配置的可能性较大。然而,不配置链路聚合组的两两相联的三台网络设备可能造成广播风暴:第二网络设备发送给第一网络设备的广播,未知单播或组播(bum)报文会被第一网络设备通过第三网络设备又发送给第二网络设备。该bum报文可能在该环形网络中一直发送下去。因此,如果第二网络设备上的一个逻辑端口分别连接两台网络设备并且这两台网络设备又彼此相连,则错误配置的可能性较小,这两台网络设备应当加入一个堆叠的可能性较大。而本申请实施例可以在第一网络设备和第三网络设备属于同一个链路聚合组的情况下,将第一网络设备和第三网络设备之间建立堆叠,如此,第一网络设备和第三网络设备逻辑上为一台网络设备。进一步,第一网络设备和第三网络设备之间相连的物理端口被用来建立堆叠,即第二物理端口被自动配置为堆叠端口,从而提高堆叠配置效率。
上述步骤302中,第二发现协议报文和第三发现协议报文中包括的内容类似,一种可选地实施方式中,第二发现协议报文中还可以包括第三网络设备的设备型号。第一堆叠建立条件还包括:第一网络设备的设备型号与第三网络设备的设备型号匹配。
相对应地,可选地,第三发现协议报文中还可以包括第一网络设备的设备型号。第二堆叠建立条件还包括:第一网络设备的设备型号与第三网络设备的设备型号匹配。
具体实施中,设备型号可以反映出网络设备的性能参数,如此,可以使得建立堆叠的网络设备之间的性能参数比较接近,进而可以更加符合实际应用场景中的需求。可选的,第一网络设备的设备型号和第三网络设备的设备型号匹配可以是指预设多个设备型号的集合,每个设备型号的集合中包括的设备型号所反映的性能参数都较为接近(或者也可以描述为每个设备型号的集合中包括的设备型号是同一个系列的设备型号,或者可以描述为每个设备型号的集合中包括的设备型号是可以进行堆叠的设备的设备型号,),当第一网络设备的设备型号和第三网络设备的设备型号都属于同一个预设的设备型号的集合时,确定第一网络设备的设备型号与第三网络设备的设备型号匹配。举个例子,一个集合包括的设备型号为s5720ei-24和s5720ei-48,这两种设备型号都可以称为s5720ei系列,也可以称该集合对应的设备型号为交换机s5720ei系列。参加堆叠的一般是性能接近的多个网络设备。当第一网络设备和第三网络设备的设备型号不匹配时,可能是因为第二网络设备的链路聚合组配置错误,并且连接第一网络设备与第三网络设备的网线也是被错误连接的,因此不建立堆叠。进一步的,第一网络设备可以向网络管理者告警。
上述步骤302中,一种可选地实施方式中,第二发现协议报文中还可以包括第一指示参数。第一指示参数用于指示第三网络设备具有建立堆叠的能力。相对应地,可选地,第三发现协议报文中还可以包括第二指示参数。第二指示参数用于指示第一网络设备具有建立堆叠的能力。
上述步骤302中,一种可选地实施方式中,第二发现协议报文中还可以包括第四物理端口的标识。相对应地,可选地,第三发现协议报文中还可以包括第二物理端口的标识。
图4示例性示出了本申请实施例提供的一种lldp报文的结构示意图,如图4所示,lldp报文包括报文头和净荷。其中,lldp报文的报文头包括目的媒体访问控制地址(destinationmediaaccesscontroladdress)字段、源媒体访问控制地址(sourcemediaaccesscontroladdress)字段、报文类型(type)字段。lldp报文的净荷包括链路层发现协议数据单元(linklayerdiscoveryprotocoldataunit,lldpdu)、帧检验序列(framechecksequence,fcs)字段。可选地,第一发现协议报文为lldp报文时,第一发现协议报文中的第二网络设备的标识可以位于lldp报文的报文头源mac地址字段。
lldp报文中的目的媒体访问控制地址字段可以为固定组播mac地址,如0180-c200-000e(十六进制)。源媒体访问控制地址字段为第二网络设备的源mac地址。lldp报文的报文类型字段的值为88cc(十六进制)。lldpdu为lldp报文的帧体,长度为46-1500八位(octets)。fcs字段用于让接收lldp报文的物理端口判断是否发生了错误,长度为4八位。在生成lldpdu之前,可以先将待发送的内容封装成类型-长度-值(tlv)格式。一个lldpdu中可包括多个tlv。其中,设备(chassis)标识(identification,id)tlv、物理端口(port)idtlv、生存时间(timetolive)tlv和链路层发现协议数据单元结束标识(endoflldpdu)tlv字段为lldpdu必须携带的tlv。
在生存时间(timetolive)tlv字段和链路层发现协议数据单元结束标识(endoflldpdu)tlv字段之间可以增加新的tlv字段。这些新增的字段是可选的字段,可由网络设备来确定是否新增tlv字段。也就是说,本申请实施例中对于发现协议报文的tlv字段可以扩展,上述提到的第一类型tlv、第二类型tlv和第三类型tlv都可以是对现有技术中tlv字段进行扩展后的新增的一些tlv字段。可选地,本申请实施例中第一发现协议报文、第二发现协议报文、第三发现协议报文和第四发现协议报文中任一个发现协议报文中的净荷包括的参数可以包括到该发现协议报文的tlv中。举个例子,当第二发现协议报文是lldp报文时,第二发现协议报文中的链路聚合组标识和第二网络设备的标识可以包括于lldp报文的净荷。可选地,第二发现协议报文中包括的第三网络设备的设备型号、第一指示参数和第四物理端口的标识中的任一项或任多项也可以包括在lldp报文的净荷的tlv中,比如可以在第四类型tlv中包括第三网络设备的设备型号,在第五类型tlv中包括第一指示参数。
在上述步骤303中,第一网络设备与第三网络设备之间相互交互,从而协商一些配置信息,比如协商谁是堆叠的主设备(可以在第一发现协议报文中没有包括用于指示堆叠的主设备的指示信息的情况下协商)等等。一种可选地实施方式中,第三网络设备向第一网络设备发送第一请求建立堆叠报文,相对应地,第一网络设备向第三网络设备发送第二请求建立堆叠报文。
第一请求建立堆叠报文和第二请求建立堆叠报文中携带的信息类似,一种可选地实施方式中,第一请求堆叠报文中包括第三网络设备的属性参数、第三指示参数、第三网络设备的堆叠槽位标识和第四物理端口标识中的任一个或任多个。其中,第三网络设备的属性参数可以包括第三网络设备的mac地址或第三网络设备的设备运行时间等。第三指示参数可用于指示第三网络设备向第一网络设备请求建立堆叠。第三网络的设备的属性参数,用于使第一网络设备根据第三网络设备的属性参数、第一网络设备的属性参数和第一预设规则确定主设备。第一规则有多种,比如可以是将mac地址小的网络设备确定为主设备,或者将设备运行时长较长的网络设备确定为主设备。第三网络设备的堆叠槽位标识用于使第一网络设备在确定第一网络设备为主设备时,根据第一网络设备的堆叠槽位标识和第三网络设备的堆叠槽位标识确定第三网络设备堆叠后的堆叠槽位标识。第四物理端口标识用于使第一网络设备确定第三网络设备切为堆叠端口的物理端口。
一种可选的实施方式,第一请求建立堆叠报文是lldp报文时,第一请求堆叠报文中的第三网络设备的属性参数、第三指示参数、第三网络设备的堆叠槽位标识和第四物理端口标识中的任一个或任多个均可以承载于lldp报文的净荷。
相对应地,一种可选地实施方式中,第二请求堆叠报文中包括第一网络设备的属性参数、第四指示参数、第一网络设备的堆叠槽位标识和第二物理端口标识中的任一个或任多个。其中,第一网络设备的属性参数可以包括第一网络设备的mac地址或第一网络设备的设备运行时间等。第四指示参数可用于指示第一网络设备向第三网络设备请求建立堆叠。第三网络的设备的属性参数,用于使第三网络设备根据第一网络设备的属性参数、第三网络设备的属性参数和第一预设规则确定主设备。第一网络设备的堆叠槽位标识用于使第三网络设备在确定第三网络设备为主设备时,根据第三网络设备的堆叠槽位标识和第一网络设备的堆叠槽位标识确定第一网络设备堆叠后的堆叠槽位标识。第二物理端口标识用于使第三网络设备确定第一网络设备切为堆叠端口的物理端口。
一种可选的实施方式,第二请求建立堆叠报文是lldp报文时,第二请求堆叠报文中的第一网络设备的属性参数、第四指示参数、第一网络设备的堆叠槽位标识和第二物理端口标识中的任一个或任多个均可以承载于lldp报文的净荷。
在上述步骤303中,堆叠中作为主设备的网络设备可以与从设备再进行一些交互,从而完成网络设备的堆叠。下面以第一网络设备为主设备,第三网络设备为从设备为例进行介绍。
在第一网络设备为第一网络设备和第三网络设备的堆叠中的主设备的情况下,一种可选地实施方式中,第一网络设备可以向第三网络设备发送同意建立堆叠报文。同意建立堆叠报文可以包括第五指示参数和第六指示参数。第五指示参数用于指示第一网络设备同意与第三网络设备建立堆叠。第六指示参数用于指示主设备为第一网络设备,第六指示信息可以是第一网络设备的mac地址,也可以是第一网络设备的ip地址。
一种可选的实现方式,第一同意建立堆叠报文为lldp报文,第一同意建立堆叠报文中的五指示参数和第六指示参数中的任一个或任多个均可以承载于lldp报文的净荷。另一种可选地实施方式中,主设备可以为从设备确定堆叠后槽位标识。比如,第一网络设备可以根据第一网络设备的堆叠槽位标识、第三网络设备的堆叠槽位标识和第二预设规则,确定第三网络设备的堆叠后堆叠槽位标识。一种可选的实施方式中,若第一网络设备的堆叠槽位标识和第三网络设备的堆叠槽位标识不同,则将更新后的第三网络设备的堆叠槽位标识作为第三网络设备的堆叠后堆叠槽位标识。可选的,若第一网络设备的堆叠槽位标识和第三网络设备的堆叠槽位标识相同,则将第三网络设备的堆叠槽位标识作为第三网络设备的堆叠后堆叠槽位标识。如此,可以避免堆叠后的第三网络设备的槽位标识出现冲突。
主设备为从设备确定的堆叠后槽位标识可以携带在上述同意建立堆叠报文中,也可以通过另外的报文单独发送,比如主设备可以再向从设备发送开始建立堆叠命令,该开始建立堆叠命令中可以包括从设备确定的堆叠后槽位标识。可选地,开始建立堆叠命令中还可以包括第七指示参数和第四物理端口标识中的任一项或任多项。第七指示参数用于指示第三网络设备开始建立堆叠。一种可选的实现方式,开始建立堆叠命令为lldp报文时,开始建立堆叠命令中的第三网络设备堆叠后堆叠槽位标识、第七指示参数和第四物理端口标识中的任一个或任多个均可以承载于lldp报文的净荷。
相对应地,从设备接收到主设备发送的开始建立堆叠命令之后,从设备可以将第三网络设备的堆叠槽位标识切换为第三网络设备的堆叠后堆叠槽位标识。可选的,从设备向主设备反馈开始建立堆叠响应,并将第四物理端口切换为堆叠端口。相对应地,主设备接收到建立堆叠响应之后将第二物理端口切换为堆叠端口,至此,第一网络设备与第三网络设备之间建立堆叠。
基于上述内容和相同构思,本申请实施例提供一种网络设备,用于执行上述方法中的第一网络设备的任一个方案。图5示例性示出了本申请实施例提供的一种网络设备的结构示意图,如图5所示,网络设备包括处理器501、物理端口502。网络设备包括多个物理端口,图中仅示意性画出了一个物理端口。该示例中的网络设备可以是上述内容中的第一网络设备、第二网络设备或第三网络设备。该网络设备也可以上述图1中的任一个网络设备,也可以是图2中的任一个网络设备。
物理端口502可以为以太网接口。以太网接口可以是光接口,电接口或其组合。
处理器501可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。处理器501还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(compleprogrammablelogicdevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。
一种可选地实施方式中,网络设备还可以包括存储器(图5中未示出)。存储器可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器还可以包括上述种类的存储器的组合。
可以在存储器中存储程序指令,也可以在处理器中存储程序指令(比如处理器为np时),处理器501调用所存储的程序指令,可以执行上述方案中所示实施例中的一个或多个步骤,或其中可选的实施方式。
在该示例中的网络设备为上述第一网络设备的情况下,该网络设备中的处理器501用于:用多个物理端口中的第一物理端口接收第二网络设备发送的第一发现协议报文;其中,第一发现协议报文的报文头包括第二网络设备的标识,第一发现协议报文的净荷包括链路聚合组的标识;用多个物理端口中的第二物理端口接收第三网络设备发送的第二发现协议报文,其中,第二发现协议报文的净荷包括第二网络设备的标识和链路聚合组标识,第二发现协议报文用于指示第三网络设备接收到来自于第二网络设备的链路聚合组标识;基于第一堆叠建立条件,第一网络设备与第三网络设备用第二物理端口建立堆叠,第一堆叠建立条件包括第一发现协议报文中的第二网络设备的标识和第二发现协议报文中的第二网络设备的标识相同,第一发现协议报文中的链路聚合组标识和第二发现协议报文中的链路聚合组标识相同。
在该示例中的网络设备为上述第一网络设备的情况下,一种可选的实施方式中,处理器还用于:用多个物理端口中除第一物理端口外的其他物理端口发送第三发现协议报文;其中,第三发现协议报文的净荷包括第二网络设备的标识和链路聚合组标识,第三发现协议报文用于指示第一网络设备接收到来自于第二网络设备的链路聚合组标识。
在该示例中的网络设备为上述第一网络设备的情况下,一种可选的实施方式中,第二发现协议报文中还包括:第三网络设备的设备型号;第一堆叠建立条件还包括:第一网络设备的设备型号与第三网络设备的设备型号匹配。
在该示例中的网络设备为上述第二网络设备的情况下,该网络设备包括处理器和多个物理端口,多个物理端口中的至少两个物理端口属于链路聚合组,其中,处理器501用于:用属于链路聚合组的多个物理端口中的第五物理端口发送第一发现协议报文,第一发现协议报文的报文头包括网络设备的标识,第一发现协议报文的净荷包括链路聚合组的标识和指示信息,指示信息用于指示与第五物理端口连接的网络设备成为与多个物理端口连接的多个网络设备待组成的堆叠的主设备;用属于链路聚合组的多个物理端口中的第六物理端口发送第四发现协议报文,第四发现协议报文的报文头包括网络设备的标识,第四发现协议报文的净荷包括链路聚合组的标识。
本申请实施例中上述可选的实施方式的相关内容可以参见上述实施例,在此不再赘述。
基于相同构思,本申请实施例提供一种网络设备,用于执行上述方法流程中的第一网络设备侧、第二网络设备侧和第三网络设备侧的任一个方案。图6示例性示出了本申请实施例提供的一种网络设备的结构示意图,如图6所示,网络设备600包括处理单元601和物理端口602。网络设备包括多个物理端口,图中仅示意性画出了一个物理端口。该示例中的网络设备600可以是上述内容中的第一网络设备、第二网络设备和第三网络设备中的任一个。
在该示例中的网络设备为上述第一网络设备的情况下,该网络设备中的处理单元601用于:用多个物理端口中的第一物理端口接收第二网络设备发送的第一发现协议报文;其中,第一发现协议报文的报文头包括第二网络设备的标识,第一发现协议报文的净荷包括链路聚合组的标识;用多个物理端口中的第二物理端口接收第三网络设备发送的第二发现协议报文,其中,第二发现协议报文的净荷包括第二网络设备的标识和链路聚合组标识,第二发现协议报文用于指示第三网络设备接收到来自于第二网络设备的链路聚合组标识;基于第一堆叠建立条件,第一网络设备与第三网络设备用第二物理端口建立堆叠,第一堆叠建立条件包括第一发现协议报文中的第二网络设备的标识和第二发现协议报文中的第二网络设备的标识相同,第一发现协议报文中的链路聚合组标识和第二发现协议报文中的链路聚合组标识相同。
在该示例中的网络设备为上述第二网络设备的情况下,该网络设备包括处理单元601和多个物理端口,多个物理端口中的至少两个物理端口属于链路聚合组,其中,处理单元601用于:用至少两个物理端口中的第五物理端口发送第一发现协议报文,第一发现协议报文的报文头包括网络设备的标识,第一发现协议报文的净荷包括链路聚合组的标识和指示信息,指示信息用于指示与第五物理端口连接的网络设备成为与多个物理端口连接的多个网络设备待组成的堆叠的主设备;用至少两个物理端口中的第六物理端口发送第四发现协议报文,第四发现协议报文的报文头包括网络设备的标识,第四发现协议报文的净荷包括链路聚合组的标识。
应理解,以上各个网络设备的单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。本申请实施例中,图6涉及到的物理端口可以由上述图5涉及到的物理端口502实现,处理单元601可以由上述图5的处理器501实现。也就是说,本申请实施例中图6涉及到的物理端口可以执行上述图5涉及到的物理端口所执行的方案,本申请实施例中处理单元601可以执行上述图5的处理器501所执行的方案,其余内容可以参见上述内容,在此不再赘述。如上述图5所示,在网络设备包括存储器的情况下,网络设备包括的存储器中可以用于存储该网络设备包括的处理器501执行方案时的代码,该代码可为网络设备出厂时预装的程序/代码。
在上述实施例中,可以全部或部分地通过软件、硬件或者其组合来实现、当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、双绞线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何介质或者是包含一个或多个介质集成的服务器、数据中心等数据存储设备。介质可以是磁性介质,(例如,软盘、硬盘、磁带、磁光盘(mo)等)、光介质(例如光盘)、或者半导体介质(例如rom、eprom、eeprom、固态硬盘(solidstatedisk,ssd))等。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
1.一种网络设备堆叠方法,其特征在于,包括:
网络设备用属于链路聚合组的多个物理端口中的第一物理端口发送第一发现协议报文,所述第一发现协议报文的报文头包括所述网络设备的标识,所述第一发现协议报文的净荷包括所述链路聚合组的标识和指示信息,所述指示信息用于指示与所述第一物理端口连接的网络设备成为与所述多个物理端口连接的多个网络设备待组成的堆叠的主设备;
所述网络设备用属于所述链路聚合组的多个物理端口中的第二物理端口发送第二发现协议报文,所述第二发现协议报文的报文头包括所述网络设备的标识,所述第二发现协议报文的净荷包括所述链路聚合组的标识。
2.一种网络设备,其特征在于,包括处理器和多个物理端口,所述多个物理端口中的至少两个物理端口属于链路聚合组,其中,所述处理器用于:
用所述至少两个物理端口中的第一物理端口发送第一发现协议报文,所述第一发现协议报文的报文头包括所述网络设备的标识,所述第一发现协议报文的净荷包括所述链路聚合组的标识和指示信息,所述指示信息用于指示与所述第一物理端口连接的网络设备成为与所述多个物理端口连接的多个网络设备待组成的堆叠的主设备;
用所述至少两个物理端口中的第二物理端口发送第二发现协议报文,所述第二发现协议报文的报文头包括所述网络设备的标识,所述第二发现协议报文的净荷包括所述链路聚合组的标识。
3.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令在被计算机调用时,使所述计算机执行如权利要求1所述的方法。
技术总结