CN109873719B - 一种故障检测方法及装置 - Google Patents

一种故障检测方法及装置 Download PDF

Info

Publication number
CN109873719B
CN109873719B CN201910109009.9A CN201910109009A CN109873719B CN 109873719 B CN109873719 B CN 109873719B CN 201910109009 A CN201910109009 A CN 201910109009A CN 109873719 B CN109873719 B CN 109873719B
Authority
CN
China
Prior art keywords
communication protocol
protocol layer
layer entity
network device
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910109009.9A
Other languages
English (en)
Other versions
CN109873719A (zh
Inventor
邓建玺
王庆先
王新海
邵裕润
陈华南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910109009.9A priority Critical patent/CN109873719B/zh
Publication of CN109873719A publication Critical patent/CN109873719A/zh
Application granted granted Critical
Publication of CN109873719B publication Critical patent/CN109873719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Maintenance And Management Of Digital Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开一种故障检测方法及装置,用以解决现有技术中存在的由于依赖现网故障现象再次发生导致的故障检测时间较长的问题。通过设备间周期性的交互邻居保活报文,但预设时长内没有收到邻居保活报文,则触发位于第一通信协议层以下的协议层实体进行检测抓包,比如获取未正常向上层的通信协议层实体发送的第一通信协议报文,并检测未正常向上层协议层实体发送第一通信协议报文的原因,传输给第一通信协议层,第一通信协议层能够确定本设备是否收到邻居设备发送的报文,若收到,确定收到的报文在第一通信协议层实体以下的通信协议层实体未正常发送的原因,进而能够确定本端设备发生的故障原因,若未收到,则确定对端设备或者传输链路发生故障。

Description

一种故障检测方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种故障检测方法及装置。
背景技术
通信协议是基于网络设备的信号和内容的规则,通过通信协议层实体完成相互间的通信或服务。双方通信协议层实体的连通性是通信和服务的基础。用于设备间连接的协议包括了各类数据通信协议,比如包括边界网关协议(border gateway protocol,BGP)、中间系统到中间系统(intermediate system-to-intermediate system,ISIS)、开放式最短路径优先(open shortest path first,OSPF)、多协议标签交换(multi-protocol labelswitching,MPLS)标签分发协议(label distribution protocol,LDP)、MPLS资源预留协议(Resource Reservation Protocol, RSVP)等。
在网络系统中,时常发生链路层的传输链路不稳定或者报文异常丢弃的情况,进而导致设备间通信协议的连接不稳定,从而造成业务受损。
当设备间通信协议的连接不稳定时,需要尽快排查出不稳定原因,尽快恢复网络业务。现有一般需要启动和部署通信协议层、传输控制协议(transmission controlprotocol,TCP) /用户数据协议(user datagram protocol,UDP)层和数据链路层各自对应的调试程序来持续监控,等待现网问题现象再次发生时,传回监控信息进行内容分析确定故障原因。因此,现有需要多个协议层共同部署调试手段进行监控,比较繁琐,并且依赖现网故障现象再次发生,故障检测时间较长。
发明内容
本申请提供一种故障检测方法及装置,用以解决现有技术中存在的由于依赖现网故障现象再次发生导致的故障检测时间较长的问题。
第一方面,本申请实施例提供一种故障检测方法,包括:
第一网络设备的第一通信协议层实体在第一预设时长内未接收到第二网络设备发送的邻居保活报文时,向位于第一通信协议层实体下层的第二通信协议层实体发送第一指示;
其中,所述邻居保活报文为遵循第一通信协议的报文,所述第一预设时长小于所述第一通信协议规定的保活周期;所述第一指示用于指示所述第二通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第一检测结果;所述第一检测结果包括第一信息,所述第一信息用于指示所述第二通信协议层实体发生故障的原因;
所述第一网络设备的第一通信协议层实体接收所述第二通信协议层实体发送的所述第一检测结果,并根据所述第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
通过上述设计,通过新增加对第一通信协议邻居保活报文的监控,可以实时地触发并获取由各个通信协议层检测到的关于第一通信协议的报文收发情况,进行预防检测和诊断,无需等待故障重现。第一通信协议层面可以将获取到的检测结果进行分类,得到的诊断信息丰富,能较全方面地诊断出通信协议邻居超时中断的故障原因,并且能非常方便地提供给任何负责故障诊断的管理设备。
在一种可能的设计中,还包括:
所述第一网络设备的第一通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第二检测结果;其中,所述第二检测结果包括第二信息,所述第二信息用于指示所述第一通信协议层实体发生故障的原因;所述根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因,包括:根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
通过上述设计,第一通信协议层实体可以检测本协议层是否存在操作错误、配置错误或者处理错误等故障,进而可以提高故障诊断的准确性。
在一种可能的设计中,所述方法还包括:所述第一网络设备的第一通信协议层实体在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;其中,所述第三检测结果包括第三信息,所述第三信息用于指示所述第三通信协议层实体发生故障的原因;所述第一网络设备的第一通信协议层实体接收所述第三通信协议层实体发送的第三检测结果;所述根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因,包括:根据所述第一检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
通过上述设计,第一通信协议层实体可以触发位于下层的多个通信协议层实体进行抓包检测,确定协议层是否存在操作错误、配置错误或者处理错误等故障,进而可以提高故障诊断的准确性。
在一种可能的设计中,所述方法还包括:
所述第一网络设备的第一通信协议层实体确定在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;其中,所述第三检测结果包括第三信息,所述第三信息指示所述第三通信协议层实体发生故障的原因;所述第一网络设备的第一通信协议层实体接收所述第三通信协议层实体发送的第三检测结果;根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因,包括:根据所述第一检测结果、第二检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
通过上述设计,第一通信协议层实体可以触发位于下层的多个通信协议层实体进行抓包检测,确定协议层是否存在操作错误、配置错误或者处理错误等故障,进而可以提高故障诊断的准确性。
在一种可能的设计中,所述第一检测结果还包括当第二通信协议层实体检测所述第一通信协议报文正常时,向所述第一通信协议层实体发送的参数信息,所述参数信息用于指示所述第一通信协议报文正常处理的信息。示例性的,所述参数信息包括所述第二通信协议层接收所述第一通信协议报文的时间点和/或发送所述第一通信协议报文的时间点。
在一种可能的设计中,所述第二检测结果还包括当第一通信协议层实体检测所述第一通信协议报文正常时,记录的参数信息,所述参数信息用于指示所述第一通信协议报文正常处理的信息。示例性的,所述参数信息包括所述第一通信协议层接收所述第一通信协议报文的时间点和/或发送所述第一通信协议报文的时间点。
在一种可能的设计中,所述第三检测结果还包括当第三通信协议层实体检测所述第一通信协议报文正常时,向所述第一通信协议层实体发送的参数信息,所述参数信息用于指示所述第一通信协议报文正常处理的信息。示例性的,所述参数信息包括所述第三通信协议层接收所述第一通信协议报文的时间点和/或发送所述第一通信协议报文的时间点。
通过上述设计,一些正常报文的参数信息能够反映第一通信协议报文传输速度缓慢等故障,提高检测准确性。
在一种可能的设计中,还包括:
所述第一网络设备的第一通信协议层实体向所述第二通信协议层实体发送所述第一指示后,若经过第二预设时长时接收到所述第二网络设备发送的邻居保活报文,则向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文,所述第二预设时长与所述第一预设时长的和小于或者等于所述保活周期。
通过上述设计,提供一种触发第二通信协议层实体停止检测的机制,可以节省资源。
在一种可能的设计中,还包括:
所述第一网络设备的第一通信协议层实体向所述第二通信协议层实体发送第一指示后,若确定所述第一网络设备与所述第二网络设备通信中断,则向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文。
在一种可能的设计中,所述第一网络设备的第一通信协议层实体接收所述第二通信协议层实体发送的第一检测结果,包括:
所述第一网络设备的第一通信协议层实体接收所述第二通信协议层实体在接收到所述第三指示后发送的所述第一检测结果。
在一种可能的设计中,所述第一网络设备的第一通信协议层实体接收所述第二通信协议层实体发送的第一检测结果,包括:
所述第一网络设备的第一通信协议层向第二通信协议层实体发送通知消息,然后接收所述第二通信协议层实体在接收到所述通知消息后发送的所述第一检测结果。
通知消息用于通知第二通信协议层实体上报所述第一检测结果。示例性的,通知消息可以周期性的发送。
在一种可能的设计中,所述第一网络设备与所述第二网络设备通信出现故障的原因包括如下至少一项:
所述第二网络设备存储故障、所述第一网络设备与所述第二通信设备之间的通信链路存在故障、所述第一网络设备上传输控制协议TCP/用户数据协议UDP链接建立失败、所述第一网络设备收到错误的第一通信协议报文、所述第一网络设备收到的第一通信协议报文的参数和本地设备配置的参数存在冲突、所述第一网络设备配置操作错误、所述第一网络设备接收第一通信协议报文的速度慢、或者所述第一网络设备通信协议状态机错误。
在一种可能的设计中,所述保活周期与所述第一预设时长的差大于1个邻居保活报文的发送周期。
在一种可能的设计中,所述第一通信协议层实体为如下任一项:
边界网关协议BGP实体、中间系统到中间系统ISIS协议实体、开放式最短路径优先OSPF协议实体、标签分发协议LDP实体、资源预留协议RSVP实体。
在一种可能的设计中,当所述第一通信协议层实体为BGP实体或者LDP实体,所述第二通信协议层实体为传输控制协议TCP实体或者用户数据协议UDP实体;或者,当所述第一通信协议层实体为ISIS协议实体、OSPF协议实体、或者RSVP实体中的一个,所述第二通信协议层实体为数据链路协议实体。
在一种可能的设计中,所述第一通信协议层实体为BGP实体或者LDP实体,所述第二通信协议层实体为TCP实体或者UDP实体,所述第三通信协议层实体为数据链路协议实体。
第二方面,本申请实施例提供一种故障检测装置,所述装置应用于第一网络设备,包括:
第一通信协议层实体和第二通信协议层实体,所述第二通信协议层实体位于所述第一通信协议层的下层;
第一通信协议层实体,用于在第一预设时长内未接收到第二网络设备发送的邻居保活报文时,向所述第二通信协议层实体发送第一指示;
其中,所述邻居保活报文为遵循第一通信协议的报文,所述第一预设时长小于所述第一通信协议规定的保活周期;所述第一指示用于指示所述第二通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第一检测结果;
所述第二通信协议层实体,用于检测来自所述第二网络设备的所述第一通信协议报文得到第一检测结果,并将所述第一检测结果发送给所述第一通信协议层实体;
其中,所述第一检测结果包括第一信息,所述第一信息用于指示所述第二通信协议层实体发生故障的原因;
所述第一通信协议层实体接收所述第二通信协议层实体发送的所述第一检测结果,并根据所述第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
在一种可能的设计中,所述第一通信协议层实体还用于:
检测来自所述第二网络设备的第一通信协议报文得到第二检测结果;
其中,所述第二检测结果包括第二信息,所述第二信息指示所述第一通信协议层实体发生故障的原因;
所述第一通信协议层实体在根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于:
所述第一通信协议层实体根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
在一种可能的设计中,所述装置还包括第三通信协议层实体,所述第三通信协议层实体位于所述第二通信协议层实体的下层;
所述第一通信协议层实体还用于,在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;
所述第三通信协议层实体,用于检测来自所述第二网络设备的第一通信协议报文得到第三检测结果,并将所述第三检测结果发送给所述第一通信协议层实体;
其中,所述第三检测结果包括第三信息,所述第三信息指示所述第三通信协议层实体发生故障的原因;
所述第一通信协议层实体还用于接收所述第三通信协议层实体发送的第三检测结果;
所述第一通信协议层实体在根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于根据所述第一检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
在一种可能的设计中,所述装置还包括第三通信协议层实体,所述第三通信协议层实体位于所述第二通信协议层实体的下层;
所述第一通信协议层实体,还用于在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;
所述第三通信协议层实体,用于检测来自所述第二网络设备的第一通信协议报文得到第三检测结果,并将所述第三检测结果发送给所述第一通信协议层实体;
其中,所述第三检测结果包括第三信息,所述第三信息指示所述第三通信协议层实体发生故障的原因;
所述第一通信协议层实体还用于接收所述第三通信协议层实体发送的第三检测结果;
所述第一通信协议层实体在根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于根据所述第一检测结果、第二检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因在一种可能的设计中,所述第一检测结果还包括检当第二通信协议层实体检测所述第一通信协议报文正常时,向所述第一通信协议层实体发送的参数信息,所述参数信息用于指示所述第一通信协议报文正常处理的信息,所述参数信息包括所述第二通信协议层接收所述第一通信协议报文的时间点和/或发送所述第一通信协议报文的时间点。
在一种可能的设计中,所述第一通信协议层实体,还用于向所述第二通信协议层实体发送所述第一指示后,若经过第二预设时长时接收到所述第二网络设备发送的邻居保活报文,则向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文,所述第二预设时长与所述第一预设时长的和小于或者等于所述保活周期。
在一种可能的设计中,所述第一通信协议层实体,还用于向所述第二通信协议层实体发送第一指示后,若确定所述第一网络设备与所述第二网络设备通信中断,则向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文。
在一种可能的设计中,所述第三通信协议层实体在向所述第一通信协议层发送第一检测结果时,具体用于在接收到所述第三指示后,向所述第一通信协议层发送第一检测结果;
所述第一通信协议层实体在接收所述第二通信协议层实体发送的第一检测结果时,具体用于在向所述第三通信协议层实体发送所述第三指示后,接收来自所述第一通信协议层的所述第一检测结果。
在一种可能的设计中,所述第一网络设备与所述第二网络设备通信出现故障的原因包括如下至少一项:
所述第二网络设备存储故障、所述第一网络设备与所述第二通信设备之间的通信链路存在故障、所述第一网络设备上传输控制协议TCP/用户数据协议UDP链接建立失败、所述第一网络设备收到错误的遵循第一通信协议的第一通信协议报文、所述第一网络设备收到的遵循第一通信协议报文的参数和本地设备配置的参数存在冲突、所述第一网络设备配置操作错误、所述第一网络设备接收的遵循第一通信协议的报文速度慢、或者所述第一网络设备通信协议状态机错误。
在一种可能的设计中,所述保活周期与所述第一预设时长的差大于1个邻居保活报文的发送周期。
在一种可能的设计中,所述第一通信协议层实体为如下任一项:
边界网关协议BGP实体、中间系统到中间系统ISIS协议实体、开放式最短路径优先OSPF协议实体、标签分发协议LDP实体、资源预留协议RSVP实体。
在一种可能的设计中,当所述第一通信协议层实体为BGP实体或者LDP实体,所述第二通信协议层实体为传输控制协议TCP实体或者用户数据协议UDP实体;或者,
当所述第一通信协议层实体为ISIS协议实体、OSPF协议实体、或者RSVP实体中的一个,所述第二通信协议层实体为数据链路协议层实体。
在一种可能的设计中,所述第一通信协议层实体为BGP实体或者LDP实体,所述第二通信协议层实体为TCP实体或者UDP实体,所述第三通信协议层实体为数据链路协议实体。
第三方面,本申请实施例提供了一种通信设备,包括通信接口、存储器以及处理器;
所述通信接口,用于收发报文;
所述存储器,用于存储所述处理器执行的程序;
所述处理器,用于执行所述存储器存储的程序,通过所述通信接口收发报文来实现上述第一方面的任意一种设计所述的方法。
第四方面,本申请实施例提供了一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述第一方面的任意一种设计所述的方法。
第五方面,本申请实施例提供了一种芯片,所述芯片与存储器相连,用于读取并执行所述存储器中存储的软件程序,以实现上述第一方面的任意一种设计所述的方法。
附图说明
图1为本申请实施例提供的故障检测场景示意图;
图2为本申请实施例提供的故障检测方法流程图;
图3为本申请实施例提供的协议栈结构示意图;
图4为本申请实施例提供的故障检测方法示意图;
图5为本申请实施例提供的故障检测装置结构示意图;
图6为本申请实施例提供的一种网络设备结构示意图;
图7为本申请实施例提供的另一种网络设备结构示意图。
具体实施方式
本申请可以应用于通过通信协议实现通信的组网场景中。
在本申请实施例中涉及的协议层可以但不仅限于包括如下描述的至少两层:用于设备间连接的协议层、传输层、数据链路层等。
用于设备间连接的协议,比如可以包括边界网关协议(border gatewayprotocol,BGP)、中间系统到中间系统(intermediate system-to-intermediate system,ISIS)、开放式最短路径优先(open shortest path first,OSPF)、多协议标签交换(multi-protocol label switching,MPLS) 标签分发协议(label distribution protocol,LDP)、MPLS资源预留协议(resource reservation protocol,RSVP)等。
传输层,采用的协议可以是TCP或者UDP等。
需要说明的是,当用于设备间连接的协议是BGP或者LDP时,在协议栈中位于用于设备间连接的协议层的下层的协议层可以包括传输层和数据链路层。当用于设备间连接的协议是ISIS、OSPF或者RSVP时,在协议栈中位于用于设备间连接的协议层的下层的协议层包括数据链路层。本申请实施例中,通信协议层用于运行通信协议执行通信协议层对应的功能。另外,本申请实施例中将通信协议层所在的模块或者装置称为通信协议层实体。
另外,当用于设备间连接的协议是BGP或者LDP时,BGP实体或者LDP实体与下层的传输层实体和/或数据链路协议实体通信可以通过套接字(Socket)来实现,可以认为Socket 是设备间第一通信协议层与传输层通信的中间软件抽象层,它是一组接口。Socket用于描述IP地址、端口号以及协议号等信息。当用于设备间连接的协议是ISIS、OSPF或者RSVP 时,ISIS协议实体、OSPF协议实体或者RSVP实体可以通过Socket与下层的数据链路协议实体通信,还可以通过其它的通信接口与下层的数据链路层通信,本申请对此不做具体限定。
在本申请实施例中,网络设备也可以称为节点,网络设备是在网络中提供路由转发功能的设备,例如,可以是路由器、交换机、转发器、防火墙或者标签交换路由器(labelswitching router,LSR)等,不作限定。在后续描述过程中,以网络设备为例进行说明。
另外,需要说明的是,本申请实施例中的多个指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。第一网络设备或者第二网络设备等也仅用于区分描述的网络设备,而不能理解为指示或者暗示相对重要性,也不能理解为指示或者暗示顺序。
参见图1所示,两个网络设备分别为RT1和RT2,以两个网络设备建立BGP协议为例,RT1和RT2之间互为邻居设备,通过中间承载网交互BGP协议报文。而当承载网的传输链路不稳定或者网络设备故障会导致RT1和RT2之间交互BGP协议报文中断。当邻居设备间第一通信协议的连接不稳定或者中断时,需要尽快排查出不稳定或者中断原因,尽快恢复网络业务。现有一般需要启动和部署邻居设备间第一通信协议层、TCP/UDP层和数据链路层各自对应的调试程序来持续监控,等待不稳定或者中断现象再次发生时,传回监控信息进行内容分析确定故障原因。因此,现有需要多个协议层共同部署调试手段进行监控,比较繁琐,并且依赖现网故障现象再次发生,故障检测时间较长。
基于此,本申请实施例提供一种故障检测方法及装置,通过邻居设备间周期性的交互邻居保活报文,但预设时长内没有收到邻居保活报文,则触发位于用于设备间通信的协议层以下的协议层实体进行检测抓包,比如获取未正常向上层的通信协议层实体发送的第一通信协议报文,并检测未正常向上层协议层实体发送第一通信协议报文的原因,然后传输给用于设备间通信的协议层,从而用于设备间通信的协议层能够确定本设备是否收到邻居设备发送的报文,若收到,确定收到的第一通信协议报文在用于设备间通信的协议层以下的通信协议层实体未正常发送的原因,进而能够确定本端设备发生的故障原因,若未收到,则确定对端设备或者传输链路发生故障。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
参见图2所示,为本申请实施例提供的一种故障检测方法流程示意图,所述方法包括:
S201,第一网络设备的第一通信协议层实体在第一预设时长内未接收到第二网络设备发送的邻居保活报文时,向位于所述第一通信协议层实体下层的第二协议层实体发送第一指示。
示例性的,第一网络设备中可以配置监控定时器,监控定时器的时长配置为第一预设时长。第一网络设备的第一通信协议层实体收到第二网络设备发送的邻居保活报文时,启动或者重置监控定时器,监控定时器超时时,则向位于第一通信协议层实体下层的第二通信协议层实体发送第一指示。
其中,所述邻居保活报文为遵循第一通信协议的报文,所述第一预设时长小于所述第一通信协议规定的保活周期;所述第一指示用于指示所述第二通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第一检测结果。
应当理解的是,第一通信协议层实体位于第一通信协议层,并且第一通信协议层运行第一通信协议来执行处理功能。
其中,第一通信协议报文可以但不仅限于是一种控制报文,保活报文属于该第一通信协议报文中的一种。示例性的,比如第一通信协议为控制协议报文,BGP报文,BGP报文包括保活(英文:keepalive)类型的报文(KEEPALIVE报文)、更新(英文:update)类型的报文(UPDATE报文)、通告(英文:notification)类型的报文(NOTIFICATION报文)、开放(英文:open)类型的报文(OPEN报文)等。
其中,所述第一检测结果包括第一信息,所述第一信息用于指示所述第二通信协议层实体发生故障的原因。
S202,所述第一网络设备的第一通信协议层实体接收所述第二通信协议层实体发送的所述第一检测结果,并根据所述第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
示例性的,第一通信协议层实体在向位于第一通信协议层实体下层的第二通信协议层实体发送第一指示时,第一通信协议层实体可以通过Socket或者其它通信接口指示第二通信协议层实体检测的第一通信协议报文所需满足的条件,其中条件可以包括:第一通信协议的协议号,源IP以及源端口号、目的IP、或者目的端口号等信息。第二通信协议层实体在接收到第一指示后,根据条件进行抓包检测,比如获取第二通信协议层实体接收到的第一通信协议报文,但该第一通信协议报文由于某种原因未正常向所述第一通信协议层实体发送,该第一通信协议报文可以称之为异常报文,从而第二协议层实体记录下该异常报文未正常向所述第一通信协议层实体发送的原因,并将原因作为第一检测结果发送给第一通信协议层实体。除此之外,第二通信协议实体在检测到异常报文时,还有可能接收到正常报文,则第二通信协议实体还可以将包括收到的满足条件的正常报文的参数信息也携带在第一检测结果中发送给第一通信协议层实体,从而第一通信协议层实体接收到的第一检测结果可能包括正常第一通信协议报文的参数信息以及异常第一通信协议报文未正常向第一通信协议层实体发送的原因。所述参数信息用于指示所述第一通信协议报文正常处理的信息。示例性的,所述参数信息可以包括所述第二通信协议层接收所述第一通信协议报文的时间点和/或发送所述第一通信协议报文的时间点等。未正常发送的异常报文是指该第一通信协议报文延迟发送或者未发送,或者被直接丢弃的第一通信协议报文。当然,第一通信协议层实体在接收到第一指示,进行抓包检测时,可能未接收来自第二网络设备满足条件的报文,基于此,第二通信协议层得到的第一检测结果则为空。当然,第一通信协议层实体在接收到第一指示后进行抓包检测时,可能收到的来自第二网络设备满足条件的报文均为正常的报文,则第二通信协议实体可以将包括收到的满足条件的正常报文的参数信息作为第一检测结果发送给第一通信协议层实体,从而第一通信协议层实体接收到的第一检测结果可能仅包括正常报文的参数信息。
在一种可能的实施方式中,第一通信协议层实体除了指示第二通信协议层实体进行抓包检测之外,第一通信协议层实体自身也进行抓包检测。示例性的,所述第一网络设备的第一通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第二检测结果;基于此,在第一通信协议层实体在根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,可以根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
其中,所述第二检测结果包括第二信息,所述第二信息指示所述第一通信协议层实体发生故障的原因。
示例性的,位于第一通信协议层实体下层的通信协议层实体除了包括第二通信协议层实体以外,还可以包括其它的协议层实体,比如还包括第三通信协议层实体,第三通信协议层实体位于第三通信协议层,第三通信协议层位于第二通信协议层的下层。
所述第一网络设备的第一通信协议层实体在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;其中,所述第三通信协议层实体检测的第一通信协议报文遵循所述第一通信协议,所述第三检测结果包括第三信息,第三信息指示所述第三通信协议层实体发生故障的原因;所述第一网络设备的第一通信协议层实体接收所述第三通信协议层实体发送的第三检测结果;所述根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,根据所述第一检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
当然,在包括第三通信协议层实体的情况下,如果第一通信协议层实体自身也参与抓包检测时,第一通信协议层实体根据第一检测结果、第二检测结果以及第三检测结果确定所述第一网络设备与所述第二网络设备通信出现故障的原因。
示例性的,第三通信协议层实体在接收到第一指示后,根据条件进行抓包检测,比如获取第三通信协议层实体接收到的第一通信协议报文,但该第一通信协议报文由于某种原因未正常向所述第一通信协议层实体发送,该第一通信协议报文可以称之为异常报文,从而第三通信协议层实体记录下该异常报文未正常向所述第一通信协议层实体发送的原因,并将原因作为第三检测结果发送给第一通信协议层实体。除此之外,第三通信协议实体在检测到异常报文时,还有可能接收到正常报文,则第三通信协议实体还可以将包括收到的满足条件的正常第一通信协议报文的参数信息也携带在第三检测结果中发送给第一通信协议层实体,从而第一通信协议层实体接收到的第三检测结果可能包括正常第一通信协议报文的参数信息以及异常报文未正常向第一通信协议层实体发送的原因。该参数信息用于指示所述第一通信协议报文正常处理的信息。示例性的,所述参数信息可以包括所述第三通信协议层接收所述第一通信协议报文的时间点和/或发送所述第一通信协议报文的时间点等。未正常发送的异常报文是指该第一通信协议报文延迟发送或者未发送,或者被直接丢弃的第一通信协议报文。当然,第一通信协议层实体在接收到第一指示,进行抓包检测时,可能未接收来自第二网络设备满足条件的报文,基于此,第三通信协议层得到的第三检测结果则为空。当然,第一通信协议层实体在接收到第一指示后进行抓包检测时,可能收到的来自第二网络设备满足条件的报文均为正常的报文,则第三通信协议实体可以将包括收到的满足条件的正常报文的参数信息作为第三检测结果发送给第一通信协议层实体,从而第一通信协议层实体接收到的第三检测结果可能仅包括正常报文的参数信息。
示例性的,第一通信协议层实体在向第三通信协议层实体发送第二指示时,一种方式是,第一通信协议层实体通将第二指示发送给第二通信协议层实体,第二通信协议层实体在接收到第二指示时,不对第二指示携带的数据内容进行解析处理,直接将第二指示转发给第二通信协议层实体。另一种方式是,第一通信协议层实体将第二指示直接发送给第三通信协议层实体。又一种方式是,第一通信协议层实体仅向第二通信协议层实体发送第一指示,该第二通信协议层实体对第一指示解析后,根据第一指示确定需要进行抓包检测,从而第二通信协议层实体再通知给第三通信协议层实体也进行抓包检测,即第二通信协议层实体向第三通信协议层实体发送第二指示,第二指示用于指示第三通信协议层实体进行抓包检测。
需要说明的是,本申请实施例中的邻居设备之间采用保活机制来确定对端设备的状态。邻居设备双方建立通信连接后并不是一直存在数据交互,有些连接会在数据交互完毕后,主动释放连接,而有些不会,那么在长时间无数据交互的时间段内,交互双方都有可能出现掉电、死机、异常重启等各种意外,当这些意外发生之后,这些通信连接并未来得及正常释放,那么,连接的另一方并不知道对端的情况,它会一直维护这个连接,长时间的积累会导致非常多的半打开连接,造成系统资源的消耗和浪费,为了解决这个问题,利用保活报文来实现。邻居设备双方在确定在固定保活周期内如果没有第一通信协议报文需要向对端设备发送的情况下,会向对端设备发送保活报文。
示例性的,第一通信协议为BGP时,邻居保活报文可以是keepalive报文或者updata 报文,第一通信协议为LDP时,邻居保活报文可以是keepalive报文或者updata报文,第一通信协议为OSPF或者IS-IS协议时,邻居保活报文可以是hello报文,第一通信协议是 RSVP-TE时,邻居保活报文可以是接口状态刷新报文。
作为一种示例,本申请实施例中的邻居保活报文可以包括第一通信协议对应的保活报文,还可以包括遵循第一通信协议的其它类型报文。
如下示例两种,在第一网络设备的第一通信协议层实体指示下层的至少一个通信协议层实体进行抓包检测后,通知下层的至少一个通信协议层实体停止进行抓包检测的方式。至少一个通信协议层实体可以包括第二通信协议层实体,还可以包括第三通信协议层实体,以第二通信协议层实体为例进行说明。
第一种可能的方式是:第一网络设备的第一通信协议层实体向位于第一通信协议层实体下层的第二通信协议层实体发送第一指示后,若经过第二预设时长时接收到所述第二网络设备发送的邻居保活报文,则向所述至少一个通信协议层实体发送第三指示,所述第三指示用于指示所述至少一个通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文,所述第二预设时长与所述第一预设时长的和小于所述保活周期。
第二种可能的方式是:第一网络设备的第一通信协议层实体向位于第一通信协议层实体下层的第二通信协议层实体发送第一指示后,确定所述第一网络设备与所述第二网络设备通信中断,向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文。
示例性的,在保活周期内第一网络设备的第一通信协议层实体未收到来自第二网络设备的邻居保活报文,则确定所述第一网络设备与所述第二网络设备通信中断。
示例性的,第一通信协议实体确定的故障原因可以包括多种,如下示例几种:
所述第二网络设备存储故障、所述第一网络设备与所述第二通信设备之间的通信链路存在故障、未收到通信协议的保活报文、TCP/UDP链接建立失败、收到错误的通信协议报文、收到的报文参数和本地设备配置参数存在冲突、配置操作错误、设备内部通信协议报文信息流交互慢、通信协议状态机错误。
示例性的,这些故障原因诊断后分别用于诊断和修复网络、诊断和调整本端和对端邻居的错误、诊断和调整设备的配置操作以及诊断设备的内部故障。下面针对部分故障原因为样例做介绍。
(1)、通信协议在超时周期内没有收到保活报文:
No keepalive message are received,and the internal communication ofthe device is normal.
此故障信息用于说明协议报文在本设备内部的传递是正常的,提示用户检查和诊断链路传输是否存在故障或者丢包,所述第二网络设备是否存储故障。
(2)、TCP/UDP链接建立失败导致通信协议超时中断:
Tcp connect failed because md5/keychain mismatch(由于密钥不匹配导致TCP连接失败);
Tcp connect failed because no route(不存在路由导致TCP连接失败);
Tcp connect failed because no syn packet received(无同步数据包接收导致TCP连接失败);
Tcp connect failed because only config local or neighbor's keychain(由于只配置本地或邻居的密钥链导致TCP连接失败);
Tcp connect failed because socket creat path failed,errcode code isxxxx(socket check route failed,套接字检查路径失败)(套接字创建路径失败导致TCP连接失败,错误代码是xxxx);
Tcp connect failed because socket creat path failed,errcode code isxxxx(socket check arp failed,套接字检查地址解析协议失败);
Tcp connect failed because peer addr no arp(由于peer地址没有遵循地址解析协议导致 TCP连接失败)。
此故障信息用于说明TCP/UDP链接建立失败,提示用户检查和诊断对应的信息。
(3)、收到错误的通信协议报文:
An Open message with an incorrect version is received.The version ofthe received message is xxx,and the expected version is xxx(Open消息接收版本错误);
An Open message with optional parameter data whose length is invalidis received.The length of the received data is xxx,and the expected datalength is xxx(Open消息中包括长度无效的可选参数数据);
Received error update msg,Community attribute length error,currentlength is xxx,the right value is an integer multiple of xxx(接收到错误更新消息,社区属性长度错误,当前长度为 XXX,正确长度应为XX的整数倍)。
此故障信息用于说明对端设备发送的通信协议报文存在错误,提示用户检查和诊断对端设备故障。
(4)收到的报文参数和本地设备配置参数存在冲突:
The HoldTime negotiation through Open messages fails.The HoldTimevalue of the peer is xxx,and the MinHoldTime value of the local device is xx。The expected HoldTime value of the peer is 0or an integer larger than 2s andthe local MinHoldTime value(通过Open消息协商保活周期失败,peer的保活周期为xxx,本设备最小保活周期为xx,期望对端peer发过来的保活周期为0,或者是大于2s和本地配置的最小保活周期。
需要说明的是,一个配置了BGP协议的通信设备和其它运行了BGP协议的通信设备路由器形成邻居,可以被称为peer,peer也可以认为是BGP实体。
Received Notification from neighbor,CEASE/Connection Rejected(接收对端设备的通知消息,指示拒绝停止或者连接)。
此故障信息用于说明对端设备发送的通信协议报文参数和本地设备参数存在冲突,提示用户检查和诊断对端设备配置参数。
(5)配置操作错误导致通信协议中断:
The local address is x.x.x,and the peer address is x.x.x.x.The peerconnect-interface command configuration on the local end is incorrect,or thepeer address is incorrect(本地地址是 x.x.x,peer地址是x.x.x.x,本地的peer连接接口命令配置不正确,或peer地址不正确);
The BGP router ID is 0(BGP路径标识符为0);
The shutdown command is run in the BGP view(BGP视图中运行关闭命令);
This device cfg change:undo peer(设备配置被更改:撤消peer);
This device cfg change:peer tcp-mss(设备配置有变更:peer tcp-mss标识设备配置有变更的伪代码);
此故障信息用于说明本地设备操作导致通信协议中断,提示用户检查和诊断本地设备的配置操作。
(6)设备内部通信协议报文信息流交互慢导致通信协议中断
This device Hold Timer Expired.In the direction of receiving,Deviceprocessing packet timeout,LDM received at xxx,Socket received at xxx,Bgpreceived at xxx(设备保活周期的计时器已过期。在接收方向,设备处理数据包超时,LDM在XXX接收,套接字在XXX接收, BGP在XXX接收。)其中,LDM是网络设备上运行的系统内部的软件模块。
此故障信息用于说明本地设备内部报文交互慢,提示用户检查和诊断本地设备。
(7)通信协议状态机错误导致通信协议中断
The BGP does not start the connection state machine,and the SOCKcomponent fails to be registered(bgp不启动连接状态机,sock组件注册失败);
其中,sock组件表示设备内部与BGP协议相关的内部软件模块,在加载时的错误,结果会导致BGP无法使用socket与别的邻居设备通信。
When the optional parameter in the Open message is processed,the MBUFfunction fails to be invoked(当处理open消息中的可选参数时,无法调用mbuf函数);
In the direction of receiving,Socket received packet error,Hcid isxxx,ErrCode is xxx, SubErrCode is xxx(在接收方向上,套接字接收数据包错误,其中,Hcid、ErrCode、SubErrCode 指示错误原因码)。
The Keepalive message sent failed because socket return error xxx(由于套接反馈错误xxx 导致保活报文接收失败);
The socket state machine is incorrect,or the pipe is not enabled(套接字状态机错误,或者套接字对应的接口未启动)。
此故障信息用于说明本地设备内部通信协议状态机错误,提示用户检查和诊断本地设备。
在一种可能的实施方式中,位于第一通信协议层实体下层的至少一个通信协议层实体在向第一通信协议层实体发送检测结果时,一种方式是,抓包检测到一个异常报文,可以将该异常报文对应的检测结果发送给第一通信协议层实体。针对此种方式,第一通信协议层实体将下层的检测结果作为最终诊断结果,例如第一通信协议层由于两端配置的密钥不一致而上报异常诊断结果。另一种方式,在接收到用于通知停止进行抓包检测的第三指示时,将抓包检测到的各个异常报文的检测结果和/或正常报文的参数值统一后发送给第一网络设备的第一通信协议层实体,从而第一网络设备的第一通信协议层实体在向所述至少一个通信协议层实体发送用于通知停止进行抓包检测的第三指示后,接收所述至少一个通信协议层实体发送的检测结果。针对此种方式,第一通信协议层实体将下层(包括第二通信协议层实体,还可以包括第三通信协议层实体等)的抓包数据汇总分析给出最终的诊断结果,例如下层收到了正常的报文,但是由于设备内部通讯的拥塞,导致最终报文在超时周期内未上达第一通信协议层实体,此时第一通信协议层实体要综合诊断出设备内部拥塞的具体通讯通道。
应当理解的是,第一网络设备的第一通信协议层实体在进行确定通信故障的原因时所根据的检测结果可以包括一个或者多个。比如位于第一通信协议层实体下层的通信协议层实体包括第二通信协议层实体和第三通信协议层实体,第一网络设备的第一通信协议层实体接收到的检测结果可以包括第二通信协议层实体发送的第一检测结果和第二通信协议层实体发送的第三检测结果。如果第一通信协议层实体自身也参与抓包检测时,在进行确定通信故障的原因时所根据的检测结果可以包括第一检测结果、第二检测结果和第三检测结果。
另外,第二通信协议层实体和第三通信协议层实体在向第一通信协议层实体发送检测结果的时候,一种方式是,第三通信协议层实体将第三检测结果发送给第一通信协议层实体,第二通信协议层实体将第三检测结果和自身抓包检测得到的第一检测结果合并后发送给第一通信协议层实体。另一种方式是,第三通信协议层实体将第三检测结果直接发送给第一通信协议层实体,第二通信协议层实体将第一检测结果直接发送给第一通信协议层实体,从而第一通信协议层实体接收到的检测结果包括所述第一检测结果和第三检测结果。
在一种可能的实施方式中,第一网络设备的第一通信协议层实体获取检测结果后,当所述检测结果为空时,所述第一网络设备的第一通信协议层实体确定所述第一网络设备与所述第二网络设备的通信链路存在故障,或者所述第二网络设备存在故障。比如,第一网络设备的第一通信协议层实体在接收到检测结果中包括的第二通信协议层实体发送的第一检测结果和第三通信协议层实体发送的第三检测结果均为空,即第二通信协议层实体和第三通信协议层实体检测到的第一通信协议报文的数量均为0,可以确定协议报文在第一网络设备内部传递是正常,则存在故障可能是第二网络设备,或者第一网络设备与第二网络设备之间的通信链路。当所述检测结果不为空时,所述第一网络设备的第一通信协议层实体根据检测结果确定所述第一网络设备发生故障的原因。比如,检测结果指示安全认证导致出现异常报文,设备异常错误导致出现异常报文,或者,设备内部通信管道队列延迟导致出现异常报文等。
需要说明的是,本申请实施例中不同的第一通信协议规定的保活周期(holdtimer)可能不同。比如,BGP规定的保活周期为180秒(s);LDP规定的保活周期为45s,OSPF协议规定的保活周期为40s,IS-IS协议规定的保活周期为30s,RSVP-TE规定的接口状态超时周期为157s,可以认为RSVP-TE规定的接口状态超时周期为RSVP-TE的保活周期。
在一种可能的实施方式中,本申请实施例中可以根据第一通信协议的保活周期来确定第一预设时长。示例性的,所述保活周期与所述第一预设时长的差大于1个邻居保活报文的接收周期。比如,所述保活周期与所述第一预设时长的差大于1个邻居保活报文的发送周期,并且小于2个邻居保活报文的发送周期。网络设备一般每间隔发送周期对应的时长来发送报文邻居保活报文。
需要说明的是,不同的第一通信协议对应的邻居保活报文的接收周期也可能不相同。
以下示例几种第一通信协议对应的第一预设时长的设置方式:
一种示例中,BGP规定的保活周期为180s,其等于3个邻居保活报文的接收周期。比如,第一预设时长可以设置为T=(2/3)×holdtimer-T1,其中T表示第一预设时长,holdtimer 表示保活周期,0<T1<(1/3)×holdtimer。比如T1=2s,则第一预设时长T=2/3holdtimer-2=118s。
另一种示例中,LDP规定的保活周期为45s,其等于3个邻居保活报文的接收周期。比图,第一预设时长可以设置为T=(2/3)×holdtimer-T1,其中T表示第一预设时长,holdtimer 表示保活周期,0<T1<(1/3)×holdtimer。比如T1=2s,则第一预设时长T=2/3holdtimer-2=28s。
再一种示例中,OSPF协议规定的保活周期为40s,其等于4个邻居保活报文的接收周期;比如,第一预设时长可以设置为T=(3/4)×holdtimer-T1,其中T表示第一预设时长,holdtimer表示保活周期,0<T1<(1/4)×holdtimer。比如T1=2s,则第一预设时长 T=2/3holdtimer-2=28s。
又一种示例中,IS-IS协议规定的保活周期为30s,其等于3个邻居保活报文的接收周期;比图,第一预设时长可以设置为T=(2/3)×holdtimer-T1,其中T表示第一预设时长,holdtimer表示保活周期,0<T1<(1/3)×holdtimer。比如T1=2s,则第一预设时长T=(2/3)×holdtimer-2=18s。
又一种示例中,RSVP-TE规定的接口状态超时周期为157s,其等于3个邻居保活报文的接收周期。RSVP-TE协议规定的报文刷新间隔为30s。比如,第一预设时长可以设置为 T=接收状态超时周期-K×报文刷新间隔。1<K<2,比如K=1.5,则第一预设时长T=接收状态超时周期-K×报文刷新间隔=157-1.5×30=112s。
下面以BGP协议为例,对本申请实施例提供的方案进行详细说明。第一网络设备以RT1 为例,第二网络设备以RT2为例。RT1和RT2遵循的协议栈结构可以参见图3所示。
RT1和RT2通过BGP协议形成邻居后,基于BGP协议交互保活报文,同时监控保活报文的收发。具体的,参见图4所示。
S401,RT1的BGP实体向RT2发送保活报文,所述保活报文遵循BGP,比如keepalive报文。
示例性的,BGP协议规定保活周期为180s,如果没有收到RT2的反馈的保活报文,则RT1在上一次发送保活报文后间隔60s再次发送保活报文。这里以RT1在60s内收到RT2 反馈的保活报文为例。
S402,RT1的BGP实体接收RT2反馈的保活报文。RT1启动监控定时器。
S403,RT1的BGP实体接收RT2发送的BGP协议报文(邻居保活报文)。RT1重置监控定时器。监控定时器的时长为第一预设时长T。
S404a,RT1的BGP实体在定时器超时时,即经过第一预设时长,RT1的BGP实体未接收到RT2发送的邻居保活报文,通过Socket向TCP/UDP实体发送第一指示。第一指示用于指示TCP/UDP实体检测来自所述RT2的BGP报文得到第一检测结果。
S404b,TCP/UDP实体接收到所述第一指示后,向数据链路协议实体发送第二指示。第二指示用于指示数据链路协议实体检测来自所述RT2的BGP报文得到第三检测结果。
S405,RT1的BGP实体在定时器超时时,检测来自所述第二网络设备的BGP报文得到第二检测结果。
示例性的,BGP实体能检测和诊断的内容包括如下:
收到错误的通信协议报文,例如:An Open message with an incorrect versionis received. The version of the received message is xxx,and the expectedversion is xxx。
收到的报文参数和本地设备配置参数存在冲突,例如:The HoldTimenegotiation through Open messages fails.The HoldTime value of the peer isxxx,and the MinHoldTime value of the local device is xx。The expected HoldTimevalue of the peer is 0or an integer larger than 2s and the local MinHoldTimevalue。
配置操作错误:The shutdown command is run in the BGP view(BGP视图下执行了 shutdown命令)。
设备内部通信协议报文信息流交互慢:This device Hold Timer Expired.Inthe direction of receiving,Device processing packet timeout,LDM received atxxx,Socket received at xxx,Bgp received at xxx。
通信协议状态机错误:The BGP does not start the connection statemachine,and the SOCK component fails to be registered。
S406,TCP/UDP实体通过Socket接收到第一指示后,检测来自RT2的遵循BGP的报文。
其中,检测来自RT2的遵循BGP的报文可以包括正常报文和异常报文。
TCP/UDP实体的异常报文可以包括:安全认证导致出现异常报文,设备异常错误导致出现异常报文等。
S407,数据链路协议实体接收到第一指示后,检测来自RT2的遵循BGP的报文。
数据链路协议实体抓取的异常报文可以包括:设备异常错误导致出现异常报文,设备内部通信管道队列延迟导致出现异常报文等。
S408,确定RT2 Down时,BGP实体发送第二指示,第二指示用于通知TCP/UDP实体和数据链路协议实体停止抓取来自RT2的异常报文。
示例性的,BGP实体发送第二指示的条件存在如下两种:
第一种,BGP实体在保活周期内未收到RT2发送的任何BGP协议报文,则确定RT2Down。图4中以第一种为例。
第二种,在BGP实体发送第一指示之后,且在第二预设时长内(即在保活周期内)收到了RT2发送的邻居保活报文,则发送第二指示。
S409,TCP/UDP实体接收到所述第二指示后,停止抓取来自RT2的异常报文,并将对异常报文进行检测得到的第一检测结果发送给BGP实体。
示例性的,TCP/UDP实体能够检测和诊断的结果包括如下至少一项:
TCP/UDP实体未收到BGP协议的保活报文,例如:No keepalive message arereceived,and the internal communication of the device is normal.(没有收到报文,设备内部通讯正常)。
TCP/UDP链接建立失败,例如:Tcp connect failed because only config localor neighbor's keychain(由于只配置本地或邻居的密钥链导致TCP连接失败)。
通信协议状态机错误,例如:The socket state machine is incorrect,or thepipe is not enabled (套接字状态机错误,或者套接字对应的接口未启动)。
S410,数据协议层实体接收到所述第二指示后,停止抓取来自RT2的异常报文,并将对异常报文进行检测得到的第二检测结果发送给BGP实体。
示例性的,数据协议层实体能够检测和诊断的结果包括如下至少一项:
未收到通信协议的保活报文,例如:No keepalive message are received,andthe internal communication of the device is normal.(没有收到报文,设备内部通讯正常)。
通信协议状态机错误,例如:When the optional parameter in the Openmessage is processed, the MBUF function fails to be invoked(当处理open消息中的可选参数时,无法调用mbuf函数)。
S411,BGP实体根据所述第一检测结果、所述第二检测结果和第三检测结果确定RT1 和RT2之间遵循BGP建立的链路故障原因。
S409和S410以BGP实体发送第二指示的条件中的第一种为例进行说明的。针对BGP实体发送第二指示的条件中的第二种,BGP实体对检测结果是否诊断不做强制要求,可以诊断或者不诊断,具体的可以灵活配置。
本申请实施例提供的方案,通过新增加对第一通信协议邻居保活报文的监控,可以实时地触发获取足够的第一通信协议的报文收发情况,进行预防检测和诊断,无需等待故障重现。第一通信协议层面可以将获取到的检测结果进行分类,得到的诊断信息丰富,能较全方面地诊断出通信协议邻居超时中断的故障原因,并且能非常方便地提供给任何负责故障诊断的管理设备。
基于与上述方法实施例同样的发明构思,本申请实施例提供了一种故障检测装置,所述故障检测装置可以应用于网络设备,以第一网络设备为例。该装置具体用于实现图2至图4所示的实施例中第一网络设备执行的方法。参见图5所示,该装置可以包括:
第一通信协议层实体501和第二通信协议层实体502,所述第二通信协议层实体502位于所述第一通信协议层的下层;
第一通信协议层实体501,用于在第一预设时长内未接收到第二网络设备发送的邻居保活报文时,向所述第二通信协议层实体502发送第一指示;
所述邻居保活报文为遵循第一通信协议的报文,所述第一预设时长小于所述第一通信协议规定的保活周期;所述第一指示用于指示所述第二通信协议层实体502检测来自所述第二网络设备的第一通信协议报文得到第一检测结果;
所述第二通信协议层实体502,用于检测来自所述第二网络设备的第一通信协议报文得到第一检测结果,并将所述第一检测结果发送给所述第一通信协议层实体501;
其中,所述第一检测结果包括第一信息,所述第一信息用于指示所述第二通信协议层实体502发生故障的原因;
所述第一通信协议层实体501接收所述第二通信协议层实体502发送的所述第一检测结果,并根据所述第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
在一种可能的设计中,所述第一通信协议层实体501还用于:
检测来自所述第二网络设备的第一通信协议报文得到第二检测结果;
其中,所述第一通信协议层实体501检测的第一通信协议报文遵循所述第一通信协议,所述第二检测结果包括第二信息,所述第二信息指示所述第一通信协议层实体501发生故障的原因;
所述第一通信协议层实体501在根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于:
所述第一通信协议层实体501根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
在一种可能的设计中,所述装置还包括第三通信协议层实体503,所述第三通信协议层实体503位于所述第二通信协议层实体502的下层;
所述第一通信协议层实体501还用于在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体503发送第二指示,所述第三通信协议层实体503位于所述第二通信协议层实体502的下层,所述第二指示用于指示所述第三通信协议层实体503检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;
所述第三通信协议层实体503,用于检测来自所述第二网络设备的第一通信协议报文得到第三检测结果,并将所述第三检测结果发送给所述第一通信协议层实体501;
其中,所述第三检测结果包括第三信息,所述第三信息指示所述第三通信协议层实体 503发生故障的原因;
所述第一通信协议层实体501还用于接收所述第三通信协议层实体503发送的第三检测结果;
所述第一通信协议层实体501在根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于根据所述第一检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
在一种可能的设计中,所述装置还包括第三通信协议层实体503,所述第三通信协议层实体503位于所述第二通信协议层实体502的下层;
所述第一通信协议层实体501,还用于确定在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体503发送第二指示,所述第三通信协议层实体503位于所述第二通信协议层实体502的下层,所述第二指示用于指示所述第三通信协议层实体503检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;
所述第三通信协议层实体503,用于检测来自所述第二网络设备的第一通信协议报文得到第三检测结果,并将所述第三检测结果发送给所述第一通信协议层实体501;
其中,所述第三通信协议层实体503检测的第一通信协议报文遵循所述第一通信协议,所述第三检测结果包括第三信息,第三信息指示所述第三通信协议层实体503发生故障的原因;
所述第一通信协议层实体501还用于接收所述第三通信协议层实体503发送的第三检测结果;
所述第一通信协议层实体501在根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于根据所述第一检测结果、第二检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
在一种可能的设计中,所述第一检测结果还包括当第二通信协议层实体检测所述第一通信协议报文正常时,向所述第一通信协议层实体发送的参数信息,所述参数信息用于指示所述第一通信协议报文正常处理的信息。示例性的,所述参数信息包括所述第二通信协议层接收所述第一通信协议报文的时间点和/或发送所述第一通信协议报文的时间点。
在一种可能的设计中,所述第一通信协议层实体501,还用于向所述第二通信协议层实体502发送所述第一指示后,若经过第二预设时长时接收到所述第二网络设备发送的邻居保活报文,则向所述第二通信协议层实体502发送第三指示,所述第三指示用于指示所述第二通信协议层实体502停止检测来自所述第二网络设备的第一通信协议报文,所述第二预设时长与所述第一预设时长的和小于或者等于所述保活周期。
在一种可能的设计中,所述第一通信协议层实体501,还用于向所述第二通信协议层实体502发送第一指示后,若确定所述第一网络设备与所述第二网络设备通信中断,则向所述第二通信协议层实体502发送第三指示,所述第三指示用于指示所述第二通信协议层实体502停止检测来自所述第二网络设备的第一通信协议报文。
在一种可能的设计中,所述第三通信协议层实体503在向所述第一通信协议层发送第一检测结果时,具体用于在接收到所述第三指示后,向所述第一通信协议层发送第一检测结果;
所述第一通信协议层实体501在接收所述第二通信协议层实体502发送的第一检测结果时,具体用于在向所述第三通信协议层实体503发送所述第三指示后,接收来自所述第一通信协议层的所述第一检测结果。
在一种可能的设计中,所述第一网络设备与所述第二网络设备通信出现故障的原因包括如下至少一项:
所述第二网络设备存储故障、所述第一网络设备与所述第二通信设备之间的通信链路存在故障、所述第一网络设备上传输控制协议TCP/用户数据协议UDP链接建立失败、所述第一网络设备收到错误的遵循第一通信协议的第一通信协议报文、所述第一网络设备收到的第一通信协议报文的参数和本地设备配置的参数存在冲突、所述第一网络设备配置操作错误、所述第一网络设备遵循第一通信协议的第一通信协议报文传输速度慢、或者所述第一网络设备通信协议状态机错误。
在一种可能的设计中,所述保活周期与所述第一预设时长的差大于1个邻居保活报文的发送周期。
在一种可能的设计中,所述第一通信协议层实体501为如下任一项:BGP实体、ISIS协议实体、OSPF协议实体、LDP实体、RSVP实体。
在一种可能的设计中,当所述第一通信协议层实体501为BGP实体或者LDP实体,所述第二通信协议层实体502为TCP实体或者UDP实体;或者,
当所述第一通信协议层实体501为ISIS协议实体、OSPF协议实体、或者RSVP实体中的一个,所述第二通信协议层实体502为数据链路协议实体。
在一种可能的设计中,所述第一通信协议层实体501为BGP实体或者LDP实体,所述第二通信协议层实体502为TCP实体或者UDP实体,所述第三通信协议层实体503为数据链路协议实体。
参见图6所示,为本申请实施例提供的一种网络设备的结构示意图,以第一网络设备为例,第一网络设备包括控制板610、交换网板620、接口板630以及接口板640。控制板610可以用于执行第一通信协议,具体用于执行图2-4任一实施例中网络设备所执行的方法。控制板610还可以通过执行第一通信协议生成路由表,并向接口板630和640发送路由表。例如,网络设备可以只包括一个控制板和一个接口板,不包括交换网板。当然网络设备可以包括两个以上的接口板。当网络设备只包括一个接口板,不包括交换网板时,经由该接口板的入端口接收的IP报文经该接口板处理后,可以从该接口板的出端口出去。当网络设备包括多个接口板,并包括交换网板时,经由第二网络设备的一个接口板的入端口接收的IP报文经交换网板处理后,可以从第二网络设备的另一个接口板的出端口出去。
接口板630可以通过查找路由表,对IP报文进行转发。具体来说,接口板630包括中央处理器631、网络处理器632、物理接口卡633以及存储器634。中央处理器631可以接收中央处理器611发送的路由表,并将路由表保存至存储器634。物理接口卡633可以用于接收路由器1发送的IP报文。网络处理器632可以在存储器634的路由表中查找与物理接口卡633接收的IP报文匹配的路由表项,并根据匹配的路由表项,向交换网板620发送IP 报文。交换网板620可以用于将来自一个接口板的IP报文交换到另一接口板。例如,交换网板620可以将来自接口板630的IP报文交换到接口板640。具体地,交换网板620可以以信元交换的方式将来自接口板630的IP报文交换到接口板640。举例来说,网络处理器 632可以获取IP报文中的目的IP地址。网络处理器632可以根据最长前缀匹配算法在路由表中查找与IP报文匹配的路由表项,并根据与IP报文匹配的路由表项确定出端口。与IP 报文匹配的路由表项中包含了出端口的标识。网络处理器632向交换网板620发送的IP报文到达交换网板620前,接口板630可以对IP报文进行队列调度和管理。
接口板640可以通过查找路由表,对IP报文进行转发。接口板640包括中央处理器641、网络处理器642、物理接口卡643以及存储器644。中央处理器641可以接收中央处理器611 发送的路由表,并将路由表保存至存储器644。网络处理器642可以用于接收来自交换网板 620的IP报文。来自交换网板620的IP报文可以是物理接口卡633接收的路由器1发送的 IP报文。网络处理器642可以在存储器644的路由表中查找与来自交换网板620的IP报文匹配的路由表项,并根据匹配的路由表项,向物理接口卡643发送IP报文。物理接口卡643可以用于向路由器1 发送IP报文。网络处理器642向物理接口卡643发送的IP报文到达物理接口卡643前,接口板640可以对IP报文进行队列调度和管理。
参见图7所示,为本申请实施例提供的另一种网络设备的结构示意图。第一网络设备包括通信接口710、处理器720以及存储器730。处理器720通过通信接口710收发数据流量以及检测请求报文、检测响应报文,并用于实现图2至图4中所述的第一网络设备所执行的方法。在实现过程中,处理流程的各步骤可以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成。处理器720包括通用处理器、网络处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等中的一个或者多个,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。处理器720用于实现上述方法所执行的程序代码可以存储在存储器 730中。存储器730可以是非易失性存储器,比如硬盘(英文:hard disk drive,缩写:HDD) 或固态硬盘(英文:solid-state drive,缩写:SSD)等,还可以是易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM)。存储器730 是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
本申请实施例中不限定上述通信接口710、处理器720以及存储器730之间的具体连接介质。本申请实施例在图7中以存储器730、处理器720以及通信接口710之间通过总线740连接,总线在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述实施例提供的方法。所述计算机存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
基于以上实施例,本申请实施例还提供一种芯片系统,该芯片系统包括处理器,用于实现上述实施例中所涉及的功能,例如,例如生成或处理上述方法中所涉及的数据和/或信息。可选地,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和 /或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (26)

1.一种故障检测方法,其特征在于,包括:
第一网络设备的第一通信协议层实体在第一预设时长内未接收到第二网络设备发送的邻居保活报文时,向位于第一通信协议层实体下层的第二通信协议层实体发送第一指示;
其中,所述邻居保活报文为遵循第一通信协议的报文,所述第一预设时长小于所述第一通信协议规定的保活周期;所述第一指示用于指示所述第二通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第一检测结果;所述第一检测结果包括第一信息,所述第一信息用于指示所述第二通信协议层实体发生故障的原因;
所述第一网络设备的第一通信协议层实体接收所述第二通信协议层实体发送的所述第一检测结果,并根据所述第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
2.如权利要求1所述的方法,其特征在于,还包括:
所述第一网络设备的第一通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第二检测结果;
其中,所述第二检测结果包括第二信息,所述第二信息用于指示所述第一通信协议层实体发生故障的原因;
所述根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因,包括:
根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一网络设备的第一通信协议层实体在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;
其中,所述第三检测结果包括第三信息,所述第三信息用于指示所述第三通信协议层实体发生故障的原因;
所述第一网络设备的第一通信协议层实体接收所述第三通信协议层实体发送的第三检测结果;
所述根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因,包括:
根据所述第一检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一网络设备的第一通信协议层实体在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;
其中,所述第三检测结果包括第三信息,所述第三信息指示所述第三通信协议层实体发生故障的原因;
所述第一网络设备的第一通信协议层实体接收所述第三通信协议层实体发送的第三检测结果;
根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因,包括:
根据所述第一检测结果、第二检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
5.如权利要求1所述的方法,其特征在于,所述第一检测结果还包括当第二通信协议层实体检测所述第一通信协议报文正常时,向所述第一通信协议层实体发送的参数信息,所述参数信息用于指示所述第一通信协议报文正常处理的信息。
6.如权利要求1所述的方法,其特征在于,还包括:
所述第一网络设备的第一通信协议层实体向所述第二通信协议层实体发送所述第一指示后,若经过第二预设时长时接收到所述第二网络设备发送的邻居保活报文,则向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文,所述第二预设时长与所述第一预设时长的和小于或者等于所述保活周期。
7.如权利要求1所述的方法,其特征在于,还包括:
所述第一网络设备的第一通信协议层实体向所述第二通信协议层实体发送第一指示后,若确定所述第一网络设备与所述第二网络设备通信中断,则向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文。
8.如权利要求6或7所述的方法,其特征在于,所述第一网络设备的第一通信协议层实体接收所述第二通信协议层实体发送的第一检测结果,包括:
所述第一网络设备的第一通信协议层实体接收所述第二通信协议层实体在接收到所述第三指示后发送的所述第一检测结果。
9.如权利要求1-7任一项所述的方法,其特征在于,所述第一网络设备与所述第二网络设备通信出现故障的原因包括如下至少一项:
所述第二网络设备存储故障、所述第一网络设备与所述第二通信设备之间的通信链路存在故障、所述第一网络设备上传输控制协议TCP/用户数据协议UDP链接建立失败、所述第一网络设备收到错误的第一通信协议报文、所述第一网络设备收到的第一通信协议报文的参数和本地设备配置的参数存在冲突、所述第一网络设备配置操作错误、所述第一网络设备接收第一通信协议报文的速度慢、或者所述第一网络设备通信协议状态机错误。
10.如权利要求1-7任一项所述的方法,其特征在于,所述保活周期与所述第一预设时长的差大于1个邻居保活报文的发送周期。
11.如权利要求1或2或5所述的方法,其特征在于:
当所述第一通信协议层实体为BGP实体或者LDP实体,所述第二通信协议层实体为传输控制协议TCP实体或者用户数据协议UDP实体;或者,
当所述第一通信协议层实体为ISIS协议实体、OSPF协议实体、或者RSVP实体中的一个,所述第二通信协议层实体为数据链路协议实体。
12.如权利要求3或4所述的方法,其特征在于,所述第一通信协议层实体为BGP实体或者LDP实体,所述第二通信协议层实体为TCP实体或者UDP实体,所述第三通信协议层实体为数据链路协议实体。
13.一种故障检测装置,其特征在于,所述装置应用于第一网络设备,包括:
第一通信协议层实体和第二通信协议层实体,所述第二通信协议层实体位于所述第一通信协议层的下层;
第一通信协议层实体,用于在第一预设时长内未接收到第二网络设备发送的邻居保活报文时,向所述第二通信协议层实体发送第一指示;
其中,所述邻居保活报文为遵循第一通信协议的报文,所述第一预设时长小于所述第一通信协议规定的保活周期;所述第一指示用于指示所述第二通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第一检测结果;
所述第二通信协议层实体,用于检测来自所述第二网络设备的所述第一通信协议报文得到第一检测结果,并将所述第一检测结果发送给所述第一通信协议层实体;
其中,所述第一检测结果包括第一信息,所述第一信息用于指示所述第二通信协议层实体发生故障的原因;
所述第一通信协议层实体接收所述第二通信协议层实体发送的所述第一检测结果,并根据所述第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
14.如权利要求13所述的装置,其特征在于,所述第一通信协议层实体还用于:
检测来自所述第二网络设备的第一通信协议报文得到第二检测结果;
其中,所述第二检测结果包括第二信息,所述第二信息指示所述第一通信协议层实体发生故障的原因;
所述第一通信协议层实体在根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于:
所述第一通信协议层实体根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
15.如权利要求13所述的装置,其特征在于,所述装置还包括第三通信协议层实体,所述第三通信协议层实体位于所述第二通信协议层实体的下层;
所述第一通信协议层实体还用于,在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;
所述第三通信协议层实体,用于检测来自所述第二网络设备的第一通信协议报文得到第三检测结果,并将所述第三检测结果发送给所述第一通信协议层实体;
其中,所述第三检测结果包括第三信息,所述第三信息指示所述第三通信协议层实体发生故障的原因;
所述第一通信协议层实体还用于接收所述第三通信协议层实体发送的第三检测结果;
所述第一通信协议层实体在根据第一检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于根据所述第一检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
16.如权利要求14所述的装置,其特征在于,所述装置还包括第三通信协议层实体,所述第三通信协议层实体位于所述第二通信协议层实体的下层;
所述第一通信协议层实体,还用于在所述第一预设时长内未接收到所述第二网络设备发送的邻居保活报文时,向第三通信协议层实体发送第二指示,所述第三通信协议层实体位于所述第二通信协议层实体的下层,所述第二指示用于指示所述第三通信协议层实体检测来自所述第二网络设备的第一通信协议报文得到第三检测结果;
所述第三通信协议层实体,用于检测来自所述第二网络设备的第一通信协议报文得到第三检测结果,并将所述第三检测结果发送给所述第一通信协议层实体;
其中,所述第三检测结果包括第三信息,所述第三信息指示所述第一通信协议层实体发生故障的原因;
所述第一通信协议层实体还用于接收所述第三通信协议层实体发送的第三检测结果;
所述第一通信协议层实体在根据所述第一检测结果和所述第二检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因时,具体用于根据所述第一检测结果、第二检测结果和所述第三检测结果确定第一网络设备与所述第二网络设备通信出现故障的原因。
17.如权利要求13所述的装置,其特征在于,所述第一检测结果还包括当第二通信协议层实体检测所述第一通信协议报文正常时,向所述第一通信协议层实体发送的参数信息,所述参数信息用于指示所述第一通信协议报文正常处理的信息。
18.如权利要求13所述的装置,其特征在于,所述第一通信协议层实体,还用于向所述第二通信协议层实体发送所述第一指示后,若经过第二预设时长时接收到所述第二网络设备发送的邻居保活报文,则向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文,所述第二预设时长与所述第一预设时长的和小于或者等于所述保活周期。
19.如权利要求13所述的装置,其特征在于,所述第一通信协议层实体,还用于向所述第二通信协议层实体发送第一指示后,若确定所述第一网络设备与所述第二网络设备通信中断,则向所述第二通信协议层实体发送第三指示,所述第三指示用于指示所述第二通信协议层实体停止检测来自所述第二网络设备的第一通信协议报文。
20.如权利要求18或19所述的装置,其特征在于,所述第二通信协议层实体在向所述第一通信协议层发送第一检测结果时,具体用于在接收到所述第三指示后,向所述第一通信协议层发送第一检测结果;
所述第一通信协议层实体在接收所述第二通信协议层实体发送的第一检测结果时,具体用于在向所述第二通信协议层实体发送所述第三指示后,接收来自所述第一通信协议层的所述第一检测结果。
21.如权利要求13-19任一项所述的装置,其特征在于,所述第一网络设备与所述第二网络设备通信出现故障的原因包括如下至少一项:
所述第二网络设备存储故障、所述第一网络设备与所述第二通信设备之间的通信链路存在故障、所述第一网络设备上传输控制协议TCP/用户数据协议UDP链接建立失败、所述第一网络设备收到错误的第一通信协议报文、所述第一网络设备收到的第一通信协议报文的参数和本地设备配置的参数存在冲突、所述第一网络设备配置操作错误、所述第一网络设备接收第一通信协议报文的速度慢、或者所述第一网络设备通信协议状态机错误。
22.如权利要求13-19任一项所述的装置,其特征在于,所述保活周期与所述第一预设时长的差大于1个邻居保活报文的发送周期。
23.如权利要求13或14或17所述的装置,其特征在于:
当所述第一通信协议层实体为BGP实体或者LDP实体,所述第二通信协议层实体为传输控制协议TCP实体或者用户数据协议UDP实体;或者,
当所述第一通信协议层实体为ISIS协议实体、OSPF协议实体、或者RSVP实体中的一个,所述第二通信协议层实体为数据链路协议层实体。
24.如权利要求15或16所述的装置,其特征在于,所述第一通信协议层实体为BGP实体或者LDP实体,所述第二通信协议层实体为TCP实体或者UDP实体,所述第三通信协议层实体为数据链路协议实体。
25.一种通信设备,其特征在于,包括:通信接口、存储器以及处理器;
所述通信接口,用于收发报文;
所述存储器,用于存储所述处理器执行的程序;
所述处理器,用于执行所述存储器存储的程序,通过所述通信接口收发数据来实现如权利要求1至12任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至12任一项所述的方法。
CN201910109009.9A 2019-02-03 2019-02-03 一种故障检测方法及装置 Active CN109873719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910109009.9A CN109873719B (zh) 2019-02-03 2019-02-03 一种故障检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910109009.9A CN109873719B (zh) 2019-02-03 2019-02-03 一种故障检测方法及装置

Publications (2)

Publication Number Publication Date
CN109873719A CN109873719A (zh) 2019-06-11
CN109873719B true CN109873719B (zh) 2019-12-31

Family

ID=66918623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910109009.9A Active CN109873719B (zh) 2019-02-03 2019-02-03 一种故障检测方法及装置

Country Status (1)

Country Link
CN (1) CN109873719B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055196B (zh) * 2019-12-28 2022-08-26 华为技术有限公司 报文处理方法、网络设备及计算机可读存储介质
CN111796571A (zh) * 2020-07-09 2020-10-20 广东智源机器人科技有限公司 设备故障检测方法、装置、计算机设备和存储介质
CN114338477B (zh) * 2021-12-17 2024-04-19 中汽创智科技有限公司 一种通信链路监控方法、装置、设备及存储介质
CN114629968B (zh) * 2022-03-03 2024-05-28 南京国电南自电网自动化有限公司 一种继电保护装置的通信保活系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697626A (zh) * 2009-10-30 2010-04-21 中兴通讯股份有限公司 基于双向转发检测协议的通信故障检测方法及系统
CN106060859A (zh) * 2016-06-30 2016-10-26 杭州华三通信技术有限公司 Ap故障的检测修复方法以及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3897012B2 (ja) * 2003-09-29 2007-03-22 日本電信電話株式会社 パス故障検出方法および検出装置、ならびにそのプログラム
KR100780359B1 (ko) * 2006-09-27 2007-11-30 삼성전자주식회사 유엠에이 네트워크에서 연결 오류 처리 장치 및 방법
CN100433660C (zh) * 2006-09-30 2008-11-12 杭州华三通信技术有限公司 一种实现快速检测的方法和设备
CN101163060B (zh) * 2007-11-30 2010-06-09 杭州华三通信技术有限公司 Bfd会话建立方法、bfd会话建立装置及路由设备
US8886834B2 (en) * 2010-12-14 2014-11-11 Cisco Technology, Inc. Hot standby neighbor discovery protocol for internet protocol version 6
CN102355335A (zh) * 2011-09-13 2012-02-15 中兴通讯股份有限公司 单通检测结果的通告方法及装置
KR20140125244A (ko) * 2013-04-18 2014-10-28 한국전자통신연구원 다 계층 링크 관리장치, 다 계층 통합 네트워크 전송 시스템 및 다 계층 링크 관리방법
WO2014205721A1 (zh) * 2013-06-27 2014-12-31 华为技术有限公司 故障处理方法、装置和系统
CN103607297B (zh) * 2013-11-07 2017-02-08 上海爱数信息技术股份有限公司 一种计算机集群系统的故障处理方法
CN106301853B (zh) * 2015-06-05 2019-06-18 华为技术有限公司 集群系统中节点的故障检测方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697626A (zh) * 2009-10-30 2010-04-21 中兴通讯股份有限公司 基于双向转发检测协议的通信故障检测方法及系统
CN106060859A (zh) * 2016-06-30 2016-10-26 杭州华三通信技术有限公司 Ap故障的检测修复方法以及装置

Also Published As

Publication number Publication date
CN109873719A (zh) 2019-06-11

Similar Documents

Publication Publication Date Title
CN109873719B (zh) 一种故障检测方法及装置
JP4840236B2 (ja) ネットワークシステム及びノード装置
US7940678B2 (en) Method for triggering failure detection in bidirectional forwarding detection
US8982710B2 (en) Ethernet operation and maintenance (OAM) with flexible forwarding
JP5913635B2 (ja) 冗長ネットワーク接続
CN101132320B (zh) 检测接口故障的方法及网络节点设备
US9602374B2 (en) Systems and methods for collecting and analyzing data to determine link quality and stability in layer two networks
US20140313886A1 (en) Protection in a ring network of label switching routers
WO2007092132A2 (en) System and method for detecting and recovering from virtual switch link failures
CN111447101B (zh) 链路检测方法、装置、计算机设备及存储介质
US20090310483A1 (en) Network device and link switching method
US11711281B2 (en) Methods and network devices for detecting and resolving abnormal routes
EP3029883B1 (en) Network protection method and apparatus, next-ring node, and system
US7974188B2 (en) Repeater and communication method
US10250492B2 (en) Segment recovery in connection-oriented network
US10033573B2 (en) Protection switching method, network, and system
WO2020057475A1 (zh) 一种路由震荡信息确定方法及其相关设备
US11290319B2 (en) Dynamic distribution of bidirectional forwarding detection echo sessions across a multi-processor system
CN101030967B (zh) 一种网络控制通道可达性检测维护的方法
JP5518771B2 (ja) 冗長ネットワークシステム、終端装置及び中継点隣接装置
CN113037622B (zh) 一种防止bfd震荡的系统及方法
JP2003124978A (ja) 障害通知方法および中継装置
WO2015154583A1 (zh) 控制通道协议状态的更新方法、装置及系统
CN118101516A (zh) 一种报文传输方法及装置
CN100525216C (zh) 用于数据通信网络的可扩展选择性警报抑制的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant