VXLAN内层虚拟机流量在中间交换机上进行统计的方法及装置转让专利

申请号 : CN201410656177.7

文献号 : CN104410541B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 方沛昱龚海东

申请人 : 盛科网络(苏州)有限公司

摘要 :

本发明提供一种VXLAN内层虚拟机流量在中间交换机上进行统计的方及装置,所述方法包括:在TOR交换机的端口入方向接收VXLAN报文;将所述VXLAN报文进行第一次包解析,获取VXLAN报文的外层信息;根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息;根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内将所述VXLAN报文进行转发;若不存在匹配的业务,直接将所述VXLAN报文进行转发。本发明将数据中心虚拟化服务器中虚拟机的流量统计工作放到TOR交换机上实现,通过匹配VXLAN内外层报文字段,以及结合IPFIX技术,可以实现虚拟网络的可视化。

权利要求 :

1.一种VXLAN内层虚拟机流量在中间交换机上进行统计的方法,其特征在于,所述方法包括:在TOR交换机的端口入方向上接收VXLAN报文;

将所述VXLAN报文进行第一次包解析,获取VXLAN报文的外层信息;

根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息;

根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;

若不存在匹配的业务,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。

2.根据权利要求1所述的VXLAN内层虚拟机流量在中间交换机上进行统计的方法,其特征在于,所述“根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息”具体包括:调取TOR交换机包处理芯片内端口入方向上的使能配置,判断是否在所述TOR交换机的端口入方向上需要对所述VXLAN报文进行内层流量统计;

若是,在所述VXLAN报文传递过程中,对所述VXLAN报文进行第二次包解析后,获取对应VXLAN报文的内层信息,并根据第一次包解析获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;

若否,在所述VXLAN报文传递过程中,所述VXLAN报文进行第一次包解析后,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。

3.根据权利要求2所述的VXLAN内层虚拟机流量在中间交换机上进行统计的方法,其特征在于,“调取TOR交换机包处理芯片内的使能配置”具体包括:在所述TOR交换机包处理芯片中的每一个端口入方向上设置相应寄存器,所述寄存器用于控制其所在端口入方向上的使能配置;

或根据接入的VXLAN报文中的外层接入VLAN调取使能配置;

或根据端口入方向上对VXLAN报文配置的匹配规则调取使能配置。

4.根据权利要求1所述的VXLAN内层虚拟机流量在中间交换机上进行统计的方法,其特征在于,所述VXLAN报文的外层信息包括VXLAN报文载荷的偏移量;

根据VXLAN报文载荷的偏移量,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的内层信息。

5.根据权利要求1所述的VXLAN内层虚拟机流量在中间交换机上进行统计的方法,其特征在于,所述“根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;”具体包括:根据内层信息的五元组,以及外层信息中VXLAN头的VNI字段在TOR交换机包处理芯片的ACL组KEY中进行查找,判断所述ACL组KEY中是否存在与当前所述VXLAN报文匹配的虚拟机VM特定业务流;

若是,获取VXLAN报文的内层业务流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;

若否,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。

6.根据权利要求1至5任一项所述的VXLAN内层虚拟机流量在中间交换机上进行统计的方法,其特征在于,所述方法还包括:调取TOR交换机包处理芯片内端口出方向的使能配置,当判断在所述TOR交换机的端口出方向上需要对所述VXLAN报文进行内层流量统计后,在所述TOR交换机的端口出方向,获取即将转出VXLAN报文的外层信息以及内层信息;

根据VXLAN报文的外层信息和内层信息在端口出方向上进行ACL查找对应当前所述VXLAN报文的匹配的虚拟机VM特定业务流;

若存在匹配的虚拟机VM特定业务流,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;

若不存在匹配的虚拟机VM特定业务流,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。

7.根据权利要求6所述的VXLAN内层虚拟机流量在中间交换机上进行统计的方法,其特征在于,所述“调取TOR交换机包处理芯片内端口出方向的使能配置”具体包括:在所述TOR交换机包处理芯片中的每一个端口出方向上分别设置相应寄存器,所述寄存器用于控制其所在端口出方向上的使能配置;

或根据VXLAN报文在端口出方向上的VLAN调取使能配置;

或根据端口出方向上对VXLAN报文配置的匹配规则调取使能配置。

8.一种VXLAN内层虚拟机流量在中间交换机上进行统计的装置,其特征在于,所述装置包括:获取模块,在TOR交换机的端口入方向上接收VXLAN报文;

报文识别及处理模块,用于将所述VXLAN报文进行第一次包解析,获取VXLAN报文的外层信息;

