掌桥专利:专业的专利平台
掌桥专利
首页

底层-覆盖相关

文献发布时间:2023-06-19 09:57:26


底层-覆盖相关

技术领域

本公开涉及计算机网络的分析,包括分析数据穿过网络所采取的路径。

背景技术

虚拟化数据中心正在成为现代信息技术(IT)基础架构的核心基础。特别地,现代数据中心已经广泛利用虚拟化环境,在这些环境中,诸如虚拟机或容器的虚拟主机被部署并执行在物理计算设备的基础计算平台上。

大型数据中心内的虚拟化可以提供多种优势,包括高效使用计算资源和简化网络配置。因此,企业IT员工除了由于虚拟化所提供的效率和提高的投资回报率(ROI)之外,还由于数据中心中的虚拟化计算集群的管理优势而通常更喜欢这些集群。然而,虚拟化在分析、评估和/或排除网络运行故障时可能带来一些挑战。

发明内容

本公开描述了技术,这些技术包括收集关于物理网络基础设施的信息(例如,底层流数据)和关于网络虚拟化的信息(例如,覆盖流数据),以及关联数据,以使得能够洞悉网络操作和性能。在一些示例中,底层流数据和覆盖流数据这两者的样本以不仅支持高可用性和大容量流数据收集而且还支持响应于分析查询分析这种数据的方式来收集并存储。在这种查询之前或响应于这种查询,可以用覆盖流数据来丰富、扩充和/或补充底层流数据,以使得能够洞悉、标识和/或分析可以对应于覆盖数据流的底层网络基础设施。图示了底层网络基础设施的哪些组件对应于各种覆盖数据流的图和其他信息可以被呈现在用户界面中。

本文所描述的技术可以提供一种或多种技术优势。例如,通过提供有关底层网络基础结构如何与各种覆盖数据流相关的信息,创建用于发现和调查的有用工具是可能的。在一些示例中,这种工具可以用于对虚拟化网络进行高效且流水线化的故障排除和分析。作为示例,本文所描述的技术可以允许对连接性进行更高效的故障排除,这至少是因为这些技术使得能够标识可能与该连接性问题有关的底层网络设备的数目大大减少。

在一些示例中,本公开描述了根据本公开的一个或多个方面的、由网络分析系统或其他网络系统执行的操作。在一个特定示例中,本公开描述了一种方法,该方法包括以下步骤:收集用于网络的流数据,该网络具有多个网络设备和在网络内建立的多个虚拟网络,其中流数据包括底层流数据和覆盖流数据,该底层流数据包括多个底层数据流,覆盖流数据包括多个覆盖数据流,其中底层流数据针对底层流数据内所包括的每个底层数据流,标识已经处理与底层数据流相关联的网络分组的网络设备,并且其中覆盖流数据针对覆盖流数据内所包括的每个覆盖数据流,标识与覆盖数据流相关联的虚拟网络中的一个或多个虚拟网络;将流数据存储在数据存储库中;接收关于数据流的信息请求,其中信息请求指定针对数据流的源虚拟网络,并且还指定针对数据流的目的地虚拟网络;以及用所指定的源虚拟网络和所指定的目的地虚拟网络查询数据存储库,以基于所存储的流数据,来标识已经处理了数据流中的至少一个分组的一个或多个网络设备。

在另一示例中,本公开描述了一种包括处理电路的系统,该处理电路被配置为执行本文描述的操作。在另一示例中,本公开描述了一种包括指令的非瞬态计算机可读存储介质,这些指令在被执行时,将计算系统的处理电路配置为执行本文描述的操作。

附图说明

图1A是图示了根据本公开的一个或多个方面的示例网络的概念图,该示例网络包括用于分析跨网络和/或数据中心内的业务流的系统。

图1B是图示了根据本公开的一个或多个方面的、用于分析跨网络和/或数据中心内的业务流的系统的示例组件的概念图。

图2是图示了根据本公开的一个或多个方面的、用于分析跨网络和/或数据中心内的业务流的示例网络的框图。

图3是图示了根据本公开的一个或多个方面的、对所存储的底层流数据和覆盖流数据执行的示例查询的概念图。

图4是图示了根据本公开的一个或多个方面的、由用户界面设备呈现的示例用户界面的概念图。

图5是图示了根据本公开的一个或多个方面的、由示例网络分析系统执行的操作的流程图。

具体实施方式

使用虚拟化环境的数据中心提供效率、成本以及组织优势,在这些环境中,诸如虚拟机或虚拟容器的虚拟主机被部署并执行在物理计算设备的基础计算平台上。但是,获得对应用工作负载的有意义的洞察对于管理任何数据中心结构至关重要。从联网设备收集流量样本可以帮助提供这种洞察。在本文所描述的各种示例中,流量样本被收集并且然后被分析算法处理,从而使得可以使关于覆盖流量的信息与底层基础设施相关。在一些示例中,可以生成用户界面,以支持可视化所收集的数据以及底层基础设施如何与各种覆盖网络相关。这种数据在用户界面中的呈现可以提供对网络的洞察,并且向用户、管理员和/或其他人员提供用于网络发现、调查以及故障排除的工具。

图1A是图示了根据本公开的一个或多个方面的示例网络的概念图,该示例网络包括用于分析跨网络和/或数据中心内的业务流的系统。图1A图示了网络系统100和数据中心101的一种示例实现,该数据中心101托管一个或多个计算网络、计算域或项目和/或基于云的计算网络,它们在本文中通常称为云计算集群。基于云的计算集群可以共处于共同的整体计算环境(诸如单个数据中心)中或者跨环境(诸如跨不同的数据中心)分布。基于云的计算集群可以例如是不同的云环境,诸如OpenStack云环境、Kubernetes云环境或其他计算集群、域、网络等的各种组合。在其他实例中,网络系统100和数据中心101的其他实现可以是适当的。这种实现可以包括在图1A的示例中所包括的组件的子集和/或可以包括未在图1A中示出的附加组件。

在图1A的示例中,数据中心101为通过服务提供者网络106耦合到数据中心101的客户104提供了用于应用和服务的操作环境。虽然结合图1A的网络系统100描述的功能和操作可以被图示为在图1A中跨多个设备分布,但在其他示例中,归因于图1A中的一个或多个设备的特征和技术可以由一个或多个这种设备的本地组件在内部执行。类似地,一个或多个这种设备可以包括特定组件,并且执行可以在本文的描述中另外归因于一个或多个其他设备的各种技术。进一步地,特定操作、技术、特征和/或功能可以结合图1A来描述,或者以其他方式由特定组件、设备和/或模块执行。在其他示例中,这种操作、技术、特征和/或功能可以由其他组件、设备或模块执行。因此,归因于一个或多个组件、设备或模块的一些操作、技术、特征和/或功能可以归因于其他组件、设备和/或模块,即使在本文中没有以这种方式具体描述。

数据中心101托管基础设施设备,诸如联网和存储系统、冗余电源以及环境控制。服务提供者网络106可以被耦合到由其他提供者管理的一个或多个网络,并且因此可以形成例如互联网的大规模公共网络基础设施的一部分。

在一些示例中,数据中心101可以表示许多地理上分布的网络数据中心中的一个。如图1A的示例所示,数据中心101是为客户104提供网络服务的设施。客户104可以是诸如企业和政府的集体实体或个人。例如,网络数据中心可以为多个企业和最终用户托管网络服务。其他示例性服务可以包括数据存储、虚拟专用网、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,数据中心101是单独的网络服务器、网络对等方或其他。

在图1A的示例中,数据中心101包括一组存储系统、应用服务器、计算节点或其他设备,包括网络设备110A至网络设备110N(统称为“网络设备110”,表示任何数目的网络设备)。设备110可以经由由一层或多层物理网络交换机和路由器提供的高速交换结构121互连。在一些示例中,设备110可以被包括在结构121内,但是为了便于图示而分开示出。网络设备110可以是许多不同类型的网络设备(核心交换机、主干网络设备、叶网络设备、边缘网络设备或其他网络设备)中的任何一个,但在一些示例中,一个或多个设备110可以充当数据中心的物理计算节点。例如,设备110中的一个或多个可以提供用于执行一个或多个客户特定的虚拟机或其他虚拟化实例(诸如容器)的操作环境。在这种示例中,设备110中的一个或多个可以备选地被称为主机计算设备或更简单地称为主机。网络设备110从而可以执行一个或多个虚拟化实例,诸如虚拟机、容器或用于运行诸如虚拟化网络功能(VNF)的一个或多个服务的其他虚拟执行环境。

