一种端口流量镜像方法、设备及介质与流程

    专利2022-07-07  107

    本申请涉及流量镜像领域,具体涉及一种端口流量镜像方法、设备及介质。
    背景技术
    ::随着软件定义网络(softwaredefinednetwork,sdn)和云计算技术的发展,openflow流表作为一种非常灵活的转发工具,越来越多的获得应用。目前在sdn系统中,很大一部分的虚拟网络转发方式都是采用openflow流表。但是在该场景下却无法实现端口流量镜像功能,这就使得在一些情况中十分不便。技术实现要素:为了解决上述问题,本申请提出了一种端口流量镜像方法,包括:应用在sdn系统中,所述sdn系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述方法包括:根据所述源端口和所述目的端口确定相应的流表,所述流表中的action部分中携带有镜像相关的指令;确定所述源端口对应的流量;通过所述流表将所述流量进行复制,并将复制后的所述流量发送至所述目的端口。在一个示例中,所述流表为grouptable组表的形式。在一个示例中,确定所述源端口对应的流量,包括:确定所述源端口对应的流量以及流量方向,所述流量方向包括:出向或入向;通过所述流表将所述流量进行复制,包括:通过所述流表以及所述流量方向将所述流量进行复制,其中,不同的流量方向在所述流表中对应的处理位置不同。在一个示例中,当所述流量方向为入向时,所述处理位置为所述流表中的末端;当所述流量方向为出向时,所述处理位置为所述流表中的始端。在一个示例中,将复制后的所述流量发送至所述目的端口,包括:确定所述目的端口与所述源端口不在同一虚拟交换机中;将复制后的所述流量通过vxlan隧道发送至所述目的端口,所述vxlan隧道用于连接所述目的端口以及所述源端口分别对应的虚拟交换机。在一个示例中,将复制后的所述流量通过vxlan隧道发送至所述目的端口,包括:将复制后的所述流量发送至vxlan隧道端口;在所述vxlan隧道端口上新增流表,并通过所述新增流表将所述流量发送至所述目的端口。在一个示例中,所述sdn系统的控制器为opendaylight,所述虚拟交换机为openvswitch。在一个示例中,根据所述源端口和所述目的端口确定相应的流表,所述流表中的action部分中携带有镜像相关的指令,包括:根据所述源端口和所述目的端口,对现有流表的action部分进行修改,以在所述action部分中添加镜像相关的指令;将修改后的流表作为所述源端口和所述目的端口相应的流表。另一方面,本申请还提出了一种端口流量镜像设备,应用在sdn系统中,所述sdn系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任意一个示例所述的方法。另一方面,本申请还提出了一种端口流量镜像的非易失性计算机存储介质,存储有计算机可执行指令,应用在sdn系统中,所述sdn系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述计算机可执行指令设置为:如上述任意一个示例所述的方法。通过本申请提出端口流量镜像方法能够带来如下有益效果:通过在流表的action部分设置镜像相关的指令,可以使得在sdn系统中只通过流表就完成流量的镜像操作,如果是在现有流表的基础上进行改动,则改动不大即可实现相应的功能,容易通过代码实现,且容易进行推广使用。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例中端口流量镜像方法的流程示意图;图2为本申请实施例中同一虚拟交换机时流量镜像流程示意图;图3为本申请实施例中不同虚拟交换机时流量镜像流程示意图;图4为本申请实施例中端口流量镜像设备的示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。如图1所示,本申请实施例提供一种端口流量镜像方法,应用在sdn系统中。sdn系统,即软件定义网络(softwaredefinednetwork)。在sdn系统中通常会设置有若干个虚拟交换机,用来对数据流量进行转发,而虚拟交换机中也包含有多个端口,在此可以将在流量转发镜像过程中,流量本来的转入或转出端口称作源端口,将用以接收镜像流量的端口称作目的端口。在本申请实施例中,虚拟交换机可以是openvswitch节点,而sdn系统中的控制器可以是opendaylight等。其中,opendaylight简称odl,是一套以社区为主导的开源框架,拥有一套模块化、可插拔且极为灵活的控制器,使其能够被部署在任何支持java的平台之上。odl中还包含一套模块合集,能够执行需要快速完成的网络任务。而openvswitch简称ovs,是一个高质量、多层的虚拟交换软件。它的目的是通过编程扩展支持大规模网络自动化,同时还支持标准的管理接口和协议。在此不对odl以及ovs的架构组成进行赘述。如图1所示,所述方法包括:s101、根据所述源端口和所述目的端口确定相应的流表,所述流表中的action部分中携带有镜像相关的指令。在虚拟交换机进行流量镜像的过程中,无论源端口是接收流量的一方,还是发送流量的一方,都需要将流量镜像复制,然后将复制后的流量发送至目的端口出。而在复制和发送过程中,则需要通过流表来执行相应的动作。具体地,流表指的是flowtable,其可以为openflow流表,其中,openflow是一种网络通信协议,属于数据链路层,能够控制网上交换器或路由器的转发平面,借此改变网络数据包所走的网络路径,而现有技术中在sdn系统转发流量时,即是通过openflow流表执行的,但是现有技术中却无法通过openflow流表执行镜像操作。流表的结构通常包括三个部分,即:用于数据包匹配的包头域(headerfields),用于统计匹配数据包个数的计数器(counters),用于展示匹配的数据包如何处理的动作(actions)。其中,动作,即action部分,是用于指示虚拟交换机在收到匹配的数据包后应该如何对其进行处理。与传统交换机转发表只需要指明数据包的转发出端口不同,openflow中虚拟交换机因为缺少控制平面的能力,所以对匹配数据包的处理不仅仅是简单的转发操作,而需要用动作来详细说明交换机将要对数据包所做的处理。通过对action部分进行设置,以使该流表的action部分中可以携带有镜像相关的指令,能够使得该流表具有镜像的功能,以实现流量镜像。当然,在建立流表时,可以是通过上述实施例中所述的限定来新建一个流表,也可以根据源端口和目的端口,对现有流表的action部分进行修改,以在action部分中添加镜像相关的指令,从而将修改后的流表作为相应的流表。其中,这里的现有流表指的是,在未执行本申请实施例中的方法进行镜像时,现有设备中所使用的流表。进一步地,流表可以为grouptable组表的形式,现有技术中组表主要起到广播的作用,而通过组表在发送流量副本时,可以创建一个all的组将所有的目标地址和虚拟交换机端口包含进去,组表中的每一个表项都有对于其特定的副本所要执行的actions:添加vlan,设置不同的vlanid等。当流表查找到这条表项时,将packet转发至这个组表中,如果中途添加或者删除虚拟交换机端口,只需要在组表中进行修改而不需要动流表。s102、确定所述源端口对应的流量。s103、通过所述流表将所述流量进行复制,并将复制后的所述流量发送至所述目的端口。在确定预先设置的相应流表后,即可来确定源端口对应的流量,即本次流量传输过程中需要进行镜像的流量,该流量可以是源端口接收或者发送的。然后即可通过流表将该流量进行复制,并将复制后的流量发送至目的端口,以完成本次流量镜像的过程。具体地,如图2-3所示,在实际的流量转发过程中,通常会包括两种情况。第一种是如图2所示的,源端口(即图2-3中的tap1端口)和目的端口(即图2-3中的tap2端口)在一个虚拟交换机中,此时通过流表直接将流量复制后发送目的端口即可。第二种是如图3所示的,源端口和目的端口不在同一个虚拟交换机中,若确定了是该种情况,则可以在流表复制流量后,通过vxlan隧道发送至目的端口。其中,vxlan(virtualextensiblelocalareanetwork,虚拟可扩展局域网),是一种虚拟化隧道通信技术。它是一种overlay(覆盖网络)技术,通过三层的网络来搭建虚拟的二层网络。在两个虚拟交换机之间通常会通过vxlan隧道进行连接。此时可以先将复制后的流量发送至vxlan隧道端口(即图中的tun0端口),然后通过在tun0端口上新增流表,并通过该新增流表将流量发送至目的端口,以此实现跨虚拟交换机的镜像流量转发。进一步地,无论是上述的第一种情况还是第二种情况,在每种情况下,都会由于流量方向的不同而在复制流量过程中产生相应的不同,例如,在生成流表的过程中,对于不同流量方向,其在流表中的处理位置不同。如图2所示,在确定源端口(即tap1端口)对应的流量时,也要确定当前的流量方向。其中,流量方向通常包括两种,即图2中所示出向和入向。流量方向为入向:在其他任意端口(即tap3端口)向tap1端口发送流量时,虚拟交换机会收到tap3端口发送的流量,此时可以通过流表将该流量进行复制得到两份流量,一份继续发往tap1,一份发往目的端口(即tap2端口)。此时,在生成流表的过程中,处理位置为流表中的末端,即流表中最后的若干个流表项是用来复制流量的。流量方向为出向:而当tap1端口向外(即tap3端口)发送流量时,通过流表将该流量复制得到两份流量,一份继续发往tap3端口。此时,在生成流表的过程中,处理位置为流表的始端,及流表中最初始的若干个流表项是用来复制流量的。当然,在如图3所示的跨虚拟交换机时,相应的流量复制过程也类似。例如,流量方向为入向:tap3端口向tap1端口发送流量时,通过tun0端口进入虚拟交换机中,流表将该流量进行复制,一份发往tap1端口,一份发往tun0端口,以通过tun0端口转发至tap2端口。流量方向为出向:tap1端口发出流量,流表将该流量进行复制,一份通过tun0端口发往本应发送的目标位置(即tap3端口),一份通过tun0端口转发至tap2端口。另外需要说明的是,图2和图3中的tap3端口即可以如图所示画在虚拟交换机外,表示为是外部端口,也可以为该虚拟交换机的内部端口,只是未在图中体现,在此不再赘述。如图4所示,本申请实施例还提供了一种端口流量镜像设备,应用在sdn系统中,所述sdn系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任意一个实施例所述的方法。本申请实施例还提供了一种端口流量镜像的非易失性计算机存储介质,存储有计算机可执行指令,应用在sdn系统中,所述sdn系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述计算机可执行指令设置为:如上述任意一个实施例所述的方法。本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本申请实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页1 2 3 当前第1页1 2 3 
    技术特征:

    1.一种端口流量镜像方法,其特征在于,应用在sdn系统中,所述sdn系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述方法包括:

    根据所述源端口和所述目的端口确定相应的流表,所述流表中的action部分中携带有镜像相关的指令;

    确定所述源端口对应的流量;

    通过所述流表将所述流量进行复制,并将复制后的所述流量发送至所述目的端口。

    2.根据权利要求1所述的方法,其特征在于,所述流表为grouptable组表的形式。

    3.根据权利要求1所述的方法,其特征在于,确定所述源端口对应的流量,包括:

    确定所述源端口对应的流量以及流量方向,所述流量方向包括:出向或入向;

    通过所述流表将所述流量进行复制,包括:

    通过所述流表以及所述流量方向将所述流量进行复制,其中,不同的流量方向在所述流表中对应的处理位置不同。

    4.根据权利要求3所述的方法,其特征在于,当所述流量方向为入向时,所述处理位置为所述流表中的末端;当所述流量方向为出向时,所述处理位置为所述流表中的始端。

    5.根据权利要求1所述的方法,其特征在于,将复制后的所述流量发送至所述目的端口,包括:

    确定所述目的端口与所述源端口不在同一虚拟交换机中;

    将复制后的所述流量通过vxlan隧道发送至所述目的端口,所述vxlan隧道用于连接所述目的端口以及所述源端口分别对应的虚拟交换机。

    6.根据权利要求5所述的方法,其特征在于,将复制后的所述流量通过vxlan隧道发送至所述目的端口,包括:

    将复制后的所述流量发送至vxlan隧道端口;

    在所述vxlan隧道端口上新增流表,并通过所述新增流表将所述流量发送至所述目的端口。

    7.根据权利要求1所述的方法,其特征在于,所述sdn系统的控制器为opendaylight,所述虚拟交换机为openvswitch。

    8.根据权利要求1所述的方法,其特征在于,根据所述源端口和所述目的端口确定相应的流表,所述流表中的action部分中携带有镜像相关的指令,包括:

    根据所述源端口和所述目的端口,对现有流表的action部分进行修改,以在所述action部分中添加镜像相关的指令;

    将修改后的流表作为所述源端口和所述目的端口相应的流表。

    9.一种端口流量镜像设备,其特征在于,应用在sdn系统中,所述sdn系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述设备包括:

    至少一个处理器;以及,

    与所述至少一个处理器通信连接的存储器;其中,

    所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-8中任意一项权利要求所述的方法。

    10.一种端口流量镜像的非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,应用在sdn系统中,所述sdn系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述计算机可执行指令设置为:如权利要求1-8中任意一项权利要求所述的方法。

    技术总结
    本申请公开了一种端口流量镜像方法、设备及介质,应用在SDN系统中,所述SDN系统包括虚拟交换机,所述虚拟交换机包括源端口以及目的端口,所述方法包括:根据所述源端口和所述目的端口确定相应的流表,所述流表中的action部分中携带有镜像相关的指令;确定所述源端口对应的流量;通过所述流表将所述流量进行复制,并将复制后的所述流量发送至所述目的端口。通过在流表的action部分设置镜像相关的指令,可以使得在SDN系统中只通过流表就完成流量的镜像操作,如果是在现有流表的基础上进行改动,则改动不大即可实现相应的功能,容易通过代码实现,且容易进行推广使用。

    技术研发人员:张凡
    受保护的技术使用者:浪潮思科网络科技有限公司
    技术研发日:2020.11.13
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8258.html

    最新回复(0)