根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息;

根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;

若不存在匹配的业务,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。

9.根据权利要求8所述的VXLAN内层虚拟机流量在中间交换机上进行统计的装置,其特征在于,所述报文识别及处理模块还用于:调取TOR交换机包处理芯片内端口入方向上的使能配置,判断是否在所述TOR交换机的端口入方向上需要对所述VXLAN报文进行流量统计;

若是,在所述VXLAN报文传递过程中,对所述VXLAN报文进行第二次包解析后,根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;

若否,在所述VXLAN报文传递过程中,所述VXLAN报文进行第一次包解析后,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。

10.根据权利要求9所述的VXLAN内层虚拟机流量在中间交换机上进行统计的装置,其特征在于,所述装置还包括:功能使能模块,用于在所述TOR交换机包处理芯片中的每一个端口入方向上设置相应寄存器,所述寄存器用于控制其所在端口入方向上的使能配置;

或根据接入的VXLAN报文中的外层接入VLAN调取使能配置;

或根据端口入方向上对VXLAN报文配置的匹配规则调取使能配置。

11.根据权利要求8所述的VXLAN内层虚拟机流量在中间交换机上进行统计的装置,其特征在于,所述VXLAN报文的外层信息包括VXLAN报文载荷的偏移量;

所述报文识别及处理模块还用于:根据VXLAN报文载荷的偏移量,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的内层信息。

12.根据权利要求8所述的VXLAN内层虚拟机流量在中间交换机上进行统计的装置,其特征在于,所述报文识别及处理模块还用于:根据内层信息的五元组,以及外层信息中VXLAN头的VNI字段在TOR交换机包处理芯片的ACL组KEY中进行查找,判断所述ACL组KEY中是否存在与当前所述VXLAN报文匹配的虚拟机VM特定业务流;

若是,获取VXLAN报文的内层业务流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;

若否,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。

13.根据权利要求8至12任一项所述的VXLAN内层虚拟机流量在中间交换机上进行统计的装置,其特征在于,所述获取模块还用于:调取TOR交换机包处理芯片内端口出方向的使能配置,当判断在所述TOR交换机的端口出方向上需要对所述VXLAN报文进行内层流量统计后,在所述TOR交换机的端口出方向,获取即将转出VXLAN报文的外层信息以及内层信息;

根据VXLAN报文的外层信息和内层信息在端口出方向上进行ACL查找对应当前所述VXLAN报文的匹配的虚拟机VM特定业务流;

若存在匹配的虚拟机VM特定业务流,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;

若不存在匹配的虚拟机VM特定业务流,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。

14.根据权利要求10所述的VXLAN内层虚拟机流量在中间交换机上进行统计的装置,其特征在于,所述功能使能模块还用于:在所述TOR交换机包处理芯片中的每一个端口出方向上分别设置相应寄存器,所述寄存器用于控制其所在端口出方向上的使能配置;

或根据VXLAN报文在端口出方向上的VLAN调取使能配置;

或根据端口出方向上对VXLAN报文配置的匹配规则调取使能配置。

说明书 :

VXLAN内层虚拟机流量在中间交换机上进行统计的方法及

装置

技术领域

[0001] 本发明涉及网络通信领域,尤其涉及一种VXLAN内层虚拟机流量在中间交换机上进行统计的方法及装置。

背景技术

[0002] 当前,针对如何优化数据中心以太网,支持其提供的服务器虚拟化,已经出现了很多新的和推荐的协议,其中,有些协议的目的是希望通过创建多个可共享同一物理基础设施的虚拟以太网来实现网络虚拟化,其共享方式有些类似于多个虚拟机共享同一台物理服务器。
[0003] 适用于网络虚拟的大部分协议基本上都是利用封装和隧道技术来创建虚拟网络覆盖的,其中,业界讨论最多的协议包括VXLAN技术。
[0004] 所述VXLAN是虚拟可扩展局域网(virtual Extensible LAN的缩写),是一种overlay的网络技术,使用MAC in UDP的方法进行封装,共50字节的封装报文头。VXLAN协议定义了一个在四层协议UDP之上的二层网络框架,并实现上层的二层网络转发域的隔离,主要用于数据中心的虚拟化。
[0005] 结合图1所示,现有技术中,在虚拟化的数据中心中,物理服务器被虚拟化成多台虚拟机VM,进一步的,在VXLAN内层虚拟机通过TOR交换机交换信息过程中,当前的VXLAN头加减封装功能主要在服务器的Hypervisor层或VXLAN网关中实现,对于VM数据包流量的统计主要由软件来实现。
[0006] 如此,在加减VXLAN报文头的操作消耗掉CPU的资源后,单台服务器的CPU资源往往所剩无几,此时,如果还要使用软件方式对VM的数据包流量进行统计,会影响服务器的性能。

