确定网络故障的方法、装置及系统与流程

文档序号:14686049发布日期:2018-06-14 22:53

本发明实施例涉及通信技术,尤其涉及一种确定网络故障的方法、装置及系统。



背景技术:

随着多协议标签交换(英文:MultiprotocolLabelSwitching,缩写:MPLS)虚拟专用网络(英文:virtualprivatenetwork,缩写:VPN)的广泛部署,处于不同物理位置的用户边缘(英文:customeredge,缩写:CE)设备通过接入不同的提供商边缘(英文:provideredge,缩写:PE)设备,实现互相通信。

当CE设备无法通信时,由PE设备通过砰(英文:ping)或跟踪路由(英文:traceroute)检测MPLSVPN的连通性。

但是这种检测方法只能检查CE设备与其接入的PE设备之间,或者不同的PE设备之间的连通性,无法确定出PE设备本身是否存在故障,降低了界定故障的效率,影响MPLSVPN的性能。



技术实现要素:

本发明实施例提供一种确定网络故障的方法、装置及系统,以实现快速界定网络故障的目的,提升界定故障的效率和MPLSVPN的性能。

第一方面,本发明实施例提供一种确定网络故障的方法,包括:

检测发起设备发送查询报文,所述查询报文为用户数据报协议(英文:UserDatagramProtocol,简称:UDP)报文,所述查询报文的目的地址为指定接收设备的地址,所述查询报文还包括第一预设UDP端口号,所述第一预设UDP端口号用于标识所述查询报文,所述检测发起设备为CE设备,所述检测发起设备与第一PE设备连接,所述指定接收设备为CE设备,所述指定接收设备与第二PE设备连接;

所述检测发起设备接收所述第一PE设备根据所述查询报文返回的查询应答报文,所述查询应答报文的净荷中包括所述第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签;

所述检测发起设备根据所述查询应答报文发送检测报文,所述检测报文为UDP报文,所述检测报文的目的地址为所述指定接收设备的地址,所述检测报文还包括第二预设UDP端口号,所述第二预设UDP端口号用于标识所述检测报文,所述第二预设UDP端口号和所述第一预设UDP端口号不同,所述检测报文的净荷中包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址;

当所述检测发起设备接收提供商(英文:provider,缩写:P)设备根据所述检测报文发送的检测应答报文时,确定所述第一PE设备工作正常。

结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括以下至少一个:

当所述检测发起设备接收所述P设备根据所述检测报文发送的差错报文时,确定所述第一PE设备故障;以及,

当所述检测发起设备在预设时间段内没有接收到所述检测应答报文时,确定所述第一PE设备故障。

第二方面,本发明实施例提供一种确定网络故障的方法,包括:

PE设备接收检测发起设备发送的查询报文,所述查询报文为UDP报文,所述查询报文的目的地址为指定接收设备的地址,所述查询报文的源地址为所述检测发起设备的地址,所述查询报文还包括第一预设UDP端口号,所述第一预设UDP端口号用于标识所述查询报文,所述检测发起设备为CE设备,所述PE设备与所述检测发起设备连接;

所述PE设备根据所述第一预设UDP端口号确定需要为所述查询报文生成查询应答报文;

所述PE设备根据所述查询报文获取第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述第二PE设备与所述指定接收设备连接;

所述PE设备向所述检测发起设备发送所述查询应答报文,所述查询应答报文的净荷中包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址。

结合第二方面,在第二方面的第一种可能的实现方式中,所述PE设备根据所述查询报文获取第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,包括:

所述PE设备根据所述查询报文的目的地址获取所述第二PE设备的地址;

所述PE设备根据所述第二PE设备的地址获取所述正向内层标签、所述至少一个正向外层标签以及所述至少一个下一跳地址;

所述PE设备根据所述查询报文的源地址获取所述反向内层标签和所述至少一个反向外层标签。

第三方面,本发明实施例提供一种确定网络故障的方法,包括:

P设备接收第一PE设备转发的检测报文,所述检测报文为用户数据报协议UDP报文,所述检测报文的目的地址为指定接收设备的地址,所述检测报文还包括第二预设UDP端口号,所述第二预设UDP端口号用于标识所述检测报文,所述检测报文的净荷中包括第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述检测发起设备为CE设备,所述第一PE设备与所述检测发起设备连接,所述指定接收设备为CE设备,所述第二PE设备与所述指定接收设备连接;

