网络收敛方法、装置及计算机存储介质与流程

文档序号:14993361发布日期:2018-07-20 22:57阅读:188来源:国知局

本发明属于网络通信领域,具体涉及网络收敛方法、装置及计算机存储介质。



背景技术:

随着大数据时代的来临,网络带宽需求的激增,分布式链路聚合技术应运而生。多台网络设备之间通过分布式链路聚合连接可以提高带宽能力。图1是现有的分布式链路聚合技术的一个组网示意图,网络设备1和网络设备2构成分布式链路聚合系统。聚合口1和聚合口2用于将网络设备1和网络设备2直连以便网络设备1与网络设备2之间能够通信;port1和port2为提供链路聚合的业务接口,该业务接口用于连接外部网络的独立设备。两台网络设备的上层软件层都有一个链路聚合表,下层驱动层都有一个链路聚合表,底层硬件层也都有一个链路聚合表。链路聚合表都存着两个网络设备所有可用的端口信息。当port1或port2某一个端口链路中断时,在现有分布式链路聚合技术下,链路聚合表存储单元有三层结构,分别是软件层,驱动层,硬件层。每一台设备出现故障时都要上报故障到软件层,软件层处理故障端口,两两设备之间同步表项,再下发更新消息到硬件层。分布式链路聚合系统的设备越多,需要软件层同步表项的次数越多。现有技术对于收敛处理,需要在软件层将各个设备的链路聚合表进行一次同步,这个同步次数比较多,就会减慢收敛的时间。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种网络收敛方法和网络设备,用于克服现有技术中的缺点。

具体的,本发明提出了以下具体的实施例:

本发明实施例提供了一种网络收敛方法,应用于多台设备构成的分布式链路聚合系统;该方法包括:

一设备的硬件层检测到所述设备的端口状态信息发生变化时,上报所述变化信息至所述设备的驱动层;

所述设备的驱动层上报所述变化信息至所述分布式链路聚合系统选定的主设备的软件层;

所述主设备的软件层根据所述变化信息更新软件层链路聚合表及向所有设备的驱动层下发链路聚合表更新消息;

设备的驱动层收到所述链路聚合表更新消息时,更新驱动层链路聚合表及向所述设备的硬件层下发链路聚合表更新信息;

设备的硬件层收到所述链路聚合表更新消息时,更新硬件层链路聚合表以便所有设备根据更新得到的硬件层链路聚合表继续对报文进行转发。

作为上述技术方案的进一步改进,所述“一设备的硬件层检测到所述设备的端口状态信息发生变化时,上报所述变化信息至所述设备的驱动层”之前还包括:

根据预设规则从所述分布式链路聚合系统的多台设备中协商选择一台设备作为主设备。

作为上述技术方案的进一步改进,所述预设规则为设备物理标识编号最小或者提供用户接口配置优先级最高的设备选定为主设备。

作为上述技术方案的进一步改进,所述设备的驱动层通过netlink消息机制上报所述变化信息至所述分布式链路聚合系统选定的主设备的软件层。

作为上述技术方案的进一步改进,还包括:当所述主设备发生变化时,将原主设备上的软件层链路聚合表更新同步到新选定的主设备的软件层上保存。

本发明实施例还提供了计算机存储介质,其特征在于,其存储有上述网络收敛方法所使用的计算机程序。

本发明实施例还提供了一种网络收敛装置,应用于多台设备构成的分布式链路聚合系统,所述装置包括:

第一上报单元,用于设备的硬件层检测到所述设备的端口状态信息发生变化时,上报所述变化信息至所述设备的驱动层;

第二上报单元,用于所述设备的驱动层上报所述变化信息至所述分布式链路聚合系统选定的主设备的软件层;

第一更新单元,用于所述主设备的软件层根据所述变化信息更新软件层链路聚合表及向所有设备的驱动层下发链路聚合表更新消息;

第二更新单元,用于设备的驱动层收到所述链路聚合表更新消息时,更新驱动层链路聚合表及向所述设备的硬件层下发链路聚合表更新信息;

第三更新单元,用于设备的硬件层收到所述链路聚合表更新消息时,更新硬件层链路聚合表以便所有设备根据更新得到的硬件层链路聚合表继续对报文进行转发。

作为上述技术方案的进一步改进,还包括:协商选择单元;所述协商选择单元用于根据预设规则从所述分布式链路聚合系统的多台设备中协商选择一台设备作为主设备。

作为上述技术方案的进一步改进,所述预设规则为设备物理标识编号最小或者提供用户接口配置优先级最高的设备选定为主设备。

作为上述技术方案的进一步改进,所述设备的驱动层通过netlink消息机制上报所述变化信息至所述分布式链路聚合系统选定的主设备的软件层。

作为上述技术方案的进一步改进,还包括:表同步单元;所述表同步单元单元用于当所述主设备发生变化时,将原主设备上的软件层链路聚合表更新同步到新选定的主设备的软件层上保存。

