发明内容
有鉴于此,本发明的主要目的在于提供一种任意拓扑的相交环网保护方法、节点和相交环网,以便于对任意拓扑的多个相交的以太环网提供有效的环网保护机制。
为了达到上述目的,本发明的技术方案是这样实现的:
一种任意拓扑的相交环网保护方法,该方法应用于多个以太环网相交形成的任意拓扑的相交环网中,每个以太环网包括主节点以及若干个传输节点,相交环网中各个以太环网的主节点都配置有各自的优先级,该方法包括:
以太环网中的节点获取自身的端口所属的主节点及其对应的优先级;
以太环网中的节点监测到自身的端口变为故障状态后,向该故障状态端口所属的优先级最高的主节点上报故障通知;
接收到故障通知的主节点打开副端口,
该方法还包括:以太环网的主节点发送环网协议报文,该报文中携带预配置的主节点标识及其对应的优先级信息;
所述以太环网中的节点获取自身的端口所属的主节点及其对应的优先级为:节点在两个端口上接收到携带同一主节点标识的环网协议报文后,针对该两个端口的每一个端口,建立端口与该环网协议报文中携带的主节点标识和优先级信息三者的对应关系;
所述上报故障通知为:从所建立的对应关系中查找故障状态端口对应的最高优先级的主节点标识,将故障通知上报该主节点标识对应的主节点。
一种节点,该节点位于相交环网中以太环网上的任意位置,该节点包括:
主节点信息获取单元,用于获取所在节点的端口所属的主节点及其对应的优先级;
端口状态监测单元,用于监测所在节点的端口的状态,当监测到端口变为故障状态后,向故障上报单元发送故障状态端口的信息;
故障上报单元,根据接收到的故障状态端口的信息,从主节点信息获取单元中得到该故障状态的端口所属的优先级最高的主节点信息,向该主节点上报故障通知,
其中,所述主节点信息获取单元,用于通过所在节点的端口接收主节点发送的环网协议报文,在两个端口上接收到携带同一主节点标识的环网协议报文后,针对该两个端口的每一个端口,建立端口与该环网协议报文中携带的主节点标识和优先级信息三者的对应关系;
所述故障上报单元,用于根据接收到的故障状态端口的信息,从主节点信息获取单元建立的对应关系中查找该端口对应的最高优先级的主节点标识,将故障通知上报该主节点标识对应的主节点。
由此可见,在本发明中,每一个以太环网中的节点监测到自身的一个端口变为故障状态后,向该端口对应的优先级最高的主节点上报故障通知;由接收到故障通知的主节点打开副端口。因此,在多个以太环网相交形成的任意拓扑的环网结构中,即能够保证相交的所有环网的数据链路的通畅,而且还能够保证不产生环路,从而对任意拓扑的多个相交的以太环网提供有效的环网保护机制。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
本发明提出了一种任意拓扑的相交环网保护方法,该方法应用于多个以太环网相交形成的任意拓扑的相交环网中,每个以太环网包括主节点以及若干个传输节点,相交环网中各个以太环网的主节点都配置有各自的优先级,该方法包括:以太环网中的节点获取自身的端口所属的主节点及其对应的优先级;以太环网中的节点监测到自身的端口变为故障状态后,向该故障状态端口所属的优先级最高的主节点上报故障通知;接收到故障通知的主节点打开副端口。
其中,可以采用多种方式来使每一个以太环网中的节点获取自身的每一个端口所属的主节点的优先级,比如,通过环网协议报文标识方式或者预配置方式等。
图3是在本发明实施例中对任意拓扑的以太环网进行保护的流程图。参见图3,以采用环网协议报文标识方式使节点获取其端口所属的主节点优先级为例,本发明实施例对任意拓扑的以太环网进行保护的过程包括以下步骤:
步骤301:在多个以太环网相交形成的任意拓扑的相交环网中,为每一个以太环网设置主节点,并为每一个主节点设置标识及对应的优先级。
图4是本发明实施例中一种相交环网的示意图。参见图4,通过本步骤301的处理,对于以太环网R1,设置其主节点为A,该主节点A的标识为ID1,对应的优先级为LEVEL1;对于以太环网R2,设置其主节点为E,该主节点E的标识为ID2,对应的优先级为LEVEL2;对于以太环网R3,设置其主节点为G,该主节点G的标识为ID3,对应的优先级为LEVEL3;对于以太环网R4,设置其主节点为J,该主节点J的标识为ID4,对应的优先级为LEVEL4。其中,LEVEL1、LEVEL2、LEVEL3和LEVEL4的优先级依次降低。
本领域技术人员可以理解的是,对于图4所示的相交环网,所有以太环网上的所有节点属于同一个相交环网域。该相交环网可以由整数表示的ID来标识,一组配置了相同的域ID和控制VLAN,并且相互连通的交换机群体构成一个相交环网。并且,在每一个以太环网上设置主节点时,将该主节点在环上的两个端口加入控制VLAN,并设置主/副端口(如果不做指定,则选择端口号小的为主端口),在以太环网正常工作时,主节点阻塞副端口。
步骤302:在相交环网的每一个以太环网中,主节点通过自身的主端口和副端口在环网上发送环网协议报文,该环网协议报文中携带该主节点的标识和对应的优先级信息。
在以太环网中,每一个节点接收到环网协议报文后,均会在环网上继续转发报文。
需要说明的是,由于在相交环网中包括多个以太环网,不同以太环网中的主节点均会发送环网协议报文,为了避免协议报文混乱,每一个主节点上如果副端口阻塞,那么,不仅要禁止数据报文通过,而且要禁止其他主节点的环网协议报文通过,如果副端口打开,那么,数据报文和其他主节点的环网协议报文则可以通过,也就是说,如果环网协议报文中携带的主节点标识与一个主节点自身的标识不匹配,那么该主节点将该环网协议报文视为数据报文处理。
步骤303:在每一个以太环网中,每一个节点在自身的两个端口上接收到携带相同主节点标识的环网协议报文后,将自身标记为该相同主节点标识所对应的节点。
步骤304:每一个节点针对上述两个端口中的每一个端口,建立该端口与该环网协议报文中携带的主节点标识和优先级信息三者的对应关系。
在上述步骤303和304中,如果一个节点从自身的两个端口上接收到携带相同主节点标识的环网协议报文,那么,首先,可以确定该节点在该相同主节点标识对应的主节点所控制的环上,为了记录此种关系,便于后续过程中简化刷新端口转发表的处理,则可以执行步骤303中节点将自身标记为该相同主节点标识对应的节点的处理;其次,还可以确定该节点的该两个端口处于该相同主节点标识对应的主节点所控制的环,即该两个端口的状态会影响该相同主节点标识对应的主节点,为了记录该两个端口与主节点的此种关系,则可以执行步骤304中建立对应关系的处理,即通过建立的对应关系来表明端口影响的主节点。
另外,在步骤304中,实现建立端口与该环网协议报文中携带的主节点标识和优先级信息三者的对应关系的过程可以是:针对端口保存一个ID号链表,按照主节点标识对应的优先级大小,将主节点标识顺序加入该ID号链表中。
举例说明针对端口建立ID号链路的过程。
比如,参见图4,在以太环网R1中,主节点A通过自身的主端口和副端口发送携带ID1和LEVEL1的环网协议报文1,在以太环网R2中,主节点E通过自身的主端口和副端口发送携带ID2和LEVEL2的环网协议报文2。
以节点D为例,节点D可以从自身的两个端口即端口11和端口12上分别接收到主节点A发送的携带ID1和LEVEL1的环网协议报文1,并可以从自身的两个端口即端口11和端口13上接收到主节点E发送的携带ID2和LEVEL2的环网协议报文2。以节点的D的端口12为例,由于端口12只接收到主节点A发送的环网协议报文1,因此,节点D在针对端口12建立ID号链表时,则只需体现端口12与主节点A的标识ID1及其优先级的对应关系,因此,端口12的ID号链表为(ID1)。同理可以得到,节点B的端口21的ID号链表也为(ID1)。
再以节点C为例,该节点C可以从自身的两个端口即端口31和端口32上分别收到主节点E发送的携带ID2和LEVEL2的环网协议报文2,并且,节点C还可以从自身的两个端口即端口31和端口33上分别收到主节点A发送的携带ID1和LEVEL1的环网协议报文1。以节点C的端口31为例,由于端口31分别接收到主节点A和E发送的环网协议报文,因此,节点C在针对端口31建立ID号链表时,则需分别体现端口31与主节点A和E的标识及其优先级的对应关系,又由于ID1对应的优先级LEVEL1大于ID2对应的优先级LEVEL2,因此,端口31的ID号链表为(ID1,ID2)。
步骤305:每一个以太环网中的每一个节点检测自身每一个端口的状态。
步骤306:当一个节点检测到自身一个端口变为故障状态DOWN后,查找到该端口对应的所有主节点标识及其对应的优先级信息。
步骤307:将该故障状态的端口对应的所有主节点标识及其对应的优先级信息携带在故障通知中,上报给其中最高优先级的主节点标识对应的主节点,记为第一主节点。
本实施例中,当上述步骤304中采用为端口建立ID号链表的方式来实现建立该端口与主节点标识和优先级的对应关系时,步骤306中所述查找过程的具体实现为:查找故障状态端口对应的ID号链表,获取该链表中从前至后顺序的所有的主节点标识。相应地,步骤307中,将该故障状态的端口对应的所有主节点标识及其对应的优先级信息携带在故障通知的具体实现为:将所获取的从前至后顺序的所有的主节点标识按照其顺序依次携带在故障通知中。由于建立ID号链路时,是按照优先级大小将对应的主节点标识顺序加入ID号链表中,因此,ID号链表中主节点标识的前后顺序则对应主节点标识优先级的高低,因此,只要按照ID号链表中从前至后顺序将所有的主节点标识依次携带在故障通知中,那么,该故障通知则不仅携带了主节点标识而且根据其顺序还可以体现主节点标识对应的优先级。
显而易见,在步骤307中,故障状态端口对应的最高优先级的主节点标识就是故障状态端口对应的ID号链表中的第一个主节点ID。
步骤308:接收到故障通知的第一主节点进行故障保护处理,打开副端口。
步骤309:第一主节点如果接收到多个故障通知,则比较该多个故障通知中携带的主节点标识,得到该多个故障通知中未共同携带的主节点标识。
这里,如果多个故障通知中存在未共同携带的主节点标识,则可以确定当前发生的故障不仅影响第一主节点控制的环网,而且还影响其他主节点控制的环网,因此,在第一主节点进行故障保护处理打开其副端口之后,还需要进一步触发该受影响的其他主节点进行故障保护处理,即需要执行后续步骤310至步骤311。
步骤310:第一主节点从未共同携带的主节点标识中确定优先级最高的主节点标识,向确定的该主节点标识对应的第二主节点发送故障通知。
步骤311:该第二主节点接收到故障通知后,进行故障保护处理,打开副端口。
下面举例说明步骤306至步骤311的实现过程。
图5是多个以太环网相交且其中节点的端口DOWN时的一种拓扑示意图。参见图5,比如以太环网R1中节点D和B之间的链路断开,导致节点B的端口21和节点D的端口12DOWN即变为故障状态,由于节点B的端口21和节点D的端口12的ID号链表均为(ID1),因此,节点B和D均会将ID1携带在故障通知中,上报给ID1对应的主节点A,由于主节点A收到的两个故障通知中携带的主节点标识相同均为自身标识ID1,因此,可以确定当前方式的故障只影响该主节点A所控制的环网,因此,只需打开副端口即可,即无需执行上述步骤309至步骤310。
图6是多个以太环网相交且其中节点的端口DOWN时的另一种拓扑示意图。参见图6,比如以太环网R1中节点D和B之间的链路以及节点C和D之间的链路均断开,导致节点B的端口21和节点D的端口12DOWN即变为故障状态,并且,导致节点D的端口11以及节点C的端口31DOWN即变为故障状态。节点B检测到端口21DOWN后,由于节点B的端口21的ID号链表为(ID1),因此,节点B会将ID1携带在故障通知中,上报给ID1对应的主节点A。节点C检测到端口31DOWN后,由于节点C的端口31的ID号链表为(ID1,ID2),因此,节点C会将ID1和ID2按顺序携带在故障通知中,并且,由于ID1在ID号链路的最前面,因此ID1的优先级最高,节点C则将该故障通知上报给ID1对应的主节点A。主节点A收到节点B和C上报的两个故障通知中后,由于其中携带的主节点标识不完全相同,因此,可以确定当前的故障不只影响该主节点A所控制的环网,还会影响其他主节点控制的环网,即仅仅主节点A打开副端口无法起到故障保护的处理,因此,主节点A还会比较两个故障通知,其未共同携带的主节点标识中优先级最高的是ID2,因此,主节点A将ID2携带在故障通知中发送给ID2对应的主节点E,该主节点E收到故障通知后,也进行故障保护处理,即打开副端口。
需要说明的是,在上述步骤306至步骤310中,任意一个节点在检测到自身任意一个端口故障时,均会将端口对应的所有主节点标识及其优先级信息上报给端口对应的最高优先级的第一主节点,由该第一主节点决定当前的故障是否还影响其他主节点控制的环网,并由该第一主节点来执行向受影响的第二主节点发送故障通知的处理,从而触发该第二主节点也进行故障保护处理。
在实际的业务实现中,决定当前的故障是否还影响其他主节点控制的环网,以及向受影响的第二主节点发送故障通知的处理,也可以不由上述的第一主节点来执行,而由发生故障的节点来执行,此时,上述步骤306至步骤310的过程则可以替换为:如果一个节点检测到自身的多个端口变为故障状态,且该多个端口具有与不同主节点标识和优先级信息的对应关系时,即该多个端口的ID号链表不相同,那么,该节点则比较该多个端口对应的主节点标识是否相同,如果最高优先级的主节点标识相同,但存在其余不同的主节点标识时,该节点则确定当前发生的故障,不仅影响最高优先级的主节点控制的环网,而且还影响其他主节点控制的环网,因此,该节点则确定该不同的主节点标识中优先级最高的主节点标识,向确定的该主节点标识对应的另一主节点发送故障通知,该另一主节点打开副端口。比如,一个节点检测到一个端口故障,其对应的ID号链表为(ID1,ID2),另一个端口也发生故障,其对应的ID号链表为(ID1,ID2,ID3),节点比较该两个ID号链表,由于ID号链表不相同,但其最高优先级的主节点标识相同,均为ID1,因此,该节点则确定当前发生的故障,不仅影响最高优先级的主节点控制的环网,而且还影响其他未共同携带的主节点标识ID3对应的主节点所控制的环网,因此,节点进一步将ID3携带在故障通知中发送给ID3对应的主节点,该主节点接收到故障通知后,也进行故障保护处理,打开自身的副端口。
步骤312:在相交环网中,每一个主节点在进行故障保护处理和故障恢复处理时,在环网上发送携带自身标识的刷新转发通知。
步骤313:在相交环网中,每一个节点接收到刷新转发表通知后,根据步骤303的对应关系,判断自身与该刷新转发表通知中携带的主节点标识是否存在对应关系,如果是,则执行步骤314,否则,不对端口进行刷新转发表处理,结束的当前流程。
这里,在一个主节点发送刷新转发表通知后,实际上只有该主节点控制的环上的节点需要对其端口进行刷新转发表处理,其他节点则无需处理,因此,为了避免相交环网上不是该主节点控制的其他节点也进行无谓地刷新转发表处理,则需要执行本步骤中的判断过程。
如果节点与该刷新转发表通知中携带的主节点标识存在对应关系,则可以确定该节点在该主节点标识对应的主节点所控制的环上,即该节点需要执行后续刷新转发表的处理,否则,无需执行后续刷新转发表的处理。
步骤314:根据步骤304的对应关系,对与刷新转发表通知中携带的主节点标识存在对应关系的端口进行刷新转发表处理。
节点的所有端口中可能只有部分在主节点控制的环上,因此,较佳地,可以只对与刷新转发表通知中携带的主节点标识存在对应关系的端口进行刷新转发表处理,从而简化处理。
可以理解的是,虽然上述实施例中的图3,为便于理解,对方法的步骤采用了顺序性描述,但是应当指出的是,对于上述步骤的顺序并不做严格的限制。
本领域普通技术人员还可以理解,上述实施例中的全部或部分步骤可以通过程序来指令相关的硬件来实现,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,可以是ROM/RAM、磁碟、光盘等。
另外,本发明还提出了一种节点。参见图7,该节点位于相交环网中以太环网上的任意位置,该节点包括:
主节点信息获取单元,用于获取所在节点的端口所属的主节点及其对应的优先级;
端口状态监测单元,用于监测所在节点的端口的状态,当监测到端口变为故障状态后,向故障处理单元发送故障状态端口的信息;
故障上报单元,根据接收到的故障状态端口的信息,从主节点信息获取单元中得到该故障状态的端口所属的优先级最高的主节点信息,向该主节点上报故障通知。
所述主节点信息获取单元,用于通过所在节点的端口接收主节点发送的环网协议报文,在两个端口上接收到携带同一主节点标识的环网协议报文后,针对该两个端口的每一个端口,建立端口与该环网协议报文中携带的主节点标识和优先级信息三者的对应关系;
所述故障上报单元,用于根据接收到的故障状态端口的信息,从主节点信息获取单元建立的对应关系中查找该端口对应的最高优先级的主节点标识,将故障通知上报该主节点标识对应的主节点。
所述故障上报单元,进一步用于在故障状态的端口具有与不同主节点标识和优先级信息的对应关系时,将该故障状态的端口对应的所有主节点标识及其对应的优先级信息携带在所述的故障通知中。
当该节点为主节点时,进一步包括:故障处理单元,用于接收故障上报单元上报的故障通知,打开副端口,如果接收到多个故障通知,则主节点比较该多个故障通知中携带的主节点标识,确定该多个故障通知中未共同携带的优先级最高的主节点标识,向确定的该主节点标识对应的另一主节点发送故障通知,触发该另一主节点打开副端口。
所述主节点信息获取单元,用于通过建立端口对应的ID号链表,并根据主节点标识对应的优先级大小,将主节点标识顺序加入端口对应的ID号链表中,来实现所述的建立端口与环网协议报文中携带的主节点标识和优先级信息三者的对应关系的处理;
所述故障上报单元,用于通过将故障状态端口对应的ID号链表中所有的主节点标识按照其顺序依次携带在故障通知中,来实现所述的将故障状态的端口对应的所有主节点标识及其对应的优先级信息携带在故障通知中的处理。
所述故障上报单元,进一步用于在接收到多个故障状态端口的信息时,从主节点信息获取单元中得到该多个故障状态的端口对应的所有主节点标识和其优先级信息,如该多个端口均具有与不同主节点标识和优先级信息的对应关系,则比较该多个端口对应的主节点标识是否相同,如果最高优先级的主节点标识相同,但存在其余不同的主节点标识时,则确定该不同的主节点标识中优先级最高的主节点标识,向确定的该主节点标识对应的另一主节点发送故障通知,触发该另一主节点打开副端口。
该节点进一步包括:转发表处理单元,其中,
所述主节点信息获取单元,进一步用于在所在节点的两个端口上接收到携带相同主节点标识和优先级信息的所述环网协议报文后,将所在节点标记为该相同主节点标识对应的节点;
所述转发表处理单元,用于在接收到刷新转发表通知后进行转发,并判断所在节点与该刷新转发表通知中携带的主节点标识是否存在对应关系,如果是,则对端口进行刷新转发表处理。
所述转发表处理单元,用于对与刷新转发表通知中携带的主节点标识存在对应关系的端口进行刷新转发表处理。
可以理解的是,附图中或实施例中所示仅仅是示意性的,表示逻辑结构,其中所述作为分离部件显示的单元可能是或者可能不是物理上分开的,作为单元显示的部件可能是或者可能不是物理单元,即可以位于一个地方,或者分布到几个网络单元上。
另外,本发明还提出了一种相交环网,该相交环网中包括至少两个相交的以太环网,每个以太环网包括主节点以及至少两个传输节点,主节点与各个传输节点在以太环网上传输业务数据,完成各种业务功能;并且,该相交环网中的节点可以采用上述本发明实施例中的任意一种节点来实现。
在本发明上述实施例中,所述的环网协议报文可以采用现有的HELLO报文来实现,或采用新定义的报文来实现。另外,为了确保本发明的实现,环网协议报文需要在主节点的两个端口上进行发送,而由于在现有协议中,环网发生故障时发送的刷新转发表通知和环网故障恢复时发送的刷新转发表通知均是在主节点的两个端口上进行发送,因此,较佳地,该环网协议报文可以采用现有的环网发生故障时发送的刷新转发表通知或环网故障恢复时发送的刷新转发表通知来实现,比如,在刷新转发表通知中增加字段用来携带主节点标识及其对应的优先级信息。
在本发明上述实施例中,所述的故障通知可以采用现有的LINK-DOWN报文来实现,或采用新定义的报文来实现。
需要说明的是,在本发明中,所涉及的“多个”均指至少两个,即,两个或两个以上的任意一个数。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。