应用于VXLAN中的丢包定位方法和装置与流程

文档序号:18213293发布日期:2019-07-19 22:27阅读:777来源:国知局
应用于VXLAN中的丢包定位方法和装置与流程

本申请涉及网络通信技术,特别涉及应用于虚拟扩展局域网(VXLAN:Virtual eXtensible Local Area Network)中的丢包定位方法和装置。



背景技术:

VXLAN,是一种将二层报文用三层协议进行封装的技术,主要原理为:引入一个用户数据包协议(UDP:User Datagram Protocol)格式的外层隧道,作为数据路径层,而原有的报文数据作为净荷来传输。

由于净荷的外层采用了UDP作为传输手段,这可以保证净荷顺利在二、三层网络中传输,实现了二层网络覆盖(overlay)三层网络的能力。这里,为方便描述,将覆盖的虚拟网络称为overlay网络,而将被覆盖的物理承载网络称为underlay网络,图1简单示出了overlay网络和underlay网络的结构。

在overlay网络中,引入了隧道端点(VTEP:VXLAN Tunnel End Point)来完成报文的VXLAN封装和VXLAN解封装。VTEP与underlay网络连接,分配有物理网络的IP地址,该IP地址与overlay网络无关。

在overlay网络中,当服务器上虚拟出的虚拟机(VM:Virtual Machine)作为源VM发送的报文未到达要访问的目的VM时,则需要在从源VM至目的VM的业务转发路径所经由的所有设备上配置流统计,以便定位出源VM与目的VM无法通信时具体在哪个设备上丢包。然而在从源VM至目的VM的业务路径所经由的所有设备上配置流统计,工作量非常大,尤其是在规模很大或者结构很复杂的组网中。



技术实现要素:

本申请提供了应用于VXLAN中的丢包定位方法和装置,以在两个VM无法通信时,通过仿真方式定位出这两个VM通信时的丢包位置。

本申请提供的技术方案包括:

一种应用于虚拟扩展局域网VXLAN中的丢包定位方法,该方法包括:

第一隧道端点VTEP在本地接入的第一虚拟机VM发送的业务报文未到达第二VM时,确定用于模拟所述业务报文从第一VM转发至第二VM的业务转发路径的模拟报文;所述模拟报文与所述业务报文的报文特征参数相同;

第一VTEP按照本地芯片转发逻辑对模拟报文的报文特征参数进行计算确定UDP源端口号,利用为模拟报文确定的UDP源端口号和本地存在的与模拟报文匹配的寄存器表项中的VXLAN隧道标识对模拟报文进行VXLAN封装并通过所述VXLAN隧道标识对应的VXLAN隧道转发,以使接收到VXLAN封装的模拟报文的设备向丢包定位设备发送供所述丢包定位设备定位所述业务报文丢包位置的丢包定位参数。

一种应用于虚拟扩展局域网VXLAN中的丢包定位装置,所述装置应用于第一隧道端点VTEP,该装置包括:

确定单元,用于在所述VTEP本地接入的第一虚拟机VM发送的业务报文未到达第二VM时,确定用于模拟所述业务报文从第一VM转发至第二VM的业务转发路径的模拟报文;所述模拟报文与所述业务报文的报文特征参数相同;

转发单元,用于按照第一VTEP本地的芯片转发逻辑对模拟报文的报文特征参数进行计算确定UDP源端口号,利用为模拟报文确定的UDP源端口号和本地存在的与模拟报文匹配的寄存器表项中的VXLAN隧道标识对模拟报文进行VXLAN封装并通过所述VXLAN隧道标识对应的VXLAN隧道转发,以使接收到VXLAN封装的模拟报文的设备向丢包定位设备发送供所述丢包定位设备定位所述业务报文丢包位置的丢包定位参数。

由以上技术方案可以看出,本发明中,当两个VM之间的业务报文无法到达对方时,通过模拟该业务报文的业务转发路径能够快速锁定业务报文转发过程中发生丢失的设备,这相比现有技术在业务转发路径的所有设备上配置流统计而言,快速、简单、并大大减少工作量。

附图说明

图1为overlay网络和underlay网络的结构示意图;

图2为本发明提供的方法流程图;

图3为本发明实施例1提供的应用组网图;

图4为本发明实施例2提供的应用组网图;

图5为本发明提供的装置结构图;

图6为本发明提供的图5所示装置的硬件结构图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

