发明内容
为了克服上述现有技术的不足,本发明提供一种针对多点故障恢复的处理方法,该方法能够避免由于链路快速振荡造成的环路上节点短时间内的多次切换,以及多处故障发生及恢复时节点能够更快速地进行端口处理,而不必需依赖主节点的通知,提高多故障情况下EAPS 环的保护切换效率以及故障恢复的效率。
为了实现上述发明目的,本发明采取如下技术方案:
一种环网多点故障发现和恢复处理方法,所述方法包括以下步骤:
发现故障时:
A.传输节点阻塞其故障端口,并发送link-down帧;
B.主节点接收所述link-down帧,打开从端口并通知环网中其他节点环路故障;
故障恢复时:
C.传输节点检测两侧端口的状态,若故障解除则执行步骤D;
D.传输节点发出link-up帧;
E.主节点接收所述link-up帧,并检测其他节点是否处于转发状态;若是,主节点关闭从端口并通知环网中其他节点环路恢复。
优选地,所述link-down帧与link-up帧均包括所述传输节点的mac地址,且都通过报文发送;所述报文包括帧的序号;该link-down帧的发送方式如下:前3个帧以3ms的时间间隔发送,后面的帧均以2s的时间间隔发送。
优选地,所述步骤C包括如下步骤:
C-1.当检测到故障端口恢复连接,则启动计时器;
C-2.若计时器到时前端口变回断开状态,则继续阻塞;反之,则继续检测另一侧端口具体状态;
C-3.若另一侧端口保持转发状态,则将已恢复的故障端口置为临时阻塞状态。
优选地,所述步骤E包括如下步骤:
E-1.当主节点收到link-up帧,就获取该link-up帧中的发送节点的mac地址信息,并检测之前保存的link-down信息中的节点mac地址,若有一致的,则清除之前的记录;
E-2.主节点启动计时器;
E-3.主节点检测从端口是否收到主端口发送出的health帧,若收到,执行步骤E-6;若没有,则执行步骤E-4;
E-4.主节点检测是否接收到其他link-down帧,若收到,则执行步骤E-8;若没有,则执行步骤E-5;
E-5.主节点判断计时器有没有结束,若计时器仍在计时,则执行步骤E-3;若计时器计时已结束,执行步骤E-9;
E-6.主节点阻塞从端口的业务数据,刷新mac地址表,并发出link-up-flush帧,通知环 上其他节点,环路已恢复并刷新地址表,打开所有传输节点端口;
E-7.传输节点接收所述link-up-flush帧,将处于临时阻塞状态的端口置为转发状态,并刷新mac地址表;
E-8.则说明环路上有故障,对该link-up帧不做处理;
E-9.结束。
优选地,所述计时器用于帮助判断环路中故障是否完全恢复以及部分故障恢复是否存在临时性波动;所述health帧由主端口定时发送,用于判断环路是否发生故障。
优选地,所述阻塞为故障端口的数据vlan(虚拟局域网)阻塞而保护vlan仍然保持打开状态,以收发协议报文。
优选地,所述步骤B中,主节点通过两端从端口发出link-down-flush帧以通知所述环路故障。
与现有技术相比,本发明的有益效果在于:
1.EAPS环网保护切换原本只提出了基于单个故障的处理方法,而实际网络环境中,存在协议报文丢失和多点故障发生的可能性,本发明方法解决了协议报文在网络存在丢失的问题,提高了协议的可靠性,同时也增加多点故障时主节点处理故障消息设置了新的处理方法,增加协议处理效率。
2.针对传输节点,发明了处理故障恢复时的机制,保证在故障恢复时能够快速正确的切换端口状态,同时也避免端口的不稳定状态导致的频繁操作,确保协议实现的稳定性;对于主节点,增加了故障恢复时的判断条件,更全面的保证EAPS环在所有节点都恢复时才阻塞从端口,保证环路上连接的稳定性。
3.对多点故障的保护切换和多点故障恢复时的处理方法能够使的EAPS协议在环网上出现多点故障时能够更有效地进行操作,从而保证环路的稳定性和业务数据的可靠性。
具体实施方式
下面结合附图对本发明作进一步详细说明。
一种EAPS环网多点故障处理的实现方法通过在协议报文中添加mac地址和序号,实现主节点对故障节点识别,在故障发生后,发生故障的节点持续发送link-down帧能够帮助环上其他节点来判断环上节点的状态,从而做出正确判断和操作;在故障恢复后,对应节点依据本身端口状态和收发的报文信息能够做出对端口的正确操作而不依赖于主节点的配置,提高环上节点的自主操作性和可靠性。
在complete状态下,如图1所示,主节点将从端口阻塞,其他节点处于转发状态。
当节点S4和S5之间链路出现故障,连接断开,此时S4节点的端口1和S5的端口2立即阻塞。阻塞是指故障端口的数据vlan阻塞而保护vlan仍然保持打开状态,以收发协议报文。节点从另一个环端口向外发送链路故障报文link-down帧,准备带有节点MAC地址和序号信息的链路故障报文,前三个报文以3ms的间隔发送,后面每隔2s发送一次故障报文。报文的连续发送可以避免因为通信链路质量下降导致的丢包,而且前三个报文的快速发送,可以提高环网切换的效率,而不需要等待health报文的检测机制来发现故障,减少了故障时间。S4通过端口2向外发送link-down帧,通知主节点链路出现故障;S5通过端口1向外发送link-down帧,通知主节点链路出现故障。
主节点收到link-down帧后,打开从端口,并通过两个端口向外发送link-down-flush帧,通知环上所有节点。
当节点S5和S6之间链路出现故障,连接断开,此时S5节点的端口1和S6的端口2立即阻塞。S6通过端口1向外发送link-down帧,通知主节点链路出现故障。
主节点收到link-down帧后,发现是一个新的link-down帧,再次通过两个端口向外发送link-down-flush帧,通知环上所有节点环上出现故障。
当节点S7和S6之间链路出现故障,连接断开,此时S7节点的端口2和S6的端口1立即阻塞。S7通过端口1向外发送link-down帧,通知主节点链路出现故障.
主节点收到link-down帧后,发现是一个新的link-down帧,再次通过两个端口向外发送link-down-flush帧,通知环上所有节点环上出现故障。
当节点S4和S5之间链路恢复,此时S4节点的端口1和S5的端口2仍然保持阻塞。S5检测端口1为down状态,则立即打开端口2,设置为转发状态。S4通过端口2向外发送link-up帧,通知主节点链路故障解除。S4收到其他节点的link-down帧后,停止发送link-up帧,并将端口1打开,设置为转发状态,即数据业务vlan上的数据可以进行转发。
当节点S6和S5之间链路恢复,此时S6节点的端口2和S5的端口1仍然保持阻塞。S6检测端口1为down状态,则立即打开端口2,设置为转发状态。S5通过端口2向外发送link-up帧,通知主节点链路故障解除。S5收到其他节点的link-down帧后,停止发送link-up帧,并将端口1打开,设置为转发状态。
当节点S7和S6之间链路恢复,此时S7节点的端口2和S6的端口1仍然保持阻塞。S6通过端口2向外发送link-up帧,S7通过端口1向外发送link-up帧,通知主节点链路故障解除。主节点收到link-up帧后检测环上有没有其他节点发送link-down帧,如果没有,则将从端口阻塞,刷新地址表,并向外发送link-up-flush帧,通知环上节点,环路恢复。
当环上所有节点收到link-up-flush帧后,打开阻塞的端口,刷新mac地址表,重新学习,至此环路又恢复complete状态。
本发明的方法中传输节点检测到原先因故障处于down状态的端口又恢复到up状态(如图3所示)包括以下步骤:
步骤3001:启动计时器,该计时器用于检测端口变为up状态是否是由于端口抖动而出现的暂时现象;转至步骤3002。
步骤3002:检测计时器是否到时,如果没有到时,则转到步骤3011,如果已经到时则转到步骤3003。
步骤3003:端口计时器计时结束,且端口状态仍然为up,则说明端up状态为稳定状态,获取节点的两个端口的具体连接状态。
步骤3004:如果获取检测结果为1端口正常转发,2端口为恢复连接的端口,则转至步骤3014;如果获得的端口状态和上述不一致,则转至步骤3005。
步骤3005:如果获得端口状态为1端口是恢复连接的端口,2端口正常转发,则转至步骤3015;如果状态不一致,则转至步骤3006。
步骤3006:如果获得端口状态为1端口是故障端口,2端口为恢复连接的端口,则转至步骤3019;如果状态不一致,则转至步骤3007。
步骤3007:如果获得端口状态为1端口为恢复连接的端口,2端口故障端口,则转至步骤3020;如果状态不一致,则转至步骤3008。
步骤3008:1端口和2端口同时恢复连接,则阻塞2端口,设置1端口为转发状态,刷新mac地址表,转至步骤3009。
步骤3009:传输节点检查是否收到其他节点发送到link-down帧,如果没有收到link-down帧则转至步骤3021,否则转至步骤3010。
步骤3010:传输节点收到其他节点的link-down帧,说明EAPS环网上还有其他节点处于故障状态则,将1端口和2端口都设置为转发状态,并刷新mac地址表。
步骤3011:读取1端口和2端口的连接状态。
步骤3012:判断端口是否处于link up状态,如果端口处于up状态则转至步骤3003,否则转至步骤3012。
步骤3013:在计时器计时过程中,端口的状态又变回为down则,端口连接不稳定,不能进入恢复切换阶段,应当保持端口为阻塞状态,避免因为端口状态不稳定而造成的频繁操作,影响设备性能。
步骤3014:阻塞2端口的业务数据通道。
步骤3015:阻塞1端口的业务数据通道。
步骤3016:传输节点判断是否收到其他节点link-down帧,如果收到其他节点link-down帧则转至步骤3018,否则转至步骤3017。
步骤3017:端口没有收到link-down帧,则说明网络上没有其他节点处于故障状态,则节点就持续发送link-up帧,通知主节点。
步骤3018:节点收到其他节点发送的link-down帧,说明环网还有其他节点处于故障状态,则可将本节点阻塞的端口打开,并刷新地址表。
步骤3019:阻塞1端口,并设置2端口为数据通道可转发,并转至步骤3022。
步骤3020:阻塞2端口,并设置1端口为数据通道可转发,并转至步骤3022。
步骤3021:阻塞2端口,设置1端口为转发状态,刷新地址表。
步骤3022:刷新地址表,持续向外发送link-down帧,通知环上节点,该传输节点仍旧存在故障端口。
EAPS环网上主节点处理多点故障恢复的方法(如图4所示)包括以下步骤:
步骤401:EAPS环上节点故障恢复,发送link-up消息出去。当主节点收到link-up消息,就会获取该link-up中的发送节点的mac地址信息,检测之前保存的link-down信息中的节点mac地址,如果有一致的,则清除之前的记录。
步骤402:主节点在接收到link-up消息之后,就立即启动计时器。该计时器是用于帮助判断环路中故障是否完全恢复以及部分故障恢复是否存在临时性波动。
步骤403:主节点检测从端口是否收到由主端口发送出来的health帧,如果收到health帧,则说明环路上故障全部恢复,转至步骤406此时主节点阻塞从端口的业务数据,刷新mac地址表,并发送link-up-flush帧出去,通知环上其他节点,环路已恢复并刷新地址表,打开所有环端口;如果从端口仍然没有收到health帧,则转到步骤404。
步骤404:主节点检测是否接收到link-down帧,如果收到link-down帧,则转到步骤407; 如果主节点没有收到link-down帧,则转到步骤405。
步骤405:主节点没有收到health帧和link-down帧,此时判断计时器有没有结束,当计时器仍在计时,则转回步骤403,当计时器计时已经结束,转到步骤408。
步骤406:主节点阻塞从端口的业务数据,刷新mac地址表,并发送link-up-flush帧出去,通知环上其他节点,环路已恢复并刷新地址表,打开所有环端口;
步骤407:则说明环路上有故障,则link-up帧不做处理。
步骤408:结束。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。