链路检测方法、装置及网络设备、控制器与流程

文档序号:12828930阅读:216来源:国知局
链路检测方法、装置及网络设备、控制器与流程

本申请涉及通信技术领域,尤其涉及一种链路检测方法、装置及网络设备、控制器。



背景技术:

vxlan网络中,两个隧道终端(vtep)之间可能存在等价多路径,以用于负载分担。当等价路径中的某条链路出现故障时,为避免将流量发送到失效链路,需要快速检测到失效的链路。现有技术中,为了检测链路中间可能存在的等价多路径,起点vtep将封装的检测报文外层udp头中的源端口按报文顺序依次加1,以期达到遍历所有路径的目的。对于存在级联的等价多路径场景,例如,a节点下有两条等价路径分别到b节点和c节点,b节点下又有两条等价路径分别到d节点和e节点,a节点和b节点的哈希选路算法中都包含源端口号,则可能a节点将源端口号是奇数的检测报文(源ip、目的ip不变)都转发到b节点,将源端口号是偶数的检测报文都转发到c节点,而b节点将源端口号是奇数的检测报文都转发到c节点,因此b节点到d节点的链路上就没有检测报文通过。由此可知,现有技术对节点设备的哈希选路算法依赖很大,无法保证能够遍历所有路径。



技术实现要素:

为实现上述目的,本申请提供技术方案如下:

根据本申请的第一方面,提出了一种链路检测方法,应用在控制器上,包括:

将检测报文通过起始网络设备依次发送至被检测链路上的每一台网络设备直至终点网络设备,所述检测报文中携带有所述被检测链路上的第一源ip地址、第一目的ip地址以及所述检测报文的第一标识;

接收所述被检测链路上的网络设备根据所述检测报文上报的链路状态信息,所述链路状态信息中携带有所述第一源ip地址、所述第一目的ip地址、所述网络设备的设备ip地址以及所述第一标识;

根据所述链路状态信息中携带的所述第一源ip地址、所述第一目的ip地址以及所述第一标识将所述检测报文与所述被检测链路进行匹配,以及,根据所述设备ip地址定位网络设备在所述被检测链路上的网络位置。

根据本申请的第二方面,提出了一种链路检测方法,应用在网络设备上,包括:

确定接收到的网络报文是否为检测报文;

如果所述网络报文为检测报文,根据所述检测报文中携带的被检测链路的第一源ip地址、第一目的ip地址、所述网络设备的设备ip地址以及所述检测报文的第一标识生成链路状态信息并向控制器上报所述链路状态信息;

从所述检测报文中解析目的vtep地址,根据所述目的vtep地址查找所述网络设备的转发表,如果所述转发表中存在所述网络设备的至少一个下一跳,根据所述至少一个下一跳的个数复制所述检测报文;

根据所述至少一个下一跳中的每一个下一跳的mac地址封装所述检测报文中的mac头并将所述检测报文转发到所述至少一个下一跳。

根据本申请的第三方面,提出了一种链路检测装置,应用在控制器上,包括:

第一发送模块,用于将检测报文通过起始网络设备依次发送至被检测链路上的每一台网络设备直至终点网络设备,所述检测报文中携带有所述被检测链路上的第一源ip地址、第一目的ip地址以及所述检测报文的第一标识;

第一接收模块,用于接收所述被检测链路上的网络设备根据所述第一发送模块发送的所述检测报文上报的链路状态信息,所述链路状态信息中携带有所述第一源ip地址、所述第一目的ip地址、所述网络设备的设备ip地址以及所述第一标识;

匹配模块,用于根据所述第一接收模块接收到的所述链路状态信息中携带的所述第一源ip地址、所述第一目的ip地址以及所述第一标识将所述检测报文与所述被检测链路进行匹配,以及,根据所述设备ip地址定位网络设备在所述被检测链路上的网络位置。

根据本申请的第四方面,提出了一种链路检测装置,应用在控制器上,包括:

第四确定模块,用于确定接收到的网络报文是否为检测报文;

链路信息生成模块,用于如果所述第四确定模块确定所述网络报文为检测报文,根据所述检测报文中携带的被检测链路上的第一源ip地址、第一目的ip地址、所述网络设备的设备ip地址以及所述检测报文的第一标识生成链路状态信息并向控制器上报所述链路状态信息;

查找模块,用于从所述第四确定模块确定的所述检测报文中解析目的vtep地址,根据所述目的vtep地址查找所述网络设备的转发表,如果所述转发表中存在所述网络设备的至少一个下一跳,根据所述至少一个下一跳的个数复制所述检测报文;

第一封装模块,用于根据所述查找模块查找到的所述至少一个下一跳中的每一个下一跳的mac地址封装所述检测报文中的mac头并将所述检测报文转发到所述至少一个下一跳。

根据本申请的第五方面,提出了一种控制器,所述控制器包括:

第一处理器;用于存储所述第一处理器可执行指令的第一存储器;第一网络接口;

其中,所述第一网络接口,用于

将检测报文通过起始网络设备依次发送至被检测链路上的每一台网络设备直至终点网络设备,所述检测报文中携带有所述被检测链路上的第一源ip地址、第一目的ip地址以及所述检测报文的第一标识;

接收所述被检测链路上的网络设备根据所述检测报文上报的链路状态信息,所述链路状态信息中携带有所述第一源ip地址、所述第一目的ip地址、所述网络设备的设备ip地址以及所述第一标识;

所述第一处理器,用于根据所述链路状态信息中携带的所述第一源ip地址、所述第一目的ip地址以及所述第一标识将所述检测报文与所述被检测链路进行匹配,以及,根据所述设备ip地址定位网络设备在所述被检测链路上的网络位置。

根据本申请的第六方面,提出了一种网络设备,所述网络设备包括:

第二处理器;用于存储所述第二处理器可执行指令的存储器;第二网络接口;

其中,所述第二处理器,用于确定接收到的网络报文是否为检测报文;

如果所述网络报文为检测报文,根据所述检测报文中携带的被检测链路的第一源ip地址、第一目的ip地址、所述网络设备的设备ip地址以及所述检测报文的第一标识生成链路状态信息并通过所述第二网络接口向控制器上报所述链路状态信息;

根据所述检测报文的第一目的ip地址查找所述网络设备的转发表,如果所述转发表中存在所述网络设备的至少一个下一跳,根据所述至少一个下一跳的个数复制所述检测报文;

根据所述至少一个下一跳中的每一个下一跳的mac地址封装所述检测报文中的mac头并通过所述第二网络接口将所述检测报文转发到所述至少一个下一跳。

由以上技术方案可见,本申请可以遍历被检测链路上的所有路径,使控制器能够获知被检测链路上的所有链路的链路状态信息,以便快速识别并定位失效链路。

附图说明

图1为根据本发明的示例性实施例所适用的网络架构图;

图2为根据本发明的一示例性实施例一示出的链路检测方法的流程示意图;

图3为根据本发明的一示例性实施例二示出的链路检测方法的流程示意图;

图4为根据本发明的一示例性实施例三示出的链路检测方法的流程示意图;

图5为根据本发明的一示例性实施例四示出的链路检测方法的流程示意图;

图6为根据本发明的一示例性实施例五示出的链路检测方法的流程示意图;

图7为根据本发明的一示例性实施例六示出的链路检测方法的流程示意图;

图8为根据本发明的一示例性实施例七示出的各系统之间的信令流程图;

图9示出了根据本发明的一示例性实施例的控制器的结构示意图;

图10示出了根据本发明的一示例性实施例的网络设备的结构示意图;

图11为根据本发明的一示例性实施例一示出的链路检测装置的结构示意图;

图12为根据本发明的一示例性实施例二示出的链路检测装置的结构示意图;

图13为根据本发明的一示例性实施例三示出的链路检测装置的结构示意图;

图14为根据本发明的一示例性实施例四示出的链路检测装置的结构示意图。

具体实施方式

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

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

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

图1为根据本发明的示例性实施例所适用的网络架构图,如图1所示,当管理员通过控制器10选择需要在虚拟机(virtualmachine,简称为vm)11和vm12之间做链路检测时,控制器10可以提取出vm11和vm12的ip地址,将vm11的ip地址作为第一源ip地址,vm12的ip地址作为第一目的ip地址,生成用于标记检测报文的第一标识(id),根据第一源ip地址、第一目的ip地址以及第一标识构造检测报文;控制器10向起点vtep13下发检测报文。经过l3设备14、l3设备151、l3设备152将检测报文依次转发后,检测报文达到终点vtep16,其中,起点vtep13、l3设备14、l3设备151、l3设备152、终点vtep16在接收到检测报文后向控制器10上报各自的链路状态信息,由控制器10记录各个设备上报的链路状态信息,在一实施例中,控制器10可以为软件定义网络(softwaredefinednetwork,简称为sdn)控制器。如果链路起点或者某个网络中间节点的转发表具有多条等价路径,则根据下一跳的个数复制检测报文并转发到相应的路径上,例如,图1所示的l3设备14具有两个等价路径的下一跳(l3设备151、l3设备152),l3设备14会将检测报文复制后转发到l3设备151、l3设备152。由此,本申请可以通过控制器管理维护链路,并能遍历链路上的所有路径,解决了现有技术不能遍历链路上的所有路径的不足。