一般而言,每个网络设备110可以是可以在网络上运行并且可以生成借助遥测或其他方式可访问的数据(例如流数据或sFlow数据)的任何类型的设备,该设备可以包括任何类型的计算设备、传感器、照相机、节点、监视设备或其他设备。进一步地,一些或全部网络设备110可以表示另一设备的组件,其中,这种组件可以生成借助遥测或其他方式可收集的数据。例如,一些或全部网络设备110可以表示物理或虚拟网络设备,例如交换机、路由器、集线器、网关、安全设备(例如防火墙)、入侵检测和/或入侵防御设备。

虽然未具体示出,但是交换结构121可以包括耦合至机箱交换机的分布层的架顶式(TOR)交换机,并且数据中心101可以包括一个或多个非边缘交换机、路由器、集线器、网关、安全设备(诸如防火墙)、入侵检测和/或入侵防御设备、服务器、计算机终端、膝上型电脑、打印机、数据库、无线移动设备(诸如蜂窝电话或个人数字助理)、无线接入点、桥接器、电缆调制解调器、应用加速器或其他网络设备。交换结构121可以执行层3路由,以通过服务提供者网络106在数据中心101与客户104之间路由传送网络流量。网关108用来在交换结构121与服务提供者网络106之间转发和接收分组。

根据本公开的一个或多个示例,软件定义网络(“SDN”)控制器132提供逻辑上且在一些情况下物理上集中的控制器,以用于促进数据中心101内的一个或多个虚拟网络的操作。在一些示例中,SDN控制器132响应于经由北向API 131从编制引擎130接收的配置输入操作,该编制引擎转而可以响应于从与用户界面设备129交互和/或操作用户界面设备129的管理员128接收的配置输入操作。

用户界面设备129可以被实现为用于呈现输出和/或接受用户输入的任何合适的设备。例如,用户界面设备129可以包括显示器。用户界面设备129可以是计算系统,诸如由用户和/或管理员128操作的移动或非移动计算设备。根据本公开的一个或多个方面,用户界面设备129可以例如表示工作站、膝上型计算机或笔记本计算机、台式计算机、平板计算机或可以由用户操作和/或呈现用户界面的任何其他计算设备。在一些示例中,用户界面设备129可以与控制器201在物理上分离和/或处于与控制器201不同的位置中。在这种示例中,用户界面设备129可以通过网络或其他通信手段与控制器201通信。在其他示例中,用户界面设备129可以是控制器201的本地外围设备,或者可以被集成到控制器201中。

在一些示例中,编制引擎130管理数据中心101的功能,诸如计算、存储、联网以及应用资源。例如,编制引擎130可以为数据中心101内或跨数据中心的租户创建虚拟网络。编制引擎130可以将虚拟机(VM)附加到租户的虚拟网络。编制引擎130可以将租户的虚拟网络连接到外部网络,例如互联网或VPN。编制引擎130可以跨一组VM或到租户网络的边界实现安全策略。编制引擎130可以在租户的虚拟网络中部署网络服务(例如负载平衡器)。

在一些示例中,SDN控制器132管理诸如负载平衡、安全性的网络和联网服务,并且可以经由南向API 133将来自充当主机设备的设备110的资源分配给各种应用。即,南向API133表示一组通信协议,SDN控制器132利用该组通信协议来使网络的实际状态等于如由编制引擎130指定的期望状态。例如,SDN控制器132可以通过配置以下内容来实现来自编制引擎130的高级请求:物理交换机,例如TOR交换机、机箱交换机以及交换结构121;物理路由器;物理服务节点,诸如防火墙和负载平衡器;以及诸如VM中的虚拟防火墙的虚拟服务。SDN控制器132在状态数据库中维持路由、网络和配置信息。

网络分析系统140与设备110(和/或其他设备)中的一个或多个交互,以跨数据中心101和/或网络系统100收集流数据。这种流数据可以包括底层流数据和覆盖流数据。在一些示例中,底层流数据可以借助在OSI模型的层2处收集的流数据的样本来收集。覆盖流数据可以是从跨在网络系统100内建立的一个或多个虚拟网络的覆盖流量导出的数据(例如,数据样本)。覆盖流数据可以例如包括标识源虚拟网络和目的地虚拟网络的信息。

根据本公开的一个或多个方面,图1A的网络分析系统140可以将每个设备110配置为收集流数据。例如,在可以参照图1A描述的示例中,网络分析系统140将信号输出到每个设备110。每个设备110接收信号并将该信号解译为收集流数据的命令,该流数据包括底层流数据和/或覆盖流数据。其后,随着数据分组被每个设备110处理,每个设备110将底层流数据和/或覆盖流数据传送到网络分析系统140。网络分析系统140接收流数据,将其准备为响应于分析查询而使用,并且存储流数据。在图1A的示例中,包括交换结构121内的网络设备(未具体示出)的其他网络设备也可以被配置为收集底层和/或覆盖流数据。

网络分析系统140可以处理查询。例如,在所描述的示例中,用户界面设备129检测输入并将关于输入的信息输出到网络分析系统140。网络分析系统140确定该信息对应于来自用户界面设备129的用户的关于网络系统100的信息请求。网络分析系统140通过查询所存储的流数据来处理请求。网络分析系统140基于所存储的流数据生成对查询的响应,并将关于该响应的信息输出到用户界面设备129。

在一些示例中,从用户界面设备129接收的请求可以包括源和/或目的地虚拟网络。在这种示例中,网络分析系统140可以响应于这种请求,来标识从源虚拟网络向目的地虚拟网络行进的分组可能已经采用的底层网络设备上的一个或多个可能的数据路径。为了标识可能的数据路径,网络分析系统140可以使所收集的覆盖流数据与所收集的底层流数据相关,使得可以标识覆盖数据流所使用的底层网络设备。

图1B是图示了根据本公开的一个或多个方面的、用于分析跨网络和/或数据中心内的业务流的系统的示例组件的概念图。图1B包括结合图1A描述的许多相同元件。图1B所示的元件可以对应于由图1A中的相同编号的附图标记标识的、图1A所示的元件。一般而言,这种相同编号的元件可以以与结合图1A提供的对应元件的描述一致的方式来实现,但在一些示例中,这种元件可以涉及具有更多、更少和/或不同能力和属性的备选实现。

然而,与图1A不同,图1B图示了网络分析系统140的组件。网络分析系统140被示出为包括负载平衡器141、流收集器142、队列和事件存储库143、拓扑和度量源144、数据存储库145以及流API 146。一般而言,网络分析系统140和网络分析系统140的组件被设计和/或配置为确保高可用性和处理大容量流数据的能力。在一些示例中,可以将网络分析系统140的组件的多个实例编制(例如,通过编制引擎130)为在不同的物理服务器上执行,以确保网络分析系统140的任何组件都没有单点故障。在一些示例中,网络分析系统140或其组件可以被独立且水平地缩放,以使得能够高效和/或有效地处理期望容量的流量(例如,流数据)。

与图1A中相同,图1B的网络分析系统140可以将每个设备110配置为收集流数据。例如,网络分析系统140可以向每个设备110输出信号,以将每个设备110配置为收集流数据,该流数据包括底层流数据和覆盖流数据。其后,设备110中的一个或多个可以收集底层流数据和覆盖流数据,并且将这种流数据报告给网络分析系统140。

在图1B中,由网络分析系统140的负载平衡器141执行从每个设备110接收流数据。例如,在图1B中,负载平衡器141可以从每个设备110接收流数据。负载平衡器141可以跨多个流收集器分配流量,以确保针对流收集器的主动/主动故障转移策略。在一些示例中,可能需要多个负载平衡器141来确保高可用性和缩放性。

流收集器142从负载平衡器141收集数据。例如,网络分析系统140的流收集器142从每个设备110接收并处理流分组(在由负载平衡器141处理之后)。流收集器142将流分组向上游发送到队列和事件存储库143。在一些示例中,流收集器142可以寻址、处理和/或容纳来自sFlow、NetFlow v9、IPFIX、jFlow、Contrail Flow以及其他格式的统一数据。流收集器142可以能够解析来自sFlow分组和其他数据流分组的内部报头。流收集器142可以能够处理消息溢出、具有拓扑信息(例如,AppFormix拓扑信息)的丰富流记录等。流收集器142还可以能够在将数据写入或发送到队列和事件存储库143之前将数据转换为二进制格式。“sFlow”类型的底层流数据(指“采样流”)是用于OSI模型的层2处的分组输出的标准。它提供了一种用于输出截短分组的手段、以及用于网络监测目的的接口计数器。

队列和事件存储库143处理所收集的数据。例如,队列和事件存储库143可以从一个或多个流收集器142接收数据,存储数据,并且使数据可用于数据存储库145中的摄取。在一些示例中,这使得能够分离接收并存储大容量数据的任务与将数据编入索引并准备其以用于分析查询的任务。在一些示例中,队列和事件存储库143还可以使得独立用户能够直接消耗流记录的流(stream)。在一些示例中,队列和事件存储库143可以用于发现异常并实时产生警报。在一些示例中,可以通过读取封装的分组来解析流数据,这些封装的分组包括VXLAN、UDP上的MPLS以及GRE上的MPLS。队列和事件存储库143从内部(底层)分组解析源IP、目的地IP、源端口、目的地端口以及协议。一些类型的流数据(包括sFlow数据)仅包括采样的网络流量的片段(例如前128个字节),因此在一些情况下,流数据可能不包括所有内部字段。在这种示例中,这种数据可以被标记为缺失。

拓扑和度量源144可以用拓扑信息和/或度量信息来丰富或扩充数据。例如,拓扑和度量源144可以提供网络拓扑元数据,该元数据可以包括所标识的节点或网络设备、配置信息、配置、已建立的链接以及关于这种节点和/或网络设备的其他信息。在一些示例中,拓扑和度量源144可以使用AppFormix拓扑数据,或者可以是执行中的AppFormix模块。从拓扑和度量源144接收的信息可以用于丰富由流收集器142收集的流数据,并且支持流API 146处理数据存储库145的查询。

数据存储库145可以被配置为以索引格式存储从队列和事件存储库143以及拓扑和度量源144接收的数据,从而支持快速聚合查询和快速随机访问数据检索。在一些示例中,数据存储库145可以通过分片并复制数据来实现容错和高可用性。

流API 146可以处理由一个或多个用户界面设备129发送的查询请求。例如,在一些示例中,流API 146可以借助HTTP POST请求从用户界面设备129接收查询请求。在这种示例中,流API 146将请求内所包括的信息转换为对数据存储库145的查询。为了创建查询,流API146可以使用来自拓扑和度量源144的拓扑信息。流API 146可以使用这种查询中的一个或多个来代表用户界面设备129执行分析。这种分析可以包括流量去重、覆盖-底层相关、流量路径标识和/或热图(heatmap)流量计算。特别地,这种分析可以涉及使底层流数据与覆盖流数据相关,从而支持标识哪些底层网络设备与在虚拟网络上和/或在两个虚拟机之间流动的流量相关。

借助根据本公开的一个或多个方面的技术,诸如通过使底层流数据与覆盖流数据相关,网络分析系统140可以能够对于给定的数据流确定该数据流在多租户数据中心中属于哪个租户。进一步地,网络分析系统140还可以能够确定哪些虚拟计算实例(例如,虚拟机或容器)是这种流的源和/或目的地虚拟计算实例。更进一步地,诸如通过用覆盖流数据丰富底层流数据来使底层流数据与覆盖流数据相关,可以促进对网络系统100中可能出现的性能或其他问题进行故障排除。

例如,在一些情况下,在有限信息可用但已知关于源和目的地虚拟网络的信息的特定时间框架期间,可能出现连接性问题。解决这种问题可能具有挑战性,因为在给定源虚拟网络和目的地虚拟网络的情况下,可能难以查明数据流穿过网络所采取的物理路径。因为另外可能无法轻易知道穿过底层基础设施的实际物理路径,所以可能存在是连接性问题的潜在原因的许多网络设备或物理链接。然而,通过收集底层流数据和覆盖流数据并且用在同一时间段期间收集的覆盖流数据丰富底层流数据,可以标识哪些底层网络设备处理了数据流以及被数据流遍历的物理链路,从而使得能够确定数据路径——或最可能或一组可能的数据路径——穿过网络采取的数据流,或者至少确定用于数据流的较少量的可能数据路径。因此,解决这种连接性问题可以显著更高效,至少因为可以大幅减少与该连接性问题有关的底层网络设备的数目。

图2是图示了根据本公开的一个或多个方面的、用于分析跨网络和/或数据中心内的业务流的示例网络的框图。图2的网络系统200可以被描述为图1A或图1B的网络系统100的示例或备选实现。本文可以在图1的上下文中描述图2的一个或多个方面。

虽然数据中心,诸如图1A、图1B以及图2所示的数据中心,可以由任何实体操作,但一些数据中心由服务提供者操作,其中,这种服务提供者的商业模型将向其客户端提供计算能力。出于该原因,数据中心通常包含大量的计算节点或主机设备。为了高效运行,这些主机必须被连接到彼此和外界,并且该能力借助物理网络设备提供,这些物理网络设备可以以叶-主干拓扑结构互连。这些物理设备(诸如网络设备和主机)的集合形成底层网络。

这种数据中心中的每个主机设备通常都在其上运行多个虚拟机,这些虚拟机被称为工作负载。数据中心的客户端通常具有访问这些工作负载的权限,并且可以使用这种工作负载来安装应用并执行其他操作。运行在不同主机设备上但由一个特定客户端可访问的工作负载被组织到虚拟网络中。每个客户端通常至少具有一个虚拟网络。这些虚拟网络还被称为覆盖网络。在一些情况下,数据中心的客户端可能经历在不同工作负载上运行的两个应用之间的连接性问题。由于工作负载在大型多租户数据中心中的部署,解决这种问题往往复杂。

在图2的示例中,网络205连接网络分析系统240、主机设备210A、主机设备210B以及主机设备210N。网络分析系统240可以对应于图1A和图1B所示的网络分析系统140的示例或备选实现。主机设备210A、210B至210N可以被统称为“主机设备210”,表示任何数目的主机设备210。

每个主机设备210可以是图1A和图1B的设备110的示例,但在图2的示例中,每个主机设备210被实现为作为虚拟化数据中心的计算节点操作的服务器或主机设备,与网络设备截然相反。由此,在图2的示例中,每个主机设备210执行多个虚拟计算实例,诸如虚拟机228。

与图1A和图1B相同,可以由管理员128操作的用户界面设备129也连接到网络205。在一些示例中,用户界面设备129可以在与用户界面设备129相关联的显示设备处呈现一个或多个用户界面,其中的一些用户界面可以具有类似于用户界面400的形式。

图2还图示了在网络系统200内流动的底层流数据204和覆盖流数据206。特别地,示出了离开主干设备202A并流向网络分析系统240的底层流数据204。类似地,示出了离开主机设备210A并跨205流动的覆盖流数据206。在一些示例中,覆盖流数据206借助网络205被传送到网络分析系统240,如本文所述。为了简单起见,图2图示了底层流数据204的单个实例和覆盖流数据206的单个实例。然而,应当理解,主干设备202和叶设备203中的每一个都可以生成底层流数据204并将其传送到网络分析系统240,并且在一些示例中,每个主机设备210(和/或其他设备)可以生成底层流数据204并将这种数据跨网络205传送到网络分析系统240。进一步地,应理解,每个主机设备210(和/或其他设备)可以生成覆盖流数据206并通过网络205将这种数据传送到网络分析系统240。

网络205可以对应于图1A和图1B的交换结构121和/或服务提供者网络106中的任何一个,或者备选地,可以对应于交换结构121、服务提供者网络106和/或另一网络的组合。网络205还可以包括图1A和图1B的一些组件,包括网关108、SDN控制器132以及编制引擎130。

在网络205内图示的是主干设备202A和202B(统称为“主干设备202”,并且表示任何数目的主干设备202)、以及叶设备203A、203B和叶设备203C(统称为“叶设备203”,并且还表示任何数目的叶设备203)。虽然网络205被图示为具有主干设备202和叶设备203,但网络205中可以包括其他类型的网络设备,包括核心交换机、边缘网络设备、架顶式设备以及其他网络设备。

一般而言,网络205可以是互联网,或者可以包括或表示任何公共或专用通信网络或其他网络。例如,网络205可以是蜂窝网络、

网络分析系统240可以被实现为任何合适的计算系统,诸如一个或多个服务器计算机、工作站、大型机、用具、云计算系统和/或可以能够执行根据本公开的一个或多个方面描述的操作和/或功能的其他计算系统。在一些示例中,网络分析系统240表示向客户端设备和其他设备或系统提供服务的云计算系统、服务器场和/或服务器集群(或其一部分)。在其他示例中,网络分析系统240可以表示数据中心、云计算系统、服务器场和/或服务器集群的一个或多个虚拟化计算实例(例如,虚拟机、容器)或借助其实现。

在图2的示例中,网络分析系统240可以包括电源241、一个或多个处理器243、一个或多个通信单元245、一个或多个输入设备246以及一个或多个输出设备247。存储设备250可以包括一个或多个收集器模块252、用户界面模块254、流API 256以及数据存储库259。

网络分析系统240的设备、模块、存储区域或其他组件中的一个或多个可以互连,以实现组件间通信(物理地、通信地和/或操作地)。在一些示例中,这种连接性可以通过通信通道(例如,通信通道242)、系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法来提供。

电源241可以向网络分析系统240的一个或多个组件供电。电源241可以从数据中心、建筑物、家庭或其他位置中的主要交流电(AC)电源接收电力。在其他示例中,电源241可以是电池或供应直流电(DC)的设备。在又一些示例中,网络分析系统240和/或电源241可以从另一源接收电力。在网络分析系统240内图示的一个或多个设备或组件可以被连接至电源241,和/或可以从电源241接收电力。电源241可以具有智能电力管理或消耗能力,并且这种特征可以由网络分析系统240的一个或多个模块和/或由一个或多个处理器243来控制、访问或调节,以智能地消耗、分配、供应或以其他方式管理电力。

网络分析系统240的一个或多个处理器243可以实现功能性和/或执行与网络分析系统240相关联或与本文图示和/或本文描述的一个或多个模块相关联的指令。一个或多个处理器243可以是执行根据本公开的一个或多个方面的操作的处理电路,可以是其一部分和/或可以包括该处理电路。处理器243的示例包括微处理器、应用处理器、显示控制器、辅助处理器、一个或多个传感器集线器以及被配置为起处理器、处理单元或处理设备作用的任何其他硬件。中央监测系统210可以使用一个或多个处理器243来使用驻留在网络分析系统240中和/或在网络分析系统240处执行的软件、硬件、固件或硬件、软件和固件的混合来执行根据本公开的一个或多个方面的操作。

网络分析系统240的一个或多个通信单元245可以通过传输和/或接收数据来与在网络分析系统240外部的设备通信,并且在一些方面可以作为输入设备和输出设备这两者进行操作。在一些示例中,通信单元245可以通过网络与其他设备通信。在其他示例中,通信单元245可以在诸如蜂窝无线电网络的无线电网络上发送和/或接收无线电信号。通信单元245的示例包括网络接口卡(例如,诸如以太网卡)、光收发器、射频收发器、GPS接收器或可以发送和/或接收信息的任何其他类型的设备。通信单元245的其他示例可以包括能够通过

一个或多个输入设备246可以表示本文没有另外分别描述的网络分析系统240的任何输入设备。一个或多个输入设备246可以生成、接收和/或处理来自能够检测到来自人或机器的输入的任何类型的设备的输入。例如,一个或多个输入设备246可以生成、接收和/或处理为电、物理、音频、图像和/或视觉输入形式的输入(例如,外围设备、键盘、麦克风、照相机)。

一个或多个输出设备247可以表示本文没有另外分别描述的网络分析系统240的任何输出设备。一个或多个输出设备247可以生成、接收和/或处理来自能够检测到来自人或机器的输入的任何类型的设备的输入。例如,一个或多个输出设备247可以生成、接收和/或处理以电和/或物理输出形式的输出(例如,外围设备、致动器)。

网络分析系统240内的一个或多个存储设备250可以存储用于在网络分析系统240的操作期间进行处理的信息。存储设备250可以存储与根据本公开的一个或多个方面描述的一个或多个模块关联的程序指令和/或数据。一个或多个处理器243和一个或多个存储设备250可以为这种模块提供操作环境或平台,该环境或平台可以被实现为软件,但是在一些示例中可以包括硬件、固件以及软件的任何组合。一个或多个处理器243可以执行指令,并且一个或多个存储设备250可以存储一个或多个模块的指令和/或数据。处理器243和存储设备250的组合可以取回、存储和/或执行一个或多个应用、模块或软件的指令和/或数据。处理器243和/或存储设备250还可以被可操作地耦合到一个或多个其他软件和/或硬件组件,包括但不限于网络分析系统240的一个或多个组件和/或图示为连接到网络分析系统240的一个或多个设备或系统。

在一些示例中,一个或多个存储设备250借助临时存储器来实现,这可以意味着一个或多个存储设备的主要目的不是长期存储。网络分析系统240的存储设备250可以被配置为作为易失性存储器进行短期信息存储,因此在停用时不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其他形式的易失性存储器。在一些示例中,存储设备250还包括一个或多个计算机可读存储介质。存储设备250可以被配置为存储比易失性存储器更大的信息量。存储设备250还可以被配置用于作为非易失性存储空间进行长期信息存储,并且在激活/关闭周期之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、闪存或电可编程存储器(EPROM)或电可擦除可编程(EEPROM)存储器的形式。

收集器模块252可以执行功能,这些功能与接收底层流数据204和覆盖流数据206这两者并根据需要执行负载平衡以确保用于收集这种流数据的高可用性、吞吐量以及缩放性有关。收集器模块252可以处理数据,准备数据以供存储在数据存储库259内。在一些示例中,收集器模块252可以将数据存储在数据存储库259内。

用户界面模块254可以执行与生成用于呈现由流API 256执行的分析查询的结果的用户界面有关的功能。在一些示例中,用户界面模块254可以生成足以生成一组用户界面的信息,并且使得通信单元215通过网络205输出这种信息以供用户界面设备129使用,以在与用户界面设备129相关联的显示设备处呈现一个或多个用户界面。

流API 256可以执行分析查询,该分析查询涉及存储在数据存储库259中的数据,该数据源于底层流数据204和覆盖流数据206的集合。在一些示例中,流API 256可以接收为源于HTTP POST请求的信息形式的请求,并且作为响应,可以将请求转换为要在数据存储库259上执行的查询。进一步地,在一些示例中,流API 256可以获取与设备110有关的拓扑信息,并且执行包括数据去重、覆盖-底层相关、流量路径标识以及热图流量计算的分析。

数据存储库259可以表示用于存储与数据流信息有关的信息(包括从底层流数据204和覆盖流数据206导出的数据的存储)的任何合适的数据结构或存储介质。数据存储库259可以负责以索引格式存储数据,这使得能够快速取回数据和执行查询。存储在数据存储库259中的信息可以是可搜索的和/或分类的,使得网络分析系统240内的一个或多个模块可以提供从数据存储库259请求信息的输入,并且响应于该输入,接收存储在数据存储库259内的信息。数据存储库259可以主要由收集器模块252来维持。数据存储库259可以借助多个硬件设备来实现,并且可以通过分片和复制数据来实现容错和高可用性。在一些示例中,数据存储库259可以使用开源的ClickHouse面向列的数据库管理系统来实现。

每个主机设备210表示物理计算设备或计算节点,其为虚拟主机、虚拟机、容器和/或其他虚拟化计算资源提供执行环境。在一些示例中,每个主机设备210可以是向客户端设备和其他设备或系统提供服务的云计算系统、服务器场和/或服务器集群(或其一部分)的组件。

本文关于主机设备210A描述了主机设备210的特定方面。其他主机设备210(例如,主机设备210B至210N)可以被类似地描述,并且也可以包括相同、相似或对应的组件、设备、模块、功能性和/或其他特征。因此,本文中关于主机设备210A的描述可以对应地应用于一个或多个其他主机设备210(例如,主机设备210B至主机设备210N)。

在图2的示例中,主机设备210A包括基础物理计算硬件,该基础物理计算硬件包括电源211、一个或多个处理器213、一个或多个通信单元215、一个或多个输入设备216、一个或多个输出设备217以及一个或多个存储设备220。存储设备220可以包括管理程序221,该管理程序包括内核模块222、虚拟路由器模块224以及代理模块226。虚拟机228A至228N(统称为“虚拟机228”,表示任何数目的虚拟机228)在管理程序221上执行或由管理程序221控制。类似地,虚拟路由器代理229可以在管理程序221上或在管理程序221的控制下执行。主机设备210的设备、模块、存储区域或其他组件中的一个或多个可以互连,以实现组件间通信(物理地、通信地和/或操作地)。在一些示例中,这种连接性可以通过通信通道(例如,通信通道212)、系统总线、网络连接、过程间通信数据结构或用于传送数据的任何其他方法来提供。

电源211可以向主机设备210的一个或多个组件供电。处理器213可以实现功能性和/或执行与主机设备210相关联的指令。通信单元215可以代表主机设备210与其他设备或系统进行通信。一个或多个输入设备216和输出设备217可以表示与主机设备210相关联的任何其他输入和/或输出设备。存储设备220可以存储用于在主机设备210A的操作期间进行处理的信息。这种组件中的每一个可以以与在本文中结合网络分析系统240或以其他方式描述的方式相似的方式来实现。

管理程序221可以充当在基础主机硬件设备上实例化、创建和/或执行一个或多个虚拟机228的模块或系统。在一些上下文中,管理程序221可以被称为虚拟机管理器(VMM)。管理程序221可以在由存储设备220和处理器213提供的执行环境内或在操作系统内核(例如,内核模块222)上执行。在一些示例中,管理程序221是操作系统级组件,其在硬件平台(例如,主机210)上执行,以为虚拟机228和/或其他类型的虚拟计算实例提供虚拟化的操作环境和编制控制器。在其他示例中,管理程序221可以是软件和/或固件层,其提供轻量级内核并操作以为虚拟机228和/或其他类型的虚拟计算实例提供虚拟化的操作环境和编制控制器。管理程序221可以并入内核模块222的功能性(例如,作为“类型1管理程序”),如图2所示。在其他示例中,管理程序221可以在内核上执行(例如,作为“类型2管理程序”)。

虚拟路由器模块224可以为数据中心101内的对应虚拟网络执行多个路由实例,并且可以将分组路由传送到在由设备110提供的操作环境内执行的适当虚拟机。虚拟路由器模块224还可以负责收集覆盖流数据,诸如在采用Contrail SDN的基础设施中使用时的Contrail Flow数据。因此,每个主机设备210可以包括虚拟路由器。由主机设备210A的虚拟路由器模块224例如从基础物理网络结构接收的分组可以包括外部报头,以允许物理网络结构将有效负载或“内部分组”隧穿到用于主机设备210A的网络接口的物理网络地址。外部报头不仅可以包括服务器网络接口的物理网络地址,还可以包括虚拟网络标识符,诸如标识虚拟网络之一以及由虚拟路由器执行的对应路由实例的VxLAN标签或多协议标签交换(MPLS)标签。内部分组包括内部报头,该内部报头具有与针对由虚拟网络标识符标识的虚拟网络的虚拟网络寻址空间相符的目的地网络地址。

代理模块226可以作为管理程序221的一部分执行,或者可以在内核空间内或者作为内核模块222的一部分执行。代理模块226可以监测与主机设备210A相关联的一些或全部性能度量,并且可以实现和/或执行可以从策略控制器(图2中未示出)接收的策略。代理模块226可以将虚拟路由器模块224配置为将覆盖流数据传送到网络分析系统240。

虚拟机228A至虚拟机228N(统称为“虚拟机228”,表示任何数目的虚拟机228)可以表示虚拟机228的示例实例。主机设备210A可以将由存储设备220提供的虚拟和/或物理地址空间划分为用于运行用户过程的用户空间。主机设备210A还可以将由存储设备220提供的虚拟和/或物理地址空间划分为内核空间,该内核空间受到保护并且用户进程可能无法访问该内核空间。

一般而言,每个虚拟机228可以是任何类型的软件应用,并且可以为每个虚拟机分配虚拟地址以在对应的虚拟网络内使用,其中,每个虚拟网络可以是由虚拟路由器模块224提供的不同虚拟子网。例如,可以为每个虚拟机228分配其自己的虚拟层三(L3)IP地址,以用于发送和接收通信,但每个虚拟机不知道在其上执行虚拟机的物理服务器的IP地址。以这种方式,“虚拟地址”是用于应用的地址,该地址不同于用于基础物理计算机系统(例如图2的示例中的主机设备210A)的逻辑地址。

每个虚拟机228可以表示运行客户应用(诸如web服务器、数据库服务器、企业应用)或托管用于创建服务链的虚拟化服务的租户虚拟机。在一些情况下,主机设备210中的任何一个或多个或另一计算设备直接地(即,不作为虚拟机)托管客户应用。虽然鉴于虚拟机或虚拟主机描述了本公开的一个或多个方面,但是本文针对这种虚拟机或虚拟主机描述的根据本公开的一个或多个方面的技术也可以应用于容器、应用、过程或在主机设备210上执行的其他执行单元(虚拟化或非虚拟化的)。

虚拟路由器代理229在图2的示例中被包括在主机设备210A内,并且可以与SDN控制器132和虚拟路由器模块224通信,以便控制虚拟网络的覆盖并协调主机设备210A内的数据分组的路由。一般而言,虚拟路由器代理229与SDN控制器132通信,该控制器生成控制分组穿过数据中心101的路由的命令。虚拟路由器代理229可以在用户空间中执行,并操作为虚拟机228与SDN控制器132之间的用于控制平面消息的代理。例如,虚拟机228A可以请求经由虚拟路由器代理229使用其虚拟地址发送消息,并且虚拟路由器代理229转而可以发送消息并请求针对虚拟机228A的虚拟地址接收对消息的响应,该响应发起第一消息。在一些情况下,虚拟机228A可以调用由虚拟路由器代理229的应用编程接口呈现的过程或功能调用,并且在这种示例中,虚拟路由器代理229也处理消息的封装,包括寻址。

网络分析系统240可以将主干设备202和叶设备203中的每一个配置为收集底层流数据204。例如,在可以参照图2描述的示例中,网络分析系统240的收集器模块252使得通信单元215通过网络205输出一个或多个信号。主干设备202和页设备203中的每一个都检测信号,并且将该信号解译为支持底层流程数据204的收集的命令。例如,在检测到来自网络分析系统240的信号时,主干设备202A将自己配置为收集sFlow数据并将sFlow数据(作为底层流数据204)通过网络205传送到网络分析系统240。作为另一示例,在检测到来自网络分析系统240的信号时,叶设备203A检测信号并将自己配置为收集sFlow数据,并且将sFlow数据通过网络205传送到网络分析系统240。进一步地,在一些示例中,每个主机设备210可以检测来自网络分析系统240的信号,并且将该信号解译为支持sFlow数据的收集的命令。因此,在一些示例中,sFlow数据可以由在主机设备210上执行的收集器模块收集。

因此,在所描述的示例中,主干设备202、叶设备203(以及可能的主机设备210中的一个或多个)收集sFlow数据。然而,在其他示例中,一个或多个这种设备可以收集其他类型的底层流程数据204,诸如IPFIX和/或NetFlow数据。收集任何这种底层流数据可以涉及收集五元组数据,该五元组数据包括源IP地址和目的地IP地址、源端口号和目的地端口号以及所使用的网络协议。

网络分析系统240可以将每个主机设备210配置为收集覆盖流数据206。例如,继续参照图2描述的示例,收集器模块252使得通信单元215通过网络205输出一个或多个信号。每个主机设备210检测信号,该信号被解译为收集覆盖流数据206并将覆盖流数据206传送到网络分析系统240的命令。例如,参考主机设备210A,主机设备210A的通信单元215通过网络205检测信号,并且将有关该信号的信息输出到管理程序221。管理程序221将信息输出到代理模块226。代理模块226将来自管理程序221的信息解译为收集覆盖流数据206的命令。代理模块226将虚拟路由器模块224配置为收集覆盖流数据206,并且将覆盖流数据206传送到网络分析系统240。