发明内容

[0007] 本发明的目的在于提供一种VXLAN内层虚拟机流量在TOR交换机上进行统计的方法及装置。
[0008] 为实现上述目的之一,本发明一实施方式的VXLAN内层虚拟机流量在中间交换机上进行统计的方法,所述方法包括:
[0009] 在TOR交换机的端口入方向上接收VXLAN报文;
[0010] 将所述VXLAN报文进行第一次包解析,获取VXLAN报文的外层信息;
[0011] 根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息;
[0012] 根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0013] 若不存在匹配的业务,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0014] 作为本发明的进一步改进,
[0015] 所述“根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息;”之前,所述方法还包括:
[0016] 调取TOR交换机包处理芯片内端口入方向上的使能配置,判断是否在所述TOR交换机的端口入方向上需要对所述VXLAN报文进行内层流量统计;
[0017] 若是,在所述VXLAN报文传递过程中,对所述VXLAN报文进行第二次包解析后,根据第一次包解析获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0018] 若否,在所述VXLAN报文传递过程中,所述VXLAN报文进行第一次包解析后,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0019] 作为本发明的进一步改进,“调取TOR交换机包处理芯片内的使能配置”具体包括:
[0020] 在所述TOR交换机包处理芯片中的每一个端口入方向上设置相应寄存器,所述寄存器用于控制其所在端口入方向上的使能配置;
[0021] 或根据接入的VXLAN报文中的外层接入VLAN调取使能配置;
[0022] 或根据端口入方向上对VXLAN报文配置的匹配规则调取使能配置。
[0023] 作为本发明的进一步改进,所述VXLAN报文的外层信息包括VXLAN报文载荷的偏移量;
[0024] 根据VXLAN报文载荷的偏移量,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的内层信息。
[0025] 作为本发明的进一步改进,所述“根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;”具体包括:
[0026] 根据内层信息的五元组,以及外层信息中VXLAN头的VNI字段在TOR交换机包处理芯片的ACL组KEY中进行查找,判断所述ACL组KEY中是否存在与当前所述VXLAN报文匹配的虚拟机VM特定业务流;
[0027] 若是,获取VXLAN报文的内层业务流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0028] 若否,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0029] 作为本发明的进一步改进,所述方法还包括:
[0030] 调取TOR交换机包处理芯片内端口出方向的使能配置,当判断在所述TOR交换机的端口出方向上需要对所述VXLAN报文进行内层流量统计后,在所述TOR交换机的端口出方向,获取即将转出VXLAN报文的外层信息以及内层信息;
[0031] 根据VXLAN报文的外层信息和内层信息在端口出方向上进行ACL查找对应当前所述VXLAN报文的匹配的虚拟机VM特定业务流;
[0032] 若存在匹配的虚拟机VM特定业务流,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0033] 若不存在匹配的虚拟机VM特定业务流,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0034] 作为本发明的进一步改进,所述“调取TOR交换机包处理芯片内端口出方向的使能配置”具体包括:
[0035] 在所述TOR交换机包处理芯片中的每一个端口出方向上分别设置相应寄存器,所述寄存器用于控制其所在端口出方向上的使能配置;
[0036] 或根据VXLAN报文在端口出方向上的VLAN调取使能配置;
[0037] 或根据端口出方向上对VXLAN报文配置的匹配规则调取使能配置。
[0038] 为实现上述目的之一,本发明一实施方式的VXLAN内层虚拟机流量在中间交换机上进行统计的装置,获取模块,在TOR交换机的端口入方向上接收VXLAN报文;
[0039] 报文识别及处理模块,用于将所述VXLAN报文进行第一次包解析,获取VXLAN报文的外层信息;
[0040] 根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息;
[0041] 根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0042] 若不存在匹配的业务,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0043] 作为本发明的进一步改进,所述报文识别及处理模块还用于:调取TOR交换机包处理芯片内端口入方向上的使能配置,判断是否在所述TOR交换机的端口入方向上需要对所述VXLAN报文进行流量统计;
[0044] 若是,在所述VXLAN报文传递过程中,对所述VXLAN报文进行第二次包解析后,根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0045] 若否,在所述VXLAN报文传递过程中,所述VXLAN报文进行第一次包解析后,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0046] 作为本发明的进一步改进,所述装置还包括:
[0047] 功能使能模块,用于在所述TOR交换机包处理芯片中的每一个端口入方向上设置相应寄存器,所述寄存器用于控制其所在端口入方向上的使能配置;
[0048] 或根据接入的VXLAN报文中的外层接入VLAN调取使能配置;
[0049] 或根据端口入方向上对VXLAN报文配置的匹配规则调取使能配置。
[0050] 作为本发明的进一步改进,所述VXLAN报文的外层信息包括VXLAN报文载荷的偏移量;
[0051] 所述报文识别及处理模块还用于:根据VXLAN报文载荷的偏移量,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的内层信息。
[0052] 作为本发明的进一步改进,所述报文识别及处理模块还用于:
[0053] 根据内层信息的五元组,以及外层信息中VXLAN头的VNI字段在TOR交换机包处理芯片的ACL组KEY中进行查找,判断所述ACL组KEY中是否存在与当前所述VXLAN报文匹配的虚拟机VM特定业务流;
[0054] 若是,获取VXLAN报文的内层业务流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0055] 若否,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0056] 作为本发明的进一步改进,所述获取模块还用于:
[0057] 调取TOR交换机包处理芯片内端口出方向的使能配置,当判断在所述TOR交换机的端口出方向上需要对所述VXLAN报文进行内层流量统计后,在所述TOR交换机的端口出方向,获取即将转出VXLAN报文的外层信息以及内层信息;
[0058] 根据VXLAN报文的外层信息和内层信息在端口出方向上进行ACL查找对应当前所述VXLAN报文的匹配的虚拟机VM特定业务流;
[0059] 若存在匹配的虚拟机VM特定业务流,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0060] 若不存在匹配的虚拟机VM特定业务流,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0061] 作为本发明的进一步改进,所述功能使能模块还用于:在所述TOR交换机包处理芯片中的每一个端口出方向上分别设置相应寄存器,所述寄存器用于控制其所在端口出方向上的使能配置;
[0062] 或根据VXLAN报文在端口出方向上的VLAN调取使能配置;
[0063] 或根据端口出方向上对VXLAN报文配置的匹配规则调取使能配置。
[0064] 与现有技术相比,本发明的有益效果是:本发明的VXLAN内层虚拟机流量在中间交换机上进行统计的方法及装置,将数据中心虚拟化服务器中虚拟机的流量统计工作放到TOR交换机上实现,通过匹配VXLAN内外层报文字段,以及结合IPFIX技术,可以实现虚拟网络的可视化,并且减轻服务器的压力,将服务器性能更好地分配给实际应用而非数据包的处理;此外,还能方便地提供虚拟网络的计费、数据分析及故障排查功能。