为对本申请进行进一步说明,提供下列实施例:

图2为根据本发明的一示例性实施例一示出的链路检测方法的流程示意图;可以应用在图1所示的控制器10上,本实施例结合图1所示实施例进行示例性说明,如图2所示,包括如下步骤:

步骤201,将检测报文通过起始网络设备依次发送至被检测链路上的每一台网络设备直至终点网络设备,检测报文中携带有被检测链路上的第一源ip地址、第一目的ip地址以及检测报文的第一标识;

在一实施例中,被检测链路可以由网络管理员来选择,如图1所示,控制器10提取出被检测链路的两端(例如,vm11和vm12)的ip地址,将被检测链路的一端(例如,vm11)的ip地址作为第一源ip地址,将另一端(例如,vm12)的ip地址作为第一目的ip地址。在一实施例中,可以通过对检测报文进行顺次编号的方式来生成第一标识,在对被检测链路进行链路检测的设定周期(设定周期10毫秒到1秒的范围)内,控制器10可以向vtep13间隔下发检测报文,并对第一标识进行顺次加1,即,id+1,直至检测周期结束。通过对检测报文的第一标识加1,可以确保同一个被检测链路上的检测报文id的唯一性,可以使控制器10能够方便地将被检测链路上的网络设备上报的链路状态信息进行匹配,通过对同一条被检测链路上的检测报文进行计数,可以使控制器10能够方便地统计出在该被检测链路上发送的检测报文的条数。

在一实施例中,如图1所示,vtep13接收到检测报文之后,可以根据检测报文的第一目的ip地址查找其对应的转发表,根据转发表中目的vni、目的vtep地址等信息对检测报文进行vxlan封装,同时将vxlan头部字段(header)中的pd标志位设置为1,以使网络设备根据pd标记识别接收到的网络报文是否为检测报文,vxlan封装后的检测报文的vxlanheader字段内容可以参见下述的报文格式说明。在一实施例中,vtep13可以根据目的vtep地址查找下一跳,根据下一跳的个数来确定是否需要复制该检测报文以及需要复制的检测报文的个数,如果只有一个下一跳,则直接将检测报文封装mac头之后转发到vtep13的下一跳;如果存在多个等价下一跳,则根据下一跳的个数复制已通过vxlan封装的检测报文,之后根据每个下一跳的mac地址封装检测报文的mac头,将封装后的报文发送到vtep13对应的下一跳。

例如,vtep13的下一跳l3设备14接收到检测报文之后,向控制器10上报链路状态信息,其中,该链路状态信息可以携带有l3设备14的设备ip地址,从而可以使控制器10通过设备ip地址能够识别出该检测报文是来自哪台网络设备。l3设备14根据检测报文中的目的vtep地址查找下一跳,根据下一跳的个数来确定是否需要复制接收到的检测报文以及需要复制该检测报文的个数,如果只有一个下一跳,则直接将检测报文封装mac头之后转发到下一跳;如果存在多个等价下一跳(如图1所示的l3设备151和l3设备152),则根据下一跳的个数复制该检测报文,l3设备151和l3设备152执行与上述l3设备14相同的动作,直至将检测报文转发到终点网络设备vtep16。

步骤202,接收被检测链路上的网络设备根据检测报文上报的链路状态信息,链路状态信息中携带有第一源ip地址、第一目的ip地址、网络设备的设备ip地址以及第一标识;

步骤203,根据第一源ip地址、第一目的ip地址以及第一标识将检测报文与被检测链路进行匹配,以及,根据设备ip地址定位网络设备在被检测链路上的网络位置。

在步骤203和步骤204中,在一实施例中,如图1所示,控制器10接收到了网络设备l3设备14上报的链路状态信息,控制器10可以从接收到的链路状态信息中提取出发送链路状态信息的第一源ip地址、第一目的ip地址、l3设备14设备ip地址和检测报文的第一标识等信息,根据链路状态信息中的第一源ip地址、第一目的ip地址以及检测报文的第一标识查找相应的被检测链路,根据设备ip地址定位l3设备14在被检测链路上的网络位置。在一实施例中,控制器10还可以将链路状态信息记录到控制器10所维护的拓扑结构图的相应节点上,从而方便管理员查看整个被检测链路上的链路状态。

由上述描述可知,本发明实施例通过上述步骤201-步骤204可以遍历被检测链路上的所有路径,使控制器能够获知被检测链路上的所有链路的链路状态信息,以便快速识别并定位失效链路。

图3为根据本发明的一示例性实施例二示出的链路检测方法的流程示意图;本实施例结合图1以控制器在接收到被检测链路上的链路状态信息后,如何通过链路状态信息来确定无效链路为例进行示例性说明,如图3所示,包括如下步骤:

步骤301,确定来自被检测链路上的任意一台网络设备的链路状态信息的时间戳;

步骤302,确定在时间戳之后的设定时间内是否接收到被检测链路上的任意一台网络设备的下一跳的网络设备上报的链路状态信息;

步骤303,如果在设定时间内未接收到下一跳的网络设备的链路状态信息,确定下一跳的网络设备的设备ip地址;

步骤304,根据下一跳的网络设备的设备ip地址生成被检测链路存在的失效链路的报警信息;

步骤305,根据下一跳的网络设备的设备ip地址刷新当前网络设备的转发表,以使当前网络设备根据刷新后的转发表停止向失效链路发送网络报文。

如图1所示,控制器10可以在接收到被检测链路上的任意一台网络设备上报的链路状态信息之后,还可以从链路状态信息中提取出网络设备在接收到该检测报文时的时间戳、该网络设备的设备ip地址、检测报文的入接口、检测报文的第一源ip地址、第一目的ip地址以及检测报文的第一标识等信息;例如,控制器10在接收到l3设备14(本申请中的当前网络设备)上报的链路状态信息后,从该链路状态信息中提取出l3设备14在接收到检测报文时的时间戳,如果在该时间戳之后的连续一段时间内没有接收到l3设备152上报的链路状态信息,则确定该l3设备152的设备ip地址,根据l3设备152的设备ip地址生成被检测链路存在的失效链路的报警信息,从而使管理员能够获知l3设备14至l3设备152之间的链路已经失效,控制器10还可以刷新l3设备14的转发表,从而可以使l3设备14避免将流量发送到l3设备14至l3设备152之间的失效链路上。

本实施例在具有上述实施例的有益技术效果的基础上,可以使管理员能够获知相邻两个网络设备之间的失效链路,避免网络设备将流量发送到失效链路上,提高网络设备转发流量的效率。

图4为根据本发明的一示例性实施例三示出的链路检测方法的流程示意图;本实施例结合图1进行示例性说明,如图4所示,包括如下步骤:

步骤401,确定接收到的网络报文是否为检测报文,如果网络报文为检测报文,执行步骤402,如果为普通的网络报文,继续执行步骤401;

在一实施例中,可以通过对控制器10生成的检测报文进行vxlan封装,通过对控制器10生成的检测报文进行vxlan封装,从而使检测报文能够通过网络设备在vxlan网络上转发。在一实施例中,可以通过vxlan封装后的检测报文中的pd标记来判断网络报文是否为检测报文,例如,pd标记为1,表示网络报文为检测报文,pd标记为0,表示网络报文为普通的网络报文。

步骤402,如果网络报文为检测报文,根据检测报文中携带的被检测链路上的第一源ip地址、第一目的ip地址、网络设备的设备ip地址以及检测报文的第一标识生成链路状态信息并向控制器上报该链路状态信息;

在一实施例中,网络设备可以从检测报文的内层报文中提取出被检测链路上的第一源ip地址和第一目的ip地址,再将网络设备的设备ip地址作为第二源ip地址,将控制器的ip地址作为第二目的ip地址,从而将链路状态信息由网络设备上报至控制器。其中,第一源ip地址和第一目的ip地址为封装在检测报文中内层的信息,为载荷中的一部分,第二源ip地址为该链路状态信息的实际源ip地址,第二目的ip地址为该链路状态信息的实际目的ip,是下述检测报文格式中外层的ip头中的信息。

