链路层路径检测方法、装置及系统与流程

文档序号:17002117发布日期:2019-03-02 01:51阅读:207来源:国知局
链路层路径检测方法、装置及系统与流程

本申请涉及通信技术领域,具体而言,涉及一种链路层路径检测方法、装置及系统。



背景技术:

由于二层网络具有部署简单、带宽利用率高、对网络管理人员要求不高等特点,二层网络被广泛的应用在各企事业组织机构的内部办公网、园区内网等。

但目前,伴随着大数据、云计算等技术的突破性发展,二层网络在大型数据中心的高速交换网络的应用也越来越广泛,但这也导致二层网络中设备数量也越来越庞大。



技术实现要素:

本申请在于提供一种链路层路径检测方法、装置及系统,以有效的解决现有技术中难以对二层网络中的故障进行定位的技术问题。

本申请的实施例通过如下方式实现:

第一方面,本申请实施例提供了一种链路层路径检测方法,所述方法包括:

检测发起设备生成检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述检测终止设备为所述检测发起设备到达待检测目标mac地址的链路层出口设备;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址;

所述检测发起设备发送所述检测请求报文;所述检测请求报文用于指示接收所述检测请求报文的所述目标检测设备,在确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1等于0时,向所述检测发起设备发送检测应答报文;以及所述检测请求报文用于指示接收所述检测请求报文的所述检测发起设备与所述目标检测设备之间的中间节点设备转发所述检测请求报文;所述检测应答报文中携带所述目标检测设备的信息以及所述目标检测设备到达所述检测终止设备的链路层路径信息。

结合第一方面,在一些可能的实现方式中,所述检测发起设备生成检测请求报文之前,所述方法还包括:

所述检测发起设备获取所述待检测目标mac地址,根据所述待检测目标mac地址,获取所述检测终止设备的信息、所述检测发起设备到达所述检测终止设备的下一跳的mac地址以及所述检测发起设备到达所述目标mac地址的链路层路径的总跳数。

结合第一方面,在一些可能的实现方式中,所述报文跳数指示所述检测发起设备到达目标检测设备的跳数,包括:

所述报文跳数为1时,指示目标检测设备为所述检测发起设备到达所述检测终止设备的下一跳;

所述报文跳数为所述链路层路径的总跳数时,指示目标检测设备为所述检测终止设备;

所述报文跳数为介于1与所述链路层路径的总跳数之间的值时,指示目标检测设备为所述检测发起设备到达所述检测终止设备的下一跳与所述检测终止设备之间的中间节点设备。

结合第一方面,在一些可能的实现方式中,所述方法还包括:

所述检测发起设备在预定时间内接收到所述检测应答报文时,所述检测发起设备确定所述检测发起设备与所述目标检测设备之间的路径正常,否则确定所述检测发起设备与所述目标检测设备之间的路径故障。

结合第一方面,在一些可能的实现方式中,所述检测发起设备与所述目标检测设备之间还包括中间节点设备,所述确定所述检测发起设备与所述目标检测设备之间的路径故障,包括:

所述检测发起设备在确定所述检测发起设备与所述中间节点设备之间的路径正常时,确定所述中间节点设备与所述目标检测设备之间的路径故障。

结合第一方面,在一些可能的实现方式中,所述检测请求报文和所述检测应答报文采用trill数据报文格式。

第二方面,本申请实施例提供了一种链路层路径检测方法,所述方法包括:

接收检测发起设备发送的检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址;

确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1等于0时,向所述检测发起设备发送检测应答报文;确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1不等于0时,转发所述检测请求报文;所述检测应答报文中包括所述自身设备的信息以及自身设备到达所述检测终止设备的路径信息。

第三方面,本申请实施例提供了一种链路层路径检测方法,所述方法包括:

接收检测发起设备发送的检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址;

确定自身设备是所述检测终止设备时,向所述检测发起设备发送检测应答报文;所述检测应答报文中包括所述自身设备的信息以及自身设备到达所述目标mac地址的路径信息。

第四方面,本申请实施例提供了一种链路层路径检测装置,应用于检测发起设备,包括:

报文生成模块,用于生成检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述检测终止设备为所述检测发起设备到达待检测目标mac地址的链路层出口设备;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址。

报文发送模块,用于发送所述检测请求报文;所述检测请求报文用于指示接收所述检测请求报文的所述目标检测设备,在确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1等于0时,向所述检测发起设备发送检测应答报文;以及所述检测请求报文用于指示接收所述检测请求报文的所述检测发起设备与所述目标检测设备之间的中间节点设备转发所述检测请求报文;所述检测应答报文中携带所述目标检测设备的信息以及所述目标检测设备到达所述检测终止设备的链路层路径信息。

结合第四方面,在一些可选地的实现方式中,所述装置还包括信息获取模块,