参见图2,图2为本发明提供的方法流程图。如图2所示,该流程可包括以下步骤:

步骤201,第一VTEP在本地接入的第一VM发送的业务报文未到达第二VM时,确定用于模拟从第一VM至第二VM的业务转发路径的模拟报文。

在本发明中,第一VTEP、第一VM、第二VM只是为便于描述进行的命名而已,并非限定本发明。

在本发明中,模拟报文的报文特征参数与第一VM发送的未到达第二VM的业务报文的报文特征参数相同。这里,报文特征参数可以为报文五元组,也可以为报文七元组。其中,报文五元组包括以下参数:目的IP地址、源IP地址、目的端口号号、源端口号号、协议类型;报文七元组包括以下参数:目的IP地址、源IP地址、目的MAC地址、源MAC地址、目的端口号号、源端口号号、协议类型。

相比于第一VM发送的未到达第二VM的业务报文,本发明中,作为一个优选实施例,模拟报文不带有载荷。

步骤202,第一VTEP按照本地芯片转发逻辑对模拟报文的报文特征参数进行计算确定外层UDP源端口号,利用为模拟报文确定的外层UDP源端口号和本地存在的与模拟报文匹配的寄存器表项中的VXLAN隧道标识对模拟报文进行VXLAN封装并通过所述VXLAN隧道标识对应的VXLAN隧道转发VXLAN封装的模拟报文,以使接收到VXLAN封装的模拟报文的中间设备向丢包定位设备发送供所述丢包定位设备定位所述业务报文丢包位置的丢包定位参数。

在VXLAN封装中外层UDP头(Outer UDP Header)的UDP源端口号一般是第一VTEP自动按照本地芯片转发逻辑对报文的报文特征参数(比如报文的目的IP地址等)计算出来的,该芯片转发逻辑由芯片厂商设置,一般不公开,基于此,本发明为模拟从第一VM至第二VM的业务转发路径,就需要第一VTEP按照与上述业务报文的相同处理方式处理上述模拟报文,具体如步骤202所述,即重新按照与上述业务报文相同的转发逻辑对模拟报文执行转发处理。因为模拟报文的报文特征参数与第一VM发送的但未到达第二VM的业务报文的报文特征参数相同,这样,第一VTEP按照本地芯片转发逻辑对模拟报文的报文特征参数计算出来外层UDP头的UDP源端口号就应该与为上述业务报文计算出来的外层UDP头的UDP源端口号完全相同。

还有,本发明中,步骤202中与模拟报文匹配的寄存器表项中的VXLAN隧道标识是第一VTEP在发送上述业务报文时使用的VXLAN隧道对应的VXLAN隧道标识,这能够保证模拟报文和上述的业务报文通过同一个VXLAN隧道转发,以保证真实模拟业务报文的业务转发路径。本发明中,与模拟报文匹配的寄存器表项可通过访问控制列表(ACL:Access Control List)表项,ACL表项中的匹配项为模拟报文的报文特征参数、模拟报文的标识(为避免影响UDP源端口号的计算,这里模拟报文的标识在模拟报文的位置不同于报文特征参数的位置),ACL表项中的处理动作为分配上述的VXLAN隧道标识给模拟报文。

在VXLAN中,一般会有控制器控制管理VTEP,基于此,当VXLAN中存在控制器时,作为本发明的一个优选实施例,上述的丢包定位设备可为VXLAN中用于管理VTEP的控制器。

当丢包定位设备为控制器时,作为本发明一个实施例,上述步骤201中第一VTEP确定用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文包括:第一VTEP接收控制器发送的用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文;

当丢包定位设备为控制器,作为本发明一个实施例,上述步骤202中本地存在的与模拟报文匹配的寄存器表项由控制器在确定出第一VM发送的业务报文未到达第二VM时生成并发送给第一VTEP的。

需要说明的是,当控制器为丢包定位设备时,第一VTEP可以为单一设备,也可以是跨设备聚合的堆叠设备。

其中,当第一VTEP为单一设备时,因为控制器具有网络的全局拓扑信息,其能直接确定出上述的业务报文是从第一VTEP发出去的,因此可直接向第一VTEP1发送上述的模拟报文和与模拟报文匹配的寄存器表项即可。

