故障检测方法及装置与流程

文档序号:12729224阅读:180来源:国知局
故障检测方法及装置与流程

本申请涉及网络通信技术领域,特别涉及一种故障检测方法及装置。



背景技术:

VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是基于IP(InternetProtocol,因特网协议)网络、采用“MAC(Media Access Control,媒体访问控制)in UDP(User Datagram Protocol,用户数据报协议)”封装形式的二层VPN(Virtual Private Network,虚拟专用网络)技术。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。

为了确保VXLAN报文的正常转发,通常需要对VXLAN隧道进行故障检测,但是,目前的VXLAN隧道的检测方法只能检测出VXLAN隧道是否发生了故障,而无法对故障位置进行定位。



技术实现要素:

有鉴于此,本申请提供一种故障检测方法及装置。

具体地,本申请是通过如下技术方案实现的:

一方面,提供了一种故障检测方法,该方法应用于VXLAN中的设备,该方法包括:

当本设备为第一VXLAN隧道上的VTEP时,通过第一VXLAN隧道向远端VTEP发送第一故障检测报文,以使第一VXLAN隧道上除本设备以外的每一个其它设备,在接收到第一故障检测报文后,回应第一故障检测应答报文;

若接收到了所有其它设备回应的第一故障检测应答报文,则确定第一VXLAN隧道正常;

若没有接收到第一其它设备回应的第一故障检测应答报文,则确定第一VXLAN隧道故障,且故障位置在第一其它设备。

另一方面,还提供了一种故障检测装置,该装置应用于VXLAN中的设备上,该装置包括:

发送单元,用于当本设备为第一VXLAN隧道上的VTEP时,通过第一VXLAN隧道向远端VTEP发送第一故障检测报文,以使第一VXLAN隧道上除本设备以外的每一个其它设备,在接收到第一故障检测报文后,回应第一故障检测应答报文;

接收单元,用于当本设备为第一VXLAN隧道上的VTEP时,接收第一故障检测应答报文;

确定单元,用于当本设备为第一VXLAN隧道上的VTEP时,若接收单元接收到了所有其它设备回应的第一故障检测应答报文,则确定第一VXLAN隧道正常,若接收单元没有接收到第一其它设备回应的第一故障检测应答报文,则确定第一VXLAN隧道故障,且故障位置在第一其它设备。

通过本申请的以上技术方案,VXLAN隧道的一端VTEP通过该VXLAN隧道向另一端VTEP发送故障检测报文,该故障检测报文途径的各个设备,包括核心设备和该另一端VTEP,在接收到该故障检测报文后,会回应故障检测应答报文,通过途径的各个设备的报文回应情况,即可获知该VXLAN隧道是否发生了故障,而且能够对故障位置进行定位。

附图说明

图1是本申请实施例示出的VXLAN的典型网络模型的示意图;

图2是本申请实施例示出的一种VXLAN隧道的示意图;

图3是图2中的VTEP1_1执行的故障检测方法的流程图;

图4是本申请实施例示出的另一种VXLAN隧道的示意图;

图5是本申请实施例示出的故障检测装置所在设备的硬件结构示意图;

图6是本申请实施例示出的故障检测装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

如图1所示,VXLAN的典型网络模型中包括如下几部分:

VM(Virtual Machine,虚拟机):在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VXLAN。属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。VXLAN通过VXLAN ID(Identity,标识)来标识,VXLAN ID又称VNI(VXLANNetwork Identifier,VXLAN网络标识符),其长度为24比特。

VTEP(VXLAN Tunnel End Point,VXLAN隧道端点):VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如对本地VM发来的以太网报文进行VXLAN隧道封装后转发给远端VTEP,对远端VTEP发来的VXLAN报文进行解封装后转发给本地VM等。VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器。

VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为以太网报文封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装得到的VXLAN报文转发给远端VTEP,远端VTEP对该VXLAN报文进行解封装。

核心设备:IP核心网络中的设备,如图1中的P设备。核心设备不参与VXLAN处理,仅需要根据VXLAN报文的目的IP地址对该报文进行三层转发。

VSI(Virtual Switch Instance,虚拟交换实例):VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。VSI可以看做是VTEP上的一台基于VXLAN进行二层转发的虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VSI与VXLAN一一对应。

由于目前的VXLAN隧道的检测方法只能检测出VXLAN隧道是否发生了故障,而无法对故障位置进行定位,因此,为了解决该问题,本申请以下实施例中提供了一种故障检测方法,以及一种可以应用该方法的装置。

本申请实施例的方法中,当本设备为VXLAN网络中某一VXLAN隧道(为了描述方便,称为第一VXLAN隧道)上的VTEP时,本VTEP通过第一VXLAN隧道向远端VTEP发送第一故障检测报文,以使第一VXLAN隧道上除本VTEP以外的每一个其它设备,在接收到第一故障检测报文后,回应第一故障检测应答报文;若本VTEP接收到了远端VTEP回应的第一故障检测应答报文,则确定第一VXLAN隧道正常;若没有接收到某一其它设备(为了描述方便,称为第一其它设备)回应的第一故障检测应答报文,则确定第一VXLAN隧道故障,且故障位置在第一其它设备。