所述信息获取模块,用于获取所述待检测目标mac地址,根据所述待检测目标mac地址,获取所述检测终止设备的信息、所述检测发起设备到达所述检测终止设备的下一跳的mac地址以及所述检测发起设备到达所述目标mac地址的链路层路径的总跳数。

结合第四方面,在一些可选地的实现方式中,所述装置还包括报文接收模块和结果获取模块,

所述报文接收模块,用于接收所述检测应答报文;

所述结果获取模块,用于当所述报文接收模块在预定时间内接收到所述检测应答报文时,所述检测发起设备确定所述检测发起设备与所述目标检测设备之间的路径正常,否则确定所述检测发起设备与所述目标检测设备之间的路径故障。

结合第四方面,在一些可选地的实现方式中,所述检测请求报文和所述检测应答报文采用trill数据报文格式。

第五方面,本申请实施例提供了一种链路层路径检测装置,应用于检测发起设备与检测终止设备之间的中间节点设备,所述装置包括:

报文接收模块,用于接收所述检测发起设备发送的检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址。

报文发送模块,用于确定自身设备不是所述检测终止设备且所述检测请求报文中的报文跳数减1等于0时,向所述检测发起设备发送检测应答报文;所述检测应答报文中包括所述自身设备的信息以及自身设备到达所述检测终止设备的路径信息。

报文转发模块,用于确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1不等于0时,转发所述检测请求报文;所述检测应答报文中包括所述自身设备的信息以及自身设备到达所述检测终止设备的路径信息。

第六方面,本申请实施例提供了一种链路层路径检测装置,应用于检测终止设备,所述检测终止设备为检测发起设备到达待检测目标mac地址的链路层出口设备,所述装置包括:

报文接收模块,用于接收到来自所述检测发起设备发送的检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址。

报文发送模块,用于在所述报文接收模块接收到来自所述检测发起设备发送的检测请求报文时,向所述检测发起设备发送检测应答报文;所述检测应答报文中包括所述自身设备的信息以及自身设备到达所述目标mac地址的出端口。

第七方面,本申请实施例提供了一种链路层路径检测系统,包括检测发起设备和检测终止设备,所述检测发起设备与检测终止设备之间包括至少一个中间节点设备;

所述检测发起设备包括第四方面,以及第四方面任一实现方式所述的链路层路径检测装置;

所述中间节点设备包括第五方面所述的链路层路径检测装置;

所述检测终止设备第六方面所述的链路层路径检测装置。

本申请实施例的有益效果是:

检测发起设备通过生成包含待检测目标mac地址、检测终止设备的信息以及报文跳数的检测请求报文并发送到目标检测设备,那么目标检测设备通过确认检测请求报文不是发送给自己,以及确认报文跳数减1等于0时,目标检测设备就可以向检测发起设备发送携带目标检测设备的信息以及目标检测设备到达检测终止设备的链路层路径信息的检测应答报文,故检测发起设备根据中间节点设备转发检测请求报文而获得检测应答报文后,就能够根据检测应答报文就能够知晓在目标检测设备处是否故障,从而实现了可自动对二层网络中目标检测设备处是否故障进行检测,极大的提高了二层网络中的故障确定效率。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请第二实施例提供的一种链路层路径检测方法的流程图;

图2示出了本申请第二实施例提供的一种链路层路径检测方法中检测请求报文的结构示意图;

图3示出了本申请第三实施例提供的一种链路层路径检测装置的第一结构框图;

图4示出了本申请第三实施例提供的一种链路层路径检测装置的第二结构框图;

图5示出了本申请第三实施例提供的一种链路层路径检测装置的第三结构框图。

具体实施方式

随着二层网络中设备数量也越来越庞大,二层网络中的设备常常会进行跨区域的部署。比如,一个二层网络中具有100台设备,其中,50的台设备在a地区的机房,另外50台设备在b地区的机房,而a地区和b地区之间的距离可能达到几十公里。

但发明人经过长期的实践研究发现,在二层网络规模较小时,比如,二层网络的应用在一个办公室内的10台左右的设备。这种情况下,若二层网络中出现例如网络中设备的转发表项老化、链路切换、端口变化等异常,就会导致二层网络中的业务中断。用户虽然采用人工登录每台设备进行逐一排查并确定故障设备的方式,但由于设备较少,该方式也能够较快的确定出故障设备。但随着目前数据中心二层网络中设备的数量越来越庞大,甚至设备与设备之间还跨地域,那么采用人工登录每台设备进行逐一排查并确定故障设备的方式效率太低,数小时或数天都无法确定出故障。

以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。

基于上述研究,本申请实施例提供了一种链路层路径检测方法、装置及系统。检测发起设备通过生成包括待检测目标mac地址、检测终止设备的信息以及报文跳数的检测请求报文并发送,接收该检测请求报文的节点设备,在确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1等于0时,向所述检测发起设备发送检测应答报文,在确定所述检测请求报文中的报文跳数减1不等于0时转发该检测请求报文,故检测发起设备根据检测应答报文的接收情况就能够知晓与检测终止设备之间的路径是否故障,从而实现了可自动对二层网络中路径是否故障进行检测,极大的提高了二层网络中的故障确定效率。

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

第一实施例

本申请实施例提供了一种二层网络,即链路层网络。该二层网络包括:多个节点设备。

多个节点设备中每个节点设备可以为交换机或网桥等设备。多个节点设备中每个节点设备均通过链路与相邻的节点设备连接来构成该二层网络,其中,该二层网络可以为多个节点设备基于trill协议(transparentinterconnectionoflotsoflinks、多链接透明互联协议)构成的以太网络,或与以太网络等同的其它网络。由于基于trill协议,该二层网络中的多个节点设备构成了相应的trill网络域。

多个节点设备中的至少部分的节点设备还可以与终端设备连接,从而实现终端设备可以通过多个节点设备构成的链路而与其它终端设备进行数据通信,即连接trill网络域的终端设备可以基于trill网络域而与连接trill网络域的其它终端设备进行数据通信。

本实施例中,多个节点设备的任一个节点设备均可以基于trill协议中的约定规则生成相应的检测请求报文,以通过向多个节点设备中相应的节点设备发送该检测请求报文来实现对二层网络中的路径进行检测。

另外,与本实施例中,该二层网络也可以为多个节点设备基于满足二层网络的其它链路层控制协议而构建,并在构建后,多个节点设备中每两个节点设备基于其它链路层控制协议来进行相互之间交互。例如,二层网络也可以为多个节点设备基于生成树协议、lldp协议(linklayerdiscoveryprotocol、链路层发现协议)、ndsp协议(neighbordevivesearchprotocol、邻居设备搜索协议)或eaps协议(ethernetautomaticprotectionswitching)等构建而成,且多个节点设备的任一节点设备均可以基于生成树协议、lldp协议、ndsp协议或eaps协议中约定规则生成相应的检测请求报文,并也通过向多个节点设备中相应的节点设备发送该检测请求报文来实现对二层网络中的路径进行检测。

可以理解到,本实施例中的多个节点设备采用基于trill协议来构建相应的二层网络,且多个节点设备中每两个节点设备基于trill协议进行数据通信,其仅为本实施例的一种实现方式,以便基于该实现方式对本实施例的方案进行详细阐述后,本领域技术人员能够清楚的理解本方案,并不作为对本实施例的限定。当然,多个节点设备基于满足二层网络的其它链路层控制协议而构建二层网络并进行交互的方式与采用trill协议的方式类似,其实现的过程可以参考采用trill协议的实现过程,为便于描述的简洁,本实施例对此便不再做过多累述。

第二实施例

请参阅图1,本申请实施例提供了一种链路层路径检测方法,该链路层路径检测方法应用于二层网络。该链路层路径检测方法包括:步骤s100和步骤s200。

二层网络中的节点设备可以对该节点设备所在的链路层路径是否故障而进行检测。假设,节点设备a依次与节点设备b和节点设备c连接,节点设备a连接的终端设备t1访问与节点设备c连接的终端设备t2的链路层路径包括:节点设备a、节点设备b和节点设备c,那么在节点设备a发起对到达终端设备t2的mac地址的链路层路径进行检测时,节点设备a可以通对链路层路径与每个节点设备连接的路径是否故障进行检测从而确定该链路层路径整体上是否故障,即节点设备a需要依次对与节点设备b处连接的路径和与节点设备c连接的路径进行检测。此时节点设备a为检测发起设备,节点设备c为检测终止设备,节点设备b即是检测发起设备与检测终止设备之间的中间节点设备,也是检测发起设备到达检测终止设备的下一跳。

本实施例首先以检测发起设备在对链路层路径中任一中间节点设备进行链路检测来说明本实施例提供的链路层路径检测方法,但并不作为对本实施例的限定。

在步骤s100之前,检测发起设备可以通过自身的交互界面,例如通过按键、按键配合显示屏或触控屏等方式与用户的交互。检测发起设备就可以接收到用户的交互操作发出的检测控制指令,检测发起设备可以基于该检测控制指令执行对检测发起设备到达某一待检测目标mac地址的链路层路径进行检测,其中,该检测控制指令中包括待检测目标mac地址,检测终止设备为检测发起设备到达待检测目标mac地址的链路层出口设备。

另外,检测控制指令的生成方式可以为:检测发起设备的上显示有通过二层网络连接的目标终端设备,用户点击每个检测发起设备的中相应的目标终端设备,检测发起设备基于用户的点击操作就可以响应并生成包含有该目标终端设备的mac地址(作为待检测目标mac地址)的控制指令;还可以是用户在检测发起设备输入检测目标mac地址。