采用本发明提供的技术方案,与已有的公知技术相比,至少具有如下有益效果:该网络收敛方法简化了链路聚合表处理,统一在主设备上处理所有设备的端口信息。这样表项更少,出错概率更低。同时省去设备间表项的同步过程,极大地提高了多设备的收敛速度。并且设备越多,优势越明显。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为现有的分布式链路聚合技术的一个组网示意图;

图2为本发明实施例提出的一种网络收敛方法的流程示意图;

图3为本发明实施例提出的一种网络收敛装置的结构示意图。

主要元件符号说明:

100-第一上报单元;200-第二上报单元;300-第一更新单元;400-第二更新单元;500-第三更新单元。

具体实施方式

在下文中,将更全面地描述本公开的各种实施例。本公开可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本公开保护范围限于在此公开的特定实施例的意图,而是应将本公开理解为涵盖落入本公开的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。

在下文中,可在本公开的各种实施例中使用的术语“包括”或“可包括”指示所公开的功能、操作或元件的存在,并且不限制一个或更多个功能、操作或元件的增加。此外,如在本公开的各种实施例中所使用,术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。

在本公开的各种实施例中使用的表述(诸如“第一”、“第二”等)可修饰在各种实施例中的各种组成元件,不过可不限制相应组成元件。例如,以上表述并不限制所述元件的顺序和/或重要性。以上表述仅用于将一个元件与其它元件区别开的目的。例如,第一用户设备和第二用户设备指示不同用户设备,尽管二者都是用户设备。例如,在不脱离本公开的各种实施例的范围的情况下,第一元件可被称为第二元件,同样地,第二元件也可被称为第一元件。

应注意到:如果描述将一个组成元件“连接”到另一组成元件,则可将第一组成元件直接连接到第二组成元件,并且可在第一组成元件和第二组成元件之间“连接”第三组成元件。相反地,当将一个组成元件“直接连接”到另一组成元件时,可理解为在第一组成元件和第二组成元件之间不存在第三组成元件。

在本公开的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本公开的各种实施例。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本公开的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本公开的各种实施例中被清楚地限定。

实施例1

如图2所示,本发明实施例提供了一种网络收敛方法,应用于多个设备构成的分布式链路聚合系统;该方法包括:

s101、一设备的硬件层检测到所述设备的端口状态信息发生变化时,上报所述变化信息至所述设备的驱动层。

在s101之前还可包括:根据预设规则从所述分布式链路聚合系统的多台设备中协商选择一台设备作为主设备。

所述预设规则可以为设备物理标识编号最小或者提供用户接口配置优先级最高的设备选定为主设备。

分布式链路聚合系统中只有1台主设备,其余为从设备。主设备的软件层上存储有实时的软件层链路聚合表。该软件层链路聚合表含有所有端口的信息以及一些管理信息。

主设备发生变化会将原主设备上的软件层链路聚合表更新同步到新选定的主设备的软件层上保存。

硬件层可通过定时器循环检测设备上的端口状态信息是否发生变化,当端口状态信息由up变化为down或由down变化为up。设备的硬件层都会将所述变化信息上报至该设备的驱动层。

s102、所述设备的驱动层上报所述变化信息至所述分布式链路聚合系统选定的主设备的软件层。

设备的驱动层收到其硬件层上报的端口状态信息变化信息,将该信息上报至该设备所属的分布式链路聚合系统选定的主设备的软件层。某个端口状态变化了,这个端口属于主设备就是主设备感知,这个端口属于备就备就是备设备感知,不管是谁感知,最后都会把这个端口状态变化的消息发送到主设备的软件层。

无论多少台设备连结,软件层只有一张全局的软件层链路聚合表,存放在主设备中。例如:主设备可以由设备的systemid或mac选举出来,systemid或mac最小则被推选为主设备。主设备发生变化时将原主设备上的软件层链路聚合表更新同步到新选定的主设备的软件层上保存。因此链路聚合表的数量大大减少,软件层只有一张表,存放在主设备上。其核心思想是简化链路聚合表,尽量减少对于链路聚合表的处理,既提高了收敛的速度,又简化了处理流程,减少表项同步和配置过程中的出错风险。

所述设备的驱动层可通过netlink消息机制上报所述变化信息至所述分布式链路聚合系统选定的主设备的软件层。驱动层和硬件层属于内核空间,软件层属于用户空间。netlink是用以实现用户空间进程与内核空间进程通信的一种特殊的进程间通信,也是网络应用程序与内核通信的最常用的接口。

s103、所述主设备的软件层根据所述变化信息更新软件层链路聚合表及向所有设备的驱动层下发链路聚合表更新消息。

所述主设备的软件层根据所述变化信息更新软件层链路聚合表。例如:当某一端口由up状态变化为down状态,则主设备的软件层上保存的软件层链路聚合表就会将该端口设置为disable状态,表明该端口不可用。当某一端口由down状态变化为up状态,则主设备的软件层上保存的软件层链路聚合表就会将该端口设置为enable状态,表明该端口可用。主设备的软件层保存的软件层链路聚合表发生更新后,需要通知所有设备的驱动层和硬件层以便所有设备的驱动层和硬件层都能及时更新对应的链路聚合表以便对报文进行正常转发。