在上述方法中,VXLAN隧道的一端VTEP通过该VXLAN隧道向另一端VTEP发送故障检测报文,该故障检测报文途径的各个设备,包括核心设备和该另一端VTEP,在接收到该故障检测报文后,会回应故障检测应答报文,通过途径的各个设备的报文回应情况,即可获知该VXLAN隧道是否发生了故障,而且能够对故障位置进行定位。

以如图2所示的VXLAN隧道为例,对上述实施例的方法进行详细说明。在图2中,VTEP1_1与VTEP1_2之间建立了VXLAN隧道Tunnel0,该VXLAN隧道对应的VXLAN为VXLAN10,该VXLAN隧道上的核心设备有P2_1、P2_2、以及P2_3。

如图3所示,VTEP1_1执行的故障检测方法包括以下步骤:

步骤S301,VTEP1_1生成经过VXLAN隧道封装后的故障检测报文,通过Tunnel0向VTEP1_2发送该故障检测报文;

由于故障检测报文为VXLAN报文,则故障检测报文中包括:外层IP头、外层UDP头和VXLAN头,外层IP头中的源IP地址为VTEP1_1的IP地址、目的IP地址为VTEP1_2的IP地址,VXLAN头中携带有Tunnel0对应的VXLAN10的ID 10。

另外,故障检测报文中还携带有用于指示报文的类型为故障检测报文的报文类型标识。具体的,可以在VXLAN头中携带该报文类型标识,也可以在其它报头中携带,例如外层IP头、外层UDP头。当该报文类型标识携带在VXLAN头中时,可以使用一个或多个比特的保留位来携带该报文类型标识,例如,使用一个R(保留)比特位,或者,使用Reserved1字段或Reserved2字段中的所有比特位。

如果VTEP1_1的下一跳设备P2_1可用,即,P2_1本身正常,而且VTEP1_1与P2_1之间的链路正常,则P2_1在接收到该故障检测报文后,会回应故障检测应答报文给VTEP1_1,而且,在该故障检测报文的目的设备不是本设备时,将该故障检测报文转发给下一跳设备P2_2。具体的,P2_1在接收到VTEP1_1发来的VXLAN报文后,通过该VXLAN报文的VXLAN头中携带的报文类型标识,识别出该VXLAN报文为故障检测报文,则一方面,判断该故障检测报文的外层IP头中的目的IP地址是否为本设备的IP地址,判断结果为不是,将该故障检测报文继续转发给下一跳设备P2_2;另一方面,针对该故障检测报文生成故障检测应答报文,该故障检测应答报文为IP报文,然后,根据该故障检测报文的外层IP头中的源IP地址,在路由表中查找对应的转发信息,根据查找到的转发信息发送该故障检测应答报文给VTEP1_1。

在实际实施过程中,上述故障检测应答报文中可以包括:VXLAN隧道对应的VXLAN ID,发出该故障检测应答报文的设备的物理层标识,该物理层标识具体可以为IP地址、MAC地址等。其中,当该物理层标识为IP地址时,故障检测应答报文中包括:源IP地址(即为发出该故障检测应答报文的设备的物理层标识)、目的IP地址、以及VXLAN10的ID 10,其中,源IP地址置为P2_1的IP地址,目的IP地址置为VTEP1_1的IP地址,故障检测应答报文中携带的VXLAN ID即为故障检测报文的VXLAN头中携带的VXLAN ID。

反之,如果P2_1不可用,即,P2_1本身故障,和/或VTEP1_1与P2_1之间的链路故障,则P2_1无法接收到故障检测报文,无法回应故障检测应答报文,也无法将该故障检测报文转发给下一跳设备P2_2。

在前述P2_1可用的情况下,如果P2_1的下一跳设备P2_2也可用,即,P2_2本身正常,而且P2_1与P2_2之间的链路正常,则P2_2在接收到该故障检测报文后,会回应故障检测应答报文给VTEP1_1,而且,在该故障检测报文的目的设备不是本设备时,将该故障检测报文转发给下一跳设备P2_3。反之,如果P2_2不可用,即,P2_2本身故障,和/或P2_1与P2_2之间的链路故障,则P2_2无法接收到故障检测报文,无法回应故障检测应答报文,也无法将该故障检测报文转发给下一跳设备P2_3。

在前述P2_1和P2_2可用的情况下,如果P2_2的下一跳设备P2_3也可用,即,P2_3本身正常,而且P2_2与P2_3之间的链路正常,则P2_3在接收到该故障检测报文后,会回应故障检测应答报文给VTEP1_1,而且,在该故障检测报文的目的设备不是本设备时,将该故障检测报文转发给下一跳设备VTEP1_2。反之,如果P2_3不可用,即,P2_3本身故障,和/或P2_2与P2_3之间的链路故障,则P2_3无法接收到故障检测报文,无法回应故障检测应答报文,也无法将该故障检测报文转发给下一跳设备VTEP1_2。