步骤403,从检测报文中解析目的vtep地址,根据目的vtep地址查找网络设备的转发表,如果转发表中存在网络设备的至少一个下一跳,根据至少一个下一跳的个数复制检测报文;

在一实施例中,目的vtep地址由被检测链路上的起始网络设备封装在检测报文外层的目的ip地址。在一实施例中,可以通过网络设备的出接口的个数来确定至少一个下一条的个数。

步骤404,根据至少一个下一跳中的每一个下一跳的mac地址封装检测报文中的mac头并将检测报文转发到至少一个下一跳。

在一实施例中,通过mac地址封装检测报文中的mac头的示例请参见下述的检测报文格式说明,在此先不详述。

本发明实施例通过上述步骤401-步骤404可以使当前网络设备根据其至少一个下一跳的个数复制来自控制器的检测报文,确保能够将检测报文发送至被检测链路上的所有路径,从而实现遍历被检测链路上的所有路径,使控制器能够获知被检测链路上的所有链路的链路状态信息,方便控制器根据链路状态信息维护链路。

图5为根据本发明的一示例性实施例四示出的链路检测方法的流程示意图;本实施例结合图1并以vtep13实现检测报文的转发为例进行示例性说明,如图5所示,包括如下步骤:

步骤501,确定接收到的网络报文是否为检测报文,如果为检测报文,执行步骤502,如果为普通的网络报文,继续执行步骤501。

步骤501的详细描述可以参见上述步骤401的描述,在此不再详述。

步骤502,根据检测报文中的第一目的ip地址查找对应的转发表。

在一实施例中,如果检测报文由控制器10直接发送至vtep13,检测报文中携带有被检测链路上的第一源ip地址(图1所示的vtep13的设备ip地址)、第一目的ip地址(图1所示的vtep16的设备ip地址)以及检测报文的第一标识。在一实施例中,如果vtep13从控制器10接收到检测报文,则表示vtep13为被检测链路的起点设备。

步骤503,根据转发表中的vxlan网络标识符、目的vtep地址对检测报文进行vxlan封装。

在一实施例中,vxlan封装后的检测报文可以参见下述的报文格式说明,在此先不详述。

步骤504,在vxlan的报文头中对检测报文进行标记。

在一实施例中,可以在vxlan报文头(header)中的vni字段后的保留字段中定义一个pd标志位,当该pd标志位为1时表示网络报文为检测报文。

步骤505,当前网络设备是否有多个等价下一跳,如果有多个下一跳,执行步骤506,如果只有一个下一跳,执行步骤507。

在一实施例中,可以通过网络设备的出接口的个数来确定至少一个下一条的个数。

步骤506,根据等价下一跳的个数复制检测报文。

步骤507,针对每个检测报文封装相应的mac头并向下一跳转发检测报文。

在一实施例中,封装的mac头可以参见下述的报文格式说明,在此先不详述。

本实施例中,vtep13根据其至少一个下一跳的个数复制来自控制器的检测报文,确保了将检测报文发送至被检测链路上的所有路径,从而实现了遍历被检测链路上vtep13对应的所有路径,使控制器能够获知vtep13对应路径的链路状态信息。

图6为根据本发明的一示例性实施例五示出的链路检测方法的流程示意图;本实施例结合图1并以l3设备14实现检测报文的转发为例进行示例性说明,如图6所示,包括如下步骤:

步骤601,确定接收到的网络报文是否为检测报文,如果为检测报文,执行步骤602,如果为普通的网络报文,继续执行步骤601。

步骤601的详细描述可以参见上述步骤401的描述,在此不再详述。

步骤602,提取检测报文的入接口索引、检测报文中的第一源ip地址、第一目的ip地址及检测报文的第一标识、当前时间戳。

步骤603,根据第一源ip地址、第一目的ip地址、第一标识以及当前时间戳生成链路状态信息并向控制器上报链路状态信息。

步骤604,根据检测报文的目的vtep地址查找转发表。

在一实施例中,通过目的vtep地址查找转发表的方法可以参见现有技术中的相关描述,在此不详述。

步骤605,根据检测报文的目的vtep地址查找当前网络设备是否有多个等价下一跳,如果有多个下一跳,执行步骤606,如果只有一个下一跳,执行步骤607。

在一实施例中,可以根据目的vtep地址查找下一跳,根据下一跳的个数来确定是否需要复制检测报文以及需要复制该检测报文的个数。