所述P设备根据所述第二预设UDP端口号确定需要验证所述检测报文的报文头;

所述P设备验证所述检测报文的报文头与所述检测报文的净荷是否一致,并在验证结果为一致时发送检测应答报文,所述检测应答报文的目的地址为所述检测发起设备的地址,所述检测应答报文的报文头中的内层标签为所述反向内层标签,所述检测应答报文的报文头中的外层标签为所述至少一个反向外层标签中与所述P设备对应的反向外层标签。

结合第三方面,在第三方面的第一种可能的实现方式中,所述P设备验证所述检测报文的报文头与所述检测报文的净荷是否一致,包括:

所述P设备验证所述检测报文的报文头中的目的地址,内层标签和外层标签与所述检测报文的净荷中的所述第二PE设备的地址,所述正向内层标签和至少一个正向外层标签是否一致。

结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述P设备验证所述检测报文的报文头与所述检测报文的净荷是否一致之前,还包括:

所述P设备检查所述P设备的地址是否在所述至少一个下一跳地址中;

若所述P设备的地址不在所述至少一个下一跳地址中,则所述P设备丢弃所述检测报文。

第四方面,本发明实施例提供一种检测发起设备,包括:

发送模块,用于发送查询报文,所述查询报文为用户数据报协议UDP报文,所述查询报文的目的地址为指定接收设备的地址,所述查询报文还包括第一预设UDP端口号,所述第一预设UDP端口号用于标识所述查询报文,所述检测发起设备为CE设备,所述检测发起设备与第一PE设备连接,所述指定接收设备为CE设备,所述指定接收设备与第二PE设备连接;

接收模块,用于接收所述第一PE设备根据所述查询报文返回的查询应答报文,所述查询应答报文的净荷中包括所述第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签;

所述发送模块,还用于根据所述查询应答报文发送检测报文,所述检测报文为UDP报文,所述检测报文的目的地址为所述指定接收设备的地址,所述检测报文还包括第二预设UDP端口号,所述第二预设UDP端口号用于标识所述检测报文,所述第二预设UDP端口号和所述第一预设UDP端口号不同,所述检测报文的净荷中包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址;

确定模块,用于当接收P设备根据所述检测报文发送的检测应答报文时,确定所述第一PE设备工作正常。

结合第四方面,在第四方面的第一种可能的实现方式中,所述确定模块,还用于实现以下至少一个功能:当接收所述P设备根据所述检测报文发送的差错报文时,确定所述第一PE设备故障;以及,当在预设时间段内没有接收到所述检测应答报文时,确定所述第一PE设备故障。

第五方面,本发明实施例提供一种PE设备,包括:

接收模块,用于接收检测发起设备发送的查询报文,所述查询报文为用户数据报协议UDP报文,所述查询报文的目的地址为指定接收设备的地址,所述查询报文的源地址为所述检测发起设备的地址,所述查询报文还包括第一预设UDP端口号,所述第一预设UDP端口号用于标识所述查询报文,所述检测发起设备为CE设备,所述PE设备与所述检测发起设备连接;

获取模块,用于根据所述第一预设UDP端口号确定需要为所述查询报文生成查询应答报文;根据所述查询报文获取第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述第二PE设备与所述指定接收设备连接;

发送模块,用于向所述检测发起设备发送所述查询应答报文,所述查询应答报文的净荷中包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址。

结合第五方面,在第五方面的第一种可能的实现方式中,所述获取模块,具体用于根据所述查询报文的目的地址获取所述第二PE设备的地址;根据所述第二PE设备的地址获取所述正向内层标签、所述至少一个正向外层标签以及所述至少一个下一跳地址;根据所述查询报文的源地址获取所述反向内层标签和所述至少一个反向外层标签。

第六方面,本发明实施例提供一种P设备,包括:

接收模块,用于接收第一PE设备转发的检测报文,所述检测报文为用户数据报协议UDP报文,所述检测报文的目的地址为指定接收设备的地址,所述检测报文还包括第二预设UDP端口号,所述第二预设UDP端口号用于标识所述检测报文,所述检测报文的净荷中包括第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述检测发起设备为CE设备,所述第一PE设备与所述检测发起设备连接,所述指定接收设备为CE设备,所述第二PE设备与所述指定接收设备连接;

验证模块,用于根据所述第二预设UDP端口号确定需要验证所述检测报文的报文头;验证所述检测报文的报文头与所述检测报文的净荷是否一致;

发送模块,用于在验证结果为一致时发送检测应答报文,所述检测应答报文的目的地址为所述检测发起设备的地址,所述检测应答报文的报文头中的内层标签为所述反向内层标签,所述检测应答报文的报文头中的外层标签为所述至少一个反向外层标签中与所述P设备对应的反向外层标签。

结合第六方面,在第六方面的第一种可能的实现方式中,所述验证模块,具体用于验证所述检测报文的报文头中的目的地址,内层标签和外层标签与所述检测报文的净荷中的所述第二PE设备的地址,所述正向内层标签和至少一个正向外层标签是否一致。

结合第六方面或第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,所述验证模块,还用于检查所述P设备的地址是否在所述至少一个下一跳地址中;若所述P设备的地址不在所述至少一个下一跳地址中,则丢弃所述检测报文。

第七方面,本发明实施例提供一种MLPSVPN,包括:检测发起设备、第一PE设备、P设备、第二PE设备以及指定接收设备;

其中,所述检测发起设备采用第四方面或第四方面的第一种可能的实现方式所述的设备;所述第一PE设备采用第五方面或第五方面的第一种可能的实现方式所述的PE设备;所述P设备采用第六方面、第六方面的第一种至第二种中任一种可能的实现方式所述的P设备;所述第二PE设备为与所述指定接收设备连接的PE设备。

本发明实施例确定网络故障的方法、装置及系统,提供了一种确定PE设备是否存在故障的方法,通过检验PE设备中的路由或标签的正确性,实现快速界定网络故障的目的,提升界定故障的效率和MPLSVPN的性能。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明MLPSVPN的一个实施例的结构示意图;

图2为本发明确定网络故障的方法的一个实施例的流程图;

图3为本发明确定网络故障的方法的另一个实施例的流程图;

图4为本发明确定网络故障的方法的又一个实施例的流程图;

图5为本发明确定网络故障的方法的再一个实施例的流程图;

图6为本发明检测发起设备的一个实施例的结构示意图;

图7为本发明PE设备的一个实施例的结构示意图;

图8为本发明P设备的一个实施例的结构示意图;

图9为本发明网络设备的一个实施例的结构示意图;

图10为本发明网络设备的另一个实施例的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。

图1为本发明MLPSVPN的一个实施例的结构示意图,如图1所示,本实施例的系统包括:检测发起设备11、第一PE设备12、提供商(英文:provider,缩写:P)设备13、第二PE设备14以及指定接收设备15;其中,检测发起设备11和指定接收设备15可以是CE设备,检测发起设备11与第一PE设备12相连,指定接收设备15与第二PE设备14相连,检测发起设备11和指定接收设备15属于同一个VPN,第一PE设备12、第二PE设备14以及P设备13组成MPLS网络。另外,MLPSVPN中在第一PE设备12和第二PE设备14之间也可以存在多个P设备形成的多条路径,均可用来实现本发明的方法,此处不做具体限定。

图2为本发明确定网络故障的方法的一个实施例的流程图,如图2所示,本实施例的方法可以包括:

步骤101、检测发起设备发送查询报文;

所述查询报文为用户数据报协议(英文:UserDatagramProtocol,简称:UDP)报文,所述查询报文的目的地址为指定接收设备的地址,所述查询报文的源地址为所述检测发起设备的地址,所述查询报文还包括第一预设UDP端口号,所述第一预设UDP端口号用于标识所述查询报文,所述指定接收设备与所述检测发起设备都是CE设备,所述检测发起设备与第一PE设备连接,所述指定接收设备与第二PE设备连接。检测发起设备的地址和指定接收设备的地址可以是网际协议(英文:InternetProtocol,简称:IP)地址。