可选地,检测发起设备中预先设置了用于基于trill协议与其它检测发起设备交互的表项,该表项可以为fib(forwardinginformationdatabase,转发信息库)表,该表还可以包括两类表,其分别为mac地址表和trill转发表。其中,mac地址表中存储了mac地址、vlan以及出端口,还存储了每个mac地址对应的链路层出口设备的链路层标识信息(即该mac地址是从哪个节点设备学习到的信息),且链路层标识信息均可以是基于trill协议所定义的标识;trill转发表中则存储该二层网络中trill域内的所有转发链路,包括链路层出口设备的链路层标识信息、对应下一跳的mac地址、出端口以及到达目标mac地址的链路层路径的总跳数等。

在检测发起设备接收到检测控制指令后,检测发起设备基于该检测控制指令的待检测目标mac地址,检测发起设备就可以去fib表项中查找出到达该待检测目标mac地址的链路层路径。

详细的,检测发起设备可以根据控制指令中的待检测目标mac地址。基于该待检测目标mac地址,检测发起设备可以在mac地址表中查找出该待检测目标mac地址对应的检测终止设备的标识,该检测终止设备的标识可以为检测终止设备在trill协议中nickname。检测发起设备再基于该检测终止设备的nickname可以在trill转发表中查找到检测发起设备至该检测终止设备的链路层路径,并获得该链路层路径上至少包括所述检测发起设备到达所述检测终止设备的下一跳的mac地址以及所述检测发起设备到达所述目标mac地址的链路层路径的总跳数。

基于trill协议的报文是逐跳转发的,总跳数(hopcount)可以用来限制报文在链路层转发的范围,故检测发起设备基于总跳数就可以确定每次检测的报文跳数,每次检测的报文跳数可以指示检测发起设备本次需要到达目标检测设备的报文跳数。即报文跳数与检测发起设备进行检测的跳数有关,比如,检测发起设备a刚开始对目标检测设备b进行检测,那么报文跳数就为1,而检测发起设备a对目标检测设备b检测完成且需要开始对目标检测设备c进行检测,那么检测发起设备a就将报文跳数调整为2。

可以理解到的是,报文跳数不同对应的目标检测设备也不同,报文跳数为1时,则可以指示目标检测设备为检测发起设备到达检测终止设备的下一跳。报文跳数为链路层路径的总跳数时,则可以指示目标检测设备为检测终止设备。而报文跳数为介于1与链路层路径的总跳数之间的值时,则可以指示目标检测设备为检测发起设备到达所述检测终止设备的下一跳检测终止设备之间的中间节点设备。

再者,检测发起设备基于该链路层路径还可以查找到在链路层路径中检测发起设备到达检测终止设备的下一跳的mac地址。

这样,检测发起设备就获得的待检测目标mac地址、检测终止设备的信息、下一跳的mac地址和报文跳数。

需要说明的是,检测发起设备所查找出的链路层路径可以为不止一条,但由于检测发起设备对每条链路层路径的检测方式相同,故本实施例针对其中任一一条链路层路径为例来进行说明,但并不作为对本实施例的限定。

另外,若检测控制指令中的待检测目标mac地址就为该检测发起设备,那么检测发起设备会进行错误提示。

本实施例中,检测发起设备基于将获得的待检测目标mac地址、检测终止设备的信息、下一跳的mac地址和链路层路径的总跳数,检测发起设备则可以将链路层路径中除检测发起设备外且包括检测终止设备在内的每个中间节点设备作为每个目标检测设备,并按照链路层路径中每个目标检测设备的连接关系根据记录的前述获得的信息依次对每个目标检测设备进行检测。

继续前述的假设,在链路层路径中,检测发起设备a与节点设备b连接,节点设备b与节点设备c连接,那么检测发起设备a接收到待检测目标mac地址为与节点设备c连接的终端设备的mac地址时,检测发起设备a可以先检测在链路层路径在目标检测设备b处路径是否故障,再检测在链路层路径在目标检测设备c处路径是否故障。

检测发起设备也基于获得的待检测目标mac地址、检测终止设备的信息、下一跳的mac地址和链路层路径的总跳数,检测发起设备可以基于trill协议生成检测请求报文开始对链路层路径中的所有目标检测设备处路径是否故障依次开始检测,即电子设备可以多次执行步骤s100。

步骤s100:检测发起设备生成检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述检测终止设备为所述检测发起设备到达待检测目标mac地址的链路层出口设备;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址。

检测发起设备基于获得的待检测目标mac地址、检测终止设备的信息和报文跳数,检测设备便可以生成携带待检测目标mac地址、检测终止设备的信息以及报文跳数且满足trill协议的报文的检测请求报文。