而当第一VTEP是跨设备聚合的堆叠设备时,在应用中,控制器无法知道上述的业务报文具体哈希到堆叠设备中哪台成员设备(业务报文进入不同的成员设备,业务转发路径可能会不同)。因此控制器需要和堆叠设备交互,获取堆叠设备是由几台成员设备堆叠组成,并且获取各成员设备的设备标识比如slot号。基于此,作为一个优选实施例,上述第一VTEP接收控制器发送的用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文确定实现时可通过以下两种方式中任一方式实现:

方式1:

本方式1下,控制器向第一VTEP中每一成员设备发送用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文,这里,控制器向每一成员设备发送的模拟报文除了携带上述的报文特征参数外还额外携带该成员设备的设备标识。比如,第一VTEP由成员设备至3组成,则本方式1下,控制器向成员设备1发送的模拟报文除了携带上述的报文特征参数外还携带成员设备1的设备标识,控制器向成员设备2发送的模拟报文除了携带上述的报文特征参数外还携带成员设备2的设备标识,控制器向成员设备3发送的模拟报文除了携带上述的报文特征参数外还携带成员设备3的设备标识。

本方式1下,设备标识在模拟报文的位置与模拟报文的报文特征参数在模拟报文的位置不同,以防止设备标识会干扰第一VTEP利用报文特征参数计算UDP源端口号。

基于以上描述,本方式1下,第一VTEP接收控制器发送的用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文可包括:

第一VTEP中每一成员设备接收控制器发送的用于模拟业务报文从第一VM转发至第二VM的业务转发路径、且携带本设备的设备标识的模拟报文。

当第一VTEP中每一成员设备接收到用于模拟业务报文从第一VM转发至第二VM的业务转发路径、且携带本设备的设备标识的模拟报文时,按照图2所示流程步骤202执行操作,不影响整个流程。本方式1下,控制器会向第一VTEP中各个成员设备发送相同的与模拟报文匹配的寄存器表项。

方式2:

本方式2应用在堆叠设备中成员设备在本地成员端口学习源MAC地址的场景。

本方式2下,控制器向第一VTEP中每一成员设备发送设定报文,该设定报文携带了用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文。本方式2下,设定报文的源MAC地址为第一VM的MAC地址,设定报文携带的模拟报文相比方式1,不再额外携带该成员设备的设备标识,仅携带上述的报文特征参数。举例描述,比如,第一VTEP由成员设备至3组成,则本方式2下,控制器向成员设备1、成员设备2、成员设备3发送相同的设定报文,该设定报文的源MAC地址为第一VM的MAC地址,设定报文携带的模拟报文携带上述的报文特征参数。

基于此,本方式2下,第一VTEP接收控制器发送的用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文可包括:

第一VTEP中每一成员设备接收控制器发送的携带用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文的设定报文;

检查所述设定报文的源MAC地址是否命中本成员设备已学习的源MAC地址,如果是,从所述设定报文中解析出用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文。本方式2下,相比于方式1,模拟报文不需要携带成员设备的设备标识,且保证只有命中报文源MAC地址的成员设备执行图2所示流程。

作为本发明的另一个优选实施例,不管VXLAN中是否存在上述的控制器,上述的丢包定位设备也可为第一VTEP。

当丢包定位设备为第一VTEP时,作为本发明的一个实施例,上述步骤201中确定用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文包括:生成用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文。

当丢包定位设备为第一VTEP时,作为本发明的一个实施例,上述步骤202中本地存在的与模拟报文匹配的寄存器表项是第一VTEP在确定出第一VM发送的业务报文未到达第二VM时生成的。

本发明中,为区分VXLAN封装的上述业务报文,第一VTEP发送的VXLAN封装的模拟报文中VXLAN头内指定保留字段(本发明以VXLAN头内的第一个保留字段为例)为设定值比如100。

当第一VTEP发送VXLAN封装的模拟报文后,处于从第一VM至第二VVM的业务转发路径上的设备会接收到VXLAN封装的模拟报文,优选地,接收到VXLAN封装的模拟报文的设备可利用模拟报文的VXLAN封装匹配本地保存的匹配规则,如果匹配成功,则向丢包定位设备发送供丢包定位设备定位上述业务报文丢包位置的丢包定位参数。这里的匹配规则可为丢包定位设备发送的,也可为预先配置的,本发明并不具体限定。下述两个实施例均以丢包定位设备发送匹配规则为例。具体地,结合上面描述的VXLAN封装,这里的匹配规则具体可为:外层UDP头内UDP目的端口号为VXLAN协议规定的设定端口号,且VXLAN头内的指定保留字段(本发明以VXLAN头内的第一个保留字段为例)内的数值为设定值比如100。