本实施例中的检测发起设备和指定接收设备可以是与不同PE设备连接的CE设备,CE设备可以是网络交换机或路由器。以图1为例,检测发起设备可以是MLPSVPN中的任意一个VPN中的任意一台CE设备,指定接收设备可以是与第二PE设备连接的任意一台CE设备。

步骤102、所述检测发起设备接收所述第一PE设备根据所述查询报文返回的查询应答报文;

所述查询应答报文的净荷中包括所述第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签。

检测发起设备接收第一PE设备发送的查询应答报文,该查询应答报文是第一PE设备在收到检测发起设备发送的查询报文后生成的。第一PE设备的转发面根据查询报文中的第一预设UDP端口号通过访问控制列表(英文:accesscontrollist,简称:ACL)获取处理该报文的方法,即第一PE设备的转发面不转发该查询报文,而是将该查询报文转给第一PE设备的中央处理器(英文:centralprocessingunit,简称:CPU),由第一PE设备的CPU从保存的路由信息中获取第一PE设备分配给检测发起设备所属的VPN子网的内层标签(即正向内层标签)、第二PE设备分配给指定接收设备所属的VPN子网的内层标签(即反向内层标签)、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,第一PE设备在查询应答报文的净荷中携带上述信息并返回给检测发起设备。

步骤103、所述检测发起设备根据所述查询应答报文发送检测报文;

所述检测报文为UDP报文,所述检测报文的目的地址为所述指定接收设备的地址,所述检测报文的源地址为所述检测发起设备的地址,所述检测报文还包括第二预设UDP端口号,所述第二预设UDP端口号用于标识所述检测报文,所述第二预设UDP端口号和所述第一预设UDP端口号不同,所述检测报文的净荷中包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址。

检测发起设备根据第一PE设备返回的查询应答报文发送检测报文,检测报文的净荷中就携带了上述第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址。第一PE设备的转发面收到该检测报文后根据检测报文中的第二预设UDP端口号通过ACL获取处理该报文的方法,即第一PE设备的转发面直接将检测报文转发给P设备。P设备验证检测报文的净荷与检测报文的报文头是否一致。如果P设备验证出不一致,说明第一PE设备返回给检测发起设备的查询应答报文中的第二PE设备的地址、正反内层标签或正反外层标签与实际链路不一致,则第一PE设备故障,导致路由信息或标签不正确。

步骤104、当所述检测发起设备接收P设备根据所述检测报文发送的检测应答报文时,确定所述第一PE设备工作正常。

检测发起设备接收P设备发送的检测应答报文,该检测应答报文是P设备在验证结果为一致时发送的报文,因此检测发起设备只要收到该检测应答报文就表示第一PE设备工作正常。

本实施例,提供了一种确定PE设备是否存在故障的方法,通过检验PE设备中的路由或标签的正确性,实现快速界定网络故障的目的,提升界定故障的效率和MPLSVPN的性能。

进一步的,上述步骤104的方法还包括以下至少一个:当所述检测发起设备接收所述P设备根据所述检测报文发送的差错报文时,确定所述第一PE设备故障;以及,当所述检测发起设备在预设时间段内没有接收到所述检测应答报文时,确定所述第一PE设备故障。

P设备在验证发现检测报文的净荷与检测报文的报文头不一致时,还可以返回差错报文。或者P设备返回的检测应答报文到达第一PE设备时出现错误,导致在预设时间段内该检测应答报文没有到达检测发起设备,这两种情况下,检测发起设备都会认为是第一PE设备故障。

图3为本发明确定网络故障的方法的另一个实施例的流程图,如图3所示,本实施例的方法可以包括:

步骤201、PE设备接收检测发起设备发送的查询报文;

所述查询报文为UDP报文,所述查询报文的目的地址为指定接收设备的地址,所述查询报文的源地址为所述检测发起设备的地址,所述查询报文还包括第一预设UDP端口号,所述第一预设UDP端口号用于标识所述查询报文,所述检测发起设备为CE设备,所述PE设备与所述检测发起设备连接。

本实施例中的PE设备可以是MLPSVPN中任意一个待检测的PE设备。