本实施例中,第一检测请求报文和第一检测应答报文可以为采用trill协议数据报文的格式。如图2所示,满足trill协议的报文包括三个头部,三个头部分别是外层以太网头部(outerethernetheader),trill头部(trillheader)和内层以太网头部(nativeethernetframe)。

本实施例中,检测发起设备可以将待检测目标mac地址、检测终止设备的信息、下一跳的mac地址和报文跳数封装到生成的该检测请求报文中。其中,检测请求报文的trill头部内封装有该检测发起设备的标识(ingressnickname)、检测终止设备的标识(egressnickname),而该目的标识则可以为检测请求报文中检测终止设备的信息。检测请求报文的外层以太网头部内源mac地址为检测发起设备的mac地址,以及检测请求报文的外层以太网头部的目的mac地址封装通往测终止设备的下一跳的mac地址。检测请求报文的内层以太网头部内源mac地址为检测发起设备的mac地址,以及检测请求报文的内层以太网头部的目的mac地址封装trill协议的mac地址01:80:c2:00:00:42。以及,trill头部中ingressnickname为检测发起设备的nickname,egressnickname为检测终止设备的nickname;检测发起设备还将报文跳数封装到检测请求报文的报文跳数字段中。

在本实施例中,为便于标识该检测请求报文为用于检测路径的报文以及目标检测设备通过检测应答报文返回路径信息,检测发起设备还可以在检测请求报文的trill头部内的可选字段(options)处封装相应的数据(路径检测标识信息)。可选的,该相应的数据包括:目标待检测mac地址和目标检测设备到达检测终止设备的链路层路径信息为空。

基于上述的封装流程,检测发起设备生成了该检测请求报文。

另外,在生成检测请求报文之前,检测发起设备为了确定是否需要对链路层路径中目标检测设备的路径进行检测,以及为了确定出在什么时候已经完成了对链路层路径中所有目标检测设备的路径的检测。故检测发起设备可以通过判断检测发起设备的报文跳数是否大于到达检测终止设备的链路层路径的总跳数来确定对链路层路径中所有目标检测设备的路径的检测是否完成。

在判断报文跳数不大于链路层路径的总跳数时,则检测发起设备确定检测未结束,需要继续对到达检测终止设备路径中的其它节点设备的路径的进行检测,故检测发起设备可以继续执行步骤s200。

在判断为报文跳数大于链路层路径的总跳数时,则检测发起设备确定检测结束,故终端设备终止后续的流程的执行,并输出相应的结果。

步骤s200:所述检测发起设备发送所述检测请求报文;所述检测请求报文用于指示接收所述检测请求报文的所述目标检测设备,在确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1等于0时,向所述检测发起设备发送检测应答报文;以及所述检测请求报文用于指示接收所述检测请求报文的所述检测发起设备与所述目标检测设备之间的中间节点设备转发所述检测请求报文;所述检测应答报文中携带所述目标检测设备的信息以及所述目标检测设备到达所述检测终止设备的链路层路径信息。确定可以发送该检测请求报文后,检测发起设备可以向二层网络中的链路层路径发送检测请求报文。相应的,检测请求报文用于指示接收检测请求报文的目标检测设备,在确定自身设备非检测终止设备且检测请求报文中的报文跳数减1等于0时,向检测发起设备发送检测应答报文;以及检测请求报文用于指示接收检测请求报文的检测发起设备与目标检测设备之间的中间节点设备转发检测请求报文。

这样,位于链路层路径中的中间节点设备就可以接收到该检测请求报文。中间节点设备根据检测请求报文确定自身设备非检测终止设备且检测请求报文中的报文跳数减1等于0时,中间节点设备则确认自身为目标检测设备而向检测发起设备发送包括自身设备的信息以及自身设备到达检测终止设备的路径信息的检测应答报文。自身设备到达检测终止设备的路径信息包括该中间节点设备到达所述检测终止设备的出端口和下一跳的信息。

而中间节点设备根据确定检测请求报文自身设备非检测终止设备且检测请求报文中的报文跳数减1不等于0时,中间节点设备则不为目标检测设备而继续转发检测请求报文。

而中间节点设备根据确定检测请求报文确定自身设备是检测终止设备时,中间节点设备则可以为检测终止设备而向检测发起设备发送包括自身设备的信息以及自身设备到达待检测目标mac地址的路径信息的检测应答报文。

本实施例中,在目标检测设备或检测终止设备返回相应的检测应答报文,检测发起设备则可以根据在预定时间内接收到检测应答报文确定检测发起设备与目标检测设备之间的路径正常;否则便可以确定检测发起设备与目标检测设备之间的路径故障。需要特别说明的是,有些情况下虽然检测发起设备则在预定时间内接收到检测应答报文,当时该返回的路径信息与规划的路径不符,也会进行错误提示

