专利名称:一种设置链路端口的协议状态的方法及其监控方法
技术领域:
本发明涉及以太网通信领域,其具体涉及的是一种链路聚合(Link Aggregation)和生成树协i义(xSTP,包含STP ( Spanning Tree protocol,生 成树协议)/ RSTP( Rapid Spaning Tree Protocol,快速生成树协议)/ MSTP (Multi-Instance Spanning TreeProtocol,多生成树协议)等)同时应用的链 路端口的协议状态:没置方法和监控。
背景技术:
随着数据业务量的增长和对服务质量要求的提高,高可用性日益成为 高性能网络最重要的特征之一。网络的高可用性一般在系统、组件和链路 三个级别上体现。其中,链路级的高可用性则要求传输线路备份,如果主 要数据通路中断,备用线路将迅速启用。目前的技术中,以生成树协议和 链路聚合技术应用最为广泛。生成树协议提供了链路间的冗余方案,允许 交换机间存在多条链路作为主链路的备份。而链路聚合技术则提供了传输 线路内部的冗余机制,链路聚合成员彼此互为冗余和动态备份。
目前链路聚合技术的正式标准为IEEE 802.3ad,主要的实现方法有静态 配置的主干技术(Trunking)和动态控制的链路聚合控制协议(LACP, link aggregation control protocol)两种,可以达到高带宽、高可靠性、负载均衡 的作用。
目前生成树协议的正式标准有IEEE 802.1D、正EE 802.1W、IEEE 802.1S 三个,分别对应生成树协议(STP, Spanning Tree protocol)、快速生成树 协议(RSTP, Rapid Spaning Tree Protocol)、多生成树协议(MSTP,Multi-Instance Spanning TreeProtocol),它们通过构造一#果或多4果自然树的 方法达到裁剪多条链路之间冗余环路的目的,同时实现链路备份和路径最 优化。
链路聚合是把以太网交换机上的几个物理端口逻辑上聚合起来,当作 一个逻辑端口^f吏用,以获得更大的数据传输带宽;而,生成树协议是基于 物理端口来控制其端口协议状态的。这样,链路聚合成员端口会因生成树 协议状态的不一致导致生成树协议把链路聚合里的线路内部冗余端口看成 线路之间的冗余端口,而把它的冗余成员端口阻塞掉,影响业务的转发, 从而造成链路聚合达不到预期的带宽,使得链路聚合变得没有了意义。
发明内容
本发明的目的在于提供了 一种设置链路端口的协议状态的方法及其监
领域,其可以有效地解决链路聚合成员端口因生成树协议状态不一致,而 导致的业务转发不正常的问题。
为实现上述目的,本发明采用如下技术方案
本发明提供了 一种设置链路端口的协议状态的方法,其包括以下步骤 Al、建立链路聚合,将多个端口汇聚成一个链路聚合组,并设置其中 一个端口为主端口;
A2、对所述主端口进行生成树协议拓朴计算;
A3、根据拓朴计算的结果设置所述主端口的端口协议状态,并将该端 口协议状态同步给此链路聚合组的其他端口 。
其中,所述主端口选择所述链路聚合组中的第 一个上行传输端口 。
上述思想的基础上,本发明还提供了 一种链路端口协议状态的监控方 法,其包括以下步骤
B1 、轮询4企测端口的链路聚合状态;B2、判断链路聚合状态是否发生改变,当链路聚合状态发生改变时, 执行步骤B3;B3、建立链路聚合,将多个端口汇聚成一个链路聚合组,并在链路聚 合组中选择一个端口作为主端口;B4、对所述主端口进行生成树协议拓朴计算;B5、根据拓朴计算的结果设置所述主端口的端口协议状态,并将该端 口协议状态同步给此链路聚合组的其他端口 。其中,所述步骤B3和步骤B4之间还包括以下步骤 B31、发起查询链路端口状态的操作指令;B32、判断被查询端口是否在链路聚合组内、并属于该链路聚合组的主 端口;若是则,执行步骤B4。其中,所述步骤B31中,通过向被查询端口发送链路聚合控制协议数 据单元,来查询该端口的系统信息;并且,所述步骤B32中,通过接收被 查询端口返回的链路聚合控制协议数据单元,来获取该端口的系统信息用 以判断该端口是否是链路聚合组内的主端口 。其中,所述步骤B4和步骤B5之间还包括以下步骤B41、发起设置端口协议状态的动作指令;B42、判断被设置端口是否是链路聚合组的主端口,若是,则执行步骤B5。其中,所述方法还包括以下步骤B6、发起用户查询端口协议状态的操作指令;B7、判断被查询端口是否是链路聚合组的主端口,若是,则所述主端 口直接返回生成树协议拓朴计算结果,若否,则查询并返回该端口所属链 路聚合组的主端口协议状态。其中,所述步骤B32中,若被查询端口不在链路聚合组内,则继续判 断该端口的物理状态是否为建立链路;若该端口的物理状态为建立链路,则对该端口进行生成树协议拓朴计算,并根据拓朴计算结果设置该端口的 物理状态。其中,所述步骤B42中,若被设置端口不是链路聚合组的主端口,并 且不在链路聚合组内,则按照该端口的生成树协议拓朴计算结果设置其端 口协议状态。其中,所述步骤B2的判断结果包括以下两种情况当存在删除链路聚合组主端口的操作、或者向链路聚合组增加端口的 操作时,则执行步骤B3;当存在删除链路聚合组从端口的操作时,将该从端口作为一般物理端 口参与生成树协议拓朴计算,并根据拓朴计算结果设置该端口的物理协议 状态,然后,对链路聚合组内的其他端口执行步骤B3。基于链路聚合和生成树协议技术的同时应用领域,本发明提供了 一种 新的端口状态协议的设置方法及其监控方法。通过将链路聚合的端口从物 理层到协议层可以完全视为一个逻辑端口来处理,也就是说在进行生成树 协议的拓朴运算时,链路聚合的端口中有且只有一个端口参与协议运算, 其它端口都不参与协议运算,在协议运算完毕后,将没有参与协议运算的 端口的协议状态同步为参与了协议运算的端口的协议状态,从而保证在链 路聚合组中,所有从端口的协议状态都与主端口的协议状态保持一致,避 免了链路聚合成员端口因生成树协议状态不一致,而导致的业务转发不正 常的问题,并且能有效地发挥链路聚合的作用。
图1为本发明链路聚合和生成树协议的实例结构图; 图2为本发明的方法流程图。
具体实施方式
以下结合附图详细说明本发明的技术方案。为了使链路聚合组内各个端口的物理协议状态保持一致,则本发明在建立链路聚合并设置物理端口协议状态时采用如下方法将多个端口汇聚 成一个链路聚合组,并设置其中一个端口为主端口,其余端口为从端口, 对这一主端口进行生成树协议拓朴计算,并根据拓朴计算的结果设置主端 口的端口协议状态,并将该端口协议状态同步给此链路聚合组的其他端口 。 例如,如图1所示,以太网交换机NE (网元)1上的端口 d、 e和以太网交 换机NE2上的端口 D、 E为普通物理端口,参与协议计算;而端口 a、 A因 为在各自的链路聚合组里属于主端口的角色,所以也将参与拓朴计算,而 端口 b、 c、 B、 C,因为它们属于端口 a、 A所在的链路聚合组内,并且属 于从端口的角色,所以将不参与拓朴计算,并且保证端口 B、 C与端口 A 的协议状态一致,端口b、 c与端口 a的协议状态一致。这样做就保证了在 同 一个链路聚合组内各个端口协议的 一致性,有效地保证了链路聚合在实 现高宽带上的作用。在这里,所述主端口可以选择链路聚合组中的第一个 物理协议状态为建立链路(up)的上行传输端口。基于上述端口协议的设置方法,如图2所示,本发明还提供了一种端 口协议状态的监控方法,其核心思想如下所示,首先、轮询检测端口的链路状态和链路聚合状态;然后,判断链路聚 合状态是否发生改变;当链路聚合状态发生改变时,比如存在删除端口的 操作、或者向链路聚合组增加端口的操作时,则重新建立链路聚合,将多 个端口汇聚成一个链路聚合组,并在链路聚合组中选择一个端口作为主端 口;同时再对所述主端口进行生成树协议拓朴计算,根据拓朴计算的结果 设置所述主端口的端口协议状态,并将该端口协议状态同步给此链路聚合 组的其他端口。以下将结合图2详细说明本发明的监控方法的流程。200,定期轮询4全测端口链路聚合状态,比如设置每秒轮询检测一次。9并且在每秒轮询链路聚合状态的同时,可以轮询;险测物理端口的链路状态, 若是连续三秒链路状态或链路聚合状态都和协议不一致,则代表普通物理 端口链路状态已经改变或链路聚合状态已经发生改变。基于Ieee802.3ad标 准的Lacp (Link Aggregation Control Protocol,链路聚合控制协议)是一种 实现链路动态聚合与解聚合的协议。依据Lacp协议可以通过Lacpdu ( Link Aggregation Control Protocol Data Unit,链路聚合控制协议数据单元)与对 端交互信息。此处在^^询;险测时,可以采用向对端发送Lacpdu数据包的形 式,获取被检测端口的相关信息。210,判断链路聚合状态是否发生改变,这里链路聚合状态发生改变的 情况是指删除链路聚合组端口的操作、或者向链路聚合组增加端口的操 作,删除操作包括删除链路聚合组主端口或者删除从端口 。在这里,如图2所示,可以判断是否发生向链路聚合组增加端口的操 作、或者删除主端口的纟喿作;若是存在其中一种情况,则执行步骤220,若 否,则当发现有从端口从一个链路聚合组删除的时候,读取生成树的协议 状态设置到驱动去同步协议状态。因为前面从端口虽然不参与拓朴计算, 但还在参与了协议,其协议状态和物理协议状态可能是不一致的。现在该 从端口独立出来成为 一个普通的物理端口参与生成树协议拓朴计算,所以 应该把协议里该端口的协议状态同步到其物理协议状态上,而不再是用原 链路聚合组的协议状态,保证了软硬件状态一致。而对于链路聚合组中剩 余的其它成员也应该执行步骤220,重新聚合参与生成树协议计算。如图1所示应用实例,当端口 d和端口 D分别加入原端口 a、 b、 c所 属的链路聚合组和原端口 A、 B、 C所属的链路聚合组时,或当主端口a和 主端口 A分别离开各自所属的链路聚合组时,链路聚合应该重新绑定、生 成树协议应该重新计算拓朴结构;当端口b、 B或端口c、 C分别离开各自 的链路聚合组时,应该先从生成树协议里取得其端口协议状态同步到其物 理层,再以一个独立的普通物理端口参与协议,原链路聚合组其它成员端口则链路聚合进行重新绑定、生成树协议进行重新计算拓朴结构。220,重新建立链路聚合,将多个端口汇聚成一个链路聚合组,并在链 路聚合组中选择一个端口作为主端口 。230,发起查询链路端口状态的操作指令。在这里可以通过向被查询端 口发送Lacpdu婆t据包的形式,来查询该端口的系统信息。240,判断被查询端口是否在链路聚合组内;若是,则执行步骤250; 若否,则认定为一般物理端口,执行步骤260。250、判断被查询端口是否属于链路聚合组的主端口;若是,则执行步 骤270;若否,则表示该端口属于链路聚合组的从端口,将不参与协议计算。上述两个判断可以通过接收被查询端口返回的Lacpdu数据包,来获取 该端口的系统信息,用以判断该端口是否是链路聚合组内的主端口 。260,判断该端口的物理状态是否为up (即判断该端口是否建立链路连 接);若是,则执行步骤270;若否,则该端口将不参与协议计算。270,对一般物理端口和链路聚合组的主端口进行生成树协议拓朴计算。280,发起设置端口协议状态的动作指令。290,判断被设置端口是否是链路聚合组的主端口或者是一般物理端 口,若是,则执行步骤300,若否,则认定该端口为链路聚合组的从端口, 将不允许设置从端口的协议状态。300,根据拓朴计算结果,设置一般物理端口和链路聚合组的主端口的 物理状态。310,发起用户查询端口协议状态的操作指令;320,判断被查询端口是否为链路聚合组的主端口,或者为一般物理端 口,若被查询端口是一般物理端口或者是链路聚合组的主端口,则端口直 接返回生成树协议拓朴计算结果,并输出查询结果;若被查询端口既不是 链路聚合组的主端口,也不是一般物理端口,则认定该端口为某一链路聚合组的/人端口,需要查询该端口所属的链路聚合组的主端口,获取该主端 口的指定网桥、指定端口、协议状态等端口状态并返回,输出查询结果, 从而使得从端口的协议状态和主端口在用户界面是一致的。如图1所示的应用实例,当用户查询端口b、 c或端口B、 C的协议状态时,则分别把端 口 a和端口 A的端口协议状态通告给用户。从上述过程可以看出,首先要判断该端口是否在链路聚合组,若不在 链路聚合组则为一般物理端口,在生成树协议里按正常情况处理;若在链 路聚合组里并且这个端口是这个链路聚合组的主端口 ,则在生成树协议里 是up的,参与拓朴计算;若该端口处于链路聚合组但不是主端口,则在生 成树协议里把它认为是down (表示没有建立链路连接)的,不参与拓朴计 算,保证链路聚合有且仅有一个端口参与拓朴计算。在设置端口协议状态 时,若这个端口是主端口,允许设置协议状态。若这个端口是从端口,则 不允许设置协议状态,以达到和驱动的隔离,保证生成树有且仅有一个逻 辑端口可以控制这个链路聚合组,从而使得从端口的协议状态和主端口在芯片驱动是一致的。若交换芯片的端口协议状态可以基于链路聚合组,只需要把主端口的 协议状态设置到芯片即可,就可以保证该链路聚合組的协议状态是主端口 的协议状态。若把从端口的协议状态设置下去,反而会把整个链路聚合组 的协议状态都设置成不正确的了 ,所以在这里从端口不允许直接设置。若交换芯片的端口协议状态不可以基于链路聚合组,只能基于端口的。 那驱动就得把设置到主端口的协议状态同步到这个链路聚合组的其它端口 上。如图l所示的应用实例,端口 b、 c、 B、 C不允许直接通过协议设置其 端口协议状态,而是要在设置端口 a、 A的协议状态的时候,把各自的协议 状态同步到端口b、 c和端口B、 C上去。与现有技术相比较,本发明提供的方法具有以下特点 (1)在保证了上联业务对高带宽,高稳定性的需求的条件下,同时实现无环路下的路径最优,满足今后业务上对带宽,响应速度,传输质量等越来越高的要求;(2) 当几个物理端口链路聚合在一起的时候,生成树协议可以在不改 变协议状态机的基础上,通过在各个层面保证链路聚合端口以一个逻辑端 口参与协议计算,使得生成树协议可以做到链路聚合组内的各成员端口的协议状态在协议层和物理层都可以达到一致,有效地避免了链路聚合成员 端口因生成树协议状态不一致而导致业务转发不正常,引起链路聚合失效 的问题;(3) 当链路聚合配置发生改变或成员端口掉断的时候,链路聚合可以 重新绑定,重新参与生成树协议拓朴计算。上述各具体步骤的举例说明较为具体,并不能因此而认为是对本发明 的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
权利要求
1. 一种设置链路端口的协议状态的方法,其特征在于,所述方法包括以下步骤A1、建立链路聚合,将多个端口汇聚成一个链路聚合组,并设置其中一个端口为主端口;A2、对所述主端口进行生成树协议拓扑计算;A3、根据拓扑计算的结果设置所述主端口的端口协议状态,并将该端口协议状态同步给此链路聚合组的其他端口。
2、 根据权利要求1所述的方法,其特征在于,所述主端口选择所述链 路聚合组中的第 一个上行传输端口 。
3、 一种链路端口协议状态的监控方法,其特征在于,所述方法包括以 下步骤Bl、轮询检测端口的链路聚合状态;B2、判断链路聚合状态是否发生改变,当链路聚合状态发生改变时, 执行步骤B3;B3、建立链i 各聚合,将多个端口汇聚成一个链路聚合组,并在链路聚 合组中选l奪一个端口作为主端口 ;B4、对所述主端口进行生成树协议拓朴计算;B5、根据拓朴计算的结果设置所述主端口的端口协议状态,并将该端 口协议状态同步给此链路聚合组的其他端口 。
4、 根据权利要求3所述的方法,其特征在于,所述步骤B3和步骤B4 之间还包括以下步骤B31、发起查询链路端口状态的操作指令;B32、判断被查询端口是否在链路聚合组内、并属于该链路聚合组的主端口;若是则,执行步骤B4。
5、 根据权利要求4所述的方法,其特征在于,所述步骤B31中,通 过向被查询端口发送链路聚合控制协议数据单元,来查询该端口的系统信 息;并且,所述步骤B32中,通过接收被查询端口返回的链路聚合控制协议数据 单元,来获取该端口的系统信息用以判断该端口是否是链路聚合组内的主 端口。
6、 根据权利要求3所述的方法,其特征在于,所述步骤B4和步骤B5 之间还包括以下步骤B41、发起设置端口协议状态的动作指令;B42、判断被设置端口是否是链路聚合组的主端口,若是,则执行步 骤B5。
7、 根据权利要求3所述的方法,其特征在于,所述方法还包括以下步骤B6、发起用户查询端口协议状态的操作指令;B7、判断被查询端口是否是链路聚合组的主端口,若是,则所述主端 口直接返回生成树协议拓朴计算结果,若否,则查询并返回该端口所属链 路聚合组的主端口协议状态。
8、 根据权利要求4所述的方法,其特征在于,所述步骤B32中,若被 查询端口不在链路聚合组内,则继续判断该端口的物理状态是否为建立链 路;若该端口的物理状态为建立链路,则对该端口进行生成树协议拓朴计 算,并根据拓朴计算结果设置该端口的物理状态。
9、 根据权利要求6所述的方法,其特征在于,所述步骤B42中,若被 设置端口不是链路聚合组的主端口,并且不在链路聚合组内,则按照该端口的生成树协议拓朴计算结果设置其端口协议状态。
10、根据权利要求3所述的方法,其特征在于,所述步骤B2的判断结 果包括以下两种情况当存在删除链路聚合组主端口的操作、或者向链路聚合组增加端口的 操作时,则执行步骤B3;当存在删除链路聚合组从端口的操作时,将该从端口作为一般物理端 口参与生成树协议拓朴计算,并根据拓朴计算结果设置该端口的物理协议 状态,然后,对链路聚合组内的其他端口执行步骤B3。
全文摘要
本发明公开了一种设置链路端口的协议状态的方法及其监控方法,其应用于链路聚合和生成树协议同时应用的通信技术领域。本发明的方法首先建立链路聚合,将多个端口汇聚成一个链路聚合组,并设置其中一个端口为主端口;然后对所述主端口进行生成树协议拓扑计算;最后再根据拓扑计算的结果设置所述主端口的端口协议状态,并将该端口协议状态同步给此链路聚合组的其他端口。本发明可以有效地解决链路聚合成员端口因生成树协议状态不一致,而导致的业务转发不正常的问题。
文档编号H04L12/24GK101252459SQ20081006620
公开日2008年8月27日 申请日期2008年3月24日 优先权日2008年3月24日
发明者陈顺龙, 嘉 黄 申请人:中兴通讯股份有限公司