步骤606,根据等价下一跳的个数复制检测报文。

步骤607,针对检测报文封装相应的mac头并转发检测报文。

在一实施例中,封装的mac头可以参见下述的报文格式说明,在此先不详述。

本实施例中,l3设备可以根据其至少一个下一跳的个数复制来自控制器的检测报文,确保将检测报文发送至被检测链路上的所有路径,从而实现了遍历被检测链路上l3设备对应的所有路径,使控制器能够获知l3设备对应路径的链路状态信息。

图7为根据本发明的一示例性实施例六示出的链路检测方法的流程示意图;本实施例结合图1并以vtep16终止检测报文的转发为例进行示例性说明,如图7所示,包括如下步骤:

步骤701,确定接收到的网络报文是否为检测报文,如果为检测报文,执行步骤702,如果为普通的网络报文,继续执行步骤701。

步骤701的详细描述可以参见上述步骤401的描述,在此不再详述如何从检测报文中解析出封装在检测报文的外层报文中的第一目的ip地址。

步骤702,确定目的vtep地址是否与本地网络设备的设备ip地址相同,如果目的vtep地址与本地网络设备的设备ip地址相同,执行步骤703,如果目的vtep地址与本地网络设备的设备ip地址不相同,可以参考上述图6实施例的方式转发检测报文,在此不再详述。

步骤703,如果目的vtep地址与本地网络设备的设备ip地址相同,确定检测报文中的入接口索引以及本地网络设备的当前时间戳。

步骤704,将入接口索引和当前时间戳添加到链路状态信息中,将链路状态信息上报给控制器。

步骤705,丢弃检测报文。

本实施例中,终点网络设备在接收到检测报文后,通过将检测报文丢弃,从而实现了遍历被检测链路上的所有路径的链路检测,解决了现有技术不能够遍历链路的不足。

图8为根据本发明的一示例性实施例七示出的各系统之间的信令流程图,以控制器10如何检测vm11和vm12之间的链路状态为例并结合图1进行示例性说明,如图8所示,包括如下步骤:

步骤801,控制器10向需要做链路检测的vxlan隧道的vtep13下发检测报文。其中,如果只需要做单向的链路检测,则可以只向该方向的起点vtep13下发检测报文即可;如果需要做双向链路检测,则可以同时向隧道两端的vtep都下发检测报文。

步骤802,vtep13接收到检测报文之后,根据检测报文的目的ip查找转发表,根据转发表中目的vni、目的vtep地址(本申请中的vtep16的ip地址)等信息对检测报文进行vxlan封装,同时将vxlanheader中的pd标记置1。

步骤803,vtep13根据目的vtep地址查找下一跳,如果只有一个下一跳,则直接将报文封装mac头之后发送到下一跳;如果存在多个等价下一跳,则根据下一跳的个数复制已通过vxlan封装的检测报文,之后根据每个下一跳的mac地址封装报文mac头,将封装后的检测报文发送到每个对应的下一跳;封装的vxlan报文的vxlanheader字段内容详见下述报文格式说明。

步骤804,vtep的下一跳l3设备14接收vxlan封装的检测报文,根据网络报文中的pd标记判断网络报文是检测报文之后,向控制器10上报链路状态信息,链路状态信息中包括时间戳、报文入接口等字段。

步骤805,l3设备14根据报文中的目的vtep地址查找下一跳,如果只有一个下一跳,则直接将检测报文封装mac头之后转发到下一跳;如果存在多个等价下一跳,则根据下一跳的个数复制检测报文,之后根据每个下一跳的mac地址封装检测报文的mac头,将检测报文发送到当前l3设备对应的下一跳l3设备151;l3设备151的处理流程与l3设备14的处理流程相同,在此不再详述。

步骤806,终点vtep16接收检测报文,根据报文中的pd标记判断报文是检测报文之后,上报链路状态信息,链路状态信息中包括时间戳、报文入接口等字段。

步骤807,终点vtep16丢弃检测报文。

其中,检测报文的格式如下:

0123456789012345

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

||

-外层mac头-14字节

||

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

||

-外层ip头-20字节

||

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|外层udp头|8字节

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|vxlanheader|8字节

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

||

~内层报文~可变

||

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

vxlan报文头(header)的格式如下:

01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|r|r|r|r|i|r|r|r|保留字段|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