本发明中,接收到VXLAN封装的模拟报文的设备发送的丢包定位参数具体实现时至少可包括:接收到VXLAN封装的模拟报文的设备的设备标识。优选地,本发明中,为定位出上述业务报文经由的业务转发路径,丢包定位参数还可进一步包含收到VXLAN封装的模拟报文的端口的标识。

需要说明的是,在本发明中,通常情况下,接收到VXLAN封装的模拟报文的设备不会为第二VM接入的第二VTEP,因为VXLAN封装的模拟报文是在上述的业务报文丢包时才会发送的,其一般不会成功到达第二VM接入的第二VTEP的,基于此,接收到VXLAN封装的模拟报文的设备除了向丢包定位设备发送丢包定位参数外,还会继续按照VXLAN封装中外层IP头的目的IP地址确定转发路径并转发接收的VXLAN封装的模拟报文。其中,在按照VXLAN封装中外层IP头的目的IP地址确定的转发路径为多条等价路径时,可通过基于VXLAN封装中UDP源端口号进行哈希运算确定一个转发路径转发接收的VXLAN封装的模拟报文。而在其他一些情况下,VXLAN封装的模拟报文也有可能成功到达第二VM接入的第二VTEP,为防止干扰正常的业务,本发明中,当第二VTEP接收到VXLAN封装的模拟报文时,其会向丢包定位设备发送丢包定位参数,但不再继续转发模拟报文,而是丢弃接收的VXLAN封装的模拟报文。这里简单举例描述第二VTEP接收到VXLAN封装的模拟报文的情况,比如,第二VTEP丢包的情况,或者以下情况:第一VM访问第二VM时同时发送N(N大于1)个相同业务报文给第二VM,结果有M(M小于N)个业务报文成功到达第二VM,即N-M个业务报文未到达第二VM,假如第一VTEP按照类似图2所示的流程确定N个模拟报文并按照本地芯片转发逻辑分别对N个模拟报文进行VXLAN封装并转发,则就会有M个模拟报文到达第二VTEP,第二VTEP会丢弃收到的VXLAN封装的模拟报文。

本发明中,不管丢包定位设备是上述的控制器,还是第一VTEP,接收到VXLAN封装的模拟报文的设备会向丢包定位设备发送丢包定位参数,当丢包定位设备收到丢包定位参数后,基于收到的丢包定位参数定位出从第一VM至第二VM的丢包设备。

这里基于收到的丢包定位参数定位出从第一VM至第二VM的丢包设备具体可为以下两种实现方式:

方式a:

本方式a下,控制器是集中在一个固定的时间基于收到的丢包定位参数定位出从第一VM至第二VM的丢包设备。

具体地,本方式a下,基于收到的丢包定位参数定位出从第一VM至第二VM的丢包设备包括:

检测设定的丢包定位时间是否达到,如果达到,则从已接收的所有丢包定位参数中确定出最后收到的丢包定位参数,将该最后收到的丢包定位参数中的设备标识对应的设备确定为丢包设备。

本方式a下,设定的丢包定位时间可根据实际情况设置,但一般都会远远大于模拟报文从两个不同设备之间转发的时间。

至此,完成方式a的描述。

方式b:

本方式b下,控制器并非是集中在一个固定的时间基于收到的丢包定位参数定位出从第一VM至第二VM的丢包设备,而是随着模拟报文的转发而执行。

本方式b下,基于收到的丢包定位参数定位出从第一VM至第二VM的丢包设备包括:

在每次接收到丢包定位参数时将该丢包定位参数作为当前丢包定位参数,确定收到当前丢包定位参数的时间,在该确定的时间之后的设定时间内如果再接收到丢包定位参数,则返回将该丢包定位参数作为当前丢包定位参数的操作,在该确定的时间之后的设定时间如果未接收到丢包定位参数,确定当前丢包定位参数中的设备标识对应的设备为丢包设备。

在方式b中,设定时间大于模拟报文从两个不同设备之间转发的时间。

至此,完成方式b的描述。

本发明中,不管是方式a还是方式b,最终会从第一VM接入的第一VTEP至第二VM接入的第二VTEP之间确定出丢包设备。

至此,完成图2所示的流程。

