二层虚拟专用网故障的检测装置及方法

文档序号:7723155阅读:176来源:国知局

专利名称::二层虚拟专用网故障的检测装置及方法
技术领域
:本发明涉及通信领域,具体而言,涉及一种二层虚拟专用网(VirtualPrivateNetwork,简称为VPN)故障的检测装置及方法。
背景技术
:目前,VPN主要包括虚拟专用局域网服务(VirtualPrivateLANService,简称为VPLS)和虚拟专用线路服务(VirtualPrivateWireService,简称为VPWS),其中,VPWS是以太网上的点对点的二层VPN技术,VPLS是在其基础上扩展成了多点互联的二层VPN技术。图1是根据相关技术的二层VPN的网络拓扑的示意图,如图l所示,给出了一个简单的二层VPN组网图,包括提供商边缘(ProviderEdge,简称为PE)设备和用户边缘(CustomerEdge,简称为CE)设备两层,其中,设备PE1与PE2之间搭建VPN链路,设备CE1与CE2通过VPN链路传输数据。在数据传输过程中,如果链路出现了问题,则CE1与CE2就不能进行正常的通讯,此时就需要一种方法来定位具体是哪一段链路出现了问题。在802.3ah的草案中,定义了以太网操作维护管理(EthernetOperationsAdministrationandMaintenance,简称为EOAM)的功能,利用该功能可以实现对电气禾口电子工禾呈师协会(InstituteofElectricalandElectronicsEngineers,简称为IEEE)802.3所定义的以太网的链路层的信息进行检测。在IEEE802.3中包含的操作维护管理(OperationsAdministrationandMaintenance,简称为0AM)信息被称作为E0AM,它提供了数据链路层的PING(PacketInternetGrope)机制,即,本地发送一个request报文,这个request报文指明目的地的媒体接入控制(MediaAccessControl,简称为MAC)地址,0AM子层将这个PINGrequest请求作为一个0AM协议数据单元(ProtocolDataUnit,简称为PDU)发送出去;在接收端,接收到这个request请求后,会生成一个response的0AMPDU,然后把这个response报文回送给请求端。在规定的时间内,如果请求端能够收到目的端的response报文且报文内容正确,则说明到目的地的链路是通的。如果在规定的时间内没有收到response报文或收到的报文内容错误,则说明到目的地的链路是不通的。但是,上面描述的方法只适用于对普通以太网的连通性进行检测,对于跨二层VPN的网络则不能实现连通性的检测。
发明内容本发明的主要目的在于提供一种VPN故障的检测装置及方法,以至少解决上述对于跨二层VPN的网络不能实现连通性的检测的问题。根据本发明的实施例,提供了一种二层虚拟专用网故障的检测装置,包括构建模块,用于构建PING请求报文或PING回复报文,其中,PING请求报文和PING回复报文携带有发送端的媒体接入控制MAC地址、待检测的目的端的MAC地址;发送模块,用于发送PING请求报文或PING回复报文;封装模块,用于对PING请求报文或PING回复报文进行封装;解封装模块,用于将封装后的PING请求报文或PING回复报文进行解封装;接收模块,用于接4收PING请求报文或PING回复报文;检测模块,用于检测接收模块是否在预定时间段内接收到PING回复报文,并确定检测结果。优选地,该装置还包括判断模块,用于判断接收模块接收的PING请求报文的目的端的MAC地址是否为二层虚拟专用网VPN故障的检测装置所属设备的MAC地址;第一通知模块,用于在判断模块的判断结果为是的情况下,向构建模块发送用于指示构建PING回复报文的第一通知消息;构建模块还用于接收第一通知模块的第一通知消息,并将构建的PING回复报文发送给封装模块进行封装;转发模块,用于在判断模块的判断结果为否的情况下,转发PING请求报文。优选地,该装置还包括第二通知模块,用于在判断模块的判断结果为否的情况下,通知封装模块进行封装操作或通知解封装模块进行解封装操作。优选地,封装模块还用于使用隧道和VPN分配的多协议标签转换MPLS标签对PING请求报文或PING回复报文进行封装。优选地,解封装模块还用于去掉PING请求报文或PING回复报文中封装的MPLS标签,还原PING请求报文或PING回复报文。优选地,检测模块还用于在检测到接收模块在预定时间段内接收到PING回复报文的情况下,确定检测结果为待检测链路正常;在检测到接收模块未在预定时间段内或超出预定时间段后接收到PING回复报文的情况下,确定检测结果为待检测链路故障。根据本发明的实施例,提供了一种二层虚拟专用网故障的检测方法,包括发送端构建并发送PING请求报文,其中,PING请求报文携带有发送端的MAC地址、待检测的目的端的MAC地址;隧道入口端接收PING请求报文,并对PING请求报文进行封装;目的端获取解封装后的PING请求报文,并构造PING请求报文对应的PING回复报文;发送端检测是否在预定时间段内接收到PING回复报文,并确定检测结果。优选地,在隧道入口端接收PING请求报文之后,上述方法还包括隧道入口端判断PING请求报文中的目的端的MAC地址是否为隧道入口端的MAC地址;如果判断结果为是,则隧道入口端构造PING回复报文,并向发送端发送PING回复报文;如果判断结果为否,则隧道入口端转发PING请求报文。根据本发明的实施例,提供了一种二层虚拟专用网故障的检测方法,包括发送端构建、封装、并发送PING请求报文,其中,PING请求报文携带有发送端的MAC地址、待检测的目的端的MAC地址;目的端获取解封装后的PING请求报文,并构造PING请求报文对应的PING回复报文;发送端检测是否在预定时间段内接收到PING回复报文,并确定检测结果。优选地,在发送端和目的端中间存在提供商边缘设备的情况下,在发送端发送PING请求报文之后,上述方法还包括提供商边缘设备接收PING请求报文;提供商边缘设备对PING请求报文进行解封装;提供商边缘设备将解封装后的PING请求报文发送给目的丄山顺。通过本发明,采用将EOAM的PING报文进行二层VPN的封装,然后EOAM的PING报文沿着VPN隧道传输的方法,解决了对于跨二层VPN的网络不能实现连通性的检测的问题,可以定位出跨二层VPN网络的链路的故障所在,从而可以提高解除故障的效率。此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的二层VPN的网络拓扑的示意图;图2是根据本发明实施例的VPN故障的检测装置的结构框图;图3是根据本发明实施例的VPN故障的检测装置的优选结构框图;图4是根据本发明实施例一的VPN故障的检测方法的流程图;图5是根据本发明实施例一的VPN故障的检测方法的详细流程图;图6是根据本发明实施例二的VPN故障的检测方法的流程图。具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。装置实施例根据本发明的实施例,提供了一种VPN故障的检测装置,图2是根据本发明实施例的VPN故障的检测装置的结构框图,如图2所示,该装置包括构建模块2,发送模块4,封装模块6,解封装模块8,接收模块0,检测模块1,下面对上述结构进行描述。构建模块2,用于构建PING请求报文或PING回复报文,其中,PING请求报文和PING回复报文携带有发送端的媒体接入控制MAC地址、待检测的目的端的MAC地址。其中,构建模块2构建EOAM的PING请求报文的具体格式如下表1所示表1<table>tableseeoriginaldocumentpage6</column></row><table>其中,各个字段的定义如下VersionNumberReturnCodeOperationType版本号,目前为0x03返回码,操作类型0x01-PingRequest0x02-PingResponse0x03-TraceRequest0x04-TraceResponse0x05-LinkErrorTTL-TimeToLiveIdentification_ID字段,用于确认是当前设备发出请求包的回包Sequence_序号,Ping包时当前字段置0DestinationMAC_目的MAC,上送到平台处理时校验用SourceMAC_源MAC,上送到平台处理时校验用HostName-主机名称发送端构建模块2在构造E0AMPING请求报文时,需要在报文中填写版本号、操作类型、生存时间(TimeToLive,简称为TTL)、ID字段、源MAC和目的MAC字段,其中,版本号填写0x03,操作类型需要填写0x01(PingRequest),TTL填写最大值,ID字段填写一个全局唯一的32位ID,源MAC填写本机MAC,目的MAC填写需要检测设备的MAC。这些字段构建好了之后,在报文中版本号的前面填写上E0AM的类型字段0x8809,然后把报文交给封装模块处理。发送模块4,连接至构建模块2,用于发送构建模块2构建的PING请求报文或PING回复报文。封装模块6,连接至发送模块4,用于按照二层VPN格式对发送模块4发送的PING请求报文或PING回复报文进行封装;具体地,封装模块6使用隧道和VPN分配的多协议标签转换(Multi-ProtocolLabelSwitching,简称为MPLS)标签对PING请求报文或PING回复报文进行封装。在封装模块6完成报文封装后,将该封装的报文沿着隧道转发,则可以检测隧道中各个节点以及隧道出口后的节点的连通性。以图1中的背景为例,在设备PE1与PE2之间搭建VPN链路,设备CE1与CE2互通的数据通过VPN链路传输。如果CE1想检测一下到CE2的连通性,需要在CE1设备上构建E0AM的PING请求报文,然后,将报文发送到PE1设备即VPN隧道入口处。PE1设备收到从CE1设备上过来的E0AMPING请求报文后,首先检测PING请求报文中的目的MAC与本机MAC是否一致,如果是则说明此PING请求报文要检测的是CE1到PE1的连通性,则需要把报文交给接收模块处理;如果PING请求报文中的目的MAC不是本机MAC,则需要对报文进行二层VPN的封装处理,封装后EOAM的PING请求报文就能沿着隧道PE1到PE2的方向传输,报文传输到PE2设备后要进行解封装处理。解封装模块8,连接至封装模块6,用于在VPN隧道的出口,将隧道中封装模块6封装后的PING请求报文或PING回复报文进行解封装;具体地,解封装模块8去掉PING请求报文或PING回复报文中封装的MPLS标签,还原出原始的PING请求报文或PING回复报文。解封装模块8解封装后,首先检测PING请求报文中的目的MAC与本机MAC是否一致,如果是则说明此PING请求报文要检测的是CE1到PE2的连通性,则需要把报文交给接收模块0处理;如果PING请求报文中的目的MAC不是本机MAC,则需要对报文进行转发处理即发送到CE2。接收模块0,连接至解封装模块8,用于接收解封装模块8接封装后的PING请求报文或PING回复报文。检测模块l,连接至接收模块O,用于检测接收模块O是否在预定时间段内接收到PING回复报文,并确定检测结果。具体地,检测模块1在检测到接收模块0在预定时间段内接收到PING回复报文的情况下,确定检测结果为待检测链路正常;在检测到接收模块0未在预定时间段内或超出预定时间段后接收到PING回复报文的情况下,确定检测结果为待检测链路故障。具体地,在EOAMPING回复报文经过VPN隧道的传输,最后到达发起端,发起端检测到报文中的目的MAC是本机的MAC之后,检测模块1再判断报文中的ID字段是不是自己发送EOAMPING请求报文时生成的ID,如果是,则说明收到了这个PING请求包的回复报文,此时检测模块1再检查发出PING请求包到收到PING回复包所用的时间是否超出了用户所设置的时延,如果超出,则显示出链路不可达,否则显示链路正常。如果发起端的检测模块1在用户设定的时间内没有收到EOAMPING回复包,说明此链路不可达。通过上述实施例,将EOAM的PING报文进行二层VPN的封装,然后EOAM的PING报文就可以沿着VPN隧道传输,这样就可以检测整个二层VPN链路的连通性,在数据传输中网络故障的管理技术中,实现了二层VPN网络故障的检测和定位。图3是根据本发明实施例的二层虚拟专用网VPN故障的检测装置的优选结构框图,如图3所示,优选地,该装置还包括判断模块32,第一通知模块34,转发模块38,第二通知模块36,下面对上述结构进行描述。判断模块32,连接至接收模块O,用于判断接收模块0接收的PING请求报文的目的端的MAC地址是否为VPN故障的检测装置所属设备的MAC地址。第一通知模块34,连接至判断模块32和构建模块2,用于在判断模块32的判断结果为是的情况下,向构建模块2发送用于指示构建PING回复报文的第一通知消息;构建模块2还用于接收第一通知模块的第一通知消息34,并将构建的PING回复报文发送给封装模块6进行封装。转发模块38,连接至判断模块32,用于在判断模块32的判断结果为否的情况下,转发PING请求报文。第二通知模块36,连接至判断模块32、封装模块6和解封装模块8,用于在判断模块32的判断结果为否的情况下,通知封装模块6进行封装操作(该情况适用于转发模块38位于隧道入口端)或通知解封装模块8进行解封装操作(该情况适用于转发模块38位于隧道出口端)。具体地,接收端的接收模块0收到EOAM的PING请求报文后,首先判断模块32判断报文中的目的MAC是不是本机MAC,如果是则说明此PING请求报文要检测的目的设备是本机,此时接收端需要回复EOAM的PING请求报文,即,第一通知模块34向构建模块2发送用于指示构建PING回复报文的第一通知消息,具体的格式如下版本号填写0x03,操作类型需要填写0x02(PingResponse),TTL填写最大值,ID字段填写收到的PING请求报文中的ID,源MAC填写本机MAC,目的MAC填写需要回复设备的MAC。这些字段构建好了之后,在版本号的前面填写上EOAM的类型字段0x8809,然后构建模块2把报文交给封装模块6处理。通过上述实施例,实现了跨二层VPN的MACPING功能,可以快速地对二层VPN网络的连通性进行检测。需要说明的是,在实际应用过程中,上述的VPN故障的检测装置中的各个模块可以分别设置在不同的设备中,以便实现整个检测链路连通性的过程。例如,在CE设备中可以设置有构建模块2、发送模块4、接收模块0、检测模块1,PE设备中可以设置有构建模块2、发送模块4、封装模块6、解封装模块8、接收模块0、检测模块1。这样,CE设备或PE设备都可以发起链路检测过程。方法实施例实施例一根据本发明的实施例,提供了VPN故障的检测方法,该方法可以通过上述的VPN故障的检测装置来实现。图4是根据本发明实施例一的VPN故障的检测方法的流程图,如图4所示,该方法包括如下的步骤S402至步骤S408:步骤S402,发送端构建并发送PING请求报文,其中,PING请求报文携带有发送端的MAC地址、待检测的目的端的MAC地址。步骤S404,隧道入口端接收PING请求报文,并按照二层VPN格式对PING请求报文进行封装。步骤S406,目的端获取解封装后的PING请求报文,并构造PING请求报文对应的PING回复报文。步骤S408,发送端检测是否在预定时间段内接收到PING回复报文,并确定检测结果。通过该实施例,可以实现例如图1所示的CE1到CE2之间链路连通性的检测。优选地,在步骤S404的隧道入口端接收PING请求报文之后,上述方法还可以包括隧道入口端判断PING请求报文中的目的端的MAC地址是否为隧道入口端的MAC地址;如果判断结果为是,则隧道入口端构造PING回复报文,并向发送端发送PING回复报文;如果判断结果为否,则隧道入口端转发PING请求报文。通过该优选操作,可以实现如图1所示的CE1到PE1、CE1到PE2、或PE2到CE2之间的链路连通性的检测。下面结合具体实例对本发明的实现过程进行详细说明。参见图1,设备PE1与PE2之间搭建VPN链路,设备CE1与CE2互通的数据通过VPN链路传输。如果用户需要检测CE1到CE2的连通性,该实例可以提供一种快速准确的方法来检测链路是否可达。图5是根据本发明实施例一的VPN故障的检测方法的详细流程图,如图5所示,具体的实施流程包括如下的步骤S50至步骤S511:步骤S50,在CE1(发起端)上构造EOAMPING请求包并发送到PE1(VPN入口)。步骤S51,PE1对报文进行二层VPN封装并把报文沿隧道传输。步骤S52,数据传输到隧道终点时,PE2对报文进行解封装处理。步骤S53,将解封装后的EOAMPING请求包发送到CE2。步骤S54,目的端(CE2)检测EOAMPING请求包的目的MAC是否是自己的MAC,如果不是则转到步骤S55处理,如果是本机的MAC,则转到步骤S56处理。步骤S55,将报文转发到其他设备。步骤S56,构造EOAMPING回复包并发送到VPN入口出(PE2设备上)。步骤S57,数据沿着PE2-PE1方向传输到隧道终点,然后PE1对报文进行解封装处理。步骤S58,PE1将解封装后的EOAMPING回复包转发到目的端CE1。步骤S59,目的端(CE1)检测回复包中的MAC、ID和时延是否符合要求,如果EOAMPING回复包中的MAC和ID都是正确且时延在用户规定的范围内,则转到S511输出链路可达标识;如果在用户规定的时间内没有收到正确的EOAMPING回复包,则转到S510输出链路不可达标识。步骤S510,输出链路不可达标识。步骤S511,输出链路可达标识。通过该实施例,详细描述了如图1所示的CE1到CE2之间链路连通性的检测过程。实施例二根据本发明的实施例,提供了VPN故障的检测方法,该方法可以通过上述的VPN故障的检测装置来实现。图6是根据本发明实施例二的VPN故障的检测方法的流程图,如图6所示,该方法包括如下的步骤S602至步骤S606:步骤S602,发送端构建、按照二层VPN格式封装、并发送PING请求报文,其中,PING请求报文携带有发送端的MAC地址、待检测的目的端的MAC地址。步骤S604,目的端获取解封装后的PING请求报文,并构造PING请求报文对应的PING回复报文。步骤S606,发送端检测是否在预定时间段内接收到PING回复报文,并确定检测结果。通过该实施例,可以实现例如图1所示的PE1到PE2之间链路连通性的检测。优选地,在发送端和目的端中间存在PE设备的情况下,在步骤S602之后,该方法还可以包括PE设备接收PING请求报文;PE设备对PING请求报文进行解封装;PE设备将解封装后的PING请求报文发送给目的端。通过该实施例,可以实现例如图1所示的PE1到CE2之间链路连通性的检测。综上所述,通过本发明的上述实施例,可以进行跨二层VPN的检测,当然也可以进行跨VLAN的链路检测,因为二层VPN是可以跨VLAN转发数据的,也就是说,即使CE1和CE2不属于同一个VLAN,也可以对它们的连通性进行检测,需要说明的是,上述实施例可以方便快捷地对二层VPN链路的连通性进行检测,当然不仅仅局限于CE1到CE2的检领"也可以是CE1到PE1、CE1到PE2、PE1到PE2、PE1到CE2以及PE2到CE2的连通性检测,也就是说,可以对整个二层VPN上任意两节点之间的连通性进行检测,如果需要检测的两个节点之间存在隧道,则需要进行封装或解封装操作,如果需要检测的两个节点之间不存在隧道,则不需要进行封装或解封装操作。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求一种二层虚拟专用网故障的检测装置,其特征在于,包括构建模块,用于构建PING请求报文或PING回复报文,其中,所述PING请求报文和所述PING回复报文携带有发送端的媒体接入控制(MAC)地址、待检测的目的端的MAC地址;发送模块,用于发送所述PING请求报文或所述PING回复报文;封装模块,用于对所述PING请求报文或所述PING回复报文进行封装;解封装模块,用于将封装后的所述PING请求报文或所述PING回复报文进行解封装;接收模块,用于接收所述PING请求报文或所述PING回复报文;检测模块,用于检测所述接收模块是否在预定时间段内接收到所述PING回复报文,并确定检测结果。2.根据权利要求1所述的装置,其特征在于,还包括判断模块,用于判断所述接收模块接收的所述PING请求报文的所述目的端的MAC地址是否为所述二层虚拟专用网(VPN)故障的检测装置所属设备的MAC地址;第一通知模块,用于在所述判断模块的判断结果为是的情况下,向所述构建模块发送用于指示构建所述PING回复报文的第一通知消息;所述构建模块还用于接收所述第一通知模块的所述第一通知消息,并将构建的所述PING回复报文发送给所述封装模块进行封装;转发模块,用于在所述判断模块的判断结果为否的情况下,转发所述PING请求报文。3.根据权利要求2所述的装置,其特征在于,还包括第二通知模块,用于在所述判断模块的判断结果为否的情况下,通知所述封装模块进行封装操作或通知所述解封装模块进行解封装操作。4.根据权利要求1或2所述的装置,其特征在于,所述封装模块还用于使用隧道和VPN分配的多协议标签转换(MPLS)标签对所述PING请求报文或所述PING回复报文进行封装。5.根据权利要求4所述的装置,其特征在于,所述解封装模块还用于去掉所述PING请求报文或所述PING回复报文中封装的所述MPLS标签,还原所述PING请求报文或所述PING回复报文。6.根据权利要求1或2所述的装置,其特征在于,所述检测模块还用于在检测到所述接收模块在预定时间段内接收到所述PING回复报文的情况下,确定所述检测结果为待检测链路正常;在检测到所述接收模块未在所述预定时间段内或超出所述预定时间段后接收到所述PING回复报文的情况下,确定所述检测结果为待检测链路故障。7.—种二层虚拟专用网故障的检测方法,其特征在于,包括发送端构建并发送PING请求报文,其中,所述PING请求报文携带有发送端的MAC地址、待检测的目的端的MAC地址;隧道入口端接收所述PING请求报文,并对所述PING请求报文进行封装;所述目的端获取解封装后的所述PING请求报文,并构造所述PING请求报文对应的所述PING回复报文;所述发送端检测是否在预定时间段内接收到所述PING回复报文,并确定检测结果。8.根据权利要求7所述的方法,其特征在于,在所述隧道入口端接收所述PING请求报文之后,所述方法还包括所述隧道入口端判断所述PING请求报文中的所述目的端的MAC地址是否为所述隧道入口端的MAC地址;如果判断结果为是,则所述隧道入口端构造所述PING回复报文,并向所述发送端发送所述PING回复报文;如果判断结果为否,则所述隧道入口端转发所述PING请求报文。9.一种二层虚拟专用网故障的检测方法,其特征在于,包括发送端构建、封装、并发送PING请求报文,其中,所述PING请求报文携带有发送端的MAC地址、待检测的目的端的MAC地址;所述目的端获取解封装后的所述PING请求报文,并构造所述PING请求报文对应的所述PING回复报文;所述发送端检测是否在预定时间段内接收到所述PING回复报文,并确定检测结果。10.根据权利要求9所述的方法,其特征在于,在所述发送端和所述目的端中间存在提供商边缘设备的情况下,在所述发送端发送所述PING请求报文之后,所述方法还包括所述提供商边缘设备接收所述PING请求报文;所述提供商边缘设备对所述PING请求报文进行解封装;所述提供商边缘设备将解封装后的所述PING请求报文发送给所述目的端。全文摘要本发明公开了一种二层虚拟专用网故障的检测装置及方法,该装置包括构建模块,用于构建PING请求报文或PING回复报文,其中,PING请求报文和PING回复报文携带有发送端的媒体接入控制MAC地址、待检测的目的端的MAC地址;发送模块,用于发送PING请求报文或PING回复报文;封装模块,用于对PING请求报文或PING回复报文进行封装;解封装模块,用于将封装后的PING请求报文或PING回复报文进行解封装;接收模块,用于接收PING请求报文或PING回复报文;检测模块,用于检测接收模块是否在预定时间段内接收到PING回复报文,并确定检测结果。本发明提高了解除故障的效率。文档编号H04L12/46GK101710869SQ20091026232公开日2010年5月19日申请日期2009年12月18日优先权日2009年12月18日发明者陈世猛申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1