在至少一些示例中,覆盖流数据206包括关于源地址和目的地地址、端口以及协议的五元组信息。另外,覆盖流数据206可以包括关于与流相关联的虚拟网络的信息,虚拟网络包括源虚拟网络和目的地虚拟网络。在一些示例中,特别是对于使用可从加利福尼亚州桑尼维尔的瞻博网络(Juniper Networks)公司购买的Contrail SDN配置的网络,覆盖流数据206可以对应于Contrail Flow数据。

在所描述的示例中,代理模块226将虚拟路由器模块224配置为收集覆盖流数据206。然而,在其他示例中,管理程序221可以将虚拟路由器模块224配置为收集覆盖流数据206。进一步地,在其他示例中,覆盖流数据206可以由另一模块(备选地或另外)收集,诸如代理模块226,或者甚至由管理程序221或内核模块222收集。因此,在一些示例中,主机设备210可以收集底层流数据(sFlow数据)和覆盖流数据(例如,Contrail Flow数据)这两者。

网络分析系统240可以接收底层流数据204和覆盖流数据206这两者。例如,继续该示例并参照图2,主干设备202A采样、检测、感测和/或收集底层流数据204。主干设备202A通过网络205输出信号。网络分析系统240的通信单元215检测来自主干设备202A的信号,并且将有关该信号的信息输出到收集器模块252。收集器模块252确定该信号包括有关底层流数据204的信息。

类似地,主机设备210A的虚拟路由器模块224在主机设备210A处采样、检测、感测和/或收集覆盖流数据206。虚拟路由器模块224使得主机设备210A的通信单元215通过网络205输出信号。网络分析系统240的通信单元215检测来自主机设备210A的信号,并且将有关该信号的信息输出到收集器模块252。收集器模块252确定该信号包括有关覆盖流数据206的信息。

网络分析系统240可以处理从网络系统100内的各种设备接收的底层流数据204和覆盖流数据206这两者。例如,仍然继续同一示例,收集器模块252通过跨多个收集器模块252分配信号,来处理从主干设备202A、主机设备210A以及其他设备接收的信号。在一些示例中,每个收集器模块252可以在不同的物理服务器上执行,并且可以独立且水平地缩放,以处理来自主干设备202、叶设备203以及主机设备210的流量的期望容量或峰值容量。每个收集器模块252存储底层流数据204和覆盖流数据206的每个实例,并且使所存储的数据可用于数据存储库259中的摄取。收集器模块252对数据编入索引并准备数据以供分析查询使用。

网络分析系统240可以将底层流数据204和覆盖流数据206存储在数据存储库259中。例如,在图2中,收集器模块252将信息输出到数据存储库259。数据存储库259确定该信息对应于底层流数据204和覆盖流数据206。数据存储库259以索引格式存储数据,从而支持快速聚合查询和快速随机访问数据检索。在一些示例中,数据存储库145可以通过跨多个存储设备分片并复制数据来实现容错和高可用性,该多个存储设备可以位于多个物理主机之间。

网络分析系统240可以接收查询。例如,仍然继续同一示例并参照图2,用户界面设备129检测输入并通过网络205输出从输入中导出的信号。网络分析系统240的通信单元215检测信号并将有关该信号的信息输出到流API 256。流API 256确定该信号在给定时间窗口内对应于用户界面设备129的用户对关于网络系统200的信息的查询。例如,用户界面设备129的用户(例如,管理员128)可能已经注意到特定虚拟网络内的特定虚拟机似乎正在以异常速率丢弃分组,并且可能寻求解决问题。解决该问题的一种方法是标识哪些网络设备(例如哪个底层路由器)在似乎正在丢弃分组的数据路径上。因此,管理员128可以寻求通过查询网络分析系统240来标识在源虚拟机与目的地虚拟机之间采取的可能路径。

网络分析系统240可以处理查询。例如,再次继续在图2的上下文中描述的示例,流API 256确定从用户界面设备129接收的信号包括关于源虚拟网络和/或目的地虚拟网络的信息。流API 256通过以下方式来查询数据存储库259:从在查询中标识的时间窗口丰富存储在数据存储库259内的底层流数据,以包括来自覆盖流数据的虚拟网络数据。为了执行查询,流API 256将数据缩小到指定的时间窗口,并且对于每个相关的底层流数据204记录,流API 256添加来自覆盖流数据206记录的任何源虚拟网络和/或目的地虚拟网络信息,该覆盖流数据206记录具有匹配对应底层流数据204记录的值的值。流API 256标识由丰富后的底层流数据标识的一个或多个网络设备。流API 256基于所标识的网络设备,确定在指定的源虚拟网络与目的地虚拟网络之间采取的一条或多条可能路径。在一些示例中,可以将全局联接技术(例如,可用于ClickHouse数据库管理系统中)用于扩充。在这种示例中,流API256收集覆盖流数据,并将这种数据广播到所有节点。然后,将数据对于每个节点独立地用作查找表。为了最小化表的大小,流API 256可以执行过滤准则到子查询的谓词下推。

网络分析系统240可以使得在用户界面设备129处呈现图示了源虚拟网络与目的地虚拟网络之间的可能路径的用户界面。流API 256将关于所确定的可能路径的信息输出到用户界面模块254。用户界面模块254使用来自流API 256的信息来生成足以创建用户界面的数据,该用户界面呈现有关源虚拟网络与目的地虚拟网络之间的可能路径的信息。用户界面模块254使得通信单元215通过网络205输出信号。用户界面设备129通过网络205检测信号,并且确定该信号包括足以生成用户界面的信息。用户界面设备129生成用户界面(例如,用户界面400)并将其呈现在与用户界面设备129相关联的显示器处。在一些示例中,用户界面400(也在图4中图示)呈现图示了虚拟机之间的一个或多个可能路径的信息,并且可以包括有关在这些虚拟机之间传送或已传送多少数据的信息。

图2所示的模块(例如,虚拟路由器模块224、代理模块226、收集器模块252、用户接口模块254、流API 256)和/或本公开中其他地方图示或描述的模块可以执行使用驻留在一个或多个计算设备中和/或在一个或多个计算设备处执行的软件、硬件、固件或硬件、软件和固件的混合描述的操作。例如,计算设备可以用多个处理器或多个设备来执行一个或多个这种模块。计算设备可以执行一个或多个这种模块,作为在基础硬件上执行的虚拟机。一个或多个这种模块可以作为操作系统或计算平台的一个或多个服务来执行。一个或多个这种模块可以在计算平台的应用层处作为一个或多个可执行程序执行。在其他示例中,由模块提供的功能性可以由专用硬件设备实现。

虽然可以分别图示被包括在一个或多个存储设备内的特定模块、数据存储库、组件、程序、可执行文件、数据项、功能单元和/或其他项,但是这种项中的一个或多个可以被组合并作为单个模块、组件、程序、可执行文件、数据项或功能单元操作。例如,一个或多个模块或数据存储库可以被组合或被部分组合,使得它们作为单个模块操作或提供功能性。进一步地,一个或多个模块可以彼此交互和/或协同操作,使得例如一个模块充当另一模块的服务或扩展。而且,在存储设备内图示的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以包括多个组件、子组件、模块、子模块、数据存储库和/或未图示的其他组件或模块或数据存储库。

进一步地,在存储设备内图示的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以以各种方式来实现。例如,在存储设备内图示的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为可下载或预安装的应用或“app”。在其他示例中,在存储设备内图示的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为在计算设备上执行的操作系统的一部分。

图3是图示了根据本公开的一个或多个方面的、对所存储的底层流数据和覆盖流数据执行的示例查询的概念图。图3图示了数据表301、查询302以及输出表303。数据表301图示了可以存储在图2的数据存储库259内的底层流数据和覆盖流数据这两者的记录。查询302表示可以响应于由网络分析系统240从用户界面设备129接收的请求由流API 256生成的查询。输出表303表示响应于执行查询302从数据表301生成的数据。