vxlan网络标识符(vni)|r|r|r|r|r|r|r|pd|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++--+-+-+-+-+

在vxlan网络标识符(vxlannetworkidentifier,简称为vni)字段后的保留字段中定义一个pd标志位,当该pd标志位为1时表示该报文为检测报文。

检测报文的内层报文格式如下:

0123456789012345

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

||

-内层mac头-14字节

||

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

||

-内层ip头-20字节

||

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|内层udp头|8字节

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|检测报文id|4字节

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

控制器10根据第一源ip地址、第一目的ip地址、检测报文id来标识一个检测报文,同时被检测链路上的中间网络设备上报给控制器10的链路状态信息包含检测报文的第一源ip地址、第一目的ip地址、第二目的ip地址以及检测报文的id信息,从而可以方便控制器能够将被检测链路与检测报文相对应,根据设备ip地址定位被检测链路上的网络设备。

通过上述实施例,通过控制器负责构造检测报文,将检测报文下发到需被检测链路的链路起点(例如,图1所示的vtep13)以及网络中间节点(例如,图1所示的l3设备14、l3设备151、l3设备152)通过查找各自对应的转发表逐跳将检测报文转发到链路终点(例如,图1所示的vtep16)上,同时每个节点将链路状态信息上报到控制器,由控制器记录被检测链路的状态,如果链路起点或者被检测链路上的任意一个网络中间节点的转发表具有多条等价路径,则根据下一跳的个数复制检测报文并转发到相应的路径上,因此本申请可以遍历被检测链路上的所有路径。

对应于上述的链路检测方法,本申请还提出了图9所示的根据本申请的一示例性实施例的控制器的示意结构图。请参考图9,在硬件层面,该控制器包括第一处理器、内部总线、第一网络接口、内存以及存储第一处理器可执行指令的第一存储器,当然还可能包括其他业务所需要的硬件。

其中,第一网络接口,用于将检测报文通过起始网络设备依次发送至被检测链路上的每一台网络设备直至终点网络设备,检测报文中携带有被检测链路上的第一源ip地址、第一目的ip地址以及检测报文的第一标识;接收被检测链路上的网络设备根据检测报文上报的链路状态信息,链路状态信息中携带有第一源ip地址、第一目的ip地址、网络设备的设备ip地址以及第一标识;

第一处理器,用于根据链路状态信息中携带的第一源ip地址、第一目的ip地址以及第一标识将检测报文与被检测链路进行匹配,以及,根据设备ip地址定位网络设备在被检测链路上的网络位置。

对应于上述的链路检测方法,本申请还提出了图10所示的根据本申请的一示例性实施例的网络设备的示意结构图。请参考图10,在硬件层面,该网络设备包括第二处理器、内部总线、第二网络接口、内存以及存储第二处理器可执行指令的第二存储器,当然还可能包括其他业务所需要的硬件。

其中,第二处理器,用于确定接收到的网络报文是否为检测报文;

如果网络报文为检测报文,根据检测报文中携带的被检测链路的第一源ip地址、第一目的ip地址、网络设备的设备ip地址以及检测报文的第一标识生成链路状态信息并通过第二网络接口向控制器上报链路状态信息;

根据检测报文的第一目的ip地址查找网络设备的转发表,如果转发表中存在网络设备的至少一个下一跳,根据至少一个下一跳的个数复制检测报文;

根据至少一个下一跳中的每一个下一跳的mac地址封装检测报文中的mac头并通过第二网络接口将检测报文转发到至少一个下一跳。

图11为根据本发明的一示例性实施例一示出的链路检测装置的结构示意图;如图11所示,该链路检测装置可以包括:第一发送模块111、第一接收模块112、匹配模块113。其中:

第一发送模块111,用于将检测报文通过起始网络设备依次发送至被检测链路上的每一台网络设备直至终点网络设备,检测报文中携带有被检测链路上的第一源ip地址、第一目的ip地址以及检测报文的第一标识;

第一接收模块112,用于接收被检测链路上的网络设备根据第一发送模块111发送的检测报文上报的链路状态信息,链路状态信息中携带有第一源ip地址、第一目的ip地址、网络设备的设备ip地址以及第一标识;

匹配模块113,用于根据第一接收模块112接收到的链路状态信息中携带的第一源ip地址、第一目的ip地址以及第一标识将检测报文与被检测链路进行匹配,以及,根据设备ip地址定位网络设备在被检测链路上的网络位置。

