实现以太环路冗余保护的状态转移方法

文档序号:7880648阅读:222来源:国知局
专利名称:实现以太环路冗余保护的状态转移方法
技术领域
本发明属于宽带网络通信领域,尤其涉及一种实现以太环路冗余保护的状态转移方法。
背景技术
很多LAN或WAN上都有冗余,存在环的拓扑。以太网环境中出现环路,可能会引起网络风暴。为避免此现象,需要在环上进行相应的报文阻塞以切断环路。我们希望出现环的时候,能尽快切断冗余环路;冗余环路不存在了,能迅速打开原来的阻塞。总之,环的拓扑变化后,短时间完成收敛是我们的目标。
我们所知的Spanning Tree Protocol(生成树协议)在一个拓扑变化事件中,可能花费较长时间用以一致恢复。新的Rapid Spanning Tree Protocol(快速生成树协议)公认会快一些。然而其一致恢复时间仍然取决于环上的节点数。

发明内容
本发明的目的在于提供一种实现以太环路快速冗余保护的状态转移方法,避免环路导致的网络风暴,同时使拓扑结构快速收敛。
为使本说明书中的文字简洁之目的,给出定义如下“初始态”指启动了以太环路冗余保护服务,但特定以太环路所组成的域还没有被创建的一个状态,表明当前以太环路冗余保护还不能生效。初始态可以存在于主设备和次设备上。
“空闲态”指以太环路所组成的域被创建后的状态,但是域的配置还没有完全,表明当前以太环路冗余保护还不能生效,正在等待某个激发条件。空闲态可以存在于主设备和次设备上。
“以太环路完整态”只存在于主设备上,该状态表明该以太环路处于完整的环状态,处于该状态的设备会连续定时发送环路检测报文。
“以太环路缺损态”只存在于主设备上,该状态表明该以太环路处于非完整的环状态,处于该状态的设备会连续定时发送环路检测报文。
“激活态”只存在于次设备上,该状态表明当前域的次设备在以太环路上的主端口、次端口都处于激活状态。
“非激活态”只存在于次设备上,该状态表明当前域的次设备在以太环上的一个端口或两个端口都处于非激活状态,即以太环路上的主端口,或次端口,或主端口和次端口处于非激活状态。
“变更态”只存在于次设备上,由激活态转为非激活态的次设备,如果非激活的端口重新激活,则该设备从非激活状态转为变更态,变更态的次设备将对数据报文在端口进行阻塞;在收到主设备发送的链路激活MAC更新控制报文后,次设备由变更态转为激活态。
“域使能事件”是指通过命令行对以太环路上的域进行使能操作,使能后的域处于可工作状态。
“创建域”是指在以太环路上设备上创建以太环所组成的域,对该域进行了相应初始化工作,使该域处于可工作状态。
“配置完全事件”是指设备上已经完成了创建域、配置域工作模式(即主设备或次设备工作模式)、添加控制VLAN、添加要求被保护VLAN、完成控制VALN端口添加等可以使该域处于正常的工作状态的操作。
“主设备”在一个域内有一个或多个,其主要作用是连续定时发送环路检测报文以检测环路是否存在;如果环路存在,则在本设备的次端口阻塞要求被保护VLAN的报文;如果环路链路断掉,则在本设备的次端口允许要求被保护VLAN的报文通过并发送链路断MAC更新控制报文;如果链路重新激活形成以太环路,则发送链路激活MAC更新控制报文;如果环路检测定时器超时,则在本设备的次端口阻塞要求被保护VLAN的报文。
“次设备”在一个域内在可以有一个或多个。其主要作用是允许环路检测报文通过;接受链路激活MAC更新控制报文和链路断MAC更新控制报文进行MAC(媒体访问控制)表更新,并把该报文转发给以太环上的下一个设备;当次设备端口发现直连链路断开,次设备转为非激活态,并主动发送链路断报文;由激活态转为非激活态的次设备,如果非激活的端口重新激活,则该设备从非激活状态转为变更态,变更态的次设备将对被保护VLAN的所有数据报文在端口进行阻塞,在收到主设备发送的链路激活MAC更新控制报文后,次设备由变更态转为激活态。
“主端口”、“次端口”是设备的控制VLAN在以太环上的两个端口。对主设备而言,主端口用于发送环路检测报文,次端口用于接收环路检测报文。当环路存在时,对被保护VLAN报文的阻塞是在主设备的次端口上进行。对于次设备而言,主端口与次端口用于在收、发数据包时对两个端口进行区别。
“控制VLAN”用于以太环路快速保护的状态转移控制报文的传递;以太环路上的端口都应该加入控制VLAN中;在一个域内控制VLAN只有一个,并且不能配置IP地址。
“要求被保护VLAN”是指当用户指定域的要求被保护VLAN存在时,标记为被保护VLAN的数据报文必须在域内主设备的次端口被阻塞,当以太环路链路断开时,将允许这些报文从次端口通过。
“要求被保护VLAN的报文”是指被标记为被保护VLAN的所有数据报文。
本发明的技术方案如下一种实现以太环路快速保护的状态转移方法。其方法包括1.当设备处于初始态时,如图1所示,是设备可能发生的状态变迁及操作收到配置完全事件a.如果当前设备为主设备,则设备状态从初始态转移为空闲态;b.如果当前设备为次设备且其控制VLAN上只有一个端口处于激活状态,则设备状态从初始态转移为非激活态;c.如果当前设备为次设备且其控制VLAN上两个端口都处于激活状态,则设备状态从初始态转移为激活态;d.如果当前设备为次设备且其控制VLAN上两个端口都不为激活状态,则设备状态从初始态转移为空闲态。
2.当设备处于空闲态时,如图2所示,是设备可能发生的状态变迁及操作(1)收到域非使能事件,则设备状态从空闲态转移为初始态;(2)接收到控制VLAN上端口激活事件,a.如果当前设备为次设备且其控制VLAN上两个端口都处于激活状态,则设备状态从空闲态转移为激活态;b.如果当前设备为次设备且其控制VLAN上只有一个端口处于激活状态,则设备状态从空闲态转移为非激活态;(3)当前设备为主设备并从次端口接收到自己从主端口发送的环路完整检测报文,则设备状态从空闲态转移为以太环路完整态。
3.当设备处于以太环路完整态时,如图3所示,是设备可能发生的状态变迁及操作(1)收到域非使能事件,则设备状态从以太环路完整态转移为初始态;(2)环路检测报文定时器超时,则设备状态从以太环路完整态转移为以太环路缺损态;(3)当前设备为主设备且收到链路断控制报文,则设备状态从以太环路完整态转移为以太环路缺损态。
4.当设备处于以太环路缺损态时,如图4所示,是设备可能发生的状态变迁及操作(1)收到域非使能事件,则设备状态从以太环路缺损态转移为初始态;(2)当前设备为主设备且收到自己发送的环路检测报文,则设备状态从以太环路缺损态转移为以太环路完整态。
5.当设备处于激活态时,如图5所示,是设备可能发生的状态变迁及操作(1)收到域非使能事件,则设备状态从激活态转移为初始态;(2)当前设备为次设备且收到控制VLAN端口链路断事件,则设备状态从激活态转移为非激活态。
6.当设备处于非激活态时,如图6所示,是设备可能发生的状态变迁及操作(1)收到域非使能事件,则设备状态从非激活态转移为初始态;(2)当前设备为次设备且收到控制VLAN端口链路激活事件a.当前激活的端口上一次是因为链路断转为非激活状态,则设备状态从非激活态转移为变更态;b.否则设备状态从非激活态转移为激活态。
7.当设备处于变更态时,如图7所示,是设备可能发生的状态变迁及操作(1)收到域非使能事件,则设备状态从变更态转移为初始态;(2)当前设备为次设备且收到控制VLAN端口链路断事件,则设备状态从变更态转移为非激活态;(3)当前设备为次设备且收到主设备发送的激活更新报文,则设备状态从变更态转移为激活态。
如图8所示,为以太环路冗余的结构示意图。域内主设备可能的状态有初始态、空闲态、以太环路完整态、以太环路缺损态。主设备的主要作用是以太环路快速保护的状态转移方法中连续定时发送环路检测报文以检测环路是否存在。如果环路存在,在主设备的次端口阻塞要求被保护VLAN的报文。如果环路链路断掉,则在主设备的次端口允许要求被保护VLAN的报文通过并发送链路断MAC更新控制报文。如果链路重新激活形成以太环路,则发送链路激活MAC更新控制报文。如果环路检测定时器超时,则在主设备的次端口阻塞要求被保护VLAN的报文。主端口、次端口是设备上控制VLAN在环上的两个端口。对主设备而言,主端口用于发送环路检测报文,次端口用于接收环路检测报文;当环路存在时,对被保护VLAN报文的阻塞是在主设备的次端口上进行。如图9所示。
在一个域内可以有多个次设备,其可能的状态有初始态、空闲态、激活态、非激活态、变更态。其主要作用是允许环路检测报文通过;接受链路激活MAC更新控制报文和链路断MAC更新控制报文进行MAC更新,并把该报文转发给下一个次设备;当次设备的主端口或次端口之一报链路断开事件时,则次设备转为非激活态,并主动发送链路断报文,同时允许其他次设备发送的链路断报文通过;由激活态转为非激活态的次设备,如果非激活的端口重新激活,则该设备从非激活状态转为变更态,变更态的次设备将对被保护VLAN的所有数据报文在端口进行阻塞,在收到主设备发送的链路激活MAC更新控制报文后,次设备由变更态转为激活态。
本发明的有益效果本发明的方法将更快速地检测到拓扑变更并进行包阻塞处理,通常少于100ms。本方法不限制环上的节点,其收敛不依赖于环上的节点数。采用本发明的方法,能够快速地检测到以太环路拓扑变化,快速实现收敛,简单快捷。实验证明,现有的技术和方法速度收敛要慢于本方法。