附图说明

[0065] 图1是本发明一实施方式中物理服务器的网络拓扑图;
[0066] 图2是本发明一实施方式中VXLAN报文转发过程中携带封装信息的示意图;
[0067] 图3为本发明一实施方式中VXLAN报文格式示意图;
[0068] 图4为本发明一实施方式中VXLAN内层虚拟机流量在中间交换机上进行统计的方法的简易示意图;
[0069] 图5为本发明一实施方式中VXLAN内层虚拟机流量在中间交换机端口入方向上进行统计的方法的流程示意图;
[0070] 图6为本发明一实施方式中VXLAN内层虚拟机流量在中间交换机上进行统计的装置的模块示意图。

具体实施方式

[0071] 以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
[0072] 如图4、图5所示,在本发明的一实施方式中,所述VXLAN内层虚拟机流量在中间交换机上进行统计的方法,包括:
[0073] 在TOR交换机的端口入方向上接收VXLAN报文;结合图2、图3所示,在虚拟化的数据中心中,物理服务器被虚拟化成多台虚拟机VM,所述虚拟机VM的数据包流量在出物理服务器网卡时,会被加上“外层MAC头+外层IP头+VXLAN头”的隧道封装,形成VXLAN报文,被封装后的VXLAN报文包括:外层以太网头、外层IP头、外层UDP/TCP头、VXLAN头、内层以太头、内层IP头、内层UDP/TCP头、载荷等信息。
[0074] 本实施方式中,所述方法还包括:将所述VXLAN报文进行第一次包解析,获取VXLAN报文的外层信息。
[0075] 所述外层信息包括:外层以太网头、外层IP头、外层TCP/UDP头、VXLAN头。其中,外层以太网头中包括:外层目的MAC地址、外层源MAC地址等信息外层IP头中包括:外层目的IP地址、外层源IP地址、协议号、IP部分总长度、VXLAN报文的载荷偏移量等信息。所述VXLAN头中包含VNI字段,所述VNI为VXLAN网络标识符,用以标识一个虚拟子网。
[0076] TOR交换机包处理芯片接收VXLAN报文,通常需要对其进行第一次包解析处理,以将其外层信息解析出来,并遵循外部信息查找相应的交换端口。
[0077] 进一步的,本实施方式中,所述方法还包括:
[0078] 调取TOR交换机包处理芯片内端口入方向上的使能配置,判断是否在所述TOR交换机的端口入方向上需要对所述VXLAN报文进行流量统计,若是,所述VXLAN报文传递过程中,在所述VXLAN报文进行第一次包解析后,对所述VXLAN报文进行第二次包解析,并在第二次包解析后,根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;若否,所述VXLAN报文传递过程中,在所述VXLAN报文进行第一次包解析后,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0079] 本实施方式中对TOR交换机包处理芯片内的使能配置做相应设置有多种方式;例如:在所述TOR交换机包处理芯片中的每一个端口入方向设置相应寄存器,所述寄存器用于控制其所在端口入方向上的使能配置;当需要调取TOR交换机包处理芯片内的使能配置,调取相应寄存器的使能配置信息,以确定是否需要对所述VXLAN报文进行第二次包解析。
[0080] 或者根据接入的VXLAN报文中的外层接入VLAN调取使能配置;也可以根据端口入方向上对VXLAN报文配置的匹配规则调取使能配置。在此不做详细赘述。
[0081] 进一步的,所述方法还包括:对TOR交换机端口入方向上的所述寄存器、或对接入的VXLAN报文中的外层接入VLAN、或根据端口入方向上对VXLAN报文配置的匹配规则进行预处理,规定其对哪些VXLAN报文使能决定是否对进入TOR交换机端口入方向上的VXLAN报文进行流量统计。可以理解的是,该步骤还可以在VXLAN报文进入TOR交换机之前进行,即在未对VXLAN报文进行第一次包解析之前,即判断所述VXLAN报文进入所述TOR交换机后,是否对其进行流量统计,也可以在第一次包解析之后进行,在此不做详细赘述。
[0082] 进一步的,本实施方式中,所述方法还包括:
[0083] 在判断需要对所述VXLAN报文进行流量统计后,根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的内层信息。
[0084] 所述内层信息包括:内层以太头、内层IP头、内层UDP/TCP头、载荷以及VXLAN报文的流量统计信息等。所述TCP头、IP头中包括TCP/IP五元组等信息。所述内层以太头中包括:内层目的MAC地址、内层源MAC地址;所述内层IP头中包括:内层目的IP地址、内层源IP地址、IP部分总长度、协议号、普通载荷的以太类型等内容。
[0085] 其中内层的内层目的MAC地址、内层源MAC地址、内层目的IP地址、内层源IP地址、协议号统称为五元组。
[0086] 例如:192.168.1.1 10000 TCP 121.14.88.76 80 就构成了一个五元组。表示,一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行连接。
[0087] 本实施方式中,根据VXLAN报文载荷的偏移量对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息。
[0088] 进一步的,所述方法还包括:在所述TOR交换机的端口入方向上根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;若不存在匹配的业务,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0089] 本实施方式中,根据获取的外层信息,以及获取的内层信息在TOR交换机包处理芯片的端口入方向上的ACL组KEY中进行查找,判断所述ACL组KEY中是否存在与当前所述VXLAN报文匹配的虚拟机VM特定业务流。
[0090] 具体的,在所述ACL组KEY中进行查找时,根据内层信息的五元组,以及外层信息中VXLAN头的VNI字段来精确匹配一台虚拟机VM特定业务流。
[0091] 若可以匹配到对应的虚拟机VM特定业务流,获取VXLAN报文的内层业务流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;若匹配不到对应的虚拟机VM特定业务流,则根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0092] 进一步的,本实施方式中,可以将VXLAN报文的流量统计信息发送给诸如IPFIX处理统计模块等对VXLAN报文的流量进行统计,这些统计信息可被用于提供虚拟网络的计费、数据分析及故障排查功能。
[0093] 所述IPFIX为IP数据流信息输出(IP Flow Information Export的缩写)。在此不做详细赘述。
[0094] 进一步的,在第一次包解析后,将所述VXLAN报文进行转发,或是在第二次包解析后,对所述VXLAN报文进行转发时,所述方法还可包括:依据解析后的内容在MAC地址表中查找,以确定VXLAN报文的转发端口,以及对查询到的取出口和编辑动作索引,在此不做详细赘述。需要说明的是, VXLAN报文在通过TOR交换机转发时,分为端口入方向和端口出方向,例如:两个来自不同端口的VXLAN报文同时从TOR交换机的同一出口转发的情况,如此会导致TOR交换机的端口出方向所统计出的VXLAN报文的流量与上述统计的VXLAN报文端口入方向的流量不一致,端口出方向的流量应为两个端口入方向的总和。因此,在本发明的其他实施方式中,可在TOR交换机的出口再次对VXLAN报文的流量做统计。
[0095] 需要说明的是,上述对VXLAN内层虚拟机流量进行统计是在TOR交换机的端口入方向上进行,本实施方式中,还可以在TOR交换机的端口出方向上对VXLAN内层虚拟机流量做统计,所述方法还包括以下步骤:
[0096] 本实施方式中,调取TOR交换机包处理芯片的端口出方向上的使能配置,判断是否需要对所述端口出方向上的VXLAN报文进行流量统计。
[0097] 本实施方式中,可以选择在所述TOR交换机包处理芯片中的每一个端口出方向上分别设置相应寄存器,所述寄存器用于控制其所在端口出方向上的使能配置;
[0098] 或根据VXLAN报文在端口出方向上的VLAN调取使能配置;或根据端口出方向上对VXLAN报文配置的匹配规则调取使能配置。所述TOR交换机的端口出方向上的使能配置方式与其端口入方向上的使能配置以及控制方式大致相同,在此不做详细赘述。
[0099] 进一步,所述方法还包括:根据VXLAN报文的外层信息得到 VXLAN报文的转发类型,并通过所述转发类型确定对VXLAN报文做出的编辑动作,进一步的,按索引取得编辑动作,调取TOR交换机包处理芯片端口出方向的使能配置信息,根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;若不存在匹配的业务,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0100] 可以理解的是,VXLAN报文在通过所述TOR交换机的端口入方向后,即获得与其对应的外层信息和内层信息,因此,在TOR交换机包处理芯片的端口出方向统计所述VXLAN报文的流量时,可以直接调取已获取的内层信息和外层信息。
[0101] 具体的,根据VXLAN报文的外层信息和内层信息在端口出方向上进行ACL查找对应当前所述VXLAN报文的匹配的虚拟机VM特定业务流;若存在匹配的虚拟机VM特定业务流,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0102] 若不存在匹配的虚拟机VM特定业务流,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。其实现步骤与在TOR交换机端口入方向上统计所述VXLAN报文的流量相类似,在此不做详细赘述。
[0103] 进一步的,同一个交换机中,可以选择在TOR交换机的端口入方向上进行VXLAN内层虚拟机流量统计、也可以选择在其端口出方向进行VXLAN内层虚拟机流量统计,亦或可以同时在其端口出方向和入方向上均进行VXLAN内层虚拟机流量统计,在此不做详细赘述。
[0104] 结合图6所示,在本发明的第一实施方式中,VXLAN内层虚拟机流量在中间交换机上进行统计的装置包括:获取模块100、报文识别及处理模块200、功能使能模块300。
[0105] 获取模块100用于在TOR交换机的端口入方向上接收VXLAN报文。
[0106] 结合图2、图3所示,在虚拟化的数据中心中,物理服务器被虚拟化成多台虚拟机VM,所述虚拟机VM的数据包流量在出物理服务器网卡时,会被加上“外层MAC头+外层IP头+VXLAN头”的隧道封装,形成VXLAN报文,被封装后的VXLAN报文包括:外层以太网头、外层IP头、外层UDP/TCP头、VXLAN头、内层以太头、内层IP头、内层UDP/TCP头、载荷等信息。
[0107] 报文识别及处理模块200将所述VXLAN报文进行第一次包解析,获取VXLAN报文的外层信息。
[0108] 所述外层信息包括:外层以太网头、外层IP头、外层TCP/UDP头、VXLAN头。其中,外层以太网头中包括:外层目的MAC地址、外层源MAC地址等信息外层IP头中包括:外层目的IP地址、外层源IP地址、协议号、IP部分总长度、VXLAN报文的载荷偏移量等信息。所述VXLAN头中包含VNI字段,所述VNI为VXLAN网络标识符,用以标识一个虚拟子网。
[0109] 获取模块100接收到VXLAN报文后,通常需要通过报文识别及处理模块200对其进行第一次包解析处理,以将其外层信息解析出来,并遵循外部信息查找相应的交换端口。
[0110] 报文识别及处理模块200调取TOR交换机包处理芯片内端口入方向上的使能配置,判断是否在所述TOR交换机的端口入方向上需要对所述VXLAN报文进行流量统计,若是,所述VXLAN报文传递过程中,在所述VXLAN报文进行第一次包解析后,对所述VXLAN报文进行第二次包解析,并在第二次包解析后,根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;若否,所述VXLAN报文传递过程中,在所述VXLAN报文进行第一次包解析后,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0111] 功能使能模块300对TOR交换机包处理芯片内的使能配置做相应设置有多种方式;例如:功能使能模块300在所述TOR交换机包处理芯片中的每一个端口入方向设置相应寄存器,所述寄存器用于控制其所在端口入方向上的使能配置;当需要调取TOR交换机包处理芯片内的使能配置,调取相应寄存器的使能配置信息,以确定是否需要对所述VXLAN报文进行第二次包解析。
[0112] 功能使能模块300也可以选择根据接入的VXLAN报文中的外层接入VLAN调取使能配置。功能使能模块300还可以选择根据端口入方向上对VXLAN报文的匹配规则调取使能配置。在此不做详细赘述。
[0113] 进一步的,功能使能模块300对TOR交换机端口入方向上的所述寄存器、或对接入的VXLAN报文中的外层接入VLAN、或根据端口入方向上对VXLAN报文配置的匹配规则进行预处理,规定其对哪些VXLAN报文使能决定是否对进入TOR交换机端口入方向上的VXLAN报文进行流量统计。
[0114] 可以理解的是,报文识别及处理模块200还可以在VXLAN报文进入TOR交换机之前进行,即在未对VXLAN报文进行第一次包解析之前,即通过功能使能模块300判断所述VXLAN报文进入所述TOR交换机后,是否对其进行流量统计,也可以在第一次包解析之后进行判断,在此不做详细赘述。
[0115] 报文识别及处理模块200在判断需要对所述VXLAN报文进行流量统计后,根据获取的VXLAN报文的外层信息,对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的内层信息。
[0116] 所述内层信息包括:内层以太头、内层IP头、内层UDP/TCP头、载荷以及VXLAN报文的流量统计信息等。所述TCP头、IP头中包括TCP/IP五元组等信息。所述内层以太头中包括:内层目的MAC地址、内层源MAC地址;所述内层IP头中包括:内层目的IP地址、内层源IP地址、IP部分总长度、协议号、普通载荷的以太类型等内容。
[0117] 其中内层的的内层目的MAC地址、内层源MAC地址、内层目的IP地址、内层源IP地址、协议号统称为五元组。
[0118] 例如:192.168.1.1 10000 TCP 121.14.88.76 80 就构成了一个五元组。表示,一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行连接。
[0119] 本实施方式中,报文识别及处理模块200根据VXLAN报文载荷的偏移量对所述VXLAN报文进行第二次包解析,获取对应VXLAN报文的外层信息的内层信息。
[0120] 报文识别及处理模块200在所述TOR交换机的端口入方向上根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;若不存在匹配的业务,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0121] 本实施方式中,报文识别及处理模块200还用于根据获取的外层信息,以及获取的内层信息在TOR交换机包处理芯片的端口入方向上ACL组KEY中进行查找,判断所述ACL组KEY中是否存在与当前所述VXLAN报文匹配的虚拟机VM特定业务流。
[0122] 具体的,报文识别及处理模块200用于在所述ACL组KEY中进行查找时,根据内层信息的五元组,以及外层信息中VXLAN头的VNI字段来精确匹配一台虚拟机VM特定业务流。
[0123] 若可以匹配到对应的虚拟机VM特定业务流,,获取VXLAN报文的内层业务流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;若匹配不到对应的虚拟机VM特定业务流,则根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0124] 进一步的,本实施方式中,报文识别及处理模块200可以将VXLAN报文的流量统计信息发送给诸如IPFIX处理统计模块等对VXLAN报文的流量进行统计,这些统计信息可被用于提供虚拟网络的计费、数据分析及故障排查功能。
[0125] 所述IPFIX为IP数据流信息输出(IP Flow Information Export的缩写)。在此不做详细赘述。
[0126] 进一步的,报文识别及处理模块200在第一次包解析后,将所述VXLAN报文进行转发,或是在第二次包解析后,对所述VXLAN报文进行转发时,所述方法还可包括:依据解析后的内容在MAC地址表中查找,以确定VXLAN报文的转发端口,以及对查询到的取出口和编辑动作索引,在此不做详细赘述。
[0127] 需要说明的是,VXLAN报文在通过TOR交换机转发时,分为端口入方向和端口出方向,例如:两个来自不同端口的VXLAN报文同时从TOR交换机的同一出口转发的情况,如此会导致TOR交换机的端口出方向所统计出的VXLAN报文的流量与上述统计的VXLAN报文端口入方向的流量不一致,端口出方向的流量应为两个端口入方向的总和。因此,在本发明的其他实施方式中,可在TOR交换机的出口再次对VXLAN报文的流量做统计。
[0128] 需要说明的是,上述报文识别及处理模块200对VXLAN内层虚拟机流量进行统计是在TOR交换机的端口进入方向上行,本实施方式中,报文识别及处理模块200还可以在TOR交换机的端口出方向上对VXLAN内层虚拟机流量做统计。
[0129] 本实施方式中,报文识别及处理模块200还用于通过端口使能模块300调取TOR交换机包处理芯片的端口出方向上的使能配置,判断是否需要对所述端口出方向上的VXLAN报文进行流量统计。
[0130] 本实施方式中,功能使能模块300还可以选择在所述TOR交换机包处理芯片中的每一个端口出方向上分别设置相应寄存器,所述寄存器用于控制其所在端口出方向上的使能配置;
[0131] 或根据VXLAN报文在端口出方向上的VLAN调取使能配置;或根据端口出方向上对VXLAN报文配置的匹配规则调取使能配置。所述TOR交换机的端口出方向上的使能配置方式与其端口入方向上的使能配置以及控制方式大致相同,在此不做详细赘述。
[0132] 所述TOR交换机的端口出方向上的使能配置方式与上述内容相同,在此不做详细赘述。
[0133] 本实施方式中,在所述功能使能模块300根据VXLAN报文的外层信息得到 VXLAN报文的转发类型,并通过所述转发类型确定对VXLAN报文做出的编辑动作,进一步的,按索引取得编辑动作,调取TOR交换机包处理芯片端口出方向上的寄存器的使能配置信息,根据VXLAN报文的外层信息和内层信息匹配查找对应所述VXLAN报文的业务,若存在匹配的业务,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;若不存在匹配的业务,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。
[0134] 可以理解的是,VXLAN报文在通过所述TOR交换机的端口入方向后,即获得与其对应的外层信息和内层信息,因此,在TOR交换机包处理芯片的端口出方向统计所述VXLAN报文的流量时,可以直接调取已获取的内层信息和外层信息。
[0135] 具体的,报文识别及处理模块200根据VXLAN报文的外层信息和内层信息在端口出方向上进行ACL查找对应当前所述VXLAN报文的匹配的虚拟机VM特定业务流;若存在匹配的虚拟机VM特定业务流,获取VXLAN报文的流量统计信息,并在大致同一时间内根据获取的VXLAN报文的外层信息,将所述VXLAN报文进行转发;
[0136] 若不存在匹配的虚拟机VM特定业务流,根据获取的VXLAN报文的外层信息,直接将所述VXLAN报文进行转发。功能使能模块300在TOR交换机端口入方向上统计所述VXLAN报文的流量相类似,在此不做详细赘述。
[0137] 进一步的,同一个交换机中,报文识别及处理模块200可以选择在TOR交换机的端口入方向上进行VXLAN内层虚拟机流量统计、也可以选择在其端口出方向进行VXLAN内层虚拟机流量统计,亦或可以同时在其端口出方向和入方向上均进行VXLAN内层虚拟机流量统计,在此不做详细赘述。
[0138] 综上所述,本发明的VXLAN内层虚拟机流量在中间交换机上进行统计的方法及装置,将数据中心虚拟化服务器中虚拟机的流量统计工作放到TOR交换机上实现,通过匹配VXLAN内外层报文字段,以及结合IPFIX技术,可以实现虚拟网络的可视化,并且减轻服务器的压力,将服务器性能更好地分配给实际应用而非数据包的处理;此外,还能方便地提供虚拟网络的计费、数据分析及故障排查功能。
[0139] 为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时仅限于把各模块的功能在ASIC芯片中实现。
[0140] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分以ASIC芯片产品的形式体现出来。
[0141] 以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件是逻辑模块,即可以位于芯片逻辑中的一个模块中,或者也可以分布到芯片内的多个处理模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0142] 本申请可用于众多通用或专用的通信芯片中。例如:交换芯片、路由器芯片,服务器芯片等等。
[0143] 应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
[0144] 上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。