在前述P2_1、P2_2、以及P2_3可用的情况下,如果P2_3的下一跳设备VTEP1_2也可用,即,VTEP1_2本身正常,而且P2_3与VTEP1_2之间的链路正常,则VTEP1_2在接收到该故障检测报文后,会回应故障检测应答报文给VTEP1_1,而且,在该故障检测报文的目的设备是本设备时,不再继续转发该故障检测报文。反之,如果VTEP1_2不可用,即,VTEP1_2本身故障,和/或P2_3与VTEP1_2之间的链路故障,则VTEP1_2无法接收到故障检测报文,而且无法回应故障检测应答报文。

步骤S302,VTEP1_1判断是否接收到了Tunnel0上的其它设备P2_1、P2_2、P2_3、以及VTEP1_2回应的故障检测应答报文,若接收到了VTEP1_2回应的故障检测应答报文(即图3中的情况一),则执行步骤S303,若没有接收到第一其它设备回应的故障检测应答报文(即图3中的情况二),则执行步骤S304;

具体的,可以设置一个定时器,该定时器的计时总时长为预定时间T,在步骤S301中发送故障检测报文时开启该定时器,在该定时器的计时时间达到T时,执行步骤S302的判断操作。

在步骤S302中,第一其它设备可以是P2_1、P2_2、P2_3、VTEP1_2中的任一设备。

步骤S303,确定Tunnel0正常;

步骤S304,确定Tunnel0故障,故障位置在第一其它设备。

另外,在另一种实施例中,VTEP1_1与VTEP1_2、VTEP1_3、VTEP1_4、VTEP1_5建立了VXLAN隧道Tunnel0,此时的隧道结构如图4所示,对于如图4所示的VXLAN隧道Tunnel0,依然可以使用如图3所示的故障检测方法,进行故障检测和定位。具体的,VTEP1_1向VTEP1_2、VTEP1_3、VTEP1_4、VTEP1_5发送故障检测报文,VTEP1_2、VTEP1_3、VTEP1_4、VTEP1_5中的任一VTEP在可用的情况下,会针对接收到的故障检测报文,向VTEP1_1回应故障检测应答报文。VTEP1_1可以根据故障检测应答报文的接收情况,来判断Tunnel0是否发生了故障,并对故障位置进行定位。例如,若VTEP1_1没有接收到VTEP1_2、VTEP1_3、VTEP1_4、VTEP1_5中的任一VTEP回应的故障检测应答报文,则确定Tunnel0故障,且故障位置在该VTEP。

显然,对于如图2和图4以外的VXLAN隧道结构,本申请实施例的故障检测方法依然适用,本申请实施例对此不做限定。

与前述故障检测方法的实施例相对应,本申请还提供了故障检测装置的实施例。

本申请故障检测装置60的实施例可以应用在VXLAN网络中的设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器10将非易失性存储器50中对应的计算机程序指令读取到内存40中运行形成的。从硬件层面而言,如图5所示,为本申请故障检测装置60所在设备的一种硬件结构图,除了图5所示的处理器10、内部总线20、网络接口30、内存40、以及非易失性存储器50之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图6,本申请实施例的故障检测装置60中包括以下单元:发送单元601、接收单元602和确定单元603,其中:

发送单元601,用于当本设备为第一VXLAN隧道上的VTEP时,通过第一VXLAN隧道向远端VTEP发送第一故障检测报文,以使第一VXLAN隧道上除本设备以外的每一个其它设备,在接收到第一故障检测报文后,回应第一故障检测应答报文;

接收单元602,用于当本设备为第一VXLAN隧道上的VTEP时,接收第一故障检测应答报文;

确定单元603,用于当本设备为第一VXLAN隧道上的VTEP时,若接收单元602接收到了所有其它设备回应的第一故障检测应答报文,则确定第一VXLAN隧道正常,若接收单元602没有接收到第一其它设备回应的第一故障检测应答报文,则确定第一VXLAN隧道故障,且故障位置在第一其它设备。

其中,接收单元602,还用于当本设备还属于第二VXLAN隧道上的设备时,接收通过第二隧道发来的第二故障检测报文;

发送单元601,还用于当本设备还属于第二VXLAN隧道上的设备时,在接收单元602接收到第二故障检测报文后,回应第二故障检测应答报文,并在第二故障检测报文的目的设备不是本设备时,将第二故障检测报文转发给下一跳设备。

其中,故障检测报文为VXLAN隧道封装报文,故障检测报文中携带有报文类型标识,报文类型标识用于指示报文的类型为故障检测报文。

其中,故障检测应答报文中携带VXLAN隧道对应的VXLAN ID、以及发出该故障检测应答报文的设备的物理层标识。

其中,发送单元601具体用于通过以下方式回应第二故障检测应答报文:根据接收单元602接收到的第二故障检测报文的源IP地址,查找对应的转发信息;根据查找到的转发信息,向该源IP地址所标识的VTEP回应第二故障检测应答报文。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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