一种工业环网的故障检测及修复方法与流程

文档序号:15497592发布日期:2018-09-21 22:01阅读:654来源:国知局

本发明涉及一种工业环网的故障检测及修复方法。



背景技术:

现行工业以太交换机的环网功能原理大都以检测环网端口状态,即端口up、down来完成环网的初始化状态设置,并在环网的成员端口链路down时将其环网状态设置为down并将此事件通告环网其它成员,一方面后续通讯避开此断开的链路;另外,将之前其它处于block状态的端口设置为forward状态以完成重新收敛功能。

但是,单纯以端口链路状态变化为触发点来进行环网状态的恢复和收敛的方案在某些情况下存在明显缺陷的问题,例如,当交换机交换芯片或者环网端口出现故障(如交换机之间接光纤盒子,光纤熔接问题)导致无法转发数据帧,但此时端口的链路状态仍正常,这种情况下,邻居环网交换机无法通过端口的链路状态事件感知到这种情况,导致某些交换机的通讯完全中断并在无人为干预的情况下无法恢复。



技术实现要素:

本发明的目的在于针对现有技术中的上述缺陷,提供一种工业环网的故障检测及修复方法,该方法能尽可能快的避开故障交换机或者故障链路,重新选择链路从而尽快恢复通讯以降低因通讯中断造成的影响和损失。

为实现上述发明目的,本发明采用了如下技术方案:一种工业环网的故障检测及修复方法,所述工业环网包括多个连接在一起,物理上成环状的网络设备,所述工业环网的故障检测及修复方法包括以下步骤:

s1:各网络设备启动后,首先将所述各网络设备的两个端口均设置为禁用状态;

s2:对各网络设备进行环网初始化,过程包括:

检测所述各网络设备环网成员端口的物理状态,根据检测结果,对各网络设备端口的环网状态重新进行设置,方法如下:

s2.1:若探测到网络设备环网成员端口的物理状态为断开状态时,不做处理;

s2.2:若探测到网络设备环网成员端口的物理状态为连接状态,并且该端口是第一个连接状态的端口时,则将端口状态设置为转发状态,如果该端口是第二个连接状态的端口,则将端口状态设置为阻塞状态,然后通过比较网卡地址的方法,将网卡地址最大的网络设备的其中一个端口环网状态设置为阻塞状态;

s3:环网初始化完成后,当探测到有网络设备环网成员端口的物理状态为断开状态时,立即将该端口环网状态设置为禁用状态,并将该事件在环网内进行通告,其它收到该事件并且有端口处于阻塞状态的网络设备立即将其自身阻塞端口打开,设置为转发状态;

s4:环网初始化完成后,当探测到网络设备环网成员端口的物理状态为连接状态时,网络设备通过心跳包机制判断方法,判断是否向相邻的网络设备发送环回报文;

s5:若需要发送环回报文,网络设备根据环回报文发送出去后的反馈结果,作如下处理:

s5.1:如果发送出去后,能从另一端口收到自身发送的环回报文,不予处理;

s5.2:如果发送出去后,不能从另一端口收到自身发送的环回报文,则发送环回报文的网络设备将自身与未应答网络设备连接的端口设置为阻塞状态,并将此事件在环网内通告,其它收到此事件并且有端口处于阻塞状态的网络设备立即将其自身阻塞端口打开,设置为转发状态;

s6:若不需要发送环回报文,则不作处理。

此外,本发明还提出如下附属技术方案:

所述比较网卡地址的方法包括:通过各网络设备的两个环网成员端口向环网中的其它网络设备的各端口广播端口是连接状态的消息,其它网络设备收到端口是连接状态的消息后,将发送端的网卡地址与自身的网卡地址比较,并根据比较结果调整自身的端口环网状态。

所述根据比较结果调整自身的端口环网状态的过程包括:

1)、如果发送端的网卡地址比自身网卡地址大,则将其自身处于阻塞状态的端口打开,设置为转发状态;

2)、如果发送端的网卡地址比自身网卡地址小,则不作处理;

3)、如果发送端的网卡地址等于自身网卡地址,则通知环网内其他网络设备环网状态完成。

所述心跳包机制判断方法包括:所述各网络设备周期性的向相邻的网络设备发送心跳包消息,若相邻的网络设备收到心跳包消息后予以应答,表明其运行正常,不予处理,若连续n个心跳包超时未应答,则从端口向未应答网络设备发送一条环回报文。

所述网络设备包括交换机。