图12为根据本发明的一示例性实施例二示出的链路检测装置的结构示意图;如图12所示,在上述图11所示实施例的基础上,在一实施例中,装置还可包括:

第一确定模块114,用于确定第一接收模块112接收到被检测链路上的任意一台网络设备的链路状态信息的时间戳;

第二确定模块115,用于确定在第一确定模块114确定的时间戳之后的设定时间内是否接收到被检测链路上的任意一台网络设备的下一跳的网络设备上报的链路状态信息;

第三确定模块116,用于如果第二确定模块115确定在设定时间内未接收到下一跳的网络设备的链路状态信息,确定下一跳的网络设备的设备ip地址;

报警信息生成模块117,用于根据第三确定模块116确定的下一跳的网络设备的设备ip地址生成被检测链路存在的失效链路的报警信息。

在一实施例中,装置还可包括:

刷新模块118,用于根据第三确定模块116确定的下一跳的网络设备的设备ip地址刷新当前网络设备的转发表,以使当前网络设备根据刷新后的转发表停止向失效链路发送网络报文。

在一实施例中,装置还可包括:

记录模块119,用于将第三确定模块116确定的链路状态信息记录到控制器维护的拓扑结构图的相应节点上。

图13为根据本发明的一示例性实施例三示出的链路检测装置的结构示意图;如图13所示,该链路检测装置可以包括:第四确定模块131、链路信息生成模块132、查找模块133、第一封装模块134。其中:

第四确定模块131,用于确定接收到的网络报文是否为检测报文;

链路信息生成模块132,用于如果第四确定模块131确定网络报文为检测报文,根据检测报文中携带的被检测链路上的第一源ip地址、第一目的ip地址、网络设备的设备ip地址以及检测报文的第一标识生成链路状态信息并向控制器上报链路状态信息;

查找模块133,用于从第四确定模块131确定的检测报文中解析目的vtep地址,根据目的vtep地址查找网络设备的转发表,如果转发表中存在网络设备的至少一个下一跳,根据至少一个下一跳的个数复制检测报文;

第一封装模块134,用于根据查找模块133查找到的至少一个下一跳中的每一个下一跳的mac地址封装检测报文中的mac头并将检测报文转发到至少一个下一跳。

图14为根据本发明的一示例性实施例四示出的链路检测装置的结构示意图;如图14所示,在上述图13所示实施例的基础上,在一实施例中,装置还可包括:

第二封装模块135,用于根据查找模块133查找到的转发表中的目的vxlan网络标识符、目的vtep地址对检测报文进行vxlan封装;

标记模块136,用于在vxlan的报文头中对检测报文进行标记;

查找模块133执行根据检测报文的第一目的ip地址查找网络设备的转发表的步骤。

在一实施例中,如果检测报文由被检测链路上的网络设备转发,装置还可包括:

第五确定模块137,用于确定第四确定模块131确定的检测报文中的入接口索引以及本地网络设备的当前时间戳;

第一添加模块138,用于将第五确定模块137确定的入接口索引和当前时间戳添加到链路状态信息中。

在一实施例中,装置还可包括:

第六确定模块139,用于确定目的vtep地址是否与本地网络设备的ip地址相同;

第七确定模块140,用于如果第六确定模块139确定目的vtep地址与本地网络设备的ip地址相同,确定检测报文中的入接口索引以及本地网络设备的当前时间戳;

第二添加模块141,用于将第七确定模块140确定的入接口索引和当前时间戳添加到链路状态信息中。

在一实施例中,装置还可包括:

丢弃模块142,用于丢弃第四确定模块131确定检测报文。

在一实施例中,第四确定模块131可包括:

第一确定单元1311,用于确定接收到的网络报文中的vxlan报文头中的标记;

第二确定单元1312,用于根据第一确定单元1311确定的vxlan报文头中的标记确定网络报文是否为检测报文。

上述实施例可见,通过控制器负责构造检测报文,将检测报文下发到需被检测链路的链路起点以及网络中间节点通过查找各自对应的转发表逐跳将检测报文转发到链路终点上,同时每个节点将链路状态信息上报到控制器,由控制器记录被检测链路的状态,如果链路起点或者被检测链路上的任意一个网络中间节点的转发表具有多条等价路径,则根据下一跳的个数复制检测报文并转发到相应的路径上,因此本申请可以遍历被检测链路上的所有路径。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

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

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