在图3的示例中,并且根据本公开的一个或多个方面,图2的网络分析系统240可以填充数据表301。例如,参照图2和图3这两者,网络分析系统240从网络系统200内的各种设备收集底层流数据204和覆盖流数据206这两者。网络分析系统240的收集器模块252将所收集的数据存储在数据存储库259内。在图3的示例中,在数据存储库259内存储的数据对应于数据表301。

网络分析系统240可以在与数据表301相对应的数据被存储在数据存储库259内之后执行查询。例如,仍然参照图2和图3的示例,网络分析系统240的通信单元215检测流API256确定对应于查询302的信号。在图3的示例中,查询302是以下类似SQL的查询:

SELECT networkDevice,bytes,srcVn WHERE timestamp in<7;9>。

流API 256将查询302应用于数据表301,从而从数据表301中选择标识网络设备并具有大于或等于7且小于或等于9的时间戳的行(row)。流API 256仅标识满足该准则的两个网络设备:网络设备“a7”(来自数据表301的第3行)和网络设备“a8”(数据表301的第5行)。

网络分析系统240可以使覆盖数据与底层数据相关,以标识哪些源虚拟网络在相关时间框架期间使用了所标识的网络设备。例如,在图3的示例中,网络分析系统240的流API 256确定在该相同时间框架(时间戳7-9)中的任何覆盖流数据行是否具有与第3行和第5行相同的五元组数据(即,源和目的地地址和端口号以及协议)。流API 256确定来自第6行的覆盖数据在指定的时间框架内,而且具有与第3行的五元组数据相匹配的五元组数据。因此,流API 256确定设备“a7”的源虚拟网络是源虚拟网络“e”(参见输出表303第1行的“srcvn”列)。类似地,流API 256确定来自数据表301第4行的覆盖数据在指定的时间框架内,而且具有与数据表301的第5行的五元组数据相匹配的五元组数据。因此,流API 256确定用于设备“a8”的源虚拟网络是源虚拟网络“c”(参见输出表303的第2行)。

如果多于一个实例(行)的覆盖流数据可用,则可以使用任何或所有这种数据来标识源虚拟网络。这是基于虚拟网络配置不经常变化的假设。本文所描述的丰富过程可以用于请求“前N个”网络属性的查询。丰富过程也可以用于标识路径,如图4所示。

图4是图示了根据本公开的一个或多个方面的、由用户界面设备呈现的示例用户界面的概念图。图4图示了用户界面400。虽然用户界面400被示出为图形用户界面,但是在其他示例中可以呈现其他类型的界面,包括基于文本的用户界面、基于控制台或命令的用户界面、语音提示用户界面或任何其他适当的用户界面。如图4所示的用户界面400可以对应于由网络分析系统240的用户界面模块254生成并在图2的用户界面设备129处呈现的用户界面。与用户界面400的生成和/或呈现有关的一个或多个方面可以在图2的上下文中在本文中被描述。

根据本公开的一个或多个方面,网络分析系统240可以执行查询来标识路径。例如,在可以参照图2描述的示例中,用户界面设备129检测输入并通过网络205输出信号。网络分析系统240的通信单元215检测流API 256确定对应于网络信息的查询的信号。流API256执行查询(例如,以结合图3描述的方式),并且将关于结果的信息输出到用户界面模块254。为了找到两个虚拟机之间的路径,流API 256可以确定最可能的路径(以及通过所确定路径行进的流量)。另外,流API256可以执行附加查询来排他地评估覆盖数据流,以标识在虚拟路由器模块224上注册的流量,从而使得能够标识并显示相关虚拟机与主机设备之间的流量。流API 256可以以类似的方式标识主机-虚拟机和虚拟机-主机路径。

网络分析系统240可以生成用于在显示设备处呈现的用户界面,诸如用户界面400。例如,仍然参照图2和图4,用户界面模块254生成用户接口400底层的信息,并且使得通信单元215通过网络205输出信号。用户界面设备129检测信号并确定该信号包括足以呈现用户界面的信息。用户界面设备129以图4所示的方式在与用户界面设备129相关联的显示设备处呈现用户界面400。

在图4中,用户界面400呈现在显示窗口401内。用户界面400包括侧边栏区域404、主显示区域406以及选项区域408。侧边栏区域404提供在用户界面400内正在呈现哪种用户界面模式的指示,在图4的示例中,该模式对应于“结构”模式。其他模式可以酌情可用于其他网络分析场景。沿着主显示区域406的顶部是导航界面组件427,该组件也可以用于选择要执行的网络分析的类型或模式。状态通知显示元素428可以提供关于警报的信息或与一个或多个网络、用户、元素或资源有关的其他状态信息。

主显示区域406呈现网络图,并且可以提供在被分析的网络内包括的各种网络设备的拓扑。在图4所示的示例中,网络被图示为具有网络设备、边缘网络设备、主机以及实例,如沿着主显示区域406的底部所示的“图例”指示的。主显示区域406内图示了网络设备与其他组件之间的实际或潜在数据路径。虽然在图4中示出了有限数目的不同类型的网络设备和组件,但在其他示例中,可以呈现和/或具体图示其他类型的设备或组件或元件,包括核心交换机设备、主干设备、叶设备、物理或虚拟路由器、虚拟机、容器和/或其他设备、组件或元件。进一步地,可以在用户界面400内隐藏或最小化网络的一些数据路径或组件(例如,实例),以促进与给定网络分析最相关的组件或数据路径的图示和/或呈现。

选项区域408沿着用户界面400的右手侧提供与正被分析的底层网络有关的多个输入字段(例如,底层五元组输入字段)以及与正被分析的覆盖网络有关的多个输入字段(例如,源和目的地虚拟网络以及IP地址输入字段)。用户界面400借助与一个或多个所显示的输入字段的用户交互来接受输入,并且基于录入到输入字段中的数据,用户界面模块254呈现关于正被分析的网络的响应信息。

例如,在图4的示例中,用户界面400在选项区域408中接受关于特定时间框架(例如,时间范围)、源和目的地虚拟网络以及源和目的地IP地址的输入。在所示的示例中,用户界面400中的底层信息尚未由用户输入指定。使用已经在选项区域408中提供的输入,网络分析系统240确定关于穿过底层网络设备的一个或多个可能的数据路径(例如,最可能的数据路径)的信息。网络分析系统240在选项区域408中指定的时间范围期间,基于由网络分析系统240(例如,收集器模块252)收集的数据,来确定这种可能的数据路径。网络分析系统240的用户界面模块254生成支持用户界面400的呈现的数据,其中,突出一个可能的数据路径(通过用粗线绘制数据路径的每个片段),如图4所示。在一些示例中,可以突出从源虚拟网络到目的地虚拟网络的多于一条数据路径。进一步地,在一些示例中,可以使用热图颜色方案来呈现主显示区域406中的一个或多个数据路径,这意味着数据路径用与正在通过路径通信的数据量相对应或与使用对应路径的程度相对应的颜色(或灰色阴影)图示。虽然图4使用热图颜色(或灰度阴影)方案图示了数据路径,但在其他示例中,可以以其他适当的方式(例如,将颜色应用于主显示区域406的其他元素,呈现弹出窗口或呈现其他用户界面元素)来呈现有关数据路径上或穿过网络设备的利用率或流量的数据。

在一些示例中,选项区域408(或用户界面400的其他区域)可以包括提供关于一条或多条路径上的利用率或流量的信息的图形或其他指示符。在这种示例中,这些图形可以与被录入到选项区域408内的输入字段中的用户输入有关或可以响应于该用户输入而被生成。

图5是图示了根据本公开的一个或多个方面的、由示例网络分析系统执行的操作的流程图。本文在图2的网络分析系统240的上下文中描述了图5。在其他示例中,图5所描述的操作可以由一个或多个其他组件、模块、系统或设备执行。进一步地,在其他示例中,结合图5描述的操作可以被合并,以不同的顺序执行,被省略,或者可以包含未具体图示或描述的附加操作。

在图5所示的过程中,并且根据本公开的一个或多个方面,网络分析系统240可以收集底层流数据(501)和覆盖流数据(502)。例如,在图2中,每个主干设备202和每个叶设备203通过网络205输出相应的信号(例如,sFlow数据)。网络分析系统240的通信单元215检测收集器模块252确定包括底层流数据204的信号。类似地,每个主机设备210内的虚拟路由器模块224通过网络205输出信号。网络分析系统240的通信单元215检测收集器模块252确定包括覆盖流数据206的附加信号。在一些示例中,收集器模块252可以跨多个收集器模块252负载平衡信号的接收,以确保可以处理大量信号而不会延迟和/或不会丢失数据。