通过图2所示的流程可以看出,本发明中,通过模拟业务报文的业务转发路径能够快速锁定业务报文转发过程中发生丢失的设备,这相比现有技术在业务转发路径的所有设备上配置流统计而言,快速、简单、并大大减少工作量。

下面通过两个实施例对本发明提供的方法进行描述:

实施例1:

图3为本发明提供的实施例1的应用组网图。在图3中,Overlay网络仅示出两个VTEP:VTEP1和VTEP2,VM1连接VTEP1,VM2连接VTEP2,VM1、VM2是两个不同服务器上虚拟出的虚拟机,控制器控制VTEP1和VTEP2,underlay网络仅示出6个设备,分别为设备31至设备36。在图3中,丢包定位设备为控制器。

在图3中,以VM1发送的业务报文(记为报文0)未成功到达要访问的VM2为例,VTEP1为单一设备。

控制器构造一个报文特征参数与报文0的报文特征参数完全相同的模拟报文(记为报文1),发送报文1至VTEP1。报文特征参数如上限定,这里不再赘述。

控制器还生成与报文1匹配的寄存器表项,发送寄存器表项至VTEP1。这里寄存器表项中可包含报文1的报文特征参数比如源IP地址和目的IP地址、报文1作为模拟报文的标识和转发报文0的VXLAN隧道标识(以VXLAN隧道100为例)。

控制器下发匹配规则至介于VTEP1与VTEP2之间的设备(即设备31至设备36)以及VTEP2。图3因为线路比较多,没有示出控制器发送匹配规则给图3中的设备31至设备35的线路。这里,匹配规则可为:VXLAN封装中VXLAN头内第一个保留字段为设定值,且VXLAN封装中外层UDP头内的UDP目的端口号为设定的VXLAN端口号。

VTEP1接收控制器发送的报文1,按照本地芯片转发逻辑对报文1的报文特征参数进行计算确定UDP源端口号,利用为报文1确定的UDP源端口号和控制器发送的与报文1匹配的寄存器表项中的VXLAN隧道100对报文1进行VXLAN封装并通过VXLAN隧道100对应的VXLAN隧道转发VXLAN封装的报文1。这里,报文1的VXLAN封装相比于报文0的VXLAN封装有如下区别:VXLAN头内第一个保留字段的数值为设定值。报文1的VXLAN封装中外层UDP头内的UDP源端口号为报文1被确定的UDP源端口号,UDP目的端口号为VXLAN协议规定的设定端口号,外层IP头的外层目的IP地址为VTEP2的IP地址、外层源IP地址为VTEP1的IP地址。为便于描述,这里将VXLAN封装的报文1称为报文2。

设备31收到报文2,发现报文2的VXLAN封装中VXLAN头内的第一个保留字段内的数值为设定值,且VXLAN封装中外层UDP头内的目的UDP端口号为VXLAN协议规定的设定端口号,满足控制器下发的匹配规则,则上送丢包定位参数至控制器,这里的丢包定位参数至少包括:设备31的设备标识。

同时,设备31会依据报文2的VXLAN封装中外层IP头的外层目的IP地址确定到达该外层目的IP地址的路径,结果发现该路径不止一条,为两条等价路径,依次为:设备31->设备32->设备33->设备34->设备35->VTEP2;设备31->设备36->设备33->设备34->设备35->VTEP2;基于此,设备31对报文2的VXLAN封装中外层UDP头的UDP源端口号进行哈希运算,依据哈希结果选择设备31->设备32->设备33->设备34->设备35->VTEP2这一路径继续转发收到的报文2;

设备32至设备35收到报文2后的处理类似设备31的处理,这里不再赘述。

VTEP2收到报文2后,发现报文2的VXLAN封装中VXLAN头内的第一个保留字段内的数值为设定值,且VXLAN封装中外层UDP头内的UDP目的端口号为VXLAN协议规定的设定端口号,满足控制器发送的匹配规则,则发送丢包定位参数至控制器,并发现VXLAN封装中外层IP头的外层目的IP地址为本VTEP2的IP地址,则丢弃接收的报文2。

控制器对收到的所有丢包定位参数进行汇总和统计以定位出丢包设备。基于上述的方式a举例描述控制器如何定位出丢包设备:

比如,控制器收到的丢包定位参数为:

(设备31)、(设备32)、(设备33)、(设备34)。