所述心跳包包括组播报文。

相比于现有技术,本发明的优点在于:本发明提供的工业环网的故障检测及修复方法,在环网中的交换机出现某些特殊故障或者环网中有其它其它网络通讯设备出现故障或者通讯链路断开的情况下,能尽可能快的避开故障交换机或者故障链路,重新选择链路从而尽快恢复通讯以降低因通讯中断造成的影响和损失。

附图说明

图1是本发明的工业环网中各网络设备环网初始化的流程图;

图2是本发明实施例中工业环网的示意图;

图3是本发明实施例中工业环网中各有网络设备故障的示意图。

具体实施方式

本发明的基本思想是:结合心跳探测与链路状态检测,提供一种简便有效的工业环网的故障检测及修复方法。

以下结合较佳实施例及其附图对本发明技术方案作进一步非限制性的详细说明。

图1是本发明的工业环网中各网络设备环网初始化的流程图,工业环网包括多个连接在一起,物理上成环状的网络设备,参见图1,当所有网络设备都启动后,工业环网进行故障检测及修复,方法如下:

s1:各网络设备启动后,首先将各网络设备的两个端口均暂时设置为禁用状态(即disable状态);

s2:对各网络设备行环网初始化,过程包括:检测网络设备各环网成员端口的物理状态,根据检测结果,对各网络设备端口的环网状态重新进行设置,方法如下:

s2.1:若探测到网络设备环网成员端口的物理状态为断开状态(即down状态)时,不做处理。

s2.2:若探测到网络设备环网成员端口的物理状态为连接状态(即up状态),并且该端口是第一个连接状态的端口时,则将端口状态设置为转发状态,如果该端口是第二个连接状态的端口,则将端口状态设置为阻塞状态,然后通过比较mac地址的方法,将mac地址最大的网络设备的其中一个端口环网状态设置为阻塞状态(即block),比较网卡地址的方法如下:

通过两个环网成员端口向环网中的其它网络设备的各端口广播端口是连接状态(link-up)的消息,其它网络设备收到端口link-up的消息后,将发送端的mac地址与自身的mac地址进行比较,并根据比较结果调整自身的端口环网状态,过程如下:

1)、如果发送端的mac地址比自身mac地址大,则将其自身处于block状态的端口打开,设置为forward状态;

2)、如果发送端的mac地址比自身mac地址小,则不作处理;

3)、如果发送端的mac地址等于自身mac地址,表示环网初始化完成,通知环网内其他网络设备环网状态完成。(注:发送端的mac地址等于自身mac地址说明收到了自己发出去的(环网内绕了一圈)link-up消息,表明环网内其他网络设备的block端口都已设置为forward状态,也说明自身mac是环网内最大的mac地址,它原本block的端口状态保持不变,此时环网内只有这一个端口处于block状态,环网初始化完成)。

s3:环网初始化完成后,当检测到有网络设备环网成员端口的物理状态为down状态后,立即将该网络涉设备的端口环网状态设置为disable状态,并将该事件在环网内进行通告,其它收到该事件并且有端口处于block状态的网络设备立即将其自身阻塞端口打开,设置为forward状态。

s4:环网初始化完成后,当探测到网络设备环网成员端口的物理状态为连接状态时,网络设备通过心跳包机制判断方法,判断是否向相邻的网络设备发送环回报文,判断方法如下:

各网络设备周期性的向相邻的网络设备发送心跳包消息,心跳包为组播报文,若相邻的交换机收到心跳包消息后予以应答,表明其运行正常,不予处理;若连续n个心跳包超时未应答,则从端口向未应答的交换机发送一条环回报文;

s5:若需要发送环回报文,网络设备根据环回报文发送出去后的反馈结果,作如下处理:

s5.1:如果发送出去后,能从另一端口收到自身发送的环回报文,表明其运行正常,不予处理;(由于数据是由纯硬件转发,也可能存在相邻设备连续n个心跳包未应答,但仍能进行正常数据转发的情况,所以即使n个心跳包未应答,但发送出去的环回报文能从另一端口收到,则说明相邻设备仍能进行数据转发,则不予处理。)

s5.2:如果发送出去后,不能从另一端口收到自身发送的环回报文,表明其发生故障,则发送环回报文的网络设备将自身与未应答网络设备连接的端口设置为block状态,并将此事件在环网内通告,其它收到此事件并且有端口处于阻塞状态的网络设备立即将其自身阻塞端口打开,设置为forward状态。

