链路故障的定界方法、装置及系统
技术领域
本发明涉及网络通信领域,尤其涉及一种链路故障的定界方法、装置及系统。
背景技术
服务器之间的业务交互需要经过多台交换设备,交换设备发生故障或配置错误都会引起业务故障,如何在链路上定界发生故障的交换设备,即找到发生故障的交换设备以及故障交换设备之间的链路,成为了交换技术中不可缺少的一项检测手段。
现有的链路故障的定界技术,是由发起设备向目标设备发送链路跟踪消息(LinkTrace Message,LTM),LTM途经链路上的多个交换设备,每台交换设备在接收到LTM后,向发起设备发送链路跟踪回应(Link Trace Response,LTR)消息,并将LTM发送至下一个交换设备。LTR用于告知发起设备该台交换设备没有产生故障。链路故障点下游的交换设备无法接收到上游交换设备发送的LTM,也就无法向发起设备发送LTR,由此可定界链路中发生故障的位置。
在实现上述链路故障定界的过程中,发明人发现现有技术中至少存在如下问题:在目标设备没有通过该链路向发起设备发送过报文的情况下,转发表(Forward DataBase,FDB)中没有存储目标设备的媒体访问控制(Media Access Control)地址,或者当FDB表老化后,FDB中存储的MAC地址会失效。在这两种情况下,交换设备无法根据FDB表以目的MAC地址+VLAN(Virtual Local Area Network,虚拟局域网)的方式找到转发LTM的出接口。由于交换设备上存在多个出接口,所以当交换设备不知道将接收到的LTM发送给哪个出接口时,就会在向发起设备发送LTR后将LTM丢弃,导致发起设备误判断发送LTR的交换设备之后的交换设备以及链路发生故障,导致对链路故障的错误定界。
发明内容
本发明的实施例提供一种链路故障的定界方法、装置及系统,能够避免由于交换设备丢弃LTM导致的对链路故障位置的错误定界。
为达到上述目的,本发明的实施例采用如下技术方案:
一种链路故障的定界方法,包括:
接收第一链路跟踪消息LTM,所述第一LTM中携带媒体访问控制MAC地址列表,所述MAC地址列表中顺序携带需要检测的链路上的交换设备的MAC地址;
将所述MAC地址列表中的第一项MAC地址与自身的MAC地址进行比较;
当所述MAC地址列表中的第一项MAC地址与自身的MAC地址相同时,向发起设备发送链路跟踪响应LTR;
在虚拟局域网VLAN内发送第二LTM,所述VLAN由所述第一LTM指定。
一种链路故障的定界方法,包括:
发送链路跟踪消息LTM,所述LTM中携带媒体访问控制MAC地址列表,所述MAC地址列表中顺序携带需要检测的链路上的交换设备的MAC地址;
接收所述链路中的交换设备发送的链路跟踪响应LTR;
根据所述LTR定界所述链路上发生故障的位置。
一种链路故障的定界装置,包括:
接收器,用于接收第一链路跟踪消息LTM,所述第一LTM中携带媒体访问控制MAC地址列表,所述MAC地址列表中顺序携带需要检测的链路上的交换设备的MAC地址,用于确定需要进行故障定界的链路;
处理器,用于将所述MAC地址列表中的第一项MAC地址与自身的MAC地址进行比较;
发送器,用于当所述MAC地址列表中的第一项MAC地址与自身的MAC地址相同时,向发起设备发送链路跟踪响应LTR;
所述发送器还用于在虚拟局域网VLAN内发送第二LTM,所述VLAN由所述第一LTM指定。
一种链路故障的定界装置,包括:
发送器,用于发送链路跟踪消息LTM,所述LTM中携带媒体访问控制MAC地址列表,所述MAC地址列表中顺序携带需要检测的链路上的交换设备的MAC地址;
接收器,用于接收所述链路中的交换设备发送的链路跟踪响应LTR;
处理器,用于根据所述LTR定界所述链路上发生故障的位置。
一种链路故障的定界系统,包括:
交换设备,用于接收第一链路跟踪消息LTM,所述第一LTM中携带媒体访问控制MAC地址列表,所述MAC地址列表中顺序携带需要检测的链路上的交换设备的MAC地址,将所述MAC地址列表中的第一项MAC地址与自身的MAC地址进行比较,当所述MAC地址列表中的第一项MAC地址与自身的MAC地址相同时,向发起设备发送链路跟踪响应LTR,在虚拟局域网VLAN内发送第二LTM,所述VLAN由所述第一LTM指定;
发起设备,用于发送链路跟踪消息LTM,所述LTM中携带媒体访问控制MAC地址列表,所述MAC地址列表中顺序携带需要检测的链路上的交换设备的MAC地址,接收所述链路中的交换设备发送的链路跟踪响应LTR,根据所述LTR定界所述链路上发生故障的位置。
本发明实施例提供的链路故障的定界方法、装置及系统,能够在LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换设备的MAC地址的方式定义需要检测的链路。解决了现有技术中,当FDB表中没有存储目标设备的MAC地址或当FDB表老化时,交换设备丢弃LTM导致的发起设备对链路故障位置错误定界的问题,能够对链路故障位置进行正确定界。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种链路故障的定界方法的流程图;
图2为本发明实施例中另一种链路故障的定界方法的流程图;
图3为本发明实施例中链路的结构示意图;
图4为本发明实施例中MAC地址列表的结构示意图;
图5为本发明实施例中另一种链路故障的定界方法的流程图;
图6为本发明实施例中链路故障的定界装置的结构示意图;
图7为本发明实施例中另一种链路故障的定界装置的结构示意图;
图8为本发明实施例中另一种链路故障的定界装置的结构示意图;
图9为本发明实施例中另一种链路故障的定界装置的结构示意图;
图10为本发明实施例中另一种链路故障的定界装置的结构示意图;
图11为本发明实施例中另一种链路故障的定界装置的结构示意图;
图12为本发明实施例中链路故障的定界系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中的交换设备以交换机为例进行说明实际应用中对此不作限制。
本发明实施例提供了一种链路故障的定界方法,如图1所示,所述方法包括如下步骤:
101、交换机接收第一LTM。
该第一LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换机的MAC地址的方式定义需要检测的链路,该MAC地址列表中顺序携带所述需要检测的链路上的多个交换机的MAC地址。
102、交换机将MAC地址列表中的第一项MAC地址与自身的MAC地址进行比较,当比较结果相同时,向发起设备发送LTR。
如果比较结果相同,则说明该交换机是需要检测的链路上的交换机,该交换机向发起设备发送LTR。
103、交换机在VLAN内发送第二LTM。
每台交换机有至少一个出接口,每个出接口都连接一台交换机,每台交换机同时接入多个VLAN。交换机将携带有MAC地址列表的第二LTM在VLAN内发送给所述至少一个出接口。
当所述第二LTM通过所述至少一个出接口到达下游交换机的时候,下游交换机再与第二LTM中的MAC地址列表进行比较,再次执行步骤102和步骤103,直到LTM发送到目标设备为止,由此完成对链路上所有交换机的故障检测。在发送LTM的过程中,如果某台交换机出现故障无法接收LTM,则该台交换机也无法向发起设备发送LTR,发起设备根据是否接收到交换设备发送的LTR对链路上的故障位置进行定界。
本发明实施例提供的链路故障的定界方法,能够在LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换设备的MAC地址的方式定义需要检测的链路,LTM在需要进行检测的交换机中传递,对链路故障位置进行定界。
本发明实施例提供了另一种链路故障的定界方法,如图2所示,所述方法是对图1所示实施例的进一步扩展。所述方法包括如下步骤:
201、交换机接收第一LTM。
该第一LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换机的MAC地址的方式定义需要检测的链路,该MAC地址列表中顺序携带所述需要检测的链路上的多个交换机的MAC地址。
具体的,如图3所示,从发起设备到目标设备之间有三条链路,涉及交换机1至交换机6。网络管理员需要检测交换机1、交换机2以及交换机3所在的链路上的故障情况。如图4所示,MAC地址列表顺序存储交换机1、交换机2以及交换机3的MAC地址。其中,按交换机与发起设备的远近关系在MAC地址列表中排列交换机MAC地址的先后顺序。例如,交换机1的MAC地址在MAC地址列表中排在第一项,交换机2的MAC地址排在第二项,交换机3的MAC地址排在第三项。当交换机接收到LTM时,根据MAC地址列表中的MAC地址决定是否向发起设备发送LTR。
202、交换机将MAC地址列表中的第一项MAC地址与自身的MAC地址进行比较。
如果比较结果相同,执行步骤203,否则,执行步骤205。如果比较结果相同,则说明该交换机是需要检测的链路上的交换机,否则,不是需要检测的链路上的交换机。
优选的,发起设备在FDB表上通过查找MAC+VLAN的方式查找到第一LTM的目的IP地址在VLAN内对应的出接口,即与交换机1相连的出接口,然后通过单播的方式将第一LTM发送给该出接口,此种情况下发起设备不再将第一LTM发送给与交换机5连接的出接口。只有在发起设备没有根据FDB表查找到第一LTM的目的IP地址在VLAN内对应的出接口或FDB表老化不可用时,发起设备才以广播的方式将LTM发送给所有出接口。
203、当比较结果相同时,交换机向发起设备发送LTR。
例如,图3中的交换机1在接收到第一LTM后,将自身的MAC地址与MAC地址列表中的第一项MAC地址进行比较。由于交换机1是网络管理员需要检测的链路上的交换机,所以交换机1的MAC地址与MAC地址列表中的第一项MAC地址相同,交换机1需要在比较MAC地址后向发起设备发送LTR。交换机5同样会接收到发起设备发送的第一LTM,并且将自身的MAC地址与MAC地址列表中的第一项MAC地址进行比较。但是由于交换机5不是网络管理员需要检测的链路上的交换机,所以交换机5的MAC地址与MAC地址列表中的第一项MAC地址不相同,这种情况下交换机5将发起设备发送的第一LTM丢弃,并且不向发起设备发送LTR。如果发起设备在VLAN中没有可用的出接口,则不发送第一LTM。发起设备接收到该交换机发送的LTR,表明该交换机工作正常没有故障。
上述描述中,交换机1向发起设备发送LTR是建立在交换机1不存在故障的前提下。如果交换机1存在故障,无法接收发起设备发送的第一LTM,则不向发起设备发送LTR。发起设备通过未接收到交换机1发送的LTR知悉交换机1发生故障,由此定界出链路上的故障位置。另外,交换机5没有向发起设备发送LTR是由于交换机5不是网络管理员需要检测的链路上的交换机。交换机5没有向发起设备发送LTR不能代表交换机5发生故障,即交换机5没有向发起设备发送LTR不是交换机5发生故障的充分条件。
进一步的,交换机1在向发起设备发送LTR后,还可以将第二LTM的存活时间(Timeto Live,TTL)减1。所述TTL为链路上交换机的个数,网络管理员可以通过TTL设置检测链路的深度。当TTL减到0时,交换机不再在VLAN中发送LTM。
204、交换机在VLAN中向所有出接口广播发送第二LTM。
进一步的,交换机1需要将MAC地址列表中的第一项MAC地址删除,即将MAC地址列表中存储的自身的MAC地址删除,形成的新的MAC地址列表以及第二LTM。删除第一项MAC地址后第二项MAC地址(交换机2的MAC地址)成为新的MAC地址列表中的第一项MAC地址。
每台交换机有至少一个出接口,每个出接口都连接一台交换机,每台交换机同时接入多个VLAN。交换机以广播的形式将携带有MAC地址列表的LTM发送给与其至少一个出接口相连的至少一个交换机。具体的,如图3所示,交换机1有两个出接口,分别连接交换机2和交换机4。交换机1在向发起设备发送LTR后将携带有新的MAC地址列表的第二LTM通过两个出接口广播发送给交换机2和交换机4。如果交换机1在VLAN中没有可用的出接口,则将第一LTM丢弃,不用删除第一LTM中的MAC地址列表中的第一项MAC地址以生成第二LTM。
优选的,交换机1优先通过查找FDB表的方式将第二LTM发送给交换机2。具体的交换机1查找FDB表中的MAC+VLAN表项,其中MAC地址为第二LTM目的MAC地址,VLAN为需要检测的虚拟局域网的标签。交换机1通过查找FDB表的方式找到VLAN内与交换机2对应的出接口,然后以单播的方式将第二LTM发送给该出接口,即发送给交换机2。如果FDB表中没有存储第二LTM的目的MAC地址或者FDB表老化失效,交换机1则通过广播的方式在VLAN内向所有出接口发送第二LTM,即向与交换机2和交换机4对应的出接口发送第二LTM。
交换机2和交换机4在接收到携带有新的MAC地址列表的第二LTM后,分别将自身的MAC地址与新MAC地址列表中的第一项MAC地址进行比较。由于交换机2为网络管理员需要检测的链路上的交换机,所以交换机2的MAC地址与新MAC地址列表中的第一项MAC地址相同,交换机2需要向发起设备发送LTR。交换机4不是网络管理员需要检测的链路上的交换机,所以交换机4的MAC地址与新MAC地址列表中的第一项MAC地址不相同,交换机4将第二LTM丢弃并且不向发起设备发送LTR。
此外,交换机2需要将新MAC地址列表中的第一项MAC地址删除,即将MAC地址列表中存储的自身的MAC地址删除,再次形成的新的MAC地址列表以及第三LTM。删除第一项MAC地址后第二项MAC地址(交换机3的MAC地址)成为新的MAC地址列表中的第一项MAC地址。
进一步的,交换机2在向发起设备发送LTR后,还可以将LTM的TTL减1。所述TTL为链路上交换机的个数,网络管理员可以通过TTL设置检测链路的深度。当TTL减到0时,交换机不再在VLAN中发送LTM。
交换机2将携带再次形成的新的MAC地址列表的第三LTM广播发送给交换机2在VLAN内的所有出接口,图3中,该出接口对应交换机3。交换机3重复执行步骤202、步骤203和步骤204中交换机2执行的步骤,直到LTM被广播发送到目标设备为止。由于MAC地址列表中的最后一项MAC地址为目标设备的MAC地址,所以当目标设备向发起设备发送LTR并删除MAC地址列表中的最后一项MAC地址后,不再向其它设备发送LTM,发起设备完成该条链路的故障检测。
当某一交换机发生故障无法接收LTM时,该交换机不再向连接的下游交换机广播LTM,不论后续交换机是否有故障,发起设备对链路故障的定界都是从该交换机到目标设备。例如在图3中,当交换机2发生故障无法接收到第二LTM时,虽然交换机3没有发生故障,但由于交换机3处在交换机2的下游,所以发起设备将交换机2以及交换机2和交换机3所连接的链路定界为发生故障的位置。
虽然交换机4不是网络管理员需要检测的链路上的交换机,但同样会接收到交换机1广播发送的第二LTM。判断交换机是否为需要检测的链路上的交换机的过程并不是由交换机1完成,而是由交换机2和交换机4根据MAC地址列表进行判断。如果交换机2和交换机4自身的MAC地址与新MAC地址列表中的第一项MAC地址相同则向发起设备发送LTR,如果不同则丢弃第二LTM不向发起设备发送LTR。交换机1只将携带有新的MAC地址列表的第二LTM在VLAN内广播发送给所有的出接口。图3中交换机2需要向发起设备发送LTR,交换机4则丢弃第二LTM。
205、当比较结果不相同时,交换机丢弃LTM。
在图3中,网络管理员需要检测的链路为交换机1、交换机2以及交换机3所在的链路,所以交换机5在接收到发起设备发送的第一LTM后,由于交换机5的MAC地址与MAC地址列表中的第一项MAC地址不同,需要将第一LTM丢弃。交换机4在接收到交换机2广播发送的第二LTM后,由于交换机4的MAC地址与MAC地址列表中的第一项MAC地址不同,所以也需要将第二LTM丢弃。
步骤205是基于交换机之间通过广播的形式发送LTM的方式。如果交换机可以通过查找FDB表以单播的形式向与需要发送LTM的交换机对应的出接口发送LTM,则交换机不会向其他出接口发送LTM,也就不存在这些交换机将LTM丢弃的问题。
本发明实施例中的目标设备可以是网关设备。当业务载体为虚拟机时,虚拟机的发起设备为虚拟交换机,当业务载体为物理服务器时,物理服务器的发起设备为架顶(Topof Rack,ToR)交换机或行尾(End of Row,EoR)交换机,对此本发明实施例不作限制。
本发明实施例的一个应用场景是:发起设备为位于物理服务器内部的虚拟交换机,第一LTM中携带的MAC地址列表顺序记录了从虚拟交换机的上联交换机开始到网关设备的沿途所有交换机的MAC地址以及网关设备的MAC地址。在带内组网的方式下,管理网流量与业务网流量共用链路,可以在管理VLAN和业务VLAN内进行检测和故障定界。在带外组网的方式下,管理网流量和业务网流量分离,可以在业务VLAN内进行检测和故障定界。
进一步的,沿途交换机还可以在LTR中携带出接口信息和/或状态信息,以辅助虚拟交换机对故障交换机和故障链路进行具体定位。所述接口信息和/或状态信息可以包括静态配置信息、接口统计信息、生成树协议(Spanning Tree Protocal,STP)状态信息以及链路层发现协议(Link Layer Discovery Protocal,LLDP)/思科发现协议(CiscoDiscovery Protocal,CDP)邻居信息。本发明实施例对此不作限制。
现有技术中,LTM在交换机之间的转发需要依赖FDB表,沿途交换机需要根据LTM中携带的VLAN以及网关设备的MAC地址查找到LTM的唯一出口。网关设备的MAC地址不会在需要检测的VLAN内扩散给LTM,所以沿途交换机就无法在FDB表中检索到网关设备的MAC地址和VLAN组合的表项,从而也就无法在多个出接口中选择出需要转发给下一个交换机的接口。此时交换机会丢弃LTM并且不向虚拟交换机发送LTR。在这种情况下虚拟交换机会将原本正常的交换机视为发生故障的交换机,从而对链路故障的定界就发生了错误。
本发明实施例提供的链路故障的定界方法,能够在LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换机的MAC地址的方式定义需要检测的链路。如果交换机中的MAC地址与MAC地址列表中的MAC地址相同,则该交换机为需要检测的链路上的交换机。解决了现有技术中,当FDB表中没有存储目标设备的MAC地址或FDB表老化时,交换机由于不知道如何发送LTM而丢弃LTM的问题,避免了由于交换机丢弃LTM导致的发起设备对链路故障位置的错误定界。
此外,本发明实施例提供的链路故障的定界方法,还能够基于业务VLAN同时在带内组网和带外组网两种组网方式下对管理网和业务网的链路进行故障定界。解决了现有技术中,在带内组网方式下,只能检测管理VLAN无法检测业务VLAN,而在带外组网方式下无法检测业务VLAN的问题。
本发明实施提供了另一种链路故障的定界方法,如图5所示,所述方法包括如下步骤:
501、发起设备在VLAN内发送第一LTM。
所述第一LTM中携带MAC地址列表,该MAC地址列表中顺序存储多个MAC地址。网络管理员可将需要检测的链路上的交换机的MAC地址顺序存储在MAC地址列表中。
具体的,如图3所示,从发起设备到目标设备之间有三条链路,涉及交换机1至交换机6。网络管理员需要检测交换机1、交换机2以及交换机3所在的链路上的故障情况。如图4所示,MAC地址列表顺序存储交换机1、交换机2以及交换机3的MAC地址。其中,按交换机与发起设备的远近关系在MAC地址列表中排列交换机MAC地址的先后顺序。例如,交换机1的MAC地址在MAC地址列表中排在第一项,交换机2的MAC地址排在第二项,交换机3的MAC地址排在第三项。当交换机接收到LTM时,根据MAC地址列表中的MAC地址决定是否向发起设备发送LTR。
可选的,发起设备可以通过单播的方式向与交换机对应的出接口发送第一LTM,如图3所示,发起设备在FDB表上通过查找MAC+VLAN的方式查找到连接交换机1的出接口,然后通过单播的方式将第一LTM发送给与交换机1对应的出接口,此种情况下发起设备不再将第一LTM广播发送给VLAN内的其他出接口,例如与交换机5对应的出接口。只有在发起设备没有根据FDB表查找到与交换机1对应的出接口或FDB表老化不可用时,发起设备才以广播的方式在VLAN内将第一LTM发送给所有出接口,图3中为发起设备的两个出接口分别对应交换机1和交换机5。
502、发起设备接收链路中交换机发送的LTR。
图3中,交换机1、交换机2以及交换机3是网络管理员需要检测链路上的交换机,所以发起设备需要接收交换机1、交换机2以及交换机3在接收到LTM后发送的LTR。交换机4、交换机5以及交换机6则不需要向发起设备发送LTR。
上述描述中,交换机1、交换机2以及交换机3向发起设备发送LTR是建立在交换机1、交换机2以及交换机3不存在故障的前提下。以交换机1为例,如果交换机1存在故障,无法接收发起设备发送的第一LTM,则不向发起设备发送LTR。发起设备通过未接收到交换机1发送的LTR知悉交换机1发生故障,由此定界出链路上的故障位置。另外,交换机5没有向发起设备发送LTR是由于交换机5不是网络管理员需要检测的链路上的交换机。交换机5没有向发起设备发送LTR不能代表交换机5发生故障,即交换机5没有向发起设备发送LTR不是交换机5发生故障的充分条件。
503、发起设备根据LTR定界链路上发生故障的位置。
当某一交换机发生故障无法接收LTM时,该交换机不向发起设备发送LTR,发起设备由此断定该交换机为链路故障位置。由于发生故障的交换机无法接收到LTM,所以也就不会将LTM广播发送给下游的交换机,发起设备也不会接收到故障交换机的下游交换机发送的LTR。不论后续交换机是否有故障,发起设备对链路故障的定界都是从第一台故障交换机到目标设备的链路。例如,图3中交换机2发生故障无法接收到第二LTM,虽然交换机3没有发生故障,但由于交换机3处在交换机2的下游,所以发起设备将交换机2以及交换机2和交换机3所连接的链路定界为发生故障的位置。
虽然交换机5不是网络管理员需要检测的链路上的交换机,但因为与发起设备的出接口相连,所以同样会接收到发起设备发送的第一LTM。判断交换机是否为需要检测的链路上的交换机的过程并不是由发起设备完成,而是由交换机根据MAC地址列表进行自我判断。如果交换机5自身的MAC地址与MAC地址列表中的第一项MAC地址相同则向发起设备发送LTR,如果不同则丢弃第一LTM不向发起设备发送LTR。发起设备只将携带有的MAC地址列表的LTM发送给所有与发起设备连接的交换机。图3中交换机1需要向发起设备发送LTR,交换机5则丢弃第一LTM。
本发明实施例提供的链路故障的定界方法,能够在LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换机的MAC地址的方式定义需要检测的链路。如果交换机中的MAC地址与MAC地址列表中的MAC地址相同,则该交换机为需要检测的链路上的交换机。解决了现有技术中,当FDB表中没有存储目标设备的MAC地址或FDB表老化时,交换机由于不知道如何发送LTM而丢弃LTM的问题,避免了由于交换机丢弃LTM导致的发起设备对链路故障位置的错误定界。
参考图2所示方法实施例的实现,本发明实施例提供了一种链路故障的定界装置,如图6所示,用以实现图2所示的方法实施例。所述装置包括:接收器61、处理器62以及发送器63,其中,
所述接收器61,用于接收第一LTM。
第一LTM中携带MAC地址列表,该MAC地址列表中顺序存储多个MAC地址。网络管理员可将需要检测的链路上的交换机的MAC地址顺序存储在MAC地址列表中。
所述MAC地址列表中至少包括一个交换机的MAC地址,所述MAC地址列表用于确定需要进行故障定界的链路。
所述处理器62,用于将MAC地址列表中的第一项MAC地址与自身的MAC地址进行比较。
如果比较结果相同,则说明该交换机是需要检测的链路上的交换机,该交换机向发起设备发送LTR。发起设备接收到该交换机发送的LTR,表明该交换机工作正常没有故障。
所述发送器63,用于在比较结果相同时,向发起设备发送LTR。
所述发送器63还用于在向发起设备发送LTR后,在VLAN内广播发送第二LTM给所有的出接口。
每台交换机有至少一个出接口,每个出接口都连接一台交换机,每台交换机同时接入多个VLAN。所述发送器63以广播的形式将携带有MAC地址列表的第二LTM发送给所述至少一个出接口。在本发明实施例中,交换机之间通过广播的方式发送LTM,而发起设备与上联交换机之间则通过单播的方式发送第一LTM。
当某一交换机发生故障无法接收LTM时,该交换机不再向下游交换机广播发送LTM,不论下游交换机是否有故障,发起设备对链路故障的定界都是从该交换机到目标设备。
进一步的,如图7所示,所述发送器63可以包括:
删减器71,用于当所述处理器62的比较结果相同时,在向发起设备发送LTR之前,将MAC地址列表中的第一项MAC地址删除,即将MAC地址列表中存储的自身的MAC地址删除,形成的新的MAC地址列表以及第二LTM。删除第一项MAC地址后第二项MAC地址成为新的MAC地址列表中的第一项MAC地址。
子发送器72,用于将携带新的MAC地址列表的第二LTM广播发送给所有出接口。
进一步的,如图8所示,所述装置还包括:
检索器81,用于根据FDB表查找与交换机连接的出接口。
根据MAC+VLAN表项查找与需要检测的交换机相连的出接口。
所述发送器63还用于当所述检索器81根据FDB表查找到与交换机连接的出接口时,将第一LTM单播发送给与交换机连接的出接口。
所述发送器63还用于当所述检索器81根据FDB表未查找到与交换机连接的出接口时,在VLAN内将第一LTM广播发送给所有出接口。
进一步的,如图9所示,所述装置还包括:
计数器91,用于将TTL减1。所述TTL为链路上交换机的个数,网络管理员可以通过TTL设置检测链路的深度。当TTL为0时,所述发送器63不再在VLAN内向所有出接口广播发送LTM。
本发明实施例提供的链路故障的定界装置,能够在LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换机的MAC地址的方式定义需要检测的链路。如果交换机中的MAC地址与MAC地址列表中的MAC地址相同,则该交换机为需要检测的链路上的交换机。解决了现有技术中,当FDB表中没有存储目标设备的MAC地址或FDB表老化时,交换机由于不知道如何发送LTM而丢弃LTM的问题,避免了由于交换机丢弃LTM导致的发起设备对链路故障位置的错误定界。
参考图5所示方法实施例的实现,本发明实施例提供了一种链路故障的定界装置,如图10所示,用以实现图5所示的方法实施例。所述装置包括:发送器1001、接收器1002以及处理器1003,其中,
所述发送器1001,用于向相连的交换机发送第一LTM。
所述第一LTM中携带MAC地址列表,该MAC地址列表中顺序存储多个MAC地址。网络管理员可将需要检测的链路上的交换机的MAC地址顺序存储在MAC地址列表中。
所述接收器1002,用于接收链路中交换机发送的LTR。
所述处理器1003,用于根据LTR定界链路上发生故障的位置。
当某一交换机发生故障无法接收LTM时,该交换机不向发起设备发送LTR,发起设备由此断定该交换机为链路故障位置。由于发生故障的交换机无法接收到LTM,所以也就不会将LTM广播给下游交换机,发起设备也不会接收到下游交换机发送的LTR。所以不论下游交换机是否有故障,发起设备对链路故障的定界都是从第一台故障交换机到目标设备的链路。
进一步的,如图11所示,所述发送器1001可以包括:
检索器1101,用于根据FDB表查找与交换机连接的出接口。
根据MAC+VLAN表项查找与需要检测的交换机相连的出接口。
子发送器1102,用于当所述检索器1101根据FDB表查找到与交换机连接的出接口时,将第一LTM单播给与交换机连接的出接口。
所述子发送器1102还用于当所述检索器1101根据FDB表未查找到与交换机连接的出接口时,在VLAN内将第一LTM广播发送给所有出接口。
本发明实施例提供的链路故障的定界装置,能够在LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换机的MAC地址的方式定义需要检测的链路。如果交换机中的MAC地址与MAC地址列表中的MAC地址相同,则该交换机为需要检测的链路上的交换机。解决了现有技术中,当FDB表中没有存储目标设备的MAC地址或FDB表老化时,交换机由于不知道如何发送LTM而丢弃LTM的问题,避免了由于交换机丢弃LTM导致的发起设备对链路故障位置的错误定界。
进一步的,本发明实施例提供了一种链路故障的定界系统,如图12所示,所述系统涵盖了上述方法和装置实施例的实现。所述系统包括:
发起设备,用于向链路中与发起设备相连的交换机发送第一LTM,第一LTM中携带MAC地址列表。接收链路中交换机发送的LTR。根据LTR定界链路上发生故障的位置。
交换机,用于接收发起设备发送的第一LTM、或者与入接口相连的交换机广播发送的LTM,LTM中携带MAC地址列表。将MAC地址列表中的第一项MAC地址与自身的MAC地址进行比较,如果比较结果相同,向发起设备发送LTR。在向发起设备发送LTR后,将LTM广播发送给所有出接口。当比较结果相同时,将MAC地址列表中的第一项MAC地址删除。当新的MAC地址列表中没有MAC地址时,停止将LTM广播发送给所有出接口。将存活时间TTL减1,TTL为链路上交换机的个数,网络管理员可以通过TTL设置检测链路的深度。当TTL为0时,不再向所有出接口广播发送LTM。当比较结果不相同时,丢弃LTM。
本发明实施例提供的链路故障的定界系统,能够在LTM中携带MAC地址列表,该MAC地址列表通过存储需要检测的交换机的MAC地址的方式定义需要检测的链路。如果交换机中的MAC地址与MAC地址列表中的MAC地址相同,则该交换机为需要检测的链路上的交换机。解决了现有技术中,当FDB表中没有存储目标设备的MAC地址或FDB表老化时,交换机由于不知道如何发送LTM而丢弃LTM的问题,避免了由于交换机丢弃LTM导致的发起设备对链路故障位置的错误定界。
此外,本发明实施例提供的链路故障的定界系统,还能够基于业务VLAN同时在带内组网和带外组网两种组网方式下对管理网和业务网的链路进行故障定界。解决了现有技术中,在带内组网方式下,只能检测管理VLAN无法检测业务VLAN,而在带外组网方式下无法检测业务VLAN的问题。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。