基于多生成树协议的域根切换实现方法

文档序号:7698953阅读:895来源:国知局
专利名称:基于多生成树协议的域根切换实现方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于多生成树协议的域根切换实现方法。
背景技术
IEEE802.1d和IEEE80.1w给出了在简单交换网络中避免数据环路和实现冗余链路备份的解决方案;为了适应多VLAN(虚拟局域网,VirtualLocal Area Network)的大型的复杂交换网络,IEEE802.1s Draft14草案进一步提出了MSTP(Multiple Spanning Tree Protocol,多生成树协议),该协议将一个到多个交换设备划分为不同的MST(多生成树)域,在一个域内维护多个MSTI(多生成树实例),各个MSTI具有不同的ID(标识),各个MSTI允许不同VLAN的数据报文按照各自的路径转发,每个多生成树实例只在域内进行计算,且和其他域的多生成树实例之间是完全独立的;各个MST域之间则通过唯一的CST(公共生成树)串接起来,以保证整个网络的连通性和无环路存在。域内的多生成树实例0,也称为CIST域根,维护MST域与公共生成树总根的转发路径,即域内所有多生成树实例通过CIST域根的根端口到达公共生成树的总根。由于IEEE802.1s中提出的交换设备中的多生成树的协议机制的不完善,因此,当CIST上的域根改变时,比如从交换机A切换到交换机B,域根的改变MST域内交换机的多生成树实例还没有感知,导致临时环路,引起严重的广播风暴。
下面结合附图,对现有技术作进一步的阐述,如图1所示,域A、域B、域C和域D分别为四个不同的MST域,每个MST域内有多个交换机。其中CIST的根桥位于域A中,从而域A成为核心域。图中的域D由SWA、SWB、SWC、SWD四个交换机组成,假设SWA为域D的CIST域根,则从SWA去往核心域A的路径总花费比SWB小。如果我们在域D中配置了多个MSTI实例,则将SWA上的通往核心域A的CIST根端口选择为MSTI实例的Master Port(主端口),该端口可以进行报文的转发,将SWB上的Alternate Port(可选端口)选择为MSTI实例的Alternate Port,该端口不可以进行报文的转发。这样,域D和域外网络的通信,都将经过SWA上的根端口进行,而SWB上的端口在所有实例上是阻塞的。
当网络环境发生变化,如域D中的SWB通过域C至域A的链路速度提高了,即SWB发现自己通过域C到达域A比通过SWA到达域A路径花费更小时,则将自己选择为CIST的新域根,并在域D内传播这一消息。域D中的SWC和SWD收到SWB的CIST报文时,也相应地选择SWB为CIST的新域根。当SWA接收到SWD传播过的CIST报文,通过计算也将选择SWB为CIST的新域根,并将原来的根端口切换为Alternate port,从而阻塞该端口通往域A的路径,在IEEE802.1s中通过PRT(端口角色迁移状态机)的Sync(同步)与Agree(握手)报文握手机制可以保证这种切换在CIST上不会产生网络环路。
上述过程即为CIST域根切换的过程,在一个MST域内同时存在一个CIST实例和零个或多个MSTI,域内CIST域根的根端口就是MSTI的主端口。由于域内不同多生成树实例的计算是相互独立的,CIST域根切换后,MSTI可能没有机会执行到PIM(端口信息状态机)的UPDATE(更新)状态,即域内的MSTI除了在SWB上发现CIST域根发生变化外,其他交换机SWC、SWD和SWA均无法同时了解到CIST域根发生的变化。在IEEE802.1s中,主端口经过2倍Forward Delay时间延时就可以转发报文,因此SWB的CIST域根的根端口成为MSTI的主端口后,最多经过2倍Forward Delay时间就进入转发状态。而此时,SWA的MSTI还可以通过域边界端口转发报文,这必然导致在该MSTI上出现了网络环路。