图1设备在初始态可能发生的状态变迁及操作图2设备在空闲态可能发生的状态变迁及操作图3设备在以太环路完整态可能发生的状态变迁及操作图4设备在以太环路缺损态可能发生的状态变迁及操作图5设备在在激活态可能发生的状态变迁及操作图6设备在非激活态可能发生的状态变迁及操作图7设备在变更态可能发生的状态变迁及操作图8为以太环路结构示意图;图9为主设备的主端口、次端口的功能关系示意图;图10为实施例的主流程图11为定时器消息处理流程图12为数据包消息处理流程图13为接口事件消息处理流程图14为环路检测发包定时器事件处理流程图15为环路检测定时器事件处理流程图16为空闲态收到环路检测报文处理流程图17为以太环路完整态收到环路检测报文处理流程图18为以太环路缺损态收到环路检测报文处理流程图19为次设备收到环路检测报文处理流程图20为以太环路完整态收到链路断控制报文处理流程图21为以太环路缺损态收到链路断控制报文处理流程图22为次设备收到链路断控制报文处理流程图23为非激活态收到端口链路断事件处理流程图24为激活态收到端口链路断事件处理流程图25为变更态收到端口链路断事件处理流程图26为空闲态收到端口链路激活事件处理流程图27为非激活态收到端口链路激活事件处理流程图28为配置完全事件处理流程图29为域非使能事件处理流程
具体实施例方式下面给出一个具体实施例,对本发明的以太环路冗余保护的状态转移方法进一步详细说明。
如图10所示,是实施例的主流程。主任务负责从消息队列中读取消息,如果是定时器消息,则进入图11所示的定时器消息处理流程;如果是数据包消息,则进入图12所示的数据包处理流程;如果是接口事件消息,则进入图13所示的接口事件消息处理流程。一个消息处理完成后,继续从消息队列中读取消息。
如图11所示,是定时器消息处理流程。首先判断消息是否为空,如果是空消息,结束处理。如果消息不为空,则判断服务是否使能,如果没有使能,结束处理。如果使能,则检查当前域链表指针是否为空,如果没有域存在,结束处理。如果存在域则根据消息中所带的定时器类型及当前域状态决定下一步的处理。如果是在空闲态收到环路检测发包定时器消息、以太环路完整态收到环路检测发包定时器消息、以太环路缺损态收到环路检测发包定时器消息,则进入图14所示的环路检测发包定时器事件处理流程;如果是在以太环路完整态收到环路检测定时器,则进入图15所示的环路检测定时器事件处理流程,完成处理流程后,域链表指针后移。
如图12所示,是数据包消息处理流程。首先判断消息是否为空,如果是空消息,结束处理。如果消息不为空,则判断服务是否使能,如果没有使能,结束处理。如果使能,则检查当前域链表指针是否为空,如果没有域存在,结束处理。如果存在域则根据消息中所带的数据包类型及当前域状态决定下一步的处理。如果在空闲态收到环路检测报文,进入图16所示的空闲态收到环路检测报文处理流程;在以太环路完整态收到环路检测报文,进入图17所示的以太环路完整态收到环路检测报文处理流程;在以太环路缺损态收到环路检测报文,进入图18所示的以太环路缺损态收到环路检测报文处理流程;在激活态、非激活态、变更态收到环路检测报文,进入图19所示的次设备收到环路检测报文处理流程。如果在以太环路完整态收到链路断控制报文,则进入图20所示的以太环路完整态收到链路断控制报文处理流程;在以太环路缺损态收到链路断控制报文,则进入图21所示的以太环路缺损态收到链路断控制报文处理流程;在激活态、非激活态、变更态收到链路断控制报文,则进入图22所示的次设备收到链路断控制报文处理流程。完成处理流程后,域链表指针后移。
如图13所示,是接口事件消息处理流程。首先判断消息是否为空,如果是空消息,结束处理。如果消息不为空,则判断服务是否使能,如果没有使能,结束处理。如果使能,则检查当前域链表指针是否为空,如果没有域存在,结束处理。如果存在域则根据消息中所带的接口事件类型及当前域状态决定下一步的处理。如果非激活态收到端口链路断事件,则进入图23所示的非激活态收到端口链路断事件处理流程;如果激活态收到端口链路断事件,则进入图24所示的激活态收到端口链路断事件处理流程;如果变更态收到端口链路断事件,则进入图25所示的变更态收到端口链路断事件处理流程。如果空闲态收到端口链路激活事件,则进入图26所示的空闲态收到端口链路激活事件处理流程;如果非激活态收到端口链路激活事件,则进入图27所示的非激活态收到端口链路激活事件处理流程。完成处理流程后,域链表指针后移。
如图14所示,是环路检测发包定时器事件处理流程。首先判断当前设备是不是主设备,如果不是,处理结束。如果是,发送一个环路检测报文。
如图15所示,是环路检测定时器事件处理流程。首先判断当前设备是不是主设备,如果不是,处理结束。如果是,去除在次端口上对被保护VLAN的阻塞,设置当前域状态为以太环路缺损态,更新本设备的MAC表,发送链路断MAC表更新报文。
如图16所示,是空闲态收到环路检测报文处理流程。首先判断当前设备是不是主设备,如果不是,处理结束。如果是,检查数据包中携带的系统MAC、协议版本号、环路检测发包定时器值是否与本地相同,如果不同,则结束处理,该数据包将被丢弃。如果相同,判断数据包中携带的序列号是否在本设备最后一次发送和接收的环路检测报文的序列号之间,如果不是,则结束处理,丢弃该数据包。如果符合,则在次端口阻塞被保护VLAN的报文。
如图17所示,是以太环路完整态收到环路检测报文处理流程。首先判断当前设备是不是主设备,如果不是,处理结束。如果是,检查数据包中携带的系统MAC、协议版本号、环路检测发包定时器值是否与本地相同,如果不同,则结束处理,该数据包将被丢弃。如果相同,判断数据包中携带的序列号是否在本设备最后一次发送和接收的环路检测报文的序列号之间,如果不是,则结束处理,丢弃该数据包。如果符合,环路检测定时器置为0。
如图18所示,是以太环路缺损态收到环路检测报文处理流程。首先判断当前设备是不是主设备,如果不是,处理结束。如果是,检查数据包中携带的系统MAC、协议版本号、环路检测发包定时器值是否与本地相同,如果不同,则结束处理,该数据包将被丢弃。如果相同,判断数据包中携带的序列号是否在本设备最后一次发送和接收的环路检测报文的序列号之间,如果不是,则结束处理,丢弃该数据包。如果符合,则在次端口阻塞被保护VLAN的报文,更新本地MAC表,并发送链路激活MAC更新控制报文,环路检测定时器置为0,当前域状态置为以太环路完整态。
如图19所示,是次设备收到环路检测报文处理流程。首先判断当前设备是不是次设备,如果不是,处理结束。如果是,检查数据包中携带的协议版本号、环路检测发包定时器值是否与本地相同,如果不同,则结束处理,该数据包将被丢弃。如果相同,则如果数据包是从控制VLAN上的某一个端口收到,则从另一个端口转发出去,即如果数据包从次设备控制VLAN上的主端口收到,则从其次端口发出,如果数举包从次设备控制VLAN上的次端口收到,则从其主端口发送出去。
如图20所示,是以太环路完整态收到链路断控制报文处理流程。首先判断当前设备是不是主设备,如果不是,处理结束。如果是,检查数据包中携带的协议版本号、环路检测发包定时器值是否与本地相同,如果不同,则结束处理,该数据包将被丢弃。如果相同,去除在次端口上对被保护VLAN的报文的阻塞,设置当前域状态为以太环路缺损态,更新本地MAC表,并发送链路断MAC表更新控制报文。
如图21所示,是以太环路缺损态收到链路断控制报文处理流程。首先判断当前设备是不是主设备,如果不是,处理结束。如果是,检查数据包中携带的协议版本号、环路检测发包定时器值是否与本地相同,如果不同,则结束处理,该数据包将被丢弃。如果相同,更新本地MAC表,并发送链路断MAC表更新控制报文。
如图22所示,是次设备收到链路断控制报文处理流程。首先判断当前设备是不是次设备,如果不是,处理结束。如果是,检查数据包中携带的协议版本号、环路检测发包定时器值是否与本地相同,如果不同,则结束处理,该数据包将被丢弃。如果相同,则如果数据包是从控制VLAN上的某一个端口收到,则从另一个端口转发出去即如果数据包从次设备控制VLAN上的主端口收到,则从其次端口发出,如果数举包从次设备控制VLAN上的次端口收到,则从其主端口发送出去。
如图23所示,是非激活态收到端口链路断事件处理流程。首先判断当前设备是不是次设备,如果不是,处理结束。如果是次设备,控制VLAN在域上有两个端口,如果当前报事件是其中的一个端口,判断另一个端口是否激活,如果该端口是激活的,则当前域状态保持非激活状态,如果另一个端口没有激活,则当前域状态变更为空闲态。
如图24所示,是激活态收到端口链路断事件处理流程。首先判断当前设备是不是次设备,如果不是,处理结束。如果是次设备,控制VLAN在域上有两个端口,如果当前报事件是其中的一个端口,则记录这个端口是从链路激活变为链路断,域状态变更为非激活态,同时在另一个端口发送一个链路断控制报文。
如图25所示,是变更态收到端口链路断事件处理流程。首先判断当前设备是不是次设备,如果不是,处理结束。如果是次设备,控制VLAN在域上有两个端口,如果当前报事件是其中的一个端口,则清除这个端口是从链路激活变为链路断的记录,域状态变更为非激活态,同时在另一个端口发送一个链路断控制报文。
如图26所示,是空闲态收到端口链路激活事件处理流程。首先判断当前设备是不是次设备,如果不是,处理结束。如果是次设备,控制VLAN在域上有两个端口,如果当前报事件是其中的一个端口,判断另一个端口是否激活,如果该端口是激活的,则当前域状态变更为激活态,如果另一个端口没有激活,则当前域状态变更为非激活态。
如图27所示,是非激活态收到端口链路激活事件处理流程。首先判断当前设备是不是次设备,如果不是,处理结束。如果是次设备,控制VLAN在域上有两个端口,如果当前报事件是其中的一个端口,判断另一个端口是否激活,如果该端口是激活的,判断报事件的端口是否记录了上一次是从链路激活变为链路断,如果有记录,则当前域状态为变更态,并在报事件的端口上阻塞被保护VLAN的报文;如果没有记录,则当前域状态变为激活态。如果另一个端口没有激活,结束处理。
如图28所示,是配置完全事件处理流程。配置完全是指从命令行对域工作所需的必要参数配置完成。在相关的命令行输入处理中,对这些配置进行检查。最后一个参数配置了,则配置就完全了。这些必需的参数包括环路检测服务使能、创建域、当前域使能、当前域在本设备的工作模式、当前域在本设备的主端口、当前域在本设备的次端口、当前域的控制VLAN、当前域的被保护VLAN。状态机变迁过程中的域使能事件的处理流程归纳到了配置完全处理流程实现了,因为域使能事件使配置完全的条件之一。
如图29所示,为域非使能事件处理流程。当在主设备或次设备上从命令行配置域非使能,当此设备处于空闲态、以太环路完整态、以太环路缺损态、激活态、非激活态之一,则当前域状态变更为初始态。
权利要求
1.实现以太环路冗余保护的状态转移方法,其特征在于,该方法包括(1)当设备处于初始态时,收到配置完全事件,a.如果当前设备为主设备,则设备状态从初始态转移为空闲态;b.如果当前设备为次设备且其控制VLAN上只有一个端口处于激活状态,则设备状态从初始态转移为非激活态;c.如果当前设备为次设备且其控制VLAN上两个端口都处于激活状态,则设备状态从初始态转移为激活态;d.如果当前设备为次设备且其控制VLAN上两个端口都不为激活状态,则设备状态从初始态转移为空闲态;(2)当设备处于空闲态①收到域非使能事件,则设备状态从空闲态转移为初始态;②接收到控制VLAN上端口激活事件,a.如果当前设备为次设备且其控制VLAN上两个端口都处于激活状态,则设备状态从空闲态转移为激活态;b.如果当前设备为次设备且其控制VLAN上只有一个端口处于激活状态,则设备状态从空闲态转移为非激活态;③当前设备为主设备并从次端口接收到自己从主端口发送的环路完整检测报文,则设备状态从空闲态转移为以太环路完整态;(3)当设备处于以太环路完整态①收到域非使能事件,则设备状态从以太环路完整态转移为初始态;②环路检测报文定时器超时,则设备状态从以太环路完整态转移为以太环路缺损态;③当前设备为主设备且收到链路断控制报文,则设备状态从以太环路完整态转移为以太环路缺损态;(4)当设备处于以太环路缺损态①收到域非使能事件,则设备状态从以太环路缺损态转移为初始态;②当前设备为主设备且收到自己发送的环路检测报文,则设备状态从以太环路缺损态转移为以太环路完整态;(5)当设备处于激活态①收到域非使能事件,则设备状态从激活态转移为初始态;②当前设备为次设备且收到控制VLAN端口链路断事件,则设备状态从激活态转移为非激活态;(6)当设备处于非激活态①收到域非使能事件,则设备状态从非激活态转移为初始态;②当前设备为次设备且收到控制VLAN端口链路激活事件a.当前激活的端口上一次是因为链路断转为非激活状态,则设备状态从非激活态转移为变更态;b.否则设备状态从非激活态转移为激活态;(7)当设备处于变更态;①收到域非使能事件,则设备状态从变更态转移为初始态;②当前设备为次设备且收到控制VLAN端口链路断事件,则设备状态从变更态转移为非激活态;③当前设备为次设备且收到主设备发送的激活更新报文,则设备状态从变更态转移为激活态。
全文摘要
本发明提供了一种实现以太环路快速冗余保护的状态转移方法。域内主设备可能的状态有初始态、空闲态、以太环路完整态、以太环路缺损态,其主要作用是连续定时发送环路检测报文以检测环路是否存在,如果环路存在,在主设备的次端口阻塞要求被保护VLAN的报文;如果环路链路断掉,则在主设备的次端口允许要求被保护VLAN的报文通过并发送链路断MAC更新控制报文。次设备可能的状态有初始态、空闲态、激活态、非激活态、变更态,其主要作用是允许环路检测报文通过;接受链路激活MAC更新控制报文和链路断MAC更新控制报文进行MAC更新,并把该报文转发给下一个次设备。本方法能够快速地检测到以太环路拓扑变化,快速实现收敛。
文档编号H04L12/28GK1543137SQ20031010325
公开日2004年11月3日 申请日期2003年11月4日 优先权日2003年11月4日
发明者邓沈鸿 申请人:港湾网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1