发明内容
为了克服上述现有技术的不足,本发明提供一种设备归一化管理接口的故障诊断信息传送及处理方法,当OLT设备出现故障时,保证故障诊断通知报文传输可靠性的同时又兼顾信息传送的有效性。
为了实现上述发明目的,本发明采取如下技术方案:
一种设备归一化管理接口的故障诊断信息传送及处理方法,应用于包含网络管理工作站(NMS)和运行在光线路终端(OLT)设备上的主代理及子代理的网管系统中,其特征在于,所述方法包括以下步骤:
A.子代理探测OLT设备产生的故障的类型,并将包含故障类型的信息发送给主代理;
B.主代理判断故障的紧急程度,将故障信息封装成报文并上报至NMS;
C.NMS解析报文并分类处理故障;
D.主代理接收NMS返回的确认报文。
优选地,所述步骤A包括:
若所述故障为网络管理协议(SNMP)定义的一般故障,则子代理发送的所述信息为AgentX报文;
若所述故障为企业自定义的故障,则子代理发送的所述信息为其构建的字符串;
所述字符串包括:该故障的产生时间、类型、用于表示其紧急程度的severity值。
优选地,所述步骤B包括:
B-1.若主代理接收到的信息为字符串,则执行步骤B-2;若为AgentX报文,则执行步骤B-3;
B-2.若自定义的故障为紧急故障,则生成Inform PDU;否则,生成Trap PDU;执行步骤B-3;
B-3.主代理再将AgentX报文、Inform PDU或Trap PDU进一步封装成SNMP报文并发送给NMS。
优选地,所述紧急故障为影响系统正常运行的故障;该故障的severity值包括0、1、2三种,其中,值为0代表使系统受到一定影响但仍可运行的故障,值为1代表使系统性能严重下降,运行受到严重影响的故障,值为2代表使系统处于瘫痪状态、不能运行的故障。
优选地,所述步骤C包括:NMS解析收到的报文,若所述故障为紧急故障,则返回Response报文至主代理;否则,按照Trap机制处理。
优选地,所述步骤B中封装的报文为SNMP报文,若该报文发送的是Inform PDU,则主代理于发送该报文的同时启动定时器;所述步骤D中的确认报文为NMS针对紧急故障返回 的Response报文,该步骤包括:D-1.若主代理收到所述确认报文,则对其解析并处理;否则,执行步骤D-2;
D-2.若定时器已到时,主代理判断该紧急故障重发次数是否达到最大值max;若没有,则重新执行步骤B-3;若已达到,则执行步骤D-3;
D-3.主代理将该故障消息数据结构中的关键信息字段重新缓存到另一处,并释放该故障消息数据结构,结束此次紧急故障消息的发送;
所述最大值max随紧急程度severity值的升高而增大。
优选地,所述severity值为INTEGER32类型的对象;所述Inform PDU包括EventID标签;该EventID标签为INTEGER32类型的对象;当前故障的EventID标签值Id2如下式表达:
Id2=3*([Id1/3]+1)+x
式中,Id1为前一紧急故障的EventID标签值;x为该故障的severity值。
优选地,NMS构造所述Response报文时,将对应Inform PDU的EventID值填入Response报文结构的请求ID位置处,并于报文的差错状态及差错索引的位置都填入0。
优选地,步骤D-1中所述处理包括:若Response报文中携带的EventID的值与缓存中保存的某条故障消息数据结构的EventID相同,主代理将释放缓存中该故障消息数据结构。
优选地,所述一般故障包括:冷启动、热启动、链路连接、链路断开、认证失败、相邻路由器失效;所述企业自定义的故障包括:板卡插拔、ONU插拔、电源断开、温度异常、风扇故障、软件异常、系统繁忙、告警溢出、配置改变、信号丢失。
优选地,所述severity值为0的故障包括:温度异常、风扇故障、软件异常、系统繁忙、告警溢出、配置改变;所述severity值为1的故障包括:板卡插拔、ONU插拔;所述severity值为2的故障包括:信号丢失、电源断开。
优选地,所述最大值max表达式为:max=severity值+1。
与现有技术相比,本发明的有益效果在于:
1、本发明针对企业自定义的陷阱,OLT设备中的子代理进程通过创建的socket套接字,以字符串的形式将自定义结构体snmpd_alarm_struct中的成员信息发送给主代理,提高了故障信息传递的可靠性及有效性;
2、本发明根据故障的紧急或非紧急的紧急程度,组成不同类型的PDU(协议数据单元),对PDU中的第一字段设置不等的数值,然后再统一封装成SNMP报文,NMS在接收到报文后,依据该字段的数值采用不同的机制处理该报文,不仅节省了不必要的设备资源,还提高了网络资源的利用率;
3、根据紧急故障消息的紧急程度标识,确定不等的报文重发次数,一定程度上合理地节省了网络流量的额外开销,并兼顾了故障诊断通知报文传输的可靠性及有效性;
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明提供一种基于SNMP协议的故障诊断通知报文的发送及应答流程,如图3所示,应用于包含一个网络管理工作站NMS和运行在OLT设备上的主代理及多个子代理的网管系统中,步骤如下:
A、OLT设备产生故障时,若探测到的为SNMP定义的一般陷阱(如冷启动、热启动、链路连接、链路断开、认证失败、相邻路由器失效),子代理将发送AgentX报文给主代理,若为企业自定义的陷阱(如板卡插拔、ONU插拔、电源断开、温度异常、风扇故障、软件异常、系统繁忙、告警溢出、配置改变、信号丢失),子代理将构建一个字符串,将自定义的结构体成员信息(自定义陷阱产生时间、类型、severity等)发送给主代理;
B、设备中的主代理在接收到AgentX报文或字符串时,首先进行分析,若为字符串,主代理将根据字符串中的severity信息判断故障的紧急程度,组成Trap或Inform PDU。当severity值为clear、info、warning,即故障非紧急时,组成Trap PDU,当severity值为minor、major、critical,即故障紧急时,组成Inform PDU,其中,Inform PDU还携带一个字段来标识紧急故障的紧急程度。紧接着,主代理再将Trap PDU、Inform PDU、AgentX报文封装成SNMP报文发送给NMS。其中,自定义陷阱的等级分类依据:当整个系统处于完全瘫痪状态,不能运行时,将severity值设置为critical,如信号丢失、电源断开;当系统性能严重下降,运行受到严重影响,如板卡丢失、ONU丢失,将severity值设置为major;当部分设备或者软件出现故障,系统虽受到一定影响但仍可正常运行,如温度异常、风扇故障、软件异常、系统繁忙、告警溢出、配置改变,将severity值设置为minor。
C、当NMS接收到上述SNMP报文时,解析报文,提取报文中的第三字段,若该字段的值为4(v1Trap PDU)或7(v2Trap PDU),表示该故障报文为非紧急的,NMS将按照标准的Trap机制来处理该故障信息,结束;若该字段的值为6(Inform PDU),表示该故障报文为紧急的,OLT中的主代理在发送紧急故障诊断通知报文的同时,启动一个定时器,在该定时 器超时时,如果OLT中的主代理仍未收到NMS发来的表示已接收到该条紧急故障报文的Response报文,则表示该条故障诊断通知报文没有成功地被发送到NMS,此时主代理需要重新向NMS发送该紧急报文,且重新启动定时器;若该字段的值为1(AgentX PDU的版本号),表示该报文为AgentX报文,此时也按照Trap机制来处理。
D、根据Inform报文中携带的表示紧急故障的紧急程度标识,OLT中的主代理确定重发一条紧急故障诊断通知的最大次数max(max随着紧急程度的升高而增大,如max=紧急程度标识+1),当主代理重发此条故障诊断通知报文的次数达到max后仍未收到NMS的回应时,主理将不再尝试发送,而是将本条故障消息数据结构中的关键信息字段重新缓存在另一处,并释放该故障消息数据结构,结束此次紧急故障消息的发送。
进一步地,上述方法具有以下特征:
所述紧急故障消息的紧急程度标识用一个INTEGER32类型的对象EmergentType来表示,其有三个取值0,1,2,分别表示故障消息的紧急程度:弱、中、强,对应severity值:minor、major、critical。
进一步地,上述方法还具有以下特征:
如果所述故障消息为紧急故障消息,在步骤B中,OLT中的主代理还需将该紧急故障消息数据结构缓存起来,且Inform PDU中还携带一EventID标签并由主代理为其赋值;且该条紧急故障消息的EventID值Id2与所述主代理分配的前一紧急故障消息的EventID值Id1的关系为:Id2=3*([Id1/3]+1)+x,x取值为该故障消息的紧急程度EmergentType。其中,EventID也是一个INTEGER32类型的对象。
在步骤C中,构造Response报文时,将对应Inform PDU的EventID值填入Response报文结构的请求ID位置处,且报文的差错状态及差错索引的位置都填入0。
在OLT中的主代理接收到NMS向其发送的Response报文后,对该报文进行解析,若其中携带的EventID的值与缓存中保存的某条故障消息数据结构的EventID相同,主代理将释放缓存中该数据结构。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。