步骤202、所述PE设备根据所述第一预设UDP端口号确定需要为所述查询报文生成查询应答报文;

PE设备的转发面收到检测发起设备发送的查询报文后,根据查询报文中的第一预设UDP端口号通过ACL获取处理该报文的方法,即确定需要为查询报文生成查询应答报文。PE设备的转发面不转发该查询报文,将该查询报文转给PE设备的CPU,由CPU执行生成查询应答报文的操作。

步骤203、所述PE设备根据所述查询报文获取第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址;

所述正向内层标签为所述PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述第二PE设备与所述指定接收设备连接。

PE设备根据查询报文从本地保存的路由信息中获取其分配给检测发起设备所属的VPN子网的内层标签(即正向内层标签)、第二PE设备分配给指定接收设备所属的VPN子网的内层标签(即反向内层标签)。PE设备可以从本地保存的路由信息中获知第一PE设备与第二PE设备之间存在一条或多条路径,如果是一条路径,则从第一PE设备到第二PE设备的下一跳只能是该条路径上的P设备,因此该P设备对应了唯一的正向外层标签,而从该P设备发送给第一PE设备的报文的报文头中的外层标签也是唯一的反向外层标签;如果是多条路径,则从第一PE设备到第二PE设备的下一跳可以是多个P设备,例如,P1、P2和P3均可作为下一跳,那么对应于每一个下一跳有一个正向外层标签,而从P1发送给第一PE设备的报文的报文头中的反向外层标签是与P1相对应的反向外层标签,从P2发送给第一PE设备的报文的报文头中的反向外层标签是与P2相对应的反向外层标签,从P3发送给第一PE设备的报文的报文头中的反向外层标签是与P3相对应的反向外层标签。因此PE设备获取到的下一跳地址、正向外层标签和反向外层标签基于路径的条数分别至少有一个。

步骤204、所述PE设备向所述检测发起设备发送所述查询应答报文。

所述查询应答报文的净荷中包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址。

本实施例,提供了一种确定PE设备是否存在故障的方法,通过检验PE设备中的路由或标签的正确性,实现快速界定网络故障的目的,提升界定故障的效率和MPLSVPN的性能。

图4为本发明确定网络故障的方法的又一个实施例的流程图,如图4所示,本实施例的方法可以包括:

步骤301、P设备接收第一PE设备转发的检测报文;

所述检测报文为UDP报文,所述检测报文的目的地址为指定接收设备的地址,所述检测报文的源地址为检测发起设备的地址,所述检测报文还包括第二预设UDP端口号,所述第二预设UDP端口号用于标识所述检测报文,所述检测报文的净荷中包括第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述检测发起设备为CE设备,所述第一PE设备与所述检测发起设备连接,所述指定接收设备为CE设备,所述第二PE设备与所述指定接收设备连接。

步骤302、所述P设备根据所述第二预设UDP端口号确定需要验证所述检测报文的报文头;

P设备的转发面收到第一PE设备转发的检测报文后,根据检测报文中的第二预设UDP端口号通过ACL获取处理该报文的方法,即确定需要验证检测报文。P设备的转发面不转发该检测报文,将该检测报文转给P设备的CPU,由CPU执行验证检测报文的操作。

步骤303、所述P设备验证所述检测报文报文头与所述检测报文的净荷是否一致,并在验证结果为一致时发送检测应答报文。

所述检测应答报文的目的地址为所述检测发起设备的地址,所述检测应答报文的报文头中的内层标签为所述反向内层标签,所述检测应答报文的报文头中的外层标签为所述至少一个反向外层标签中与所述P设备对应的反向外层标签。

本实施例中P设备收到第一PE设备转发来的检测报文后,即检测报文的净荷与检测报文的报文头(MPLS报文头)是否一致,并在验证结果为一致时向检测发起设备发送检测应答报文。如上述步骤203中所述,对于第一PE设备来讲可能存在多个下一跳P设备,每一个下一跳P设备对应一个正向外层标签和一个反向外层标签。P设备在发送检测应答报文时其报文头中的外层标签即为多个反向外层标签中与该P设备对应的反向外层标签。