网络分析系统240可以存储底层流数据和覆盖流数据(503)。例如,收集器模块252可以将关于所收集的流数据(例如,底层流数据204和覆盖流数据206)的信息输出到数据存储库259。数据存储库259以索引格式存储流数据,并且在一些示例中,以支持快速聚合查询和/或快速随机访问数据检索的结构存储流数据。

网络分析系统240可以接收关于数据流的信息请求(来自504的“是”路径)。例如,用户界面设备129检测输入。在一个这种示例中,用户界面设备129通过网络205输出信号。网络分析系统240的通信单元215检测流API 256确定对应于来自用户界面设备129的用户的信息请求的信号。备选地,网络分析系统240可以继续收集并存储底层流数据204和覆盖流数据206,直到接收到关于数据流的信息请求为止(来自504的“否”路径)。

网络分析系统240可以执行标识关于数据流的信息的查询(505)。例如,当网络分析系统240接收到信息请求时,流程API 256解析该请求并标识可以用于执行查询的信息。在一些情况下,该信息可以包括源和目的地虚拟网络和/或相关的时间框架。在其他示例中,该信息可以包括其他信息,诸如底层源或目的地IP地址或者源或目的地端口号。流API256使用请求内包括的信息来向数据存储库259查询有关一个或多个相关数据流的信息。数据存储库259处理查询,并且将由源虚拟网络与目的地虚拟网络之间的流量使用的一个或多个网络设备的身份输出到流API 256。在一些示例中,网络设备的身份可以使得流API256能够确定由源虚拟网络与目的地虚拟网络之间的流量所遍历的一个或多个可能的数据路径。

为了确定由源虚拟网络与目的地虚拟网络之间的流量使用的网络设备的身份,流API 256可以向数据存储库259查询用于具有与查询中指定的虚拟网络或虚拟IP地址相同的五元组数据(即,源和目的地地址和端口号以及协议)的网络设备的底层流数据。在底层流数据中标识的、与五元组数据相匹配的网络设备被标识为由源虚拟网络与目的地虚拟网络之间的流量所使用的可能网络设备。网络分析系统240可以输出关于数据流的信息(506)。例如,再次参照图2,流API 256可以响应于查询而将关于由流API 256确定的数据路径的信息输出到用户界面模块254。用户界面模块254生成足以呈现包括关于数据流的信息的用户界面的信息。用户界面模块254使得通信单元215通过网络205输出信号,该信号包括足以呈现用户界面的信息。在一些示例中,用户界面设备129接收信号,解析信息,并且呈现图示关于数据流的信息的用户界面。

对于本文描述的过程、装置以及其他示例或图示,包括在任何流程图中,可以按不同的顺序执行在本文描述的任何技术中包括的特定操作、动作、步骤或事件,可以添加、合并或完全不考虑它们(例如,并非所有描述的动作或事件对于实践这些技术都是必需的)。此外,在特定示例中,可以例如借助多线程处理、中断处理或多个处理器同时而不是顺序地执行操作、动作、步骤或事件。即使未被具体标识为自动执行,其他特定操作、动作、步骤或事件也可以自动执行。而且,被描述为自动执行的特定操作、动作、步骤或事件可以备选地不被自动执行,而是在一些示例中,可以响应于输入或另一事件而执行这种操作、动作、步骤或事件。

为了便于说明,在附图内和/或本文引用的其他图示中仅示出了有限数目的设备(例如,用户界面设备129、主干设备202、叶设备203、主机设备210、网络分析系统240以及其他设备)。然而,可以用更多这种系统、组件、设备、模块和/或其他项来执行根据本公开的一个或多个方面的技术,并且对这种系统、组件、设备、模块和/或其他项的集体引用可以表示任何数目的这种系统、组件、设备、模块和/或其他项。

本文所包括的附图各自图示了本公开的方面的至少一个示例实现。然而,本公开的范围不限于这种实现。因此,超过附图所图示的系统、方法或技术的、本文所述的系统、方法或技术的其他示例或备选实现在其他实例中可能是适当的。这种实现可以包括在附图中包括的设备和/或组件的子集和/或可以包括在附图中未示出的附加设备和/或组件。

上面阐述的详细描述被预期为各种配置的描述且不旨在表示可以实践本文所描述的概念的唯一配置。详细描述包括用于提供各种概念的充分理解的目的的具体细节。然而,这些概念可以在没有这些具体细节的情况下实践。在一些实例中,为了避免模糊这种概念,在附图中以框图形式示出公知结构和组件。

因此,虽然可以参考特定附图描述各种系统、设备和/或组件的一个或多个实现,但是可以以多种不同的方式来实现这种系统、设备和/或组件。例如,在本文的附图(例如,图1和/或图2)中被图示为分离设备的一个或多个设备可以备选地被实现为单个设备;被图示为分离组件的一个或多个组件可以备选地被实现为单个组件。而且,在一些示例中,在本文的附图中图示为单个设备的一个或多个设备可以备选地被实现为多个设备;被图示为单个组件的一个或多个组件可以备选地被实现为多个组件。这种多个设备和/或组件中的每一个可以经由有线或无线通信直接耦合和/或经由一个或多个网络远程耦合。而且,可以在本文的各种附图中图示的一个或多个设备或组件可以备选地被实现为未在这种附图中示出的另一设备或组件的一部分。以这种和其他方式,可以经由两个或多个设备或组件的分布式处理来执行本文描述的一些功能。

进一步地,特定操作、技术、特征和/或功能在本文中可以被描述为由特定组件、设备和/或模块执行。在其他示例中,这种操作、技术、特征和/或功能可以由不同组件、设备或模块执行。因此,在本文中可以被描述为归因于一个或多个组件、设备或模块的一些操作、技术、特征和/或功能可以在其他示例中归因于其他组件、设备和/或模块,即使在本文中没有以这种方式具体描述。

虽然已经关于一些示例的描述标识了特定优点,但各种其他示例可以包括所列举优点中的一些、不包括所列举优点或包括所有所列举优点。从本公开,技术或其他方面的其他优点可以对本领域普通技术人员变得明显。进一步地,虽然本文已经公开了特定示例,但本公开的各方面可以使用任何数目的技术来实现,无论当前是否已知,因此,本公开不限于本公开中具体描述和/或图示的示例。

在一个或多个示例中,所述功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则功能可以作为一个或多个指令或代码被存储在计算机可读介质上和/或通过计算机可读介质传输并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质的有形介质、或者通信介质,该通信介质包括促进将计算机程序从一个地方转移到另一个地方(例如,根据通信协议)的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非瞬态的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以便实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。

通过示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备、闪存、或可以用于存储为指令或数据结构的形式且可以由计算机访问的期望程序代码的任何其他介质。而且,任何连接被适当地称为计算机可读介质。例如,如果指令使用同轴电缆、光纤电缆、双绞线、数字订户线路(DSL)或无线技术(诸如红外、无线电以及微波)从网站、服务器或其他远程源传输,那么同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外、无线电以及微波)被包括在介质的定义内。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是致力于非瞬态的有形存储介质。如所用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字化通用光盘(DVD)、软磁盘以及蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘用激光光学地复制数据。上述内容的组合也应被包括在计算机可读介质的范围内。

指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,如本文所用的术语“处理器”或“处理电路”可以分别指任何前述结构或适合于所描述的技术的实现的任何其他结构。另外,在一些示例中,可以在专用硬件和/或软件模块内提供所述功能性。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。

本公开的技术可以在各种各样的设备或装置中实现,包括无线手机、移动或非移动计算设备、可穿戴或不可穿戴计算设备、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述各种组件、模块或单元来强调被配置为执行所公开技术的设备的功能方面,但不是必须需要由不同硬件单元来实现。相反,如上所述,各种单元可以组合在硬件单元中,或者由互操作的硬件单元的集合(包括如上所述的一个或多个处理器,结合合适的软件和/或固件)提供。

相关技术
  • 底层-覆盖相关
  • 支持多租户覆盖网络的可扩展多租户底层网络
技术分类

06120112367830