s104、设备的驱动层收到所述链路聚合表更新消息时,更新驱动层链路聚合表及向所述设备的硬件层下发链路聚合表更新信息。

主设备的软件层向所有的设备的驱动层下发链路聚合表更新消息。主设备会给自身以及其他所用从设备的驱动层发送链路聚合表更新消息,所有设备都会收到该更新消息并更新自身驱动层上保存的驱动层链路聚合表,同时向硬件层下发链路聚合表更新信息。

s105、设备的硬件层收到所述链路聚合表更新消息时,更新硬件层链路聚合表以便所有设备根据更新得到的硬件层链路聚合表继续对报文进行转发。

每台设备的硬件层收到其驱动层下发的链路聚合表更新信息并更新自身硬件层上保存的硬件层链路聚合表,当某一端口由up状态变化为down状态将该端口从硬件层链路聚合表移除,到某一端口由down状态变化为up状态将该端口添加到硬件层链路聚合表中。所有设备的硬件层链路聚合表都更新后以便继续对报文进行正常转发。

本发明实施例还提供了计算机存储介质,其存储有实施例1提供的网络收敛方法所使用的计算机程序。

实施例2

如图3所示,本发明实施例提供了一种网络收敛装置,应用于分布式链路聚合系统,包括:第一上报单元100、第二上报单元200、第一更新单元300、第二更新单元400和第三更新单元500。

第一上报单元1000用于设备的硬件层检测到所述设备的端口状态信息发生变化时,上报所述变化信息至所述设备的驱动层。

硬件层可通过定时器循环检测设备上的端口状态信息是否发生变化,当端口状态信息由up变化为down或由down变化为up。设备的硬件层都会将所述变化信息上报至该设备的驱动层。

第二上报单元200用于所述设备的驱动层上报所述变化信息至所述分布式链路聚合系统选定的主设备的软件层。

设备的驱动层收到其硬件层上报的端口状态信息变化信息,将该信息上报至该设备所属的分布式链路聚合系统选定的主设备的软件层。某个端口状态变化了,这个端口属于主设备就是主设备感知,这个端口属于备就备就是备设备感知,不管是谁感知,最后都会把这个端口状态变化的消息发送到主设备的软件层。

所述设备的驱动层可通过netlink消息机制上报所述变化信息至所述分布式链路聚合系统选定的主设备的软件层。驱动层和硬件层属于内核空间,软件层属于用户空间。netlink是用以实现用户空间进程与内核空间进程通信的一种特殊的进程间通信,也是网络应用程序与内核通信的最常用的接口。

第一更新单元300用于所述主设备的软件层根据所述变化信息更新软件层链路聚合表及向所有设备的驱动层下发链路聚合表更新消息。

所述主设备的软件层根据所述变化信息更新软件层链路聚合表。例如:当某一端口由up状态变化为down状态,则主设备的软件层上保存的软件层链路聚合表就会将该端口设置为disable状态,表明该端口不可用。当某一端口由down状态变化为up状态,则主设备的软件层上保存的软件层链路聚合表就会将该端口设置为enable状态,表明该端口可用。主设备的软件层保存的软件层链路聚合表发生更新后,需要通知所有设备的驱动层和硬件层以便所有设备的驱动层和硬件层都能及时更新对应的链路聚合表以便对报文进行正常转发。

第二更新单元400用于设备的驱动层收到所述链路聚合表更新消息时,更新驱动层链路聚合表及向所述设备的硬件层下发链路聚合表更新信息。

主设备的软件层向所有的设备的驱动层下发链路聚合表更新消息。主设备会给自身以及其他所用从设备的驱动层发送链路聚合表更新消息,所有设备都会收到该更新消息并更新自身驱动层上保存的驱动层链路聚合表,同时向硬件层下发链路聚合表更新信息。

第三更新单元500用于设备的硬件层收到所述链路聚合表更新消息时,更新硬件层链路聚合表以便所有设备根据更新得到的硬件层链路聚合表继续对报文进行转发。

每台设备的硬件层收到其驱动层下发的链路聚合表更新信息并更新自身硬件层上保存的硬件层链路聚合表,当某一端口由up状态变化为down状态将该端口从硬件层链路聚合表移除,到某一端口由down状态变化为up状态将该端口添加到硬件层链路聚合表中。所有设备的硬件层链路聚合表都更新后以便继续对报文进行正常转发。

在本实施例中,还包括:协商选择单元;所述协商选择单元用于从构成分布式链路聚合系统的多台设备中根据预设规则选择一台设备作为主设备。所述预设规则为设备物理标识编号最小或者提供用户接口配置优先级最高的设备选定为主设备。

在本实施例中,还包括:表同步单元;所述表同步单元单元用于当所述主设备发生变化时,将原主设备上的软件层链路聚合表更新同步到新选定的主设备的软件层上保存。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施场景中的设备中的模块可以按照实施场景描述进行分布于实施场景的设备中,也可以进行相应变化位于不同于本实施场景的一个或多个设备中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

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