控制器基于上述的方式a,在设定的丢包定位时间到达时,从已接收的所有丢包定位参数中确定出最后收到的丢包定位参数即(设备34),将该最后收到的丢包定位参数中的设备34对应的设备确定为丢包设备,即定位上述的报文0在设备34丢包。

也即,控制器通过对收到的丢包定位参数进行汇总和统计定位出报文0的丢包设备。

至此,完成实施例1的描述。

实施例2:

图4为本发明提供的实施例2的应用组网图。在图4中,Overlay网络仅示出两个VTEP:VTEP3和VTEP4,VM3连接VTEP3,VM4连接VTEP4,VM3、VM4是两个不同服务器上虚拟出的虚拟机,underlay网络仅示出5个设备,分别为设备41至设备45。在图4中,丢包定位设备为VTEP3。

在图4中,以VM3发送的业务报文(记为报文40)未成功到达要访问的VM4为例。

VTEP3构造一个报文特征参数与报文40的报文特征参数完全相同的模拟报文(记为报文41)。报文特征参数如上限定,这里不再赘述。

VTEP3在本地存储与报文41匹配的寄存器表项。寄存器表项中可包含报文41的报文特征参数比如源IP地址和目的IP地址、报文41作为模拟报文的标识和转发报文40的VXLAN隧道标识(以VXLAN隧道400为例)。

VTEP3发送匹配规则给介于VTEP3与VTEP4之间的设备(即设备41至设备45)以及VTEP4。图4因为线路比较多,没有示出控制器发送匹配规则的线路。

这里,匹配规则可为:VXLAN封装中VXLAN头内第一个保留字段为设定值,且VXLAN封装中外层UDP头内的UDP目的端口号为设定的VXLAN端口号。

VTEP3按照本地芯片转发逻辑对报文41的报文特征参数进行计算确定UDP源端口号,利用为报文41确定的UDP源端口号和本地预先配置的与报文41匹配的寄存器表项中的VXLAN隧道400对报文41进行VXLAN封装并通过VXLAN隧道400对应的VXLAN隧道转发VXLAN封装的报文41。这里,报文41的VXLAN封装相比于报文40的VXLAN封装有如下区别:VXLAN头内第一个保留字段的数值为设定值。报文41的VXLAN封装中外层UDP头内的UDP源端口号为报文41被确定的UDP源端口号,UDP目的端口号为VXLAN协议规定的设定端口号,外层IP头的外层目的IP地址为VTEP4的IP地址、外层源IP地址为VTEP3的IP地址。为便于描述,这里将VXLAN封装的报文41称为报文42。

设备41收到报文42,发现报文42的VXLAN封装中VXLAN头内的第一个保留字段内的数值为设定值,且VXLAN封装中外层UDP头内的目的UDP端口号为VXLAN协议规定的设定端口号,满足VTEP3下发的匹配规则,则发送丢包定位参数至VTEP3,这里的丢包定位参数至少包括:设备41的设备标识。

同时,设备41会依据报文42的VXLAN封装中外层IP头的外层目的IP地址确定到达该外层目的IP地址的路径,结果发现该路径不止一条,为两条等价路径,依次为:设备41->设备42->设备43->设备44->VTEP4;设备41->设备45->设备43->设备44->VTEP4;基于此,设备41对报文42的VXLAN封装中外层UDP头的UDP源端口号进行哈希运算,依据哈希结果选择设备41->设备42->设备43->设备44->VTEP4这一路径继续转发收到的报文42;

设备42至设备45收到报文42后的处理类似设备41的处理,这里不再赘述。

VTEP4收到报文42后,发现报文42的VXLAN封装中VXLAN头内的第一个保留字段内的数值为设定值,且VXLAN封装中外层UDP头内的UDP目的端口号为VXLAN协议规定的设定端口号,满足VTEP3发送的匹配规则,则发送丢包定位参数至VTEP3,并发现VXLAN封装中外层IP头的外层目的IP地址为本VTEP4的IP地址,则丢弃接收的报文42。

VTEP3依据收到的丢包定位参数定位出丢包设备。基于上述的方式b举例描述VTEP3如何定位出丢包设备:

比如,VTEP3先收到设备41发送的丢包定位参数,将设备41发送的丢包定位参数作为当前丢包定位参数,确定收到当前丢包定位参数的时间为时间T1,检查在T1之后的设定时间比如100ms内是否再接收到丢包定位参数,结果发现又收到设备42发送的丢包定位参数,则将设备42发送的丢包定位参数作为当前丢包定位参数,确定收到当前丢包定位参数的时间为时间T2,检查在T2之后的设定时间比如100ms内是否再接收到丢包定位参数,结果发现又收到设备43发送的丢包定位参数,则将设备43发送的丢包定位参数作为当前丢包定位参数,确定收到当前丢包定位参数的时间为时间T3,检查在T3之后的设定时间比如100ms内是否再接收到丢包定位参数,结果发现未再收到丢包定位参数,则将设备43确定为丢包设备,即定位上述的报文40在设备43丢包。

至此,完成实施例2的描述。

以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:

参见图5,图5为本发明提供的装置结构图。如图5所示,该装置包括:

确定单元,用于在第一隧道端点VTEP本地接入的第一虚拟机VM发送的业务报文未到达第二VM时,确定用于模拟所述业务报文从第一VM转发至第二VM的业务转发路径的模拟报文;所述模拟报文与所述业务报文的报文特征参数相同;

转发单元,用于按照第一VTEP本地的芯片转发逻辑对模拟报文的报文特征参数进行计算确定UDP源端口号,利用为模拟报文确定的UDP源端口号和本地存在的与模拟报文匹配的寄存器表项中的VXLAN隧道标识对模拟报文进行VXLAN封装并通过所述VXLAN隧道标识对应的VXLAN隧道转发,以使接收到VXLAN封装的模拟报文的设备向丢包定位设备发送供所述丢包定位设备定位所述业务报文丢包位置的丢包定位参数。

优选地,如果所述丢包定位设备为VXLAN中用于管理VTEP的控制器,所述确定单元确定用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文包括:接收控制器发送的用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文;

优选地,如果所述丢包定位设备为第一VTEP,所述确定单元确定用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文包括:生成用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文。

优选地,所述与模拟报文匹配的寄存器表项中的VXLAN隧道标识是第一VTEP发送所述业务报文时使用的VXLAN隧道对应的VXLAN隧道标识;

优选地,如果所述丢包定位设备为VXLAN中用于管理VTEP的控制器,所述本地存在的与模拟报文匹配的寄存器表项由控制器在确定出第一VM发送的业务报文未到达第二VM时生成并发送给第一VTEP的;

优选地,如果所述丢包定位设备为第一VTEP,所述本地存在的与模拟报文匹配的寄存器表项是第一VTEP在确定出第一VM发送的业务报文未到达第二VM时生成的。

优选地,如果所述丢包定位设备为第一VTEP,如图6所示,该装置进一步包括:

接收单元,用于接收收到VXLAN封装的模拟报文的设备发送的丢包定位参数,丢包定位参数至少包括:收到VXLAN封装的模拟报文的设备的设备标识;

定位单元,用于基于收到的丢包定位参数定位出从第一VM至第二VM的丢包设备。

优选地,当所述丢包定位设备为VXLAN中用于管理VTEP的控制器时,如果所述第一VTEP为跨设备聚合的堆叠设备,所述接收控制器发送的用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文包括:

接收控制器发送的用于模拟业务报文从第一VM转发至第二VM的业务转发路径、且携带所述第一VTEP中成员设备的设备标识的模拟报文,所述设备标识在模拟报文的位置不同于报文特征参数在模拟报文的位置;或者,

接收控制器发送的携带了用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文的设定报文,所述设定报文的源MAC地址为所述第一VM的MAC地址;

检查所述设定报文的源MAC地址是否命中所述第一VTEP中成员设备已学习的源MAC地址,如果是,从所述设定报文中解析出用于模拟业务报文从第一VM转发至第二VM的业务转发路径的模拟报文。

至此,完成图5所示装置的结构图。

本发明还提供了图5所示装置的硬件结构图。参见图6,图6为本发明提供的图5所示装置的硬件结构图。

如图6,该硬件结构图可包括:

CPU和存储器。

存储器,用于存放确定单元、转发单元;

CPU,用于存放确定单元运行的控制程序以控制存储器中的确定单元执行如上所述的操作;用于存放转发运行的控制程序以控制存储器中的转发单元执行如上所述的操作。

优选地,存储器,进一步用于存放接收单元、定位单元;

CPU,进一步用于存放接收单元运行的控制程序以控制存储器中的接收单元执行如上所述的操作;进一步用于存放定位单元运行的控制程序以控制存储器中的定位单元执行如上所述的操作。

至此,完成图6所示的设备硬件结构图。

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

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