发明内容
本发明的目的是提供一种基于多生成树协议的域根切换实现方法,以避免因为域根的改变而在网络中出现临时环路,并引起严重的广播风暴。
本发明的目的是这样实现的一种基于多生成树协议的域根切换实现方法,包括a、基于MSTP(多生成树协议)的CIST(公共及内部生成树)域根发生改变时,将需要改变CIST域根的MST域中的各MSTI(多生成树实例)的端口变量置位,以表示CIST域根发生变化;b、触发针对MST域中各MSTI的域根变化处理过程,通过该过程使MST域中的各MSTI了解CIST域根的变化。
其中,步骤b所述的域根变化处理过程是由CIST在PIM(端口信息状态机)的UPDATE(更新)状态中执行。
步骤b所述的域根变化处理过程为遍历切换后的CIST域根的根端口上的所有有效MSTI,如果CIST实例在该端口的端口变量bChangedMaster置位,则将相应的MSTI实例的该端口作如下处理将该端口变量bChangedMaster置位;将该端口的同步变量sync置位;将该端口的已同步变量synced复位;将该端口的已握手变量agreed复位;调用该MSTI的PRT(端口角色迁移状态机)实现端口状态迁移。
由上述技术方案可以看出,本发明采用了当进行CIST域根切换时,在交换机的每个端口的优先级信息被PIM(端口信息状态机)更新后,触发针对MSTI的域根变化处理过程,以保证MST域内的各MSTI均了解CIST域根变化的信息。因此,本发明提供了一种简单、高效的基于多生成树协议的域根切换实现方法,该方法可以有效避免因为CIST域根的改变而导致MSTI在网络中出现临时环路,避免了临时环路的形成,便不会在网络中因此而引发广播风暴。


图1为基于多生成树协议的域间组网结构示意图;图2为本发明的具体实施方式
流程图。
具体实施例方式
本发明所述的基于多生成树协议的域根切换实现方法的具体实施方式
,参见图2,具体包括以下步骤步骤1基于多生成树协议的CIST域根发生改变,即发生CIST域根切换;步骤2CIST在PIM(端口信息状态机)的UPDATE(更新)状态中,将CIST域根的根端口上所有MSTI实例的端口变量bChangedMaster置位,即令其等于TRUE,以表示域内的CIST域根发生变化,如果该端口变量bChangedMaster等于FALSE,则表示CIST域根未发生变化;步骤3CIST执行dealChangeMaster()(域根变化处理)过程,在本端口触发所有的MSTI实例进行端口状态迁移,即在UPDATE状态中加入新的处理环节CIST在PIM的UPDATE状态将执行dealChangedMaster()操作,所述的dealChangeMaster()过程具体为遍历执行UPDATE状态的CIST域根的根端口上的所有有效MSTI实例,如果CIST实例在该端口的端口变量bChangedMaster置位,则将该端口所有的MSTI实例的端口变量bChangedMaster置位、同步变量sync置位、已同步变量synced复位、已握手变量agreed复位,然后调用该MSTI的PRT状态机,以实现端口状态迁移。
每端口每实例变量sync、synced与agreed是IEEE802.1s协议中原来就有的端口同步机制所采用的同步变量。
权利要求
1.一种基于多生成树协议的域根切换实现方法,其特征在于包括a、基于MSTP(多生成树协议)的CIST(公共及内部生成树)域根发生改变时,将需要改变CIST域根的MST域中的各MSTI(多生成树实例)的端口变量置位,以表示CIST域根发生变化;b、触发针对MST域中各MSTI的域根变化处理过程,通过该过程使MST域中的各MSTI了解CIST域根的变化。
2.根据权利要求1所述的基于多生成树协议的域根切换实现方法,其特征在于步骤b所述的域根变化处理过程是由CIST在PIM(端口信息状态机)的UPDATE(更新)状态中执行。
3.根据权利要求1或2所述的基于多生成树协议的域根切换实现方法,其特征在于步骤b所述的域根变化处理过程为遍历切换后的CIST域根的根端口上的所有有效MSTI,如果CIST实例在该端口的端口变量bChangedMaster置位,则将相应的MSTI实例的该端口作如下处理将该端口变量bChangedMaster置位;将该端口的同步变量sync置位;将该端口的已同步变量synced复位;将该端口的已握手变量agreed复位;调用该MSTI的PRT(端口角色迁移状态机)实现端口状态迁移。
全文摘要
本发明涉及一种基于多生成树协议的域根切换实现方法,该方法是在进行CIST(公共及内部生成树)域根切换时,在交换机的每个端口的CIST优先级信息被PIM(端口信息状态机)更新后,触发相应MSTI处理CIST域根变化处理过程,以保证MST域内的各MSTI均了解CIST域根变化的信息。因此,本发明提供了一种简单、高效的基于多生成树协议的域根切换实现方法,可有效避免因为CIST域根的改变而导致MSTI在网络中出现临时环路。
文档编号H04L12/24GK1510873SQ02160068
公开日2004年7月7日 申请日期2002年12月26日 优先权日2002年12月26日
发明者汪勇, 陈刚, 苏兴山, 汪 勇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1