本实施例,提供了一种确定PE设备是否存在故障的方法,通过检验PE设备中的路由或标签的正确性,实现快速界定网络故障的目的,提升界定故障的效率和MPLSVPN的性能。

下面采用一个具体的实施例,对图2~图4所示方法实施例的技术方案进行详细说明。

图5为本发明确定网络故障的方法的再一个实施例的流程图,本实施例的方法适用于图1所示的MLPSVPN,检测发起设备用CE1表示,其地址为100.0.0.1,指定接收设备用CE2表示,其地址为200.0.0.1,第一PE设备用PE1表示,其地址为1.1.1.1,第二PE设备用PE2表示,其地址为2.2.2.2,P设备用P1表示,P1的地址为30.0.0.2。PE1分配给CE1所属的VPN1子网100.0.0.0/24的内层标签(即正向内层标签)为A,PE2分配给CE2所属的VPN1子网200.0.0.0/24的内层标签(即反向内层标签)为B。如图5所示,本实施例的方法可以包括:

s401、CE1发送查询报文;

所述查询报文中的目的地址为CE2的地址200.0.0.1,所述查询报文中的源地址为CE1的地址100.0.0.1。所述查询报文还包括第一预设UDP端口号。

s402、PE1根据查询报文获取PE2的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址;

具体地,PE1根据目的地址200.0.0.1获取第二PE设备为PE2,其地址为2.2.2.2;PE1根据PE2的地址2.2.2.2获取正向内层标签为标签A,正向外层标签为C,PE1到PE2的路径的下一跳地址为30.0.0.2(即P1);PE1根据源地址100.0.0.1获取反向内层标签为B,反向外层标签为D。

s403、PE1向CE1发送查询应答报文;

查询应答报文的净荷中包括PE2的地址2.2.2.2、正向内层标签A、反向内层标签B、正向外层标签C、反向外层标签D以及下一跳地址30.0.0.2。

s404、CE1根据查询应答报文发送检测报文;

所述检测报文中的目的地址为CE2的地址200.0.0.1,所述检测报文中的源地址为CE1的地址100.0.0.1,所述检测报文还包括第二预设UDP端口号,所述检测报文的净荷中包括PE2的地址2.2.2.2、正向内层标签A、反向内层标签B、正向外层标签C、反向外层标签D以及下一跳地址30.0.0.2。

s405、PE1将检测报文转发给P1;

s406、P1检查P1的地址是否在下一跳地址中;

若P1的地址不在下一跳地址中,则P1不需要做任何处理,直接丢弃检测报文,此时P1不再进行后续步骤。但如果P1设备确定自身处于路由下一跳地址中,则要执行s407。

s407、P1验证检测报文的报文头与检测报文的净荷是否一致,并在验证结果为一致时发送检测应答报文;

所述检测应答报文的报文头中的内层标签为反向内层标签B,所述检测应答报文的报文头中的外层标签为反向外层标签D。

s408、当CE1接收检测应答报文时,确定PE1工作正常。

进一步的,当CE1接收P1根据检测报文发送的差错报文时,确定PE1故障;以及,当CE1在预设时间段内没有接收到检测应答报文时,确定PE1故障。

本实施例,提供了一种确定PE设备是否存在故障的方法,通过检验PE设备中的路由或标签的正确性,实现快速界定网络故障的目的,提升界定故障的效率和MPLSVPN的性能。

图6为本发明检测发起设备的一个实施例的结构示意图,如图6所示,本实施例的装置可以包括:发送模块11、接收模块12以及确定模块13,其中,发送模块11,用于发送查询报文,所述查询报文为用户数据报协议UDP报文,所述查询报文的目的地址为指定接收设备的地址,所述查询报文还包括第一预设UDP端口号,所述第一预设UDP端口号用于标识所述查询报文,所述检测发起设备为CE设备,所述检测发起设备与第一PE设备连接,所述指定接收设备为CE设备,所述指定接收设备与第二PE设备连接;接收模块12,用于接收所述第一PE设备根据所述查询报文返回的查询应答报文,所述查询应答报文的净荷中包括所述第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签;所述发送模块11,还用于根据所述查询应答报文发送检测报文,所述检测报文为UDP报文,所述检测报文的目的地址为所述指定接收设备的地址,所述检测报文还包括第二预设UDP端口号,所述第二预设UDP端口号用于标识所述检测报文,所述第二预设UDP端口号和所述第一预设UDP端口号不同,所述检测报文的净荷中包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址;确定模块13,用于当接收P设备根据所述检测报文发送的检测应答报文时,确定所述第一PE设备工作正常。