但若检测发起设备与目标检测设备之间还包括中间节点设备时,检测发起设备在确定检测发起设备与中间节点设备之间的路径正常时,检测发起设备则可以根据在预定时间内未接收到检测应答报文而确定中间节点设备与目标检测设备之间的路径故障。

上述内容说明了本申请的原理,下面将通过一个完成流程来对本申请的方法流程进行详细的说明。

在开始检测时,检测发起设备通过待检测目标mac地址在fib表中获得到达检测终止设备的下一跳,此时该下一跳作为第一个目标检测设备(以下称为第一目标检测设备)。也基于获得的第一个目标检测设备的mac地址、检测终止设备的信息和第一报文跳数为1,检测发起设备可以基于trill协议生成第一检测请求报文,其中,第一检测请求报文即为满足trill协议的报文。

第一目标检测设备在获得该第一检测请求报文时,由于该第一检测请求报文的外层以太网头部为下一跳的mac地址,则第一目标检测设备发现是发送给自己,且该第一检测请求报文中的第一报文跳数减1后判为0,故第一目标检测设备则可以将该第一检测请求报文解封装。这样第一目标检测设备就可以获得该第一检测请求报文中满足trill协议的地址,即为检测发起设备的标识、检测终止设备的目的标识和第一报文跳数为1。此时第一目标检测设备向所述检测发起设备发送第一检测应答报文;所述第一检测应答报文中包括所述第一目标节点设备的信息以及以及第一目标检测设备到达检测终止设备的链路层路径信息。

通常情况下,正常的第一检测请求报文的可选字段处是无数据,故通常情况下的第一目标检测设备基于可选字段处是无数据,便可以确定该第一检测请求报文就是常规的报文,并将该第一检测请求报文交由常规处理逻辑的trilloam进行处理。

但由于本实施例中第一检测请求报文的可选字段处的数据为:待检测目标mac地址和目标检测设备到达检测终止设备的链路层路径信息为空,故第一目标检测设备基于对可选字段处的数据检测,第一目标检测设备就能够确定第一检测请求报文表示该报文为路径检测报文:检测发起设备需要获得第一目标检测设备到达检测终止设备的下一跳设备的信息和第一目标检测设备到达检测终止设备的出端口。因此,第一目标检测设备可以生成第一检测应答报文。该第一检测应答报文中的可选字段处包括:第一目标检测设备的信息,以及第一目标节点设备到达所述检测终止设备的出端口和下一跳的信息。

本实施例中,生成第一检测应答报文后,第一目标检测设备通过转发链路层路径将该第一检测应答报文返回给检测发起设备。

继续前述的假设,检测发起设备a发送报文跳数为1的第一检测请求报文至目标检测设备b。目标检测设备b首先自身不是所述检测终止设备且所述第一检测请求报文中的第一报文跳数减1等于0时,就可以基于第一检测请求报文的可选字段处的数据,生成包含有该第一目标检测设备b的链路层路径信息(nickname)、检测终止设备的信息(设备c的nickname)、到达所述检测终止设备c的出端口和下一跳的信息(设备c的nickname)的第一检测应答报文。此时,目标检测设备b将第一检测应答报文发送给检测发起设备a。

检测发起设备根据接收所述第一检测应答报文的情况来确定检测发起设备与第一目标检测设备之间的路径是否故障。可选地,检测发起设备可以通过判断在预定时间内是否接收到第一目标检测设备发送的第一检测应答报文来对应判断检测发起设备与第一目标检测设备之间的路径是否故障。

在预设时间内未接收到第一目标检测设备发送的第一检测应答报文时,那么检测发起设备可以确定检测发起设备与第一目标检测设备之间的路径故障,从而生成并显示出相应的故障信息。

在预设时间内接收到第一目标检测设备发送的第一检测应答报文时,检测发起设备通过对该第一检测应答报文的解封装而获得第一目标检测设备的信息,那么,检测发起设备可以确定该第一检测应答报文为第一目标检测设备发送,从而确定检测发起设备与第一目标检测设备之间的路径无故障。

检测发起设备对接收到的第一检测应答报文处理完成后,即检测发起设备确定检测发起设备与第一目标检测设备之间的路径无故障后,检测设备可以判断第一转发链路上的全部中间节点设备的检测是否已经完成。

可选地,检测发起设备可以通过判断第一报文跳数加1是否小于等于预先获得的链路层路径的总跳数来判断对第一转发链路上的全部中间节点设备的检测是否已经完成。

在判断为第一报文跳数加1大于总跳数时,检测发起设备确定第一目标检测设备即为检测终止设备,并确定检测完成,从而终止后续流程的执行。

在判断为第一报文跳数加1小于等于总跳数时,检测发起设备确定第一目标检测设备不为检测终止设备,还需要对第一目标检测设备之后的第二目标检测设备进行检测,以及需要确定第二目标检测设备是否为检测终止设备,其中,该第二目标检测设备也为第一目标检测设备到达检测终止设备的下一跳设备。那么,检测发起设备基于待检测目标mac地址、检测终止设备的信息、第一目标检测设备作为下一跳的mac地址,以及基于将第一报文跳数加1生成第二报文跳数,且检测发起设备就可以生成第二检测请求报文。

