以太环路冗余保护方法

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

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