本实施例的装置,可以用于执行图2或图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

进一步的,所述确定模块13,还用于实现以下至少一个功能:当接收所述P设备根据所述检测报文发送的差错报文时,确定所述第一PE设备故障;以及,当在预设时间段内没有接收到所述检测应答报文时,确定所述第一PE设备故障。

图7为本发明PE设备的一个实施例的结构示意图,如图7所示,本实施例的装置可以包括:接收模块21、获取模块22以及发送模块23,其中,接收模块21,用于接收检测发起设备发送的查询报文,所述查询报文为用户数据报协议UDP报文,所述查询报文的目的地址为指定接收设备的地址,所述查询报文的源地址为所述检测发起设备的地址,所述查询报文还包括第一预设UDP端口号,所述第一预设UDP端口号用于标识所述查询报文,所述检测发起设备为CE设备,所述PE设备与所述检测发起设备连接;获取模块22,用于根据所述第一预设UDP端口号确定需要为所述查询报文生成查询应答报文;根据所述查询报文获取第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述第二PE设备与所述指定接收设备连接;发送模块23,用于向所述检测发起设备发送所述查询应答报文,所述查询应答报文的净荷中包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址。

本实施例的装置,可以用于执行图3或图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

进一步的,所述获取模块22,具体用于根据所述查询报文的目的地址获取所述第二PE设备的地址;根据所述第二PE设备的地址获取所述正向内层标签、所述至少一个正向外层标签以及所述至少一个下一跳地址;根据所述查询报文的源地址获取所述反向内层标签和所述至少一个反向外层标签。

图8为本发明P设备的一个实施例的结构示意图,如图8所示,本实施例的装置可以包括:接收模块31、验证模块32以及发送模块33,其中,接收模块31,用于接收第一PE设备转发的检测报文,所述检测报文为用户数据报协议UDP报文,所述检测报文的目的地址为指定接收设备的地址,所述检测报文还包括第二预设UDP端口号,所述第二预设UDP端口号用于标识所述检测报文,所述检测报文的净荷中包括第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述检测发起设备为CE设备,所述第一PE设备与所述检测发起设备连接,所述指定接收设备为CE设备,所述第二PE设备与所述指定接收设备连接;验证模块32,用于根据所述第二预设UDP端口号确定需要验证所述检测报文的报文头;验证所述检测报文的报文头与所述检测报文的净荷是否一致;发送模块33,用于在验证结果为一致时发送检测应答报文,所述检测应答报文的目的地址为所述检测发起设备的地址,所述检测应答报文的报文头中的内层标签为所述反向内层标签,所述检测应答报文的报文头中的外层标签为所述至少一个反向外层标签中与所述P设备对应的反向外层标签。

本实施例的装置,可以用于执行图4或图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

进一步的,所述验证模块32,具体用于验证所述检测报文的报文头中的目的地址,内层标签和外层标签与所述检测报文的净荷中的所述第二PE设备的地址,所述正向内层标签和至少一个正向外层标签是否一致。

进一步的,所述验证模块32,还用于检查所述P设备的地址是否在所述至少一个下一跳地址中;若所述P设备的地址不在所述至少一个下一跳地址中,则丢弃所述检测报文。

图9为本发明网络设备的一个实施例的结构示意图,如图9所示,该网络设备可以是交换机或路由器,例如在图1中可以是作为检测发起设备的CE设备。本实施例的网络设备可以包括:接口11,存储器12和处理器13。其中,接口11,存储器12和处理器13之间通过总线连接。总线在图9中以粗线表示。

接口11可以为以下一种或多种:提供有线接口的网络接口控制器(英文:networkinterfacecontroller,缩写:NIC),例如以太网NIC;提供无线接口的NIC,例如无线局域网(英文:wirelesslocalareanetwork,缩写:WLAN)NIC。