可以理解到,生成第二检测请求报文的详细实现方式可以参考前述生成第一检测请求报文的描述,再次就不再累述。

继续前述的假设,检测发起设备a与节点设备b连接,节点设备b与节点设备c连接,节点设备c为检测终止设备同时也是第一目标检测设备。所述检测发起设备在接收到所述第一检测应答报文后,继续进行路径检测,此时判断所述第一报文跳数加1小于等于所述链路层路径的总跳数时,将所述第一报文跳数加1生成第二报文跳数,所述检测发起设备生成第二检测请求报文;所述第二检测请求报文中包括第一目标节点设备的信息(填充在外层以太头部的目的mac地址)、检测终止设备的信息(填充在egressnickname)以及第二报文跳数;选项字段处填充待检测目标mac地址。所述检测发起设备向所述第一目标节点设备发送所述第二检测请求报文。

检测发起设备在生成第二检测请求报文后就向第一目标检测设备发送该第二检测请求报文,以通过第一目标检测设备向该第二目标检测设备转发该第二检测请求报文。

第一目标检测设备在接收到该第二检测请求报文后,确定自身不是所述检测终止设备且所述第二检测请求报文中的第二报文跳数减1不等于0时,将所述第二检测请求报文转发至第二目标节点设备(需要更换外层以太头部的源目mac,该处理步骤属于本领域技术人员的公知常识,不再赘述),所述第二目标节点设备为所述第一目标节点设备到达所述检测终止设备的下一跳。

所述第二目标节点设备接收到所述第二检测请求报文后,根据第二检测请求报文中的egressnickname在确定自身为所述检测终止设备时,向所述检测发起设备发送第二检测应答报文;所述检测应答报文中包括所述第二目标节点设备的信息以及所述第二目标节点设备到达所述目标mac地址的出端口。其中,由于第二目标检测设备即为链路层路径中的检测终止设备,故第二检测应答报文中的可选字段处包括:第二目标检测设备的信息,以及第二目标检测设备到达检测终止设备的下一跳设备的信息为空。

这样,第二目标检测设备就能够将生成的第二检测应答报文通过第一目标检测设备发送给检测发起设备。

检测发起设备也可以根据接收第二检测应答报文的情况来确定检测发起设备与第二目标检测设备之间的路径是否故障。可选地,检测发起设备也可以通过判断在预定时间内是否接收到第二目标检测设备发送的第二检测应答报文来对应判断检测发起设备与第二目标检测设备之间的路径是否故障。

在预设时间内未接收到第二目标检测设备发送的第二检测应答报文时,那么检测发起设备可以基于确定检测发起设备与第一目标检测设备之间的路径正常,从而确定第一目标检测设备与第二目标检测设备之间的路径故障,从而生成并显示出相应的故障信息。

在预设时间内接收到第二目标检测设备发送的第二检测应答报文时,检测发起设备通过对该第二检测应答报文的解封装而获得第二目标检测设备的信息,那么,检测发起设备可以确定该第二检测应答报文为第二目标检测设备发送,从而确定检测发起设备与第二目标检测设备之间的路径正常。再者,检测发起设备通过判断为第二报文跳数加1等于链路层路径的总跳数,那么可以确定检测结束。

还有一种可能的情况是,检测发起设备a与节点设备b连接,节点设备b与节点设备c连接,节点设备c与节点设备d连接,节点设备d为检测终止设备。此时作为第二目标节点设备的节点设备c接收所述第二检测请求报文,确定自身不是所述检测终止设备且所述第二检测请求报文中的第二报文跳数减1等于0时,向所述检测发起设备发送第二检测应答报文;所述第二检测应答报文中包括所述第二目标节点设备的信息以及所述第二目标节点设备到达所述检测终止设备的出端口和下一跳的信息(节点设备d的信息)。

继续前述的假设,检测发起设备a发送以目标检测设备c为检测终止设备且报文跳数为2的第二检测请求报文至目标检测设备b。目标检测设备b首先确定该新的第二检测请求报文不是发送给自己的,且目标检测设备b再根据报文跳数减1为1判定该第二检测请求报文是需要转发的普通报文,从而将该第一检测请求报文发送至目标检测设备c。目标检测设备c在获得该第二检测请求报文后,目标检测设备c可以首先确定该新的第二检测请求报文是发送给自己的,那么目标检测设备c基于对第二检测请求报文的分析,就可以基于第二检测请求报文的可选字段处的数据,生成包含有该目标检测设备c处的路径为空、检测终止设备为检测发起设备a且报文跳数为2的第二检测应答报文。此时,目标检测设备c将第二检测应答报文发送给检测发起设备b。目标检测设备b首先也确定该第二检测应答报文不是发送给自己的,且目标检测设备b再根据报文跳数减1为1判定该第二检测应答报文是需要转发的普通报文,从而将该第二检测应答报文发送至检测发起设备a。进而检测发起设备a基于获得的第二检测应答报文就可以完成对目标检测设备c的检测。最后,检测发起设备a基于此时的报文跳数为2等于路径跳数2,故检测发起设备a确定检测结束。

