防止瞬时环路的方法和装置的制作方法

文档序号:7698590阅读:148来源:国知局
专利名称:防止瞬时环路的方法和装置的制作方法
技术领域
本发明涉及生成树技术领域,具体涉及防止瞬时环路的方法和装置。
背景技术
生成树协议(STP, Spanning Tree Protocol)是根据国际电子电气工程 师i办会(IEEE, Institute of Electrical and Electronics Engineering)制定的 802.ID标准建立的,用于在局域网中消除数据链路层物理环路的协议。运 行该协议的设备通过彼此交互信息发现网络中的环路,并有选择地对某些端 口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止 报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同报文造 成报文处理能力下降的问题发生。
STP不能快速迁移,即使是在点对点链路或边缘端口 ,也必须等待2倍 转发延迟的时间延迟,端口才能迁移到转发状态。
快速生成树协议(RSTP, Rapid Spanning Tree Protocol)是STP协议的 优化版。其"快速"体现在当一个端口被选为根端口和指定端口后,其进 入转发状态的延时在某种条件下大大缩短,从而缩短了网络最终达到拓朴稳 定所需要的时间。
多生成树协议(MSTP, Multiple Spanning Tree Protocol)可以弥补STP 和RSTP的缺陷,它既可以快速收敛,也能使不同虛拟局域网(VLAN, Virtual Local Network )的流量沿各自的路径转发,从而为冗余链路提供了更好的负 载分担机制。
RSTP与MSTP中,端口快速迁移是有前提条件的,对于指定端口而言, 需要和下游的端口进行握手,收到握手响应后可以迁移到转发状态;而对于
4根端口而言,需要在本桥上完成最近根端口 (ReRoot, Resent Root)流程, 再迁移到转发,此过程阻塞所有的指定端口,以防止临时环路产生。但是根 据目前的各版本的RSTP和MSTP标准,如果一个端口—皮选为根端口之前处 于转发状态,则该端口被选为根端口之后维持转发状态,此时不需要经过 ReRoot流程。例如IEEE目前发布的最新MSTP草案及最新的RSTP标准 文档802.ID 2004中都规定根端口进入ReRoot状态的条件是端口不处于 转发状态并且之前未进入过ReRoot状态。这种实现机制导致某些组网环境 下,RSTP和MSTP在冲艮端口迁移过程中存在瞬时的环路。以下以 一个具体 例子-进《于i兌明
图1-1为一个RSTP组网图,如图1所示,SW1为根桥(PR, Primary Root) , SW1具有端口 P13和P15, SW3具有端口P31、 P32和P34, SW2 具有端口 P23和P24, SW4具有端口 P42、 P43和P45, SW5具有端口 P51 和P54,其中,SW3的端口 P31为根端口, P32和P34为指定端口; SW2 的端口 P23为根端口 , P24为指定端口 ; SW4的端口 P45为根端口 , P42和 P43为替换端口; SW5的端口 P51为根端口 , P54为指定端口。
当SW3与SW1之间的链路发生故障后,生成树演变为图1-2,如图1-2 所示,与图l-l相比,SW3的端口 P31和SW1的端口 P13都变为故障端口 都处于阻塞状态;SW3的端口 P34变为才艮端口, P32变为替换端口; SW2 的端口P24变为根端口, P23变为指定端口; SW4的端口P42、 P43变为指 定端口 。
当SW3与SW1之间的故障链路恢复正常时,生成树要重新演变为如图 1-1所示,此时,端口 P31被选为根端口,端口 P32和P34被选为指定端口 。 由于P31之前为故障端口 ,处于阻塞状态,所以根端口 P31会进入ReRoot 状态,阻塞端口P34和P32,同时,P31回应给端口 P13握手同意报文,端 口 P13和P31均进入转发状态;紧接着端口 P32和P34接着会向下游进行 4屋手流程,SW2上端口 P23 4皮选为4艮端口 ,端口 P24邱支选为指定端口 ,由 于P23之前为指定端口 ,处于转发状态,因此P23不会进入根端口的ReRoot状态,直接回应给P32握手同意报文,端口 P32可进入转发状态,设端口
P32进入转发状态的时刻为Tl,与此同时,端口 P42会收到P24发送的桥 协议数据单元(BPDU, Bridge Protocol Data Unit)报文,被选为替换端口 进入阻塞状态,设端口 P42进入阻塞状态的时刻为T2。
可以看出若要防止瞬时环路,必须满足Tl晚于T2,即P32由阻 塞状态进入转发状态的时刻晚于P42由转发状态进入阻塞状态的时刻,但是 在实际情况中,Tl和T2两个时刻并没有严格的先后限制,先阻塞P42还是 先放开P32依赖于SW4和SW3系统的繁忙程度,如果Tl早于T2,则就会 出现瞬时环路。