存储器12,存储程序代码,以及存储转发指示消息,并将存储的程序代码传输给处理器13。

存储器12,可以是易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:RAM);或者非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:HDD)或固态硬盘(英文:solid-statedrive,缩写:SSD);或者上述种类的存储器的组合。

处理器13可以是CPU,或者是CPU和转发芯片的组合。上述转发芯片可以是专用集成电路(英文:application-specificintegratedcircuit,缩写:ASIC),可编程逻辑器件(英文:programmablelogicdevice,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:FPGA),通用阵列逻辑(英文:genericarraylogic,缩写:GAL)或其组合。

处理器13,获得存储器12中存储的程序代码,并按照获得的程序代码执行:图2或图5所示的方法实施例。处理器13通过接口11发送UDP查询报文,所述查询报文中的目的地址为指定接收设备的地址,所述查询报文中的源地址为所述检测发起设备的地址,所述查询报文还包括第一预设端口号,所述第一预设端口号用于标识所述查询报文,所述指定接收设备与所述检测发起设备分别与不同的PE设备连接。接收第一PE设备根据所述查询报文返回的UDP查询应答报文,所述查询应答报文的净荷包括第二PE设备的地址、正向内层标签、反向内层标签、至少一个正向外层标签、至少一个反向外层标签以及至少一个下一跳地址,所述正向内层标签为所述第一PE设备分配给所述检测发起设备所属的VPN子网的内层标签,所述反向内层标签为所述第二PE设备分配给所述指定接收设备所属的VPN子网的内层标签,所述第一PE设备与所述检测发起设备连接,所述第二PE设备与所述指定接收设备连接。根据所述查询应答报文发送UDP检测报文,所述检测报文中的目的地址为所述指定接收设备的地址,所述检测报文中的源地址为所述检测发起设备的地址,所述检测报文还包括第二预设端口号,所述第二预设端口号用于标识所述检测报文,所述检测报文的净荷包括所述第二PE设备的地址、所述正向内层标签、所述反向内层标签、所述至少一个正向外层标签、所述至少一个反向外层标签以及所述至少一个下一跳地址;接收P设备根据所述检测报文发送的UDP检测应答报文,则确定所述第一PE设备不存在故障。

图10为本发明网络设备的另一个实施例的结构示意图,如图10所示,该网络设备可以是交换机或路由器,例如在图1中可以是第一PE设备。本实施例的网络设备包括:处理器21,存储器22以及多个接口23。处理器21连接到存储器22。处理器21连接到多个接口23。一般实现中,处理器21通过总线连接到存储器22。总线在图10中以粗线表示。

处理器21可以是CPU。处理器21还可以进一步与转发芯片24连接,所述转发芯片24可以是ASIC,PLD或其组合。上述PLD可以是CPLD,FPGA,GAL或其任意组合。

存储器22可以包括易失性存储器,例如RAM;存储器22也可以包括非易失性存储器,例如只读存储器(英文:read-onlymemory,缩写:ROM),快闪存储器,HDD或SSD;存储器22还可以包括上述种类的存储器的组合。存储器22用于存储所述网络设备的根MAC地址,所述网络设备的根MAC地址和网络设备的网桥MAC地址不同。存储器22还可以用于存储网络设备的网桥MAC地址。存储器22还可以用于存储网络设备的各个接口的接口优先级。

处理器21,获得存储器22中存储的程序代码,并按照获得的程序代码执行:图3或图5所示的方法实施例。转发芯片24还可以连接一个内容可寻址存储器(英文:content-addressablememory,缩写:CAM),例如三态CAM(英文:ternaryCAM,缩写:TCAM)。图10中以该网络设备包括CAM说明了其中一种可能的结构。CAM存储有ACL。CAM根据ACL在接收到的UDP报文中找到查询报文或检测报文,将找到的查询报文或检测报文发送给转发芯片再上报给CPU,由CPU执行标签信息获取的过程。

进一步的,图10所示的网络设备在图1中也可以用作P设备,处理器21,获得存储器22中存储的程序代码,并按照获得的程序代码执行:图4或图5所示的方法实施例,此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明权利要求的范围。

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