另外,需要说明的是,上述例举是以链路中有3个节点,并进行两跳来说明。于本实施例来说,不应限制为链路中的节点为3个。实际上,本实施例所实现的为链路中多个节点情况下的检测,例如具体5个、7个或10个节点等,其检测的方式也与上述例举的方式相同。为避免累述,在此就不做详细说明。

第三实施例

请参阅图3,本申请实施例提供了一种链路层路径检测装置100,该链路层路径检测装置100应用于检测发起设备,链路层路径检测装置100包括:

信息获取模块110,用于获取所述待检测目标mac地址,根据所述待检测目标mac地址,获取所述检测终止设备的信息、所述检测发起设备到达所述检测终止设备的下一跳的mac地址以及所述检测发起设备到达所述目标mac地址的链路层路径的总跳数。

报文生成模块120,用于生成检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述检测终止设备为所述检测发起设备到达待检测目标mac地址的链路层出口设备;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址。

报文发送模块130,用于发送所述检测请求报文;所述检测请求报文用于指示接收所述检测请求报文的所述目标检测设备,在确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1等于0时,向所述检测发起设备发送检测应答报文;以及所述检测请求报文用于指示接收所述检测请求报文的所述检测发起设备与所述目标检测设备之间的中间节点设备转发所述检测请求报文;所述检测应答报文中携带所述目标检测设备的信息以及所述目标检测设备到达所述检测终止设备的链路层路径信息。

可选地,链路层路径检测装置100还包括:

所述报文接收模块140,用于接收所述检测应答报文。

所述结果获取模块150,用于当所述报文接收模块在预定时间内接收到所述检测应答报文时,所述检测发起设备确定所述检测发起设备与所述目标检测设备之间的路径正常,否则确定所述检测发起设备与所述目标检测设备之间的路径故障。

可选地,所述检测请求报文和所述检测应答报文采用trill数据报文格式。

请参阅图4,本申请实施例提供了一种链路层路径检测装置200,该链路层路径检测装置200应用于检测发起设备与检测终止设备之间的中间节点设备,链路层路径检测装置200包括:

报文接收模块210,用于接收所述检测发起设备发送的检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址。

报文发送模块220,用于确定自身设备不是所述检测终止设备且所述检测请求报文中的报文跳数减1等于0时,向所述检测发起设备发送检测应答报文;所述检测应答报文中包括所述自身设备的信息以及自身设备到达所述检测终止设备的路径信息。

报文转发模块230,用于确定自身设备非所述检测终止设备且所述检测请求报文中的报文跳数减1不等于0时,转发所述检测请求报文;所述检测应答报文中包括所述自身设备的信息以及自身设备到达所述检测终止设备的路径信息。

请参阅图5,本申请实施例提供了一种链路层路径检测装置300,该链路层路径检测装置300应用于检测终止设备,所述检测终止设备为检测发起设备到达待检测目标mac地址的链路层出口设备,链路层路径检测装置300包括:

报文接收模块310,用于接收到来自所述检测发起设备发送的检测请求报文;所述检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;所述报文跳数指示所述检测发起设备到达目标检测设备的跳数;所述检测请求报文的源mac地址为检测发起设备的mac地址,所述检测请求报文的目的mac地址为所述检测发起设备到达所述检测终止设备的下一跳的mac地址。

报文发送模块320,用于在所述报文接收模块接收到来自所述检测发起设备发送的检测请求报文时,向所述检测发起设备发送检测应答报文;所述检测应答报文中包括所述自身设备的信息以及自身设备到达所述目标mac地址的出端口。

需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

综上所述,本申请实施例提供了一种链路层路径检测方法、装置及系统,方法包括:检测发起设备生成检测请求报文;检测请求报文中包括待检测目标mac地址、检测终止设备的信息以及报文跳数;检测发起设备发送检测请求报文;检测请求报文用于指示接收检测请求报文的目标检测设备,在确定自身设备非检测终止设备且检测请求报文中的报文跳数减1等于0时,向检测发起设备发送检测应答报文。故检测发起设备根据中间节点设备转发检测请求报文而获得检测应答报文后,就能够根据检测应答报文就能够知晓在目标检测设备处是否故障,从而实现了可自动对二层网络中目标检测设备处是否故障进行检测,极大的提高了二层网络中的故障确定效率。

以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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