链路故障定位方法及设备
技术领域
本申请涉及网络通信技术领域,特别涉及一种链路故障定位方法及设备。
背景技术
Tracert(跟踪路由)功能是一种应用于三层网络的链路跟踪检测功能。通过使用Tracert功能,用户可以查看IP(Internet Protocol,互联网协议)报文从源端到达目的端所经过的所有三层设备,从而检查网络连接是否可用。当网络出现故障时,用户可以使用该功能分析发生故障的网络节点。Tracert功能是基于ICMP(Internet ControlMessage Protocol,互联网控制消息协议)来实现的。以图1所示的网络为例,Tracert功能的实现原理为:
(1)源端(Device A)向目的端(Device D)发送一个ICMP(Internet Control MessageProtocol,互联网控制消息协议)请求报文,该报文中的TTL(Time to Live,生存时间)值为1,且该报文的UDP(User Datagram Protocol,用户数据包协议)端口号是目的端的任何一个应用程序都不可能使用的端口号;
(2)第一跳(即该报文所到达的第一个三层设备:Device B)回应一个TTL超时的ICMP错误消息(该消息中含有第一跳的IP地址1.1.2.1),这样,源端就得到了第一个三层设备(Device B)的地址(1.1.2.1);
(3)源端重新向目的端发送一个ICMP请求报文,该报文中的TTL值为2;
(4)第二跳(即该报文所到达的第二个三层设备:Device C)回应一个TTL超时的ICMP错误消息(该消息中含有第一跳的IP地址1.1.2.2),这样,源端就得到了第二个三层设备(Device C)的地址(1.1.2.2);
(5)以上过程不断进行,直到ICMP请求报文到达目的端,因为目的端没有任何一个应用程序使用该ICMP请求报文中的UDP端口号,因此,目的端返回一个端口不可达的ICMP错误消息(该消息中携带有目的端的IP地址1.1.3.2);
(6)当源端收到这个端口不可达的ICMP错误消息后,就知道ICMP请求报文已经到达了目的端,从而得到了ICMP请求报文从源端到目的端所经过的路径(1.1.1.2;1.1.2.2;1.1.3.2)。
但是,对于既包含有二层设备、也包含有三层设备的二三层混合网络(也即,既包含有二层网络、也包含有三层网络),如果故障节点(网络节点或网点)处于二层网络中,此时,使用Tracert功能就无法准确定位故障点了。例如,在如图2所示的二三层混合网络中,PC(Private Computer,个人电脑)A使用Tracert功能检测本设备与PC B之间的链路故障时,假设故障发生在Switch(交换机)F,则PC A只能检测出本设备与Router C之间没有故障,而无法定位故障发生在位于Router C下游的哪台交换机。
发明内容
本申请提供了一种链路故障定位方法及设备,以解决现有技术中存在的对于二三层混合网络,当故障节点处于二层网络中时,使用Tracert功能无法准确定位故障点的问题。
本申请的技术方案如下:
一方面,提供了一种链路故障定位方法,应用于由二层网络和三层网络组成的网络,二层网络中包括:至少两个二层的转发设备,位于三层网络中的三层设备包括:用户终端设备和路由设备,该方法包括:
第一转发设备在确定本设备与三层设备直连之后,建立与第二转发设备之间的CFD连接,以进行连续性检测CC,其中,第二转发设备也与三层设备直连,且第二转发设备与第一转发设备在同一二层网络的同一VLAN中;
第一转发设备接收第二转发设备发来的绑定关系,其中,该绑定关系是第二转发设备与第一转发设备之间的CFD连接与第二转发设备直连的三层设备的MAC地址之间的绑定关系;
当通过CC检测到有链路不连通时,第一转发设备开启ICMP报文侦听;
在侦听到TTL值为1的ICMP请求报文之后,第一转发设备查找与该ICMP请求报文中的目的MAC地址绑定的第一CFD连接,对第一CFD连接进行链路跟踪LT检测,其中,该ICMP请求报文是第一用户终端设备在进行Tracert检测时发出的;
第一转发设备将通过LT检测得到的最后一个可达设备的信息发送给第一用户终端设备。
另一方面,还提供了一种转发设备,应用于由二层网络和三层网络组成的网络,二层网络中包括:至少两个二层的转发设备,位于三层网络中的三层设备包括:用户终端设备和路由设备,该转发设备包括:判断模块、CFD连接模块、接收模块、保存模块、发送模块、侦听模块和查找模块,其中,
判断模块,用于判断本设备是否与三层设备直连;
CFD连接模块,用于在判断模块确定本设备与三层设备直连之后,建立本设备与第二转发设备之间的CFD连接,对该CFD连接进行连续性检测CC,其中,第二转发设备也与三层设备直连,且第二转发设备与第一转发设备在同一二层网络的同一VLAN中;还用于对查找模块查找到的第一CFD连接进行链路跟踪LT检测;
接收模块,用于接收第二转发设备发来的绑定关系,其中,该绑定关系是第二转发设备与本设备之间的CFD连接与第二转发设备直连的三层设备的MAC地址之间的绑定关系;
保存模块,用于保存接收模块接收到的绑定关系;
发送模块,用于将CFD连接模块通过LT检测得到的最后一个可达设备的信息,发送给第一用户终端设备;
侦听模块,用于当CFD连接模块通过CC检测到有链路不连通时,开启ICMP报文侦听;
查找模块,用于在侦听模块侦听到TTL值为1的ICMP请求报文之后,在保存模块中查找与该ICMP请求报文中的目的MAC地址绑定的第一CFD连接,其中,该ICMP请求报文是第一用户终端设备在进行跟踪路由Tracert检测时发出的。
在本申请的技术方案中,在二三层混合网络中,当二层网络中发生了故障之后,能通过Tracert和CFD(Connectivity Fault Detection,连通错误检测)联动的方式,准确定位出故障点。
附图说明
图1是现有技术的Tracert功能应用的典型组网图;
图2是一种二三层混合网络的组网图;
图3是本申请的实施例一的链路故障定位方法的流程图;
图4是本申请的实施例三的转发设备的一种结构示意图;
图5是本申请的实施例三的转发设备的另一种结构示意图。
具体实施方式
为了解决现有技术中存在的对于二三层混合网络,当故障节点处于二层网络中时,使用Tracert功能无法准确定位故障点的问题,本申请的以下实施例中提供了一种应用于二三层混合网络中的链路故障定位方法以及一种可以应用该方法的二层的转发设备。本申请以下实施例的技术方案中,在二三层混合网络中,当二层网络中发生了故障之后,能通过Tracert和CFD(Connectivity Fault Detection,连通错误检测)联动的方式,准确定位出故障点。并且,在组网成功后,任意一个与三层网络直连(具体是与三层设备直连)的二层转发设备(称为第一转发设备)能动态地配置并建立本设备与同一二层网络的同一VLAN中的也与三层网络直连的第二转发设备之间的CFD连接。在建立了CFD连接后,会建立该CFD连接与本设备直连的三层设备的MAC地址之间的绑定关系,同时也可以接收到第二转发设备发来的该CFD连接与第二转发设备直连的三层设备之间的绑定关系;当对CFD连接进行连续性检测时检测到有链路不连通了之后,第一转发设备会开启ICMP报文侦听功能,在侦听到TTL值为1的ICMP请求报文(即第一用户终端设备使用Tracert功能时发出的ICMP请求报文)后,第一转发设备就可以根据该报文中的目的地址查找到对应的CFD连接(称为第一CFD连接),并对第一CFD连接进行链路跟踪检测,将检测得到的最后一个可达设备的信息发送给第一用户终端设备,这样,管理员就可以在第一用户终端设备上查看到最后一个可达设备的信息。通过以上技术方案,在二三层混合网络中,管理员只要在用户终端设备上使用Tracert功能,就可以根据Tracert中使用的ICMP请求报文进行CFD联动检测,从而准确地定位出二层网络中的故障点。
为了便于理解本申请实施例的技术方案,下面首先对CFD及其功能进行详细介绍。
CFD是一种遵循IEEE 802.1ag的CFM(Connectivity Fault Management,连通错误管理)协议,是一种应用于二层网络中的基于VLAN(Virtual Local Area Network,虚拟局域网)的端到端OAM(Operations,Administration and Maintenance,操作、管理和维护)机制。CFD主要用于在二层网络中检测链路的连通性,以及在故障发生时确认并定位故障。CFD的有效应用建立在合理的网络部署和配置之上。CFD的功能是在所配置的MP(Maintenance Point,维护点)之间实现的。其中,MP配置在二层设备的接口上,属于某一个MA(Maintenance Association,维护集),可分为MEP(Maintenance association End Point,维护端点)和MIP(Maintenance associationIntermediate Point,维护中间点)两种。
CFD主要包括以下三种功能:
1、连续性检测功能
MEP之间的连通失败可能由设备故障或配置错误造成,连续性检测(ContinuityCheck,CC)功能就是用来检测MEP之间的连通状态。该功能的实现方式是:由MEP周期性地发送CCM报文,相同MA的其它MEP接收该报文,并由此获知远端状态。若MEP在3.5个CCM报文发送周期内未收到远端MEP发来的CCM报文,则认为链路有问题,会输出日志报告。当MA中的多个MEP在发送CCM报文时,就实现了多点到多点之间的链路检测。
其中,CCM报文是组播报文。
2、环回功能
环回(Loopback,LB)功能类似于IP层的ping(Packet Internet Grope,因特网包探索器)功能,用于验证源MEP与目标MP之间的连接状态。该功能的实现方式是:由源MEP发送LBM(Loopback Message,环回报文)报文给目标MP,并根据能否收到对端反馈的LBR(Loopback Reply,环回应答)报文来检验链路状态。
其中,LBM报文和LBR报文都是单播报文。
3、链路跟踪功能
链路跟踪(Linktrace,LT)功能类似于IP层的tracert功能,用于确定源MEP到目标MP的路径,其实现方式是:由源MEP发送LTM(Linktrace Message,链路跟踪报文)报文给目标MP,目标MP以及LTM报文所经过的MIP收到该报文后,都会发送LTR(Linktrace Reply,链路跟踪应答)报文给源MEP,源MEP则根据收到的LTR报文来确定到目标MP的路径。
其中,LTM报文是组播报文,LTR报文是单播报文。
实施例一
本申请的实施例一的链路故障定位方法应用于由二层网络和三层网络组成的二三层混合网络中,其中,二层网络中包括:至少两个二层的转发设备,该转发设备可以是交换机等;三层网络中包括:用户终端设备和路由设备等三层设备,用户终端设备可以是PC等,路由设备可以是路由器等。该方法可以由二三层混合网络中的任意一个二层网络中的任意一个与三层网络(或三层设备)直连的转发设备执行。
需要说明的是:下文中的第一转发设备可以是二三层混合网络中的任意一个与三层设备直连的转发设备,并不特指某一个与三层设备直连的转发设备。如图3所示,该链路故障定位方法包括以下步骤:
步骤S301,第一转发设备判断本设备是否与三层设备直连,若不是,则进入步骤S302,否则,进入步骤S303;
例如,第一转发设备可以使用LLDP(Link Layer Discovery Protocol,链路层发现协议)协议来获取与本设备直连的每一个邻居设备的信息,根据每一个邻居设备的信息来确定该邻居设备是否是三层设备,若其中有一个邻居设备是三层设备(路由器或PC),就可以确定本设备与三层设备直连,若没有一个邻居设备是三层设备,就可以确定本设备与三层设备不直连。
步骤S302,按照现有技术进行处理;
步骤S303,第一转发设备建立与第二转发设备之间的CFD连接,以进行连续性检测(CC),其中,第二转发设备也与三层设备直连,且第二转发设备与第一转发设备在同一二层网络的同一VLAN中;
这样,在同一个二层网络的同一VLAN中的与三层设备直连的转发设备之间会建立CFD连接。
其中,第一转发设备建立与第二转发设备之间的CFD连接的方式可以采用以下方式一或方式二:
在方式一中,第一转发设备需要执行的操作包括以下步骤11-12:
步骤11:第一转发设备发送二层广播请求消息,其中,该二层广播请求消息中携带有建立CFD连接所需的相关参数;该相关参数可以是:CFD连接应用的VLAN实例,以及第一转发设备上用于CFD连接的接口的MAC地址;
第二转发设备在接收到该二层广播请求消息后,会根据该二层广播请求消息中携带的建立CFD连接所需的相关参数,计算CFD连接的标识,建立与第一转发设备之间的CFD连接,并将计算的CFD连接的标识通过应答消息发送给第一转发设备。
假设,二层广播请求消息中携带的第一转发设备所要建立的CFD连接应用的VLAN实例为VLAN1,第一转发设备上用于CFD连接的接口的MAC地址为MAC D;第二转发设备上用于CFD连接的接口的MAC地址为MAC A,此时,第二转发设备计算CFD连接的标识,建立与第一转发设备之间的CFD连接,第二转发设备将计算的CFD连接的标识通过应答消息发送给第一转发设备的方法可以是:第二转发设备将MAC D和MAC A按照预定算法进行计算,例如,将MAC D和MAC A进行“与”运算,将计算结果作为与第一转发设备之间的CFD连接的标识(例如,名称),并将该CFD连接应用于VLAN1,将该计算结果携带在应答消息中发送给第一转发设备。
步骤12:在接收到第二转发设备针对该二层广播请求消息返回的应答消息之后,第一转发设备根据该应答消息中携带的CFD连接的标识,建立与第二转发设备之间的CFD连接;
例如,第一转发设备将应答消息中携带的标识作为与第二转发设备之间的CFD连接的标识。
在方式二中,第一转发设备需要执行的操作包括以下步骤21-22:
步骤21:第一转发设备接收到第二转发设备发来的二层广播请求消息之后,根据该二层广播请求消息中携带的建立CFD连接所需的相关参数,计算CFD连接的标识,并建立与第二转发设备之间的CFD连接;
假设,二层广播请求消息中携带的第二转发设备所要建立的CFD连接应用的VLAN实例为VLAN1,第二转发设备上用于CFD连接的接口的MAC地址为MACA;第一转发设备上用于CFD连接的接口的MAC地址为MAC D,此时,第一转发设备执行步骤21的方法可以是:将MAC A和MAC D按照预定算法进行计算,例如,将MAC A和MAC D进行“与”运算,将计算结果作为与第二转发设备之间的CFD连接的标识(例如,名称),并将该CFD连接应用于VLAN1。
步骤22:第一转发设备向第二转发设备返回应答消息,其中,该应答消息中携带有所计算的CFD连接的标识。
例如,将在步骤21中计算得到的计算结果携带在应答消息中发送给第二转发设备。
由上述方式一和方式二可知,第一转发设备可以主动地发送二层广播请求消息,以建立与第二转发设备之间的CFD连接;也可以被动地接收第二转发设备发来的二层广播请求消息,以建立与第二转发设备之间的CFD连接。本申请对此不做限定。
另外,只有在同一个二层网络的同一VLAN中的与三层设备直连的转发设备之间才能建立CFD连接,因为用于请求建立CFD连接的二层广播请求消息到达路由设备后,会被路由设备丢弃,从而无法达到其他二层网络中;并且,CFD是基于VLAN的,只有处于同一VLAN中的转发设备之间才能建立CFD连接。
步骤S304,第一转发设备将该CFD连接(即在步骤S303中建立的CFD连接)与本设备直连的三层设备(包括用户终端设备和路由设备)的MAC(Media AccessControl,媒体访问控制)地址绑定,即,建立该CFD连接与该MAC地址之间的绑定关系,然后,将两者的绑定关系发送给第二转发设备;以及,第一转发设备接收第二转发设备发来的绑定关系,其中,该绑定关系是第二转发设备与第一转发设备之间的CFD连接与第二转发设备直连的三层设备的MAC地址之间的绑定关系,即,该CFD连接与该MAC地址之间的绑定关系;
例如,可以通过建立CFD连接的标识与MAC地址之间的绑定关系,来建立CFD连接与MAC地址之间的绑定关系。
第一转发设备将建立的绑定关系通知给该CFD连接的对端第二转发设备的目的是:当第二转发设备接收到TTL值为1,且目的地址是与第一转发设备直连的一个三层设备的MAC地址(例如,MAC 1)的ICMP请求报文后,就可以从该绑定关系中查找到与MAC 1绑定或对应的CFD连接,并对查找到的CFD连接进行LT检测。从而,根据侦听到的TTL值为1的ICMP请求报文的目的MAC地址,从本地保存的绑定关系中查找到需要对哪一个CFD连接进行LT检测。
同样,第一转发设备作为第二转发设备的CFD连接的对端,也会接收到第二转发设备发来的绑定关系,从而,也可以根据侦听到的TTL值为1的ICMP请求报文的目的MAC地址,从本地保存的绑定关系中查找到需要对哪一个CFD连接进行LT检测。
当第二转发设备有多个时,第一转发设备会针对每一个第二转发设备执行上述的步骤S303-S304。
步骤S305,当通过CC检测到有链路(即二层链路)不连通时,第一转发设备开启ICMP报文侦听;
使用CC检测到二层链路不连通,即二层链路中发生了故障,但是,此时还不能定位出故障点。
在通过CC检测到链路(即二层链路)连通时,第一转发设备就不会开启ICMP报文侦听,对于接收到的ICMP报文就直接透传。
步骤S306,在侦听到TTL值为1的ICMP请求报文之后,第一转发设备查找与该ICMP请求报文中的目的MAC地址绑定的CFD连接,称为第一CFD连接,对第一CFD连接进行LT检测,其中,该ICMP请求报文是第一用户终端设备在进行Tracert检测时发出的;显然,该ICMP请求报文的源MAC地址是第一用户终端设备的MAC地址;
当第一用户终端设备使用Tracert功能进行故障定位时,途径的路由设备收到ICMP请求报文后,仍然按照现有技术的Tracert流程进行处理。
当途经的第一转发设备收到ICMP请求报文后,查看该报文,如果该报文中的TTL=1(因为上游的链路是连通的,每经过一个路由设备该ICMP请求报文中的TTL值就会减1,因此,到达第一转发设备时,该报文中的TTL值已经减到了1),则根据该ICMP请求报文的目的MAC地址,从本地保存的绑定关系中查找到与该目的MAC地址对应的CFD连接:第一CFD连接,从而确定出了需要使用哪个CFD连接。
然后,对第一CFD连接开启Linktrace功能,使用Linktrace能够检测到第一CFD连接中的最后一个可达设备。
步骤S307,第一转发设备将通过LT检测得到的最后一个可达设备的信息发送给第一用户终端设备。
在步骤S307中,针对不同情况,第一转发设备将最后一个可达设备的信息发送给第一用户终端设备的方式也不同,具体的:
情况1:当第一转发设备与路由设备直连时,第一转发设备将通过LT检测得到的最后一个可达设备的信息(如MAC地址)封装在ICMP不可达报文中,将该ICMP不可达报文发送给第一用户终端设备,其中,该ICMP不可达报文的目的MAC地址是第一用户终端设备的MAC地址。
当与第一用户终端设备直连的转发设备接收到该目的MAC地址是第一用户终端设备的MAC地址的ICMP不可达报文之后,解封装该ICMP不可达报文得到该最后一个可达设备的信息,然后,将该最后一个可达设备的信息封装在SNMP(SimpleNetwork Management Protocol,简单网络管理协议)Trap(告警)报文中,将该SNMPTrap报文发送给第一用户终端设备。
情况2:当第一转发设备与第一用户终端设备直连时,第一转发设备将通过LT检测得到的最后一个可达设备的信息封装在SNMP Trap报文中,将该SNMP Trap报文发送给第一用户终端设备。
另外,当第一转发设备与第一用户终端设备直连时,第一转发设备也可能会接收到其他转发设备(可以是不同二层网络中的其他转发设备)执行上述的步骤S305-S307发来的、目的MAC地址是第一用户终端设备的MAC地址的ICMP不可达报文,此时,第一转发设备会解封装该ICMP不可达报文得到其中的最后一个可达设备的信息,然后,将该最后一个可达设备的信息封装在SNMP Trap报文中,将该SNMP Trap报文发送给第一用户终端设备。
通过上述实施例一中的方法,第一用户终端设备使用Tracert功能就可以得到二层网络中的故障位置。
实施例二
以图2所示的二三层混合网络中的SwitchA和Switch F为例,来详细地说明上述实施例一中的方法的具体处理流程。在图2中,转发设备是Switch(交换机),用户终端设备是PC,路由设备是路由器。假设,Switch A和Switch D处于同一个VLAN中,Switch F和Switch H处于同一个VLAN中。
一、对于Switch A:
1、初始阶段:
Switch A使用LLDP协议确定出本设备是与PC(即PC A)直连的交换机。然后,SwitchA可以通过主动发送二层广播请求消息的方式、或者被动接收Switch D发来的二层广播请求消息的方式,建立与Switch D之间的CFD连接(根据两者的MAC地址来确保CFD连接的唯一性)。接下来,Switch A将该CFD与本设备直连的三层设备PC A的MAC地址(记为:PC A-MAC)绑定,并将两者的绑定关系通知给Switch D;同时,还会接收到Switch D发来的该CFD连接与Switch D直连的三层设备Router(路由器)A的MAC地址(记为:Router A-MAC)之间的绑定关系。
2、检测阶段
Switch A在检测到二层链路有故障后,开启ICMP报文侦听。当PC A发现Ping不通PC B,使用Tracert功能进行故障定位检测时,PC A会先发送TTL=1的ICMP请求报文。在Switch A侦听到该报文后,若判定TTL=1,则,Switch A根据该ICMP请求报文中的目的MAC地址:RouterA-MAC,查找与RouterA-MAC绑定的CFD连接,从而查找到本设备与Switch D的CFD连接进行Linktrace检测。假设Switch B与Switch D之间的链路存在故障,则,Switch A会通过Linktrace检测得到最后一个可达设备是Switch B,由于Switch A与PC A直连,所以,直接将Switch B的MAC地址封装在SNMP Trap报文中发送PC A。藉此,PC A可以得到二层网络中的故障位置为Switch B之后。
二、对于Switch F:
1、初始阶段
Switch F使用LLDP协议确定出本设备是与路由器(即Router C)直连的交换机。然后,Switch F可以通过主动发送二层广播请求消息的方式、或者被动接收Switch H发来的二层广播请求消息的方式,建立与Switch H之间的CFD连接(根据两者的MAC地址来确保CFD连接的唯一性)。接下来,Switch F将该CFD与直连的三层设备RouterC的MAC地址绑定,并将两者的绑定关系通知给Switch H;同时,还会接收到SwitchH发来的该CFD连接与Switch H直连的三层设备PC B的MAC地址(记为:PCB-MAC)之间的绑定关系。
2、检测阶段
Switch F在检测到二层链路有故障后,开启ICMP报文侦听。当PC A发现Ping不通PC B,使用Tracert功能进行故障定位检测时,PC A会发送若干个ICMP请求报文,每次发送一个ICMP请求报文,且每次发送的ICMP请求报文中的TTL值加1。当Switch F侦听到ICMP请求报文后,若判定出TTL=1,则,Switch F根据该ICMP请求报文中的目的MAC地址:PC B-MAC,查找与PC B-MAC绑定的CFD连接,从而查找到本设备与Switch H的CFD连接进行Linktrace检测。假设Switch F与SwitchH之间的链路存在故障,则,Switch F会通过Linktrace检测得到最后一个可达设备是Switch F,于是,Switch F将本设备的MAC地址(记为:Switch F-MAC)封装进ICMP不可达报文,发往PC A。此时,与PC A直连的Switch A侦听到目的地址是PC A-MAC的ICMP不可达报文后,对该报文进行解析后得到Switch F-MAC,再将Switch F-MAC封装到SNMP Trap报文中发送给PC A。藉此,PC A可以得到二层网络中的故障位置为Switch F之后。
实施例三
针对上述实施例一中的方法,本申请的实施例三提供了一种应用于由二层网络和三层网络组成的二三层混合网络的转发设备,其中,二层网络中包括:至少两个二层的转发设备,位于三层网络中的三层设备包括:用户终端设备和路由设备。该转发设备可以是交换机等二层设备。
如图4所示,该转发设备包括:判断模块10、CFD连接模块20、接收模块30、保存模块40、发送模块50、侦听模块60和查找模块70,其中,
判断模块10,用于判断本设备是否与三层设备直连;
CFD连接模块20,用于在判断模块10确定本设备与三层设备直连之后,建立本设备与第二转发设备之间的CFD连接,对该CFD连接进行连续性检测CC,其中,第二转发设备也与三层设备直连,且第二转发设备与本设备在同一二层网络的同一VLAN中;还用于对查找模块70查找到的第一CFD连接进行链路跟踪LT检测;
接收模块30,用于接收第二转发设备发来的绑定关系,其中,该绑定关系是第二转发设备与本设备之间的CFD连接与第二转发设备直连的三层设备的MAC地址之间的绑定关系;即,该CFD连接与该MAC地址之间的绑定关系;
保存模块40,用于保存接收模块30接收到的绑定关系;
发送模块50,用于将CFD连接模块20通过LT检测得到的最后一个可达设备的信息,发送给第一用户终端设备;
侦听模块60,用于当CFD连接模块20通过CC检测到有链路不连通时,开启ICMP报文侦听;
查找模块70,用于在侦听模块60侦听到TTL值为1的ICMP请求报文之后,在保存模块40中查找与该ICMP请求报文中的目的MAC地址绑定的第一CFD连接,其中,该ICMP请求报文是第一用户终端在进行Tracert检测时发出的。
其中,CFD连接模块20建立本设备与第二转发设备之间的CFD连接的方式可以采用以下方式之一:
方式一:发送二层广播请求消息,其中,二层广播请求消息中携带有建立CFD连接所需的相关参数;在接收到第二转发设备针对该二层广播请求消息返回的应答消息之后,根据该应答消息中携带的该CFD连接的标识建立本设备与第二转发设备之间的CFD连接;
方式二:接收到第二转发设备发来的二层广播请求消息之后,根据该二层广播请求消息中携带的建立CFD连接所需的相关参数,计算CFD连接的标识,并建立本设备与第二转发设备之间的CFD连接;向第二转发设备返回应答消息,其中,该应答消息中携带有所计算的CFD连接的标识。
另外,如图5所示,该转发设备中还可以包括:绑定关系建立模块80,其中,
绑定关系建立模块80,用于建立CFD连接模块20所建立的本设备与第二转发设备之间的CFD连接与本设备直连的三层设备的MAC地址之间的绑定关系;即,建立该CFD连接与该MAC地址之间的绑定关系;
保存模块,还用于保存绑定关系建立模块80所建立的绑定关系。
为了将CFD连接模块20通过LT检测得到的最后一个可达设备的信息发送给第一用户终端设备,发送模块50进一步可以包括:封装单元和发送单元,其中:
封装单元,用于在本设备与路由设备直连时,将CFD连接模块20通过LT检测得到的最后一个可达设备的信息封装在ICMP不可达报文中;还用于在本设备与第一用户终端设备直连时,将通过LT检测得到的最后一个可达设备的信息封装在SNMP Trap报文中;
发送单元,用于将封装单元封装得到的ICMP不可达报文和SNMP Trap报文发送给第一用户终端设备。
此外,在本设备与第一用户终端设备直连时,接收模块30,还用于接收目的MAC地址是第一用户终端设备的MAC地址的ICMP不可达报文,解封装该ICMP不可达报文得到该最后一个可达设备的信息;发送模块50中的封装单元,还用于将接收模块解封装得到的最后一个可达设备的信息封装在SNMP Trap报文中,并通过发送单元将该SNMP Trap报文发送给第一用户终端设备。
综上,本申请以上实施例可以达到以下技术效果:
在二三层混合网络中,当二层网络中发生了故障之后,能通过Tracert和CFD联动的方式,准确定位出故障点。从而,在复杂的二三层网络中,管理员只要在PC终端使用Tracert功能即可定位二层网络中的故障位置。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。