混合网络环境中的流量镜像处理的制作方法

文档序号:31217097发布日期:2022-08-20 04:44阅读:64来源:国知局
混合网络环境中的流量镜像处理1.相关申请的交叉引用2.本专利申请要求2020年4月30日提交的第16/863,713号美国专利申请的优先权,该美国专利申请要求2020年1月10日提交的第62/959,751号美国临时专利申请的优先权,这些专利申请中的每一者的内容均以引用方式全部并入本文。
技术领域
:3.本公开总体涉及在混合网络环境(例如,混合云环境)中转发和/或分析镜像数据流量。
背景技术
::4.企业、医院、学校和其他组织利用各种计算资源来存储和/或处理数据。传统上,组织会使用物理位置位于组织本地的数据中心(即“本地数据中心”)中的计算资源。然而,因为组织的需求会随着时间的推移而发生变化,所以更改数据中心的计算资源可能是昂贵的或繁重的。5.为了减轻这些负担和其他负担,组织可以使用由云计算提供商提供的池化计算资源的一部分。这些计算资源可以按需分配给组织使用。例如,组织利用在由云计算提供商管理的数据中心中的云计算资源的一部分。这些数据中心可以在云计算提供商的专有通信网络中互连。因此,随着组织的需求随时间变化,可以根据需要将不同数量的云计算资源分配给组织,而无需由组织的本地数据中心托管云计算资源。6.尽管云计算可以为组织提供许多优点,但是云计算环境也可能向组织提出许多独特的挑战。具体地,组织可以在混合网络环境中利用由多个云计算服务提供商管理的计算资源。但是,这些服务提供商可能无法相互通信。例如,一个云提供商网络中的本地流量镜像服务可能无法将镜像流量转发到另一个云提供商网络中的另一个服务。因此,对分布在混合网络环境中的云计算资源进行协调可能是一个挑战。附图说明7.下面参照附图进行详细描述。在这些图中,附图标记的最左侧的(一个或多个)数字标识了该附图标记首次出现的图。在不同的图中使用相同的附图标记表示相似或相同的项目。附图中描绘的系统不是按比例绘制的,并且图中的组件可以被描绘成彼此不按比例绘制。8.图1图示了用于在不同网络之间传输镜像数据分组的示例环境。9.图2图示了用于在镜像流量转发会话中传输数据分组的示例环境。10.图3图示了封装镜像数据分组的示例。11.图4图示了互连的混合网络环境。12.图5图示了用于在混合网络环境中转发镜像数据流量的示例过程。13.图6图示了用于将镜像数据流量转发到网络之外的示例过程。14.图7示出了能够执行多个程序组件(这些程序组件用于实现本文描述的功能)的计算机的示例计算机结构。具体实施方式15.概览16.本公开描述了用于在混合网络环境中转发镜像流量的各种技术。示例方法包括:从源网络中的源转发器接收镜像数据分组;基于镜像数据分组的报头来识别镜像数据分组的会话;基于会话来识别目的地网络中的目的地转发器,目的地网络不同于源网络;以及将镜像数据分组转发给目的地转发器。在一些示例中,源转发器包括托管在源网络的资源中第一虚拟机(vm)、第一容器或的第一程序,并且,目的地转发器包括托管在目的地网络的资源中的第二vm、第二容器或第二程序。在各种实施方式中,镜像数据分组包括封装在通用路由封装(gre)中的封装远程交换端口分析器(erspan)数据分组,并且,报头包括镜像数据分组的erspan报头。在一些实例中,镜像数据分组包括由源网络中的至少一个节点发送或接收的原始数据分组的副本,原始数据分组符合一个或多个流量镜像规则。在某些情况下,目的地转发器将镜像数据分组转发到目的地网络中的流量分析器服务。根据一些实施方式,识别会话包括从镜像数据分组的报头中提取会话标识符(id)。在各种示例中,源网络包括第一基于云的网络并且目的地网络包括第二基于云的网络。17.示例系统包括:至少一个处理器;以及存储器,所述存储器存储指令,这些指令当由至少一个处理器执行时使系统执行操作。在各种实例中,这些操作包括:从基于云的源网络中的源转发器接收镜像数据分组;基于镜像数据分组的报头来识别镜像数据分组的会话;基于数据存储库中与会话对应的条目,来识别基于云的目的地网络中的目的地转发器,基于云的目的地网络不同于基于云的源网络;以及将镜像数据分组转发给目的地转发器。18.根据各种实施方式,示例系统包括第一基于云的网络中的转发器以及连接到第一基于云的网络的控制器。转发器包括:至少一个第一处理器;以及第一存储器,所述第一存储器存储第一指令,第一指令当由至少一个第一处理器执行时使转发器执行第一操作。第一操作包括:从第一基于云的网络中的源接收镜像数据分组;将镜像数据分组从第一格式转换为第二格式;对镜像数据分组进行封装;以及将镜像数据分组发送到控制器。在多个示例中,控制器包括:至少一个第二处理器;以及第二存储器,所述第二存储器存储表和第二指令,这些第二指令当由至少一个第二处理器执行时使控制器执行第二操作。第二操作包括:从源转发器接收镜像数据分组;基于镜像数据分组的报头,来识别镜像数据分组的会话;基于表中与会话对应的条目,来识别第二基于云的网络中的目的地转发器,第二基于云的网络不同于第一基于云的网络;以及将镜像数据分组转发给目的地转发器。19.示例实施例20.本公开的各种实施方式涉及在混合网络环境中的多个网络之间转发镜像数据流量。在各种示例中,控制器可以连接到多个网络,该控制器可能无法在混合网络环境中的各个网络中的指定转发器之间传送转发镜像流量。21.本文描述的各种实施方式为计算机网络领域提供了特定的改进。例如,各种实施方式能够用于:即使当一个网络和另一个网络由不同的供应商管理和/或可能使用不兼容的通信协议时,也使所述一个网络中的数据流量能够在所述另一个网络中被分析和/或被负载平衡。因此,本文描述的各种实施方式能够改进混合网络环境中不同网络(例如,由不同云提供商管理的不同云网络)的互操作性。22.将参考附图详细描述本公开的各种实现方式,其中,在所有这些附图中,相似的标号表示相似的部分和组件。此外,本说明书中记载的任何样本并意在是限制性的,而只是记载了许多可能的实现方式中的一部分。23.图1图示了用于在不同网络之间传输镜像数据分组的示例环境100。如图所示,环境100包括源网络102。源网络102可以是基于云的网络。就本文使用的而言,术语“基于云的网络”、“云网络”、“服务提供商网络”及其等同物可以指代经联网的计算资源集合,这些资源可以根据要求或需求被动态供应和分配给用户、客户端或其他设备。就本文使用的而言,计算资源可以包括存储器资源、处理资源、应用程序、服务、或虚拟机(vm)等。在基于云的网络中,资源可以分布在一个或多个物理设备(例如,服务器)上,这些物理设备可以位于不同的塔、建筑物、数据中心、或地理区域等之中。24.源网络102可以包括各种节点。就本文使用的而言,术语“节点”、“网络节点”和它们的等同物可以指代网络中能够向至少一个其他节点发送数据分组和/或从至少一个其他节点接收数据分组的任何实体。节点可以是设备、软件实例、或vm等。在一些示例中,节点可以是客户端、服务器或其组合。基于云的网络内的各个节点可以通过安全通信网络互连,在该安全通信网络上可以交换数据流量。例如,源网络102可以包括安全通信网络,通过该安全通信网络可以在源网络102中的各个节点之间交换数据流量。25.在各种实施方式中,源104可以是源网络102中的节点。在各种实施方式中,源104可以包括由源网络102中的计算资源托管的软件实例和/或vm。源104可以包括一个或多个接口(例如,(一个或多个)虚拟接口),源104通过这些接口接收和/或发送数据流量106。数据流量106可以包括正在源104和一个或多个其他节点(例如,源网络102中的其他节点)之间传输的多个数据分组。就本文使用的而言,术语“分组”、“数据分组”及其等同物可以指代在两个节点之间传输的数据单元。在各种示例中,分组可以具有:报头,其可以包括控制数据;以及有效载荷,其可以包括在分组中所携带的附加数据。报头可以包括例如以下信息:分组的源的标识符、分组的目的地的标识符、有效载荷中的用户数据类型的指示等。在某些情况下,数据分组可以由例如以下特定网络协议定义:网际协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、或其他网络协议。26.源104可以与至少一个用户和/或至少一个账户相关联。该帐户可以使用户能够远程地(例如,从源网络102外部的计算设备108)控制和/或管理源104的操作。例如,源网络102可以提供应用编程接口(api),(一个或多个)用户可以通过该api控制和/或管理源104的操作。在一些情况下,(一个或多个)用户可能期望监视、分析或以其他方式检查数据流量106。例如,(一个或多个)用户可以在源网络102内生成vm,该vm将数据流量106截取(intercept)、复制和/或转发到计算设备108或一些其他实体。然而,直接截取数据流量106可能会在源104的通信和/或操作中引入不可接受的延迟。27.在各种实施方式中,可以对数据流量106进行镜像处理以供进一步检查。就本文使用的而言,术语“流量镜像处理(trafficmirroring)”可以指这样的过程:通过该过程,由第一节点发送和/或接收的一个或多个数据分组被复制并被发送到第二节点(例如,用于进一步处理)。在一些情况下,可以根据过滤器(该过滤器指定一个或多个流量镜像处理规则)来对数据流量106的子集进行镜像处理。数据流量106中符合一个或多个流量镜像处理规则的任何数据分组都可以被镜像处理,并且数据流量106中不符合一个或多个流量镜像规则的任何数据分组都不可以被镜像处理。一个或多个流量镜像规则可以指定例如以下项中的至少一者:数据分组是否与特定的接口(例如,端口或网络接口等)相关联、数据分组是否与特定的虚拟局域网(vlan)相关联、数据分组是否与特定的子网相关联,等等。例如,术语“端口镜像处理”可以指这样的过程:通过该过程,由端口发送和/或接收的数据分组被复制并被发送到(例如,在不同节点中的)另一个端口。就本文使用的而言,术语“端口”及其等同物可以指代节点的这样的组件:该组件被配置为将节点的其余部分连接到接口(例如,网络接口控制器(nic))。节点可以有固定的一组端口,这些端口可以有选择地连接到特定的接口。节点的每个端口都可以有唯一标识,这个标识可以用端口号来表示。就本文使用的而言,术语“入口端口”、“进入端口”及其等同物可以指代分组进入节点的端口。就本文使用的而言,术语“出口端口”、“离开端口”和它们的等同物可以指代分组离开节点的端口。28.在各种示例中,用户可以通过使计算设备108向源104发送针对流量镜像处理的请求,来启动对数据流量106的镜像处理。该请求可以包括通过源网络102传输的一个或多个数据分组。在一些情况下,该请求可以指定一个类型的数据流量106要被镜像处理的至少一种条件。因此,在一些示例中,可能仅对数据流量106的一部分进行镜像处理。源104可以基于数据流量106来生成镜像流量110。镜像流量110可以包括从数据流量106中的数据分组复制的一个或多个数据分组。29.根据各种实施方式,与源104相关联的(一个或多个)用户可以寻求在(被包括在目的地网络114中的)目的地112中对镜像流量110进行分析。目的地网络114可以不同于源网络102。例如,目的地网络114可以是在源网络102外部的基于云的网络。在一些情况下,目的地网络114可以是基于云的网络中的第一区域,并且源网络102可以是基于云的网络中的第二区域,其中,第一区域不同于第二区域。30.目的地112可以是目的地网络114中的节点。在一些情况下,目的地网络114也是基于云的网络,并且目的地112可以由目的地网络114中的计算资源托管。在一些情况下,目的地112可以是流量分析器。出于各种原因中的任意一者,(一个或多个)用户可以使用目的地112来分析镜像流量110。例如,目的地112可以是与目的地网络114相关联的本地流量分析器,并且(一个或多个)用户可能想要测试目的地112作为流量分析器的功效。例如,流量分析器可以对镜像流量110执行特定于应用的处理(例如,应用一个或多个安全策略、或分析内容(例如视频处理)等)。在某些情况下,源网络102可以具有关联的流量分析器,但它可能比不上目的地112中所包含的流量分析器。在一些情况下,包含在目的地112中的流量分析器可以被托管在目的地网络114中,而不是源网络102中,以节省源网络102的资源。在一些情况下,目的地112可以是负载平衡器。例如,目的地112可以被配置为根据特定负载平衡协议,来将数据流量转发到目的地网络114中的一个或多个附加节点。31.然而,在各种实施方式中,源104可能无法将镜像数据流量110直接转发到目的地112。源104可能无法直接与目的地网络114中的节点交换数据分组,并且/或者目的地112可能无法直接与源网络102中的节点交换数据分组。例如,源网络102和/或目的地网络114的服务提供商可以限制和/或防止跨区域流量镜像处理。例如,源网络102中节点的ip地址可能被从与源网络102相关联的通信中抽出(abstracted)。在一些情况下,源网络102和目的地网络114可以各自使用不同的专有通信协议,使得由源网络102中的节点传输的数据分组不能被目的地网络114中的节点读懂,反之亦然。32.控制器116可以连接到源网络102和目的地网络114,并且可以使能源网络102和目的地网络114之间的通信。在各种实施方式中,控制器116可以被配置为控制和/或管理这样的网络基础结构:该网络基础结构包括源网络102中的至少一个节点和目的地网络114中的至少一个节点。例如,控制器116可以是服务定义网络(sdn)控制器。在一些情况下,控制器116可以被体现在位于与计算设备108相同的场所(例如,在本地数据中心中)的物理设备(例如,服务器)中。在一些实施方式中,控制器116可以被体现在源网络102的资源或目的地网络114的资源中。在各种情况下,控制器116可以连接到计算设备108。计算设备108可以向控制器116发送转发请求118。转发请求118可以包括:对数据流量106进行镜像处理的请求、和/或将镜像流量110转发到目的地112的请求。在各种实施方式中,转发请求118可以是(或者包括)会话配置,该会话配置标识了所请求的源104和目的地112之间的转发会话。转发请求118可以包括至少一个数据分组。响应于接收到转发请求118,控制器116可以指示源104将镜像流量110转发到源网络102中的源转发器120。就本文使用的而言,术语“转发器”及其等同物可以指在网络中的网络节点(例如,进程、容器、vm、虚拟私有云(vpc)、虚拟私有网络(vpn)等中的至少一者),该节点被配置为在网络中的另一个节点(例如,源节点或目的地节点)和网络外部的实体(例如,控制器)之间转发数据流量。控制器116可以连接到源网络102中的源转发器120。例如,控制器116可以经由vpn连接到源转发器120。在各种实施方式中,源转发器120是源网络102中的节点。33.在各种实施方式中,响应于接收到转发请求118,控制器116可以识别出目的地112(可以在转发请求118中被指定)位于与源104不同的网络中。也就是说,控制器116可以识别出:目的地112在目的地网络114中,并且源104在源网络102中。响应于识别出源104和目的地112在不同的网络中,控制器116可以在会话数据存储库124中生成条目,该条目对应于转发请求118所请求的会话,并且该条目包括从源104到目的地112的镜像流量110的传送。就本文使用的而言,术语“会话”、“流”、“数据流”、“流量流”、“分组流”及其等同物可以指代从源发送到目的地的多个分组。在一些示例中,会话可以包括多个分组,这些分组共享以下项中的至少一者:相同入口接口(例如,snmpifindex)、源(例如,来自相同ip地址)、目的地(例如,定向到相同ip地址)、协议(例如,ip协议)、源端口(例如,用于udp或tcp)、目的地端口(例如,用于udp、tcp或icmp)、或服务类型(例如,ip服务类型(tos))。包括从源104转发到目的地112的镜像流量110的会话可以被称为“镜像流量转发会话”。在特定实施方式中,该条目可以包括镜像流量转发会话的标识符,该标识符可以被称为“会话标识符”或“会话id”。在一些情况下,该条目可以包括以下项中的至少一者:源104的标识符(例如,ip地址)、标识符(例如,目的地112的ip地址)、源转发器120的标识符(例如,ip地址)、目的地转发器126的标识符(例如,ip地址)、或镜像流量转发会话的服务质量(qos)。例如,镜像流量转发会话的qos可以是低优先级qos。在一些情况下,该条目可以存储在会话数据存储库124中的散列表中。在其中多个条目被存储在会话数据存储库124中的各种实施方式中,可以根据会话标识符对这些条目进行索引。34.在各种实施方式中,控制器116可以向源转发器120发送镜像流量转发会话的指示,例如会话数据存储库124的条目中的数据的至少一部分。例如,控制器116可以将会话标识符发送到源转发器120和/或发送指示,该指示为:应该由源转发器120将镜像流量转发会话中的数据分组发送到控制器116。源转发器120可以将镜像流量转发会话的指示存储在数据存储库中(例如,在路由表中)。此外,控制器116可以向目的地转发器126发送镜像流量转发会话的指示(例如,会话数据存储库124的条目中的数据的至少一部分)。例如,控制器116可以将会话标识符发送到目的地转发器126和/或发送指示,该指示为:应该由目的地转发器将镜像流量转发会话中的数据分组发送到目的地112。目的地转发器可以将镜像流量转发会话的指示存储在数据存储库(例如,路由表)中。35.根据各种实施方式,源104可以将镜像流量110转发到源转发器120。例如,源转发器120可以被定义为与源网络102相关联的本地流量镜像服务中的镜像流量110的目的地。在接收到镜像流量110后,源转发器120可以使用存储在源转发器120处(例如,在路由表中)的指示来识别会话标识符。因此,源转发器120可以确定将镜像流量110转发到控制器116。在各种实施方式中,源转发器120可以对镜像流量110进行封装以生成封装流量122。例如,源转发器118可以根据通用路由封装(gre)协议将至少一个数据分组封装在镜像流量110中。36.在各种实施方式中,源转发器120可以在封装之前将镜像流量110中的至少一个数据分组转换成标准化格式。在一些情况下,镜像流量110可以依照与源网络102相关联的网络协议(例如,专有通信协议)。根据各种实施方式,源转发器120可以使用诸如libpcap、libnet或iptables之类的库将镜像流量110转换成标准化格式。例如,源转发器120可以使用libpcap来捕获、过滤和操纵镜像流量内的未经加工的镜像数据分组。例如,源转发器120可以使用libnet来执行分组构造和注入。在一些情况下,源转发器120可以使用iptables来检查和改变分组。libpcap、libnet和iptables是源转发器120可以使用的示例实用程序,并且在本公开的各种实施方式中,源转发器120可以使用其他实用程序和/或技术来转换镜像流量110。在某些情况下,标准化格式包括封装远程交换端口分析器(erspan)格式。在某些情况下,源转发器120可以将会话标识符添加到封装流量122的erspan报头。37.erspan分组格式与包括各种元素的特定报头格式相关联。例如,erspan报头可以包括具有一个或多个类型-长度-值(tlv)变量的以太网帧,以传达有关转发会话的信息,该信息为例如以下各项中的至少一项:数据分组的类型(例如,请求或回复);系统时间戳;帧序号;源erspan会话信息(例如,会话号、描述和配置);源设备信息(例如,设备名称、设备位置和操作系统版本);源和目的地设备地址(例如,ip地址);特定于平台的tlv;密码校验和tlv(例如,基于密码的安全散列算法(sha)-1或sha-256校验和)等。在各种示例中,在erspan报头中指定的会话号可以用作会话标识符。此外,可以进一步根据erspan报头中的一个或多个tlv变量来定义源104和目的地112之间(或源转发器120和目的地转发器126之间)的span会话。38.源转发器120可以将封装流量122发送到源网络102之外并且发送到控制器116。在各种实施方式中,控制器116可以识别出:封装流量122应该被转发到目的地网络114和/或目的地112。例如,控制器116可以从封装流量122中提取会话标识符,并使用会话标识符来识别对应于会话数据存储库124中的镜像流量转发会话的条目。例如,控制器116可以基于条目识别封装流量122中的会话标识符,识别会话数据存储中与会话标识符相对应的条目,并且可以识别出封装流量122应该被转发到目的地网络114中的目的地转发器126。例如,控制器116可以识别出封装流量122要被发送到目的地112并且可以将封装流量122转发到目的地112。相应地,控制器116可以将封装流量122发送到目的地转发器126。39.在各种实施方式中,目的地转发器126可以是目的地网络114中的节点。在从控制器116接收到封装流量122后,目的地转发器126可以识别出封装流量122是应该被转发到目的地112的镜像流量转发会话的一部分。例如,目的地转发器126可以识别封装流量122中的会话标识符,并且可以使用会话标识符来识别路由表中与镜像流量转发会话相对应的条目,其中该条目可以标识:会话中的数据分组应该被转发到目的地112。相应地,目的地转发器126可以基于封装流量122将镜像流量110转发到目的地112。例如,目的地转发器126可以对封装流量122进行解封装并且/或者将镜像流量110转换成与目的地112和/或目的地网络114相关联的通信格式。例如,目的地转发器126可以使用libpcap、libnet或iptables中的至少一者来将封装流量122转换成镜像流量110,其中镜像流量110可以具有目的地112可接受的格式。因此,目的地112可以被配置为对镜像流量110进行处理,即使由源104生成的镜像流量110最初是目的地112不可接受的格式。40.在接收到镜像流量110后,目的地112可以基于镜像流量110执行各种操作。例如,目的地112可以分析镜像流量110并且/或者生成一个或多个分析报告,这些分析报告可以被发送到和/或被显示在计算设备108上。在一些示例中,目的地112可以包括负载平衡器,该负载平衡器可以将镜像流量110转发到目的地网络114中的一个或多个其他节点。41.在各种实施方式中,镜像流量110可以沿着经过不同的网络(源网络102和目的地网络114)的路径被转发,而不管这些不同的网络是否在它们相应的通信网络内使用不同的网络协议。就本文使用的而言,术语“路径”、“网络路径”以及它们的等同物可以指代分组可以经过的特定节点和/或接口序列。可以在两个节点之间定义路径。在一些情况下,可以根据第一节点的标识、第二节点的标识以及分组从第一节点行进到第二节点所通过的中间节点和/或接口的任何序列,来定义分组从第一节点传输到第二节点的路径。可以由控制器116在源网络102和目的地网络114之间转发镜像流量110。42.现在将参考图1的示例环境100来描述说明性示例。在该示例中,组织可能正在使用源网络102和目的地网络114中的各种资源来托管视频游戏服务。然而,该组织可能怀疑与视频游戏服务相关联的延迟正在成为问题。例如,该组织可能已经收到来自用户的投诉,表明该用户注意到在用户指示视频游戏角色在视频游戏服务中移动与视频游戏角色在与该用户相关联的设备的显示器中移动之间存在延迟。因此,组织可以寻求确定视频游戏服务处的异常流量是否是由于视频游戏服务处的异常数据流量引起的。该组织可以与能够分析数据流量的专用分析器服务相关联。但是,分析器服务可能位于与视频游戏服务不同的网络中。参考图1,视频游戏服务可以是源104,而分析器服务可以是目的地112。43.为了使分析器服务能够分析视频游戏服务处的数据流量,组织中的个人可以指示控制器116建立从源104到目的地112的流量镜像转发会话。例如,个人可以使用计算设备108将转发请求118发送到控制器116,控制器116进而可以在会话数据存储库124中建立对应于流量镜像转发会话的条目。控制器116还可以指示源转发器120和目的地转发器126将会话中的分组从源104发送到目的地112。控制器116还可以指示源104处的视频游戏服务生成镜像流量110。镜像流量110可以包括由视频游戏服务发送和/或接收的一个或多个数据分组的副本。44.根据本文所述的各种实施方式,包括来自视频游戏服务的镜像数据分组的镜像数据流量110可以被发送到目的地112处的分析器服务。在接收到镜像数据流量110后,分析器引擎可以分析镜像数据流量110。例如,分析器引擎可以识别出源104正在从可疑ip地址接收异常数量的数据流量。分析器引擎可以向组织指示可疑ip地址(例如,在计算设备108处显示的报告中)。因此,组织中的个人(例如,管理员)可以更新源102的防火墙策略,该防火墙策略阻止来自可疑ip地址的流量。即使当源102和目的地112位于与不同通信协议相关联的不同网络中时,也可以实现这些优点和其他优点。45.图2图示了用于在镜像流量转发会话中传输数据分组的示例环境200。环境200包括上面参考图1描述的镜像流量110、控制器116、源转发器120、封装流量122、会话数据存储库124和目的地转发器126。46.如图所示,由源转发器120接收镜像流量110。源转发器120可以识别出镜像流量110是特定镜像流量转发会话的一部分。例如,源转发器120可以参考包括镜像流量转发会话的会话标识符204的路由表202。在一些情况下,路由表202进一步标识了镜像流量110应该被转发到控制器116。例如,路由表202可以包括控制器标识符206,该控制器标识符206可以标识出控制器116。在一些情况下,控制器标识符206包括控制器116的ip地址。47.源转发器120可以将镜像流量110从第一格式(例如,第一通信协议)转换成标准化格式并对其进行封装。在各种实施方式中,源转发器120可以对镜像流量110进行封装以生成封装流量122。根据各种示例,源转发器120可以生成封装流量122以包括会话标识符204。源转发器120可以将封装流量122发送到由控制器标识符206指定的节点(即控制器116)。48.在各种情况下,控制器116可以负责管理多个镜像流量转发会话,这些会话可以在会话数据存储库124的各个条目中被指定。每个条目可以指定会话的会话标识符、会话的目的地和/或会话的服务质量(qos)。例如,如图2所示,会话数据存储库124可以包括对应于n个镜像流量转发会话的n个条目。n个条目包括会话标识符1到n、目的地地址1到n、以及作为“低优先级”的qos指示。归因于与不同的镜像流量转发会话相关联的qos,控制器116可以将镜像流量转发会话中的数据分组的优先级别降低至低于通过控制器116传送的其他类型数据分组(例如,其他类型的控制和/或数据平面数据分组)。49.在接收到封装流量122后,控制器116可以使用封装流量122中的会话标识符204来识别会话数据存储库124中与封装流量122相对应的条目。控制器116因此可以使用该条目来识别封装流量122的目的地。在一些情况下,该条目可以指定会话中数据分组的最终目的地(例如,目的地112)的地址(例如,ip地址)和/或目的地转发器126的地址(例如,ip地址)。因此,控制器116可以基于会话数据存储库124来识别目的地转发器126。50.尽管未示出,但控制器116可以使用会话数据存储库124,以在多个目的地转发器(与一个或多个其他网络相关联)中识别出目的地转发器126。例如,封装流量122中的会话id204可以是“id1”,并且目的地转发器126的地址可以是“地址1”(如会话数据存储库124中所指示的)。然而,与不同的镜像流量转发会话相关联的会话id可以是“id2”,并且可以包括与“地址2”相关联的不同的目的地转发器(未示出)。相应地,即使控制器116可能连接到其他目的地转发器,控制器也可以制止将封装流量122转发到除了目的地转发器126(其与包括封装流量122的特定镜像流量转发会话相关联)之外的任何目的地转发器。51.控制器116可以将封装流量122发送到目的地转发器126。目的地转发器126可以基于封装流量122中的会话标识符204来识别镜像流量转发会话。在各种实施方式中,目的地转发器126可以将会话标识符204与目的地标识符210一起存储,该目的地标识符210可以标识出镜像流量转发会话中的数据分组的目的地(例如,目的地112)。目的地转发器126可以对封装流量122进行解封装,以恢复镜像流量110。在一些实施方式中,目的地转发器126可以将镜像流量110从标准化格式转换成适合目的地和/或目的地网络的第二格式。因此,目的地转发器126可以以适合目的地的格式将镜像流量110发送到目的地。52.图3图示了封装镜像数据分组300的示例。在各种实施方式中,封装分组可以被包括在封装流量(例如,上面参考图1和图2描述的封装流量122)中。如图所示,封装分组300可以包括erspan分组302。erspan分组302可以包括会话标识符204。在各种实施方式中,erspan分组302可以包括来自一个或多个镜像数据分组的数据。封装分组300还可以包括包围erspan分组302的gre封装304。因此,封装分组300可以是可以由转发器(例如,上面参考图1和图2描述的源转发器120和/或目的地转发器126)和控制器(例如,上面参考图1和图2描述的控制器116)分析的标准化格式。53.图4图示了互连的混合网络环境400。如图所示,环境400包括上面参照图1和图2描述的控制器116。控制器116可以连接到多个网络,包括第一网络402-1、第二网络402-2、第三网络402-3和第四网络402-4。网络402-1至402-4中的每一者可以是基于云的网络或基于云的网络内的不同区域。区域可以被定义为布置在不同地理地区中的一个或多个数据中心,该不同地理地区包括多个可用性区域(availabilityzone)。例如,网络402-1至402-4中的每个网络可以包括与网络402-1至402-4中的其他网络安全隔离的不同内部通信网络。在一些情况下,网络402-1至402-4中的一个网络可以是源网络(例如,上面参考图1描述的源网络102),并且/或者网络402-1至402-4中的另一个网络可以是目的地网络(例如,上面参考图1描述的目的地网络114)。54.在各种实施方式中,控制器116可以被配置为控制和/或管理包括网络402-1至402-4中的节点的网络基础结构。控制器116可以安全地连接到网络402-1至402-4。例如,可以通过相应的vpn来发送控制器116与网络402-1至402-4中的任何一者之间的通信。因此,即使控制器116可能在网络402-1至402-4中的部分网络或所有网络之外,网络402-1至402-4也可以保持免受恶意数据流量的影响。55.网络402-1至402-4可以包括相应的终端节点404-1至404-4。终端节点404-1至404-4可以包括各种镜像流量转发会话的源和/或终端。例如,终端节点404-1至404-4中的一者可以是上面参考图1描述的源104,并且终端节点404-1至404-4中的另一者可以是上面参考图1描述的目的地112。在各种情况下,终端节点404-1至404-4可以生成镜像数据流量和/或从其他终端节点404-1至404-4(例如,其他网络中的终端节点)接收镜像数据流量。56.网络402-1至402-4可以附加地包括相应的转发器406-1至406-4。转发器406-1至406-4可以被配置为在网络402-1至402-4与控制器116之间中继镜像数据流量。例如,转发器406-1至406-4中的一个可以是上面参考图1和图2描述的源转发器120。转发器406-1至406-4中的另一个转发器可以是上面参照图1和图2描述的目的地转发器。在各种实施方式中,转发器406-1至406-4中的任何一者可以被配置为接收镜像数据流量、将镜像数据流量转换成标准化格式、对镜像数据流量进行封装、以及将镜像数据流量转发到控制器116。在一些实施方式中,转发器406-1至406-4中的任意一者可以被配置为接收镜像数据流量、将镜像数据流量转换为对其相应网络402-1至402-4合适的格式、对镜像数据流量进行解封装、以及将镜像数据流量转发到终端节点404-1至404-4中的相应的一个。57.在本文描述的各种实施方式中,控制器116和/或转发器406-1至406-4可以使镜像数据流量能够被转发到混合网络环境400中的各种网络402-1至402-4。例如,控制器116可以建立与如下的镜像流量转发会话相关联的会话标识符:该镜像流量转发会话为第一网络402-1中的第一终端节点404-1与第二网络402-2中的第二终端节点404-2之间的镜像流量转发会话。控制器116可以将会话标识符连同指示存储在会话数据存储库(例如,上面参考图1和图2描述的会话数据存储库124)的条目中,该指示为:会话中的数据分组要被从第一转发器406-1转发到第二转发器406-2。此外,控制器116可以指示第一转发器406-1将会话中的数据分组从第一终端节点404-1转发到控制器116,和/或可以指示第二转发器406-2将会话中的数据分组从控制器116转发到第二终端节点404-2。第一转发器406-1可以将会话中的数据分组转发到具有指定会话标识符的控制器116。相应地,控制器116可以基于数据分组中的会话标识符,来识别出分组在从第一终端节点404-1到第二终端节点404-2的会话中。控制器116因此可以将数据分组转发到第二转发器406-2,而不是转发到环境400中的其他转发器(例如,第三转发器406-3或第四转发器406-4)。58.在一些情况下,控制器116可以适应环境400中的多个镜像流量转发会话,这些会话可以是在终端404-1至404-4中的任意一对终端之间的。多个会话中的每一者可以与单独的会话标识符相关联,该标识符可以在控制器116的数据存储库中追踪。相应地,控制器116可以使用单独的会话标识符适当地转发多个会话中的数据分组。此外,转发器406-1至406-4可以使用单独的会话标识符适当地转发多个会话中的数据分组。59.图5图示了用于在混合网络环境中转发镜像数据流量的示例过程500。在各种实施方式中,过程500可以由包括控制器(例如,上面参考图1和图2描述的控制器116)的实体执行。60.在502处,实体可以从源网络中的源转发器接收镜像数据分组。在各种实施方式中,镜像数据分组可以是从由源网络内的源节点发送或接收的数据分组复制的。可以通过连接到源网络内的源节点的至少一个接口来发送或接收数据分组。在一些情况下,源节点可以根据与源网络相关联的本地数据流量镜像协议,来生成镜像数据分组。源节点可以根据数据流量镜像协议,来将镜像数据分组转发到源转发器。在一些情况下,源节点和/或源转发器可以包括至少一个虚拟机(vm),该虚拟机占用源网络的至少一个计算资源。源网络可以是例如基于云的网络。61.在各种情况下,源转发器可以在将镜像数据分组转发到实体之前修改镜像数据分组。例如,源转发器可以将镜像数据分组从第一格式(例如,源网络专有的格式)转换为第二格式。在某些情况下,源转发器可以根据封装协议对镜像数据分组进行封装。根据一些示例,源转发器可以将镜像数据分组转换为封装在通用路由封装(gre)中的封装远程交换端口分析器(erspan)数据分组。62.在504处,实体可以识别镜像数据分组的会话。在各种示例中,会话可以是镜像数据流量转发会话。根据一些示例,实体可以通过从镜像数据分组中提取会话标识符来识别会话。在各种情况下,会话标识符可以在镜像数据分组的erspan报头内。63.在506处,实体可以为镜像数据分组识别目的地网络中的目的地转发器。在各种情况下,实体可以访问数据存储库,该数据存储库存储与实体所管理的各种镜像流量转发会话相关联的条目。这些条目可以通过会话标识符来索引。相应地,实体可以使用镜像数据分组的会话标识符,来提取与镜像数据分组相关联的条目。该条目还可以指示目的地转发器。例如,该条目可以指示目的地转发器的地址(例如,ip地址)。64.在508处,实体可以将镜像数据分组转发到目的地转发器。目的地转发器可以是目的地网络的一部分。在某些情况下,目的地转发器可以对镜像数据分组进行解封装。根据一些示例,目的地转发器可以将镜像数据分组从第二格式转换为第三格式(例如,目的地网络专有的格式)。目的地转发器可以将镜像数据分组转发到目的地网络内的目的地节点。在一些情况下,目的地节点可以是流量分析器,该流量分析器被配置为使用一个或多个规则来分析镜像数据分组。在一些情况下,目的地节点可以是负载平衡器,该负载平衡器被配置为根据负载平衡协议来将镜像数据分组转发到目的地网络内的另一个节点。在一些情况下,目的地节点和/或目的地转发器可以包括至少一个vm,该至少一个vm占用目的地网络的至少一个计算资源。目的地网络可以是例如基于云的网络。65.在各种示例中,源网络可以不同于目的地网络。例如,源网络可以是基于云的网络中的第一区域,而目的地网络可以是基于云的网络中的第二区域。在一些情况下,源网络可以是第一基于云的网络,而目的地网络可以是第二基于云的网络。相应地,过程500可以使能混合网络环境中的流量镜像处理。66.图6图示了用于将镜像数据流量转发到网络之外的示例过程600。在各种实施方式中,过程600可以由包括转发器(例如,上面参考图1描述的源转发器120和/或上面参考图4描述的转发器406-1至406-4中的任何转发器)的实体执行。67.在602处,实体可以从基于云的网络中的源节点接收镜像数据分组。在各种实施方式中,实体和源节点可以是网络内的节点。在一些情况下,镜像数据分组可以是该网络专有的第一格式。在各种实施方式中,可以从由源节点发送或接收的数据分组复制镜像数据分组。可以通过连接到源节点的至少一个接口来发送或接收数据分组。在一些情况下,源节点可以根据与网络相关联的本地数据流量镜像协议,来生成镜像数据分组。源节点可以根据数据流量镜像协议,来将镜像数据分组转发到源转发器。在一些情况下,源节点和/或源转发器可以包括至少一个虚拟机(vm),该虚拟机占用网络的至少一个计算资源。例如,网络可以是基于云的网络。68.根据各种实施方式,镜像数据分组可以包括云本地镜像分组报头。执行过程600的实体可以通过识别(例如,辨别)镜像数据分组的分组报头来识别出镜像数据分组要被转发到控制器。在一些情况下,控制器可以在过程600开始之前向实体指示关于与镜像数据分组相关联的转发会话。例如,控制器可以向实体发送执行镜像处理的指令,该指令指示镜像数据分组的分组报头。相应地,当实体接收到镜像数据分组,实体可以识别出镜像数据分组要作为其一部分的转发会话,并且可以确定将镜像数据分组转发到源节点的基于云的网络之外。在一些情况下,实体可以处置(例如,接收和/或转发)来自与基于云的网络相关联的多个镜像会话的流量。69.在604处,实体可以对镜像数据分组进行封装。在一些情况下,实体可以将镜像数据分组从第一格式转换为第二格式。例如,实体可以将镜像数据分组转换为封装在通用路由封装(gre)中的封装远程交换端口分析器(erspan)数据分组。70.在一些情况下,实体还可以识别包括镜像数据分组的特定镜像流量转发会话。在一些情况下,实体可以将与特定会话相关联的会话标识符添加到镜像数据分组。例如,会话标识符可以被添加到镜像数据分组的erspan报头。71.在606处,实体可以将镜像数据分组转发到网络外部的控制器。在各种示例中,控制器可以是连接到混合网络环境中的多个网络的服务定义网络(sdn)控制器。控制器可以将镜像数据分组转发到另一个网络以进行进一步处理。72.图7示出了能够执行用于实现上述功能的程序组件的服务器计算机700的示例计算机架构。图7所示的计算机架构示出了传统的服务器计算机、工作站、台式计算机、膝上型计算机、平板电脑、网络设备、电子阅读器、智能手机或其他计算设备,并且可以用于执行本文所呈现的任何软件组件。在一些示例中,服务器计算机700可以对应于本文描述的网络节点。73.计算机700包括基板702或“母板”,其是印刷电路板,多个组件或设备可以通过系统总线或其他电通信路径连接到该印刷电路板。在一种说明性配置中,一个或多个中央处理单元(“cpu”)704与芯片组706结合操作。cpu704可以是执行计算机700的操作所必需的算术和逻辑操作的标准可编程处理器。74.cpu704通过操作开关元件从一个离散的物理状态转换到下一个来执行操作,开关元件区分和改变这些状态。开关元件通常包括维持两个二进制状态之一的电子电路,例如触发器,以及基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路,例如逻辑门。这些基本的开关元件可以组合起来以创建更复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。75.芯片组706提供cpu704与基板702上的其余组件和设备之间的接口。芯片组706可以提供到ram709的接口,ram709用作计算机700中的主存储器。芯片组706可以进一步提供到计算机可读存储介质的接口,例如只读存储器(“rom”)710或非易失性ram(“nvram”),用于存储有助于启动计算机700和在各种组件和设备之间传输信息的基本程序。rom710或nvram还可以存储根据本文描述的配置操作计算机700所必需的其他软件组件。76.计算机700可以使用通过网络(例如,网络708)到远程计算设备和计算机系统的逻辑连接在网络环境中操作。芯片组706可以包括用于通过网络接口控制器(nic)712(例如,千兆以太网适配器)提供网络连接的功能。nic712能够通过网络708(或128)将计算机700连接到其他计算设备。应当理解,计算机700中可以存在多个nic712,将计算机连接到其他类型的网络和远程计算机系统。在一些情况下,nic712可以包括至少一个入口端口和/或至少一个出口端口。77.计算机700可以连接到为计算机提供非易失性存储的存储设备718。存储设备718可以存储操作系统720、程序722和数据,它们已经在本文中更详细地描述。存储设备718可以通过连接到芯片组706的存储控制器714连接到计算机700。存储设备718可以由一个或多个物理存储单元组成。存储控制器714可以通过串行连接scsi(“sas”)接口、串行高级技术连接(“sata”)接口、光纤通道(“fc”)接口、或其他类型用于在计算机和物理存储单元之间物理连接和传输数据的接口与物理存储单元接口。78.计算机700可以通过转换物理存储单元的物理状态来将数据存储在存储设备718上以反映正在存储的信息。在本说明书的不同实施例中,物理状态的具体转换可以取决于各种因素。这样的因素的示例可以包括但不限于用于实现物理存储单元的技术、存储设备718是否被表征为主要或次要存储等。79.例如,计算机700可以通过存储控制器714发出指令来将信息存储到存储设备718以改变磁盘驱动单元内的特定位置的磁特性、光存储单元中的特定位置的反射或折射特性、或固态存储单元中特定电容器、晶体管或其他分立组件的电气特性。在不脱离本描述的范围和精神的情况下,物理介质的其他变换是可能的,提供前述示例只是为了便于本描述。计算机700可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来进一步从存储设备718读取信息。80.除了上述大容量存储设备718之外,计算机700可以访问其他计算机可读存储介质以存储和检索信息,例如程序模块、数据结构或其他数据。本领域技术人员应当理解,计算机可读存储介质是提供数据的非暂时性存储并且可由计算机700访问的任何可用介质。在一些示例中,可以由一个或多个类似于计算机700的设备支持由网络节点(例如,网络节点404)、源(例如,202)、目的地(例如,207)、收集器(例如,308)或中央管理员(例如,312)执行的操作。换句话说,可以由在基于云的排列中操作的一个或多个计算机设备700执行由网络节点、收集器、和/或中央管理员执行的一些或所有操作。81.作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于ram、rom、可擦除可编程rom(“eprom”)、电可擦除可编程rom(“eeprom”)、闪存或其他固态存储技术、光盘rom(“cd-rom”)、数字多功能光盘(“dvd”)、高清dvd(“hd-dvd”)、blu-ray或其他光学存储器、磁盒、磁带、磁盘存储器或其他磁性存储设备、或任何其他可用于以非暂时性方式存储所需信息的介质。82.如上所简述的,存储设备718可以存储用于控制计算机700的操作的操作系统720。根据一个实施例,操作系统包括linux操作系统。根据另一个实施例,操作系统包括来自华盛顿州雷德蒙德的微软公司的server操作系统。根据进一步的实施例,操作系统可以包括unix操作系统或其变体之一。应该理解,也可以使用其他操作系统。存储设备718可以存储计算机700使用的其他系统或应用程序和数据。83.在一个实施例中,存储设备718或其他计算机可读存储介质被编码有计算机可执行指令,当被加载到计算机700中时,这些指令将计算机从通用计算系统转换为能够实现本文描述的实施例的专用计算机。如上所述,这些计算机可执行指令通过指定cpu704如何在状态之间转换来转换计算机700。根据一个实施例,计算机700可以访问存储计算机可执行指令的计算机可读存储介质,这些指令当由计算机700执行时,执行上文关于图1-6描述的各种过程。计算机700还可以包括计算机可读存储介质,其上存储有用于执行本文描述的任何其他计算机实现的操作的指令。84.如图7所示,存储设备718存储程序722、以及控制器116、会话数据存储库124、和/或转发器724(例如,以上参照图4描述的多个转发器407-1到407-4中的任何一者)。在一些实施方式中,可以从存储设备718中省略控制器116、会话数据存储库124、或转发器724中的至少一者。85.计算机700还可以包括一个或多个输入/输出控制器716,用于接收和处理来自多个输入设备的输入,例如键盘、鼠标、触摸板、触摸屏、电子指示笔或其他类型的输入设备。类似地,输入/输出控制器716可以向显示器提供输出,例如计算机监视器、平板显示器、数字投影仪、打印机或其他类型的输出设备。应当理解,计算机700可能不包括图7中所示的所有组件,可以包括未在图7中明确示出的其他组件,或者可能利用与图7所示的完全不同的架构。86.在一些情况中,一个或多个组件在此可被称为“被配置为”、“可配置为”、“可操作/可操作来”、“适合于/可适合于”、“能够”、“可符合/符合”,等等。本领域技术人员将会认识到,除非上下文另有要求,否则这样的术语(例如,“被配置为”)一般可涵盖活跃状态组件和/或非活跃状态组件和/或待机状态组件。87.就本文使用的而言,术语“基于”可与“至少部分基于”和“至少部分地基于”被同义地使用。就本文使用的而言,术语“包括”和“包含”及其等同物可以被互换使用。“包括a、b和c”的装置、系统或方法包括a、b和c,但也可包括其他组件(例如,d)。也就是说,该装置、系统或方法不限于组件a、b和c。88.虽然本发明是针对具体实施例进行描述的,但应理解本发明的范围不限于这些具体实施例。由于为适合特定操作要求和环境而改变的其他修改和改变对于本领域技术人员来说将是显而易见的,因此本发明不被认为限于为公开目的而选择的示例,并且涵盖不构成背离本发明的真正精神和范围的所有改变和修改。89.尽管本技术描述了具有特定结构特征和/或方法动作的实施例,但是应当理解,权利要求不一定限于所描述的特定特征或动作。相反,特定特征和动作仅仅是落入本技术的权利要求范围内的说明性实施例。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1