s6:若不需要发送环回报文,则不作处理。

图2是本发明实施例中工业环网的示意图,其中网络设备以交换机为例,交换机sw1、sw2、sw3、sw4、sw5和sw6物理上构成一个环,其中交换机sw1包括端口p1.1和p1.2、交换机sw2包括端口p2.1和p2.2、交换机sw3包括端口p3.1和p3.2、交换机sw4包括端口p4.1和p4.2、交换机sw5包括端口p5.1和p5.2、交换机sw6包括端口p6.1和p6.2,本实施例中设定交换机sw4的网卡地址(即mac地址)为最大。

进一步参照图2,各交换机启动后,先将各交换机的两个端口均暂时设置为disable状态,即将p1.1、p1.2、p2.1、p2.2、p3.1、p3.2、p4.1、p4.2、p5.1、p5.2、p6.1和p6.2均暂时设置为disable状态,然后对各交换机进行环网初始化,检测各交换机环网成员端口的物理状态,若探测到交换机环网成员端口的物理状态为down状态时,不做处理,若探测到交换机环网成员端口的物理状态为up状态,并且该端口是第一个up状态的端口时,则将该端口环网状态设置为forward状态,如果该端口是第二个连接状态的端口,则将该端口环网状态暂时设置为block状态,以交换机sw1为例,假设p1.1是探测到的第一个up的端口,p1.2是探测到的第二个up的端口,则将p1.1设置为forward状态,将p1.2设置为block状态,然后通过端口p1.1和p1.2向环网中的其它交换机(sw2、sw3、sw4、sw5、sw6)的各端口广播端口link-up的消息,其它交换机的各端口(sw2、sw3、sw4、sw5、sw6)收到端口link-up的消息后,将发送端的的mac地址与自身的mac地址进行比较,若发送端的mac地址比自身mac地址大,则将其自身处于block状态的端口打开,设置为forward状态,若发送端的mac地址比自身mac地址小,则不作处理,若发送端的mac地址等于自身mac地址,表示环网初始化完成,通知环网内其他网络设备环网状态完成。

由于设定交换机sw4的mac地址最大,因此经过多次广播端口link-up的消息和进行mac地址比较后,最终交换机sw4的处于阻塞状态的端口没有被打开,其环网状态仍处于block状态,而其它交换机的处于阻塞状态的端口均被打开,设置为forward状态,此时环网初始化。

参照图3,当交换机sw2的环网成员端口的物理状态为down后,相邻的交换机或自身检测到交换机sw2的环网成员端口的物理状态为down后,立即将交换机sw2的端口环网状态设置为disable状态,并将该事件在环网内进行通告,交换机sw4收到该事件后,立即将其自身阻塞端口打开,设置为forward状态。

进一步参照图3,若是环网交换机sw2交换芯片或者环网端口p2.1出现故障或者交换机sw1(或sw3)和sw2中间还连接了光纤盒子(图未示),光纤熔接出现问题,无法从此环网端口转发数据,但端口状态并未受影响(即端口p2.1的物理状态仍是up状态,但是其此时无法转发数据),而邻居交换机sw1(或sw3)通过端口p1.1(或p3.1)周期性地向交换机sw2发送心跳包,连续n个心跳包(图中虚线1-3)超时无应答后,再从端口p1.1(或p3.1)发送一条环回报文(图中箭头线4),如果最终能在端口p1.2(或p3.2)收到自身发送的报文,则表明交换机sw2可能仅仅是cpu挂死,而交换芯片转发正常,对这种情况不予处理,如果不能在端口p1.2(或p3.2)收到自身发送的报文,则将交换机sw2的端口p2.1设置为block状态,并将此事件在环网内通告,交换机sw4收到此事件后将之前处于block状态的端口打开,设置为forward状态,以恢复通讯。之后,交换机sw1(或sw3)仍通过心跳包机制确认交换机sw2的故障恢复与否(换端口或者重启设备等)保持环网状态的收敛。但需要注意的是,只有与故障交换机相连的交换机才会通过邻居探测机制感知到这类情况,其它交换机不受影响。

本发明提供的工业环网的故障检测及修复方法,在环网中的交换机出现某些特殊故障或者环网中有其它其它网络通讯设备出现故障或者通讯链路断开的情况下,能尽可能快的避开故障交换机或者故障链路,重新选择链路从而尽快恢复通讯以降低因通讯中断造成的影响和损失。

需要指出的是,上述较佳实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1