发明内容
本发明提供防止瞬时环路的方法和装置,以防止改进STP中出现瞬时环路。
本发明的技术方案是这样实现的
一种防止瞬时环路的方法,包括
为改进生成树中的每个端口设置一个根端口选择标志,并初始化该标志指 示"未被选择",当一个端口被选为根端口时,将该端口的根端口选择标志更改 为指示"被选择";为每个端口设置一个ReRoot状态进入标志,并初始化该标 志指示"未进入";
发现改进生成树中的一个端口的ReRoot状态进入机制被触发,判断该端口 的根端口选择标志指示"被选择"、ReRoot状态进入标志指示"未进入"是否 同时成立,若是,触发该根端口进入Reroot状态,且将该端口的ReRoot状态 进入标志更改为指示"已进入"。
所述改进生成树为快速生成树或多生成树。
一种防止瞬时环路的方法,包括
为每个端口设置一个根端口选择标志,并初始化该标志指示"未被选择", 当 一个端口被选为根端口时,将该端口的根端口选择标志更改为指示"被选择"; 为每个端口设置一个ReRoot状态进入标志,并初始化该标志指示"未进入";
6发现改进生成树中的一个端口的ReRoot状态进入才几制被触发,判断该端口 是否满足根端口选择标志指示"被选择"、当前不处于转发状态两个条件中的 一个,且满足ReRoot状态进入标志指示"未进入",若是,触发该根端口进 入R.eRoot状态,且将该端口的ReRoot状态进入标志更改为指示"已进入"。
所述改进生成树为快速生成树或多生成树。
一种防止瞬时环路的装置,包括
ReRoot相关标志设置模块,为改进生成树中的每个端口设置一个根端口选 择标志,并初始化该标志指示"未被选择",发现一个端口被选为根端口,则设 置该端口的根端口选择标志指示"被选择";根据ReRoot状态触发模块发来的 携带端口标识的更改ReRoot状态进入标志指示,将该端口标识对应端口的 ReRoot状态进入标志更改为指示"已进入";
ReRoot状态触发模块,发现改进生成树中的一个端口的ReRoot状态进入 机制被触发,从ReRoot相关标志设置模块荻取该端口的根端口选择标志和 ReRoot状态进入标志,若发现该根端口选择标志指示"被选择",且该ReRoot 状态进入标志指示"未进入",则触发该根端口进入ReRoot状态,且向ReRoot 相关标志设置冲莫块发送携带端口标识的更改ReRoot状态进入标志指示。
一种防止瞬时环路的装置,包括
ReRoot相关标志设置模块,为改进生成树中的每个端口设置一个根端口选 择标志,并初始化该标志指示"未被选择",发现一个端口被选为根端口 ,则设 置该端口的根端口选择标志指示"被选择";根据ReRoot状态触发模块发来的 携带端口标识的更改ReRoot状态进入标志指示,将该端口标识对应端口的 ReRoot状态进入标志更改为指示"已进入";
ReRoot状态触发模块,发现改进生成树中的一个端口的ReRoot状态进 入机制被触发,从ReRoot相关选择标志设置模块获取该端口的根端口选择 标志和ReRoot状态进入标志,若发现满足该根端口选择标志指示"被选 择"、该根端口当前不处于转发状态两个条件中的一个,且满足该ReRoot 状态进入标志指示"未进入",则触发该根端口进入ReRoot状态,且向ReRoot相关标志设置模块发送携带端口标识的更改ReRoot状态进入标志指示。
与现有技术相比,本发明中,为改进生成树中的每个端口设置一个根端 口选择标志,并初始化该标志指示"未被选4奪",当一个端口被选为根端口时, 将该端口的根端口选择标志更改为指示"被选择";为每个端口设置一个 ReRoot状态进入标志,并初始化该标志指示"未进入";发现改进生成树中的 根端口的ReRoot状态进入机制被触发,判断该根端口是否满足根端口选 择标志指示"被选择"且ReRoot状态进入标志指示"未进入";或者,判断该 端口是否满足根端口选择标志指示"被选择"、当前不处于转发状态两个 条件中的一个,且满足ReRoot状态进入标志指示"未进入",若是,触 发该根端口进入ReRoot状态,且将该端口的ReRoot状态进入标志更改为指 示"已进入"。本发明避免了在一次改进生成树演变过程中, 一个端口由阻 塞状态进入转发状态的时刻早于另 一端口由转发状态进入阻塞状态的情形 的发生,防止了瞬时环路的产生。


图1-1为一个RSTP组网图1-2为图1-1中的一条链路故障后的RSTP组网图; 图2为本发明实施例 一提供的防止改进STP产生瞬时环路的流程图; 图3为本发明实施例二提供的防止改进STP产生瞬时环路的流程图; 图4为本发明实施例提供的防止改进STP产生瞬时环路的装置的组成图。
具体实施例方式
由图1-1和图l-2可以看出,现有技术方案会引起瞬时环路的根本原因 在于,对根端口进入ReRoot状态的限制条件过严,导致根端口如端口 P23 需要进入ReRoot状态的一些情形被遗漏。本发明的基本思想是对于每个 根端口,若该根端口满足被新选为根端口且在新选为根端口后未进过ReRoot状态;或者满足被新选为根端口或当前不处于转发状态,且在被 新选为根端口后未进过ReRoot状态,则触发该才艮端口进入ReRoot状态。
本发明中,将STP的优化版本统称为改进STP,例如改进STP可以 是RSTP、 MSTP等。
下面结合附图及具体实施例对本发明再作进 一 步详细的说明。
图2为本发明实施例一提供的防止改进STP产生瞬时环路的流程图, 如图2所示,其具体步骤如下
步骤201:为每个端口设置一个根端口选择标志,并初始化该标志为"0", 为每个端口^殳置一个ReRoot状态进入标志,并初始化该标志为"0"。
对于RSTP,可在端口角色选择(PRS, Port Roles Selection )状态机的 updtRolesTree ()函数中,为每个端口设置一个bNeedReRoot变量,并初始 化该变量为False,以表示该端口未被选为根端口;当一个端口被选为根端 口时,设置该端口的bNeedReRoot变量为True。当 一个端口的端口角色迁 移(PRT, Port Roles Transferring )状态才儿发3见该端口的bNeedReRoot变量 为True,且该端口在新选为根端口后未进过ReRoot状态,则触发该端口进 入ReRoot状态。
对于MSTP,可在PRS状态机的updtRolesTree ()函数中,为每个端 口实例设置一个bNeedReRoot变量,并初始化该变量为False,以表示该端 口实例未被新选为根端口 ;当 一个端口实例被新选为根端口时,设置该端口 实例的bNeedReRoot变量为True 。当 一 个端口的 一 个实例的PRT状态机发 现该端口的该实例的bNeedReRoot变量为True ,且该端口在新选为才艮端。 后未进过ReRoot状态,则触发该端口进入ReRoot状态。
步骤202:当发现一个端口由非^^端口变为^^端口时,将该端口的才艮端 口选择标志置为'T,;当发现一个端口由根端口变为非根端口时,将该端 口的根端口选择标志置为"0"。
步骤203:发现一个端口的ReRoot状态进入才几制被触发,判断该端口 的根端口选择标志为"1" 、 ReRoot状态进入标志为"0"是否同时成立,
9若是,执行步骤204;否则,执行步骤205。
无论是RSTP还是MSTP,都有一个机制来触发根端口进入ReRoot状 态的判断。
步骤204:触发该根端口进入ReRoot状态,将该根端口的ReRoot状态 进入标志置为"1",本流程结束。
步骤205:不触发该根端口进入ReRoot状态。
上述步骤202与步骤203 ~ 205在执行顺序上没有先后之分。
图3为本发明实施例二提供的防止改进S丁P产生瞬时环路的流程图, 如图3所示,其具体步骤如下
步骤301:为每个端口设置一个^f艮端口选择标志,并初始化该标志为"0", 为每个端口设置一个ReRoot状态进入标志,并初始化该标志为"0"。
步骤302:当发现一个端口由非根端口变为根端口时,将该端口的根端 口选择标志置为"1";当发现一个端口由根端口变为非根端口时,将该端 口的根端口选择标志置为"0"。
步骤303:发现一个端口的ReRoot状态进入机制被触发,判断该端口 是否满足根端口选择标志为"1"、当前不处于转发状态两个条件中的一 个,且满足ReRoot状态进入标志为"0",若是,执行步骤304;否则, 执行步骤305。
步骤304:触发该4艮端口进入ReRoot状态,将该根端口的ReRoot状态
进入标志置为"1",本流程结束。
步骤305:不触发该根端口进入ReRoot状态。
上述步骤302与步骤303 ~ 305在执行顺序上没有先后之分。
从图3所示流程可以看出只要根端口满足如下两个条件中的 一个,就
可触发根端口进入ReRoot状态
条件一、根端口选择标志为"1"且ReRoot状态进入标志为"0";
条件二、当前不处于转发状态且ReRoot状态进入标志为"0"。
可见,与图2相比,图3增加了 一个触发根端口进入Reroot状态的条件根端口当前不处于转发状态且ReRoot状态进入标志为"0",该条件与 现有技术相同,增加该条件是为了使得触发根端口进入ReRoot状态的条件 更为完全、可靠。
仍然针对图1-1和图1-2,设定SW1和SW3之间的链路故障恢复正常 后应用本发明实施例一或二,可见,端口 P23被选为才艮端口后,由于P23 满足被新选为根端口即4艮端口选才奪标志为"1"且在新选为根端口后未 进过ReRoot状态即ReRoot状态进入标志为"0",因此P23能够进入ReRoot 状态,从而先阻塞端口P24,然后P23给上游指定端口 P32回复握手同意报 文,使P32迁移到转发状态。而端口 P24必定会是在端口 P42成为替换端口 且被阻塞后,才会再次进入转发状态,因此不会产生瞬时环路。
图4为本发明实施例提供的防止改进STP产生瞬时环路的装置的组成 图,如图4所示,其主要包括ReRoot相关标志i殳置才莫块41和ReRoot状 态触发模块42,其中
ReRoot相关标志设置模块41:为每个端口设置一个根端口选择标志,并初 始化该标志指示"未被选择",当发现一个端口被选为根端口时,则设置该端口 的根端口选择标志指示"被选择",当发现一个端口由根端口变为非根端口时, 则将该端口的根端口选择标志更改为指示"未被选择";为每个端口设置一个 ReRoot状态进入标志,并初始化该标志指示"未进入",接收ReRoot状态触发 模块42发来的携带端口标识的修改ReRoot状态进入标志指示,将该端口标识 对应端口的ReRoot状态进入标志更改为指示"已进入"。
ReRoot状态触发才莫块42:发现一个端口的ReRoot状态进入片几制被触发, 从ReRoot相关标志设置冲莫块41获取该端口的根端口选4奪标志和ReRoot状态 进入标志,若发现该根端口选择标志指示"被选择",且该ReRoot状态进入标 志指示"未进入",则触发该才艮端口进入ReRoot状态,同时向ReRoot相关标 志设置模块41发送携带端口标识的修改ReRoot状态进入标志指示;否则,不 触发该根端口进入ReRoot状态。
或者,ReRoot状态触发模块42用于,发现一个端口的ReRoot状态进入机制被触发,从ReRoot相关标志设置模块41获取该端口的根端口选择标 志和ReRoot状态进入标志,若发现满足该根端口选择标志指示"被选择"、 该根端口当前不处于转发状态两个条件中的一个,且满足该根端口的
ReRoot状态进入标志指示"未进入",则触发该根端口进入ReRoot状态, 同时向ReRoot相关标志设置模块41发送携带端口标识的修改ReRoot状态 进入标志指示;否则,不触发该根端口进入ReRoot状态。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在 本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
权利要求
1、一种防止瞬时环路的方法,其特征在于,该方法包括为改进生成树中的每个端口设置一个根端口选择标志,并初始化该标志指示“未被选择”,当一个端口被选为根端口时,将该端口的根端口选择标志更改为指示“被选择”;为每个端口设置一个ReRoot状态进入标志,并初始化该标志指示“未进入”;发现改进生成树中的一个端口的ReRoot状态进入机制被触发,判断该端口的根端口选择标志指示“被选择”、ReRoot状态进入标志指示“未进入”是否同时成立,若是,触发该根端口进入Reroot状态,且将该端口的ReRoot状态进入标志更改为指示“已进入”。
2、 如权利要求l所述的方法,其特征在于,所述改进生成树为快速生成树 或多生成树。
3、 一种防止瞬时环;洛的方法,其特征在于,该方法包括 为每个端口设置一个根端口选择标志,并初始化该标志指示"未被选择",当 一个端口被选为根端口时,将该端口的根端口选择标志更改为指示"被选择"; 为每个端口设置一个ReRoot状态进入标志,并初始化该标志指示"未进入";发现改进生成树中的一个端口的ReRoot状态进入机制一皮触发,判断该端口 是否满足根端口选择标志指示"被选择"、当前不处于转发状态两个条件中的 一个,且满足ReRoot状态进入标志指示"未进入",若是,触发该根端口进 入ReRoot状态,且将该端口的ReRoot状态进入标志更改为指示"已进入"。
4、 如权利要求3所述的方法,其特征在于,所述改进生成树为快速生成树 或多生成树。
5、 一种防止瞬时环路的装置,其特征在于,该装置包括ReRoot相关标志设置模块,为改进生成树中的每个端口设置一个根端口选 择标志,并初始化该标志指示"未被选择",发现一个端口被选为根端口 ,则设 置该端口的根端口选择标志指示"被选择";根据ReRoot状态触发模块发来的携带端口标识的更改ReRoot状态进入标志指示,将该端口标识对应端口的ReRoot状态进入标志更改为指示"已进入";ReRoot状态触发模块,发现改进生成树中的一个端口的ReRoot状态进入 机制被触发,从ReRoot相关标志设置模块获取该端口的根端口选择标志和 ReRoot状态进入标志,若发现该纟艮端口选择标志指示"纟皮选择",且该ReRoot 状态进入标志指示"未进入',,则触发该根端口进入ReRoot状态,且向ReRoot 相关标志设置模块发送携带端口标识的更改ReRoot状态进入标志指示。
6、 一种防止瞬时环路的装置,其特征在于,该装置包括ReRoot相关标志设置模块,为改进生成树中的每个端口设置一个根端口选 择标志,并初始化该标志指示"未被选择",发现一个端口被选为根端口,则设 置该端口的根端口选择标志指示"被选择";根据ReRoot状态触发模块发来的 携带端口标识的更改ReRoot状态进入标志指示,将该端口标识对应端口的 ReRoot状态进入标志更改为指示"已进入";ReRoot状态触发才莫块,发现改进生成树中的一个端口的ReRoot状态进入 机制被触发,从ReRoot相关选择标志设置模块获取该端口的根端口选择标志和 ReRoot状态进入标志,若发现满足该根端口选择标志指示"被选择"、该根 端口当前不处于转发状态两个条件中的一个,且满足该ReRoot状态进入标志 指示"未进入",则触发该根端口进入ReRoot状态,且向ReRoot相关标志设 置模块发送携带端口标识的更改ReRoot状态进入标志指示。
全文摘要
本发明公开了防止瞬时环路的方法和装置。方法包括为改进生成树中的每个端口设置一个根端口选择标志,并初始化该标志指示“未被选择”,当一个端口被选为根端口时,将该端口的根端口选择标志更改为指示“被选择”;为每个端口设置一个ReRoot状态进入标志,并初始化该标志指示“未进入”;发现改进生成树中的一个端口的ReRoot状态进入机制被触发,判断该根端口的根端口选择标志指示“被选择”、ReRoot状态进入标志指示“未进入”是否同时成立,若是,触发该根端口进入Reroot状态,且将该端口的ReRoot状态进入标志更改为指示“已进入”。本发明可以防止改进生成树中产生瞬时环路。
文档编号H04L12/56GK101478497SQ20091007750
公开日2009年7月8日 申请日期2009年1月21日 优先权日2009年1月21日
发明者徐鹏飞 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1