CN113867885A - 用于应用程序流监控的方法、计算系统和计算机可读介质 - Google Patents
用于应用程序流监控的方法、计算系统和计算机可读介质 Download PDFInfo
- Publication number
- CN113867885A CN113867885A CN202010998080.XA CN202010998080A CN113867885A CN 113867885 A CN113867885 A CN 113867885A CN 202010998080 A CN202010998080 A CN 202010998080A CN 113867885 A CN113867885 A CN 113867885A
- Authority
- CN
- China
- Prior art keywords
- application
- flow
- network
- datagrams
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000012544 monitoring process Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 abstract description 23
- 238000003012 network analysis Methods 0.000 description 86
- 238000004891 communication Methods 0.000 description 39
- 230000006870 function Effects 0.000 description 20
- 230000004044 response Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 15
- 239000004744 fabric Substances 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003362 replicative effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000037406 food intake Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 241000721662 Juniperus Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000011179 visual inspection Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及用于应用程序流监控的方法、计算系统和计算机可读介质。计算系统存储应用程序的规则数据。应用程序的规则数据指定了网络中产生的并且与应用程序相关联的流的特征。计算系统可以从网络收集流数据报的流。另外,计算系统可以基于应用程序的规则数据来识别流数据报的流中与应用程序相关联的流数据报。计算系统可以基于所识别的流数据报生成经丰富的应用程序流数据报的流。经丰富的应用程序流数据报包括指示应用程序的数据。此外,计算系统可以基于经丰富的应用程序流数据报来处理查询的结果。
Description
技术领域
本公开涉及计算机网络的分析。
背景技术
虚拟化数据中心正在成为现代信息技术(IT)基础设施的核心基础。现代数据中心已广泛利用虚拟化环境,其中,在物理计算装置的底层计算平台上部署和执行虚拟主机(例如,虚拟机或容器)。
大规模数据中心内的虚拟化可以提供多种优势,包括高效利用计算资源和简化网络配置。因此,除了虚拟化提供的效率和更高的投资回报(ROI)之外,企业IT人员通常优选数据中心的虚拟化计算集群,因为它们具有管理优势。然而,在分析、评估和/或排除网络运行故障时,虚拟化可能会带来一些挑战。
发明内容
本公开描述了用于应用程序流监控的技术。应用程序流监控包括监控网络中与特定应用程序相关的业务的过程。应用程序流监控可以使网络管理员更好地了解他们管理的网络,实现特定网络管理任务的自动化,和/或执行其他活动。
如本公开所述,计算系统可以存储应用程序的规则数据。应用程序的规则数据指定了网络中产生的与应用程序相关联的流的特征。此外,计算系统可以从网络收集流数据报的流。计算系统可以使用应用程序的规则数据来生成经丰富的应用程序流数据报的流。为了生成经丰富的应用程序流数据报的流,计算系统可以应用应用程序的规则数据来识别流数据报的流中与应用程序相关联的流数据报。计算系统可以基于所识别的流数据报生成经丰富的应用程序流数据报。例如,计算系统可以通过修改所识别的流数据报来指示应用程序,从而生成经丰富的应用程序流数据报。计算系统可以将经丰富的应用程序流数据报或基于经丰富的应用程序流数据报生成的数据,存储在数据库中。此外,计算系统可以执行基于经丰富的应用程序流数据报返回结果的查询。执行这种查询的能力可以使网络管理员能够优化网络、使网络管理任务自动化或执行调整或改进网络功能的其他活动。
在一个示例中,本公开描述了一种方法,该方法包括用于应用程序流监控的方法,该方法包括:由计算系统存储应用程序的规则数据,其中,应用程序的规则数据指定网络内发生的并且与应用程序相关联的流的特征;由计算系统从网络收集流数据报的流;由计算系统基于应用程序的规则数据识别流数据报的流中与应用程序相关联的流数据报;由计算系统基于所识别的流数据报生成经丰富的应用程序流数据报的流,其中,经丰富的应用程序流数据报包括指示应用程序的数据;并且由计算系统基于经丰富的应用程序流数据报处理查询的结果。
在另一示例中,本公开描述了一种计算系统,包括:存储装置,被配置为存储应用程序的规则数据,其中,应用程序的规则数据指定网络内发生的并且与应用程序相关联的流的特征;以及一个或多个处理器,能够访问存储装置并被配置为:从网络收集流数据报的流;基于应用程序的规则数据识别与应用程序相关联的流数据报的流中的流数据报;基于所识别的流数据报生成经丰富的应用程序流数据报的流,其中,经丰富的应用程序流数据报包括指示应用程序的数据;并且基于经丰富的应用程序流数据报处理查询的结果。
在另一示例中,本公开描述了一种计算机可读介质,包括指令,用于使可编程处理器:存储应用程序的规则数据,其中,应用程序的规则数据指定网络内发生的并且与应用程序相关联的流的特征;从网络收集流数据报流;基于应用程序的规则数据,识别流数据报的流中与应用程序相关联的流数据报;基于所识别的流数据报生成经丰富的应用程序流数据报的流,其中,经丰富的应用程序流数据报包括指示应用程序的数据;并基于经丰富的应用程序流数据报处理查询的结果。
在附图和以下描述中阐述一个或多个示例的细节。从说明书和附图以及权利要求书中,其它特征、目的和优点将是显而易见的。
附图说明
图1A是示出根据本公开的一个或多个方面的示例网络的概念图,该网络包括用于分析网络上和/或数据中心内的业务流的系统;
图1B是示出根据本公开的一个或多个方面的用于分析网络上和/或数据中心内的业务流的系统的示例组件的概念图;
图2是示出根据本公开的一个或多个方面的用于分析网络上和/或数据中心内的业务流的示例网络的框图;
图3是示出根据本公开的一个或多个方面的网络分析系统的组件监控应用程序流的示例交互的框图;
图4是示出根据本公开的一个或多个方面的用于配置新应用程序的示例界面的概念图;
图5是示出根据本公开的一个或多个方面的用于向应用程序添加规则的示例界面的概念图;
图6是示出根据本公开的一种或多种技术的示例方法的流程图。
具体实施方式
使用虚拟化环境的数据中心提供了效率、成本和组织优势,在虚拟化环境中,在物理计算装置的底层计算平台上部署和执行虚拟主机(例如,虚拟机或容器)。然而,获得对应用程序工作负载的有意义的了解对于管理任何数据中心结构都是至关重要的。从网络装置收集流数据报(可能包括业务样本)可能有助于提供这样的了解。根据本公开的一个或多个方面,计算系统可以使用一组规则使用应用程序标识符丰富流数据报。在本文描述的各种示例中,可以收集这种经丰富的应用程序流数据报,然后通过分析算法进行处理,从而使得能够执行应用程序流监控。在一些示例中,可以生成用户接口,以实现所收集数据的可视化以及底层基础设施如何与各种覆盖网络相关联。在用户接口中呈现这样的数据可以提供对网络的了解,并且为用户、管理员和/或其他人员提供用于网络发现、调查和故障排除的工具。
图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数据报、NetFlow数据报等),网络装置110可包括任何类型的计算装置、传感器、相机、节点、监视装置或其他装置。此外,一些或所有网络装置110可以表示另一装置的组件,其中,这种组件可以生成可通过遥测或其他方式收集的数据。例如,一些或所有网络装置110可以表示物理或虚拟网络装置,例如,交换机、路由器、集线器、网关、安全装置(例如,防火墙、入侵检测和/或入侵预防装置)。
虽然未具体示出,但是交换结构121可以包括耦接到机箱交换机的分布层的架顶式(TOR)交换机,并且数据中心101可以包括一个或多个非边缘交换机、路由器、集线器、网关、安全装置(例如,防火墙、入侵检测和/或入侵预防装置)、服务器、计算机终端、膝上型计算机、打印机、数据库、无线移动装置(例如,蜂窝电话或个人数字助理)、无线接入点、网桥、电缆调制解调器、应用程序加速器或其他网络装置。交换结构121可以执行第3层路由,以通过服务提供商网络106在数据中心101和客户104之间路由网络流量。网关108用于在交换结构121和服务提供商网络106之间转发和接收分组。
根据本公开的一个或多个示例,软件定义网络(“SDN”)控制器132提供逻辑上并且在一些情况下物理上集中的控制器,用于促进数据中心101内的一个或多个虚拟网络的操作。在一些示例中,SDN控制器132响应于经由北向API 131从编排引擎130接收的配置输入而操作,北向API131又可以响应于从与用户接口装置129交互和/或操作用户接口装置129的管理员128接收的配置输入而操作。
用户接口装置129可以被实现为用于呈现输出和/或接受用户输入的任何合适的装置。例如,用户接口装置129可以包括显示器。用户接口装置129可以是计算系统,例如,由用户和/或管理员128操作的移动或非移动计算装置。根据本公开的一个或多个方面,用户接口装置129可以例如表示工作站、膝上型或笔记本计算机、台式计算机、平板计算机或可以由用户操作和/或呈现用户接口的任何其他计算装置。在一些示例中,用户接口装置129可以与控制器物理分离和/或位于不同的位置。在这样的示例中,用户接口装置129可以通过网络或其他通信手段与控制器通信。在其他示例中,用户接口装置129可以是控制器的本地外围装置,或者可以集成到控制器中。
在一些示例中,编排引擎130管理数据中心101的功能,例如,计算、存储、联网和应用程序资源。例如,编排引擎130可以为数据中心101内或数据中心上的租户创建虚拟网络。编排引擎130可以将虚拟机(VM)连接到租户的虚拟网络。编排引擎130可以将租户的虚拟网络连接到外部网络,例如,互联网或VPN。编排引擎130可以在一组VM上或向租户网络的边界实施安全策略。编排引擎130可以在租户的虚拟网络中部署网络服务(例如,负载均衡器)。
在一些示例中,SDN控制器132管理网络和联网服务(例如,负载均衡、安全性),并且可以经由南向API 133将资源从用作主机装置的装置110分配给各种应用程序。即,南向API 133表示一组通信协议,该通信协议由SDN控制器132适用以使网络的实际状态等于由编排引擎130指定的期望状态。例如,SDN控制器132可以通过配置物理交换机(例如,TOR交换机、机箱交换机和交换结构121);物理路由器;物理服务节点(例如,防火墙和负载均衡器);以及虚拟服务(例如,VM中的虚拟防火墙)来实现来自编排引擎130的高级请求。SDN控制器132在状态数据库中维护路由、联网和配置信息。
网络分析系统140与一个或多个装置110(和/或其他装置)交互,以收集来自数据中心101和/或网络系统100的流数据报(flow datagram)。流数据报是包括表示网络业务流的数据的数据报。例如,在数据中心101和/或网络系统100内运行的代理可以对数据中心101和/或网络系统100内的分组流进行采样,并将采样的分组打包成流数据报。代理可以将流数据报转发给网络分析系统140,从而使网络分析系统140能够收集流数据报。这种流数据报可以包括底层流数据和覆盖流数据。在一些示例中,底层流数据可以通过在OSI模型的第2层收集的流数据样本来收集。覆盖流数据可以是从网络系统100内建立的一个或多个虚拟网络上的覆盖业务中导出的数据(例如,数据样本)。覆盖流数据可以例如包括识别源虚拟网络和目的虚拟网络的信息。
根据本公开的一个或多个方面,图1A的网络分析系统140可以配置每个装置110以生成流数据报。例如,在可以参考图1A描述的示例中,网络分析系统140向每个装置110输出信号。每个装置110接收信号并将该信号解释为生成包括指示底层流数据和/或覆盖流数据的流数据报的流数据报的命令。此后,当数据分组被每个装置110处理时,每个装置110将包括底层流数据和/或覆盖流数据的流数据报传送到网络分析系统140。在图1A的示例中,其他网络装置(包括交换结构121内的网络装置(未具体示出))也可以被配置为生成流数据报。网络分析系统140接收流数据报。
另外,网络分析系统140存储一个或多个应用程序的规则数据。在本公开中,“应用程序”是特定类型的业务数据的标签。在一些示例中,应用程序可以是通用服务、内部服务或外部应用程序。可以基于端口和协议的计算来识别通用服务。通用服务的示例可以包括在传输控制协议(TCP)中端口80和超文本传输协议(HTTP)中端口443和超文本传输协议安全(HTTPS)中端口22和安全外壳(SSH)等。内部服务可以是部署在虚拟机(VM)或一组VM上的自定义服务。内部服务可以通过互联网协议(IP)地址、端口、协议和虚拟网络(VN)的组合来识别。外部应用程序可以是与业务相关的全局服务名称。外部应用程序可以通过端口、IP地址、域名服务(DNS)域等的组合来识别。
如上所述,网络分析系统140可以接收流数据报的流。网络分析系统140可以使用应用程序的规则数据来识别流数据报的流中与应用程序相关联的流数据报。另外,网络分析系统140可以基于所识别的流数据报生成经丰富的应用程序(application-enriched)流数据报。例如,网络分析系统140可以修改所识别的流数据报,以指定应用程序的应用程序标识符。
此外,网络分析系统140可以基于经丰富的应用程序流数据报处理返回结果的查询。例如,用户接口装置129检测输入并将关于输入的信息输出到网络分析系统140。网络分析系统140确定该信息对应于用户接口装置129的用户对关于网络系统100的信息的请求。网络分析系统140通过查询存储的流数据来处理该请求。网络分析系统140基于存储的流数据生成对查询的响应,并将关于该响应的信息输出到用户接口装置129。
通过处理某些查询,网络分析系统140可以使用经丰富的应用程序流数据报来回答诸如“哪个应用程序在网络系统100中产生最多的业务?”、“对于特定应用程序,业务在网络系统100中是如何分布的?”、“主机之间的应用程序业务如何平衡?”、“哪些应用程序正在特定主机或虚拟机上运行?”等查询。在不使用识别应用程序的信息来丰富流数据报的情况下,就不可能提供这种查询的答案。
虽然本公开主要讨论应用程序,但是本公开中对应用程序的讨论也可以应用于微服务。
图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接收流数据报。负载均衡器141可以在多个流收集器上分发流数据报,以确保流收集器的主动/主动故障转移策略。在一些示例中,可能需要多个负载均衡器141来确保高可用性和可伸缩性。
流收集器142从负载均衡器141收集流数据报。例如,网络分析系统140的流收集器142接收并处理来自装置110的流数据报(在由负载均衡器141处理之后)。流收集器142向队列和事件存储器143上游发送流数据报。在一些示例中,流收集器142可以以sFlow、NetFlowv9、IPFIX、jFlow、轨迹流和其他格式进行寻址、处理和/或容纳统一的数据报。流收集器142能够解析sFlow数据报和其他流数据报中的内部报头(即,至少部分封装的分组的报头)。流收集器142可能能够处理消息溢出、具有拓扑信息(例如,AppFormix拓扑信息)的丰富的流记录以及其他类型的消息和数据报。流收集器142还能够在向队列和事件存储器143写入或发送数据之前将数据转换成二进制格式。“sFlow”类型的底层流数据是指“采样流”,是OSI模型的第2层的分组导出标准。提供了一种导出截断分组的方法以及用于网络监控的接口计数器。
从内部(底层)分组,流收集器142可以解析源IP、目的地IP、源端口、目的地端口和协议。某些类型的流数据报(包括sFlow数据)仅包括一部分采样网络业务(例如,前128字节),因此在某些情况下,流数据可能不包括所有内部字段。在这样的示例中,这样的数据可以被标记为缺失。
队列和事件存储器143可以从一个或多个流收集器142接收数据,存储数据,并使数据可用于数据存储器145中的摄取。在一些示例中,这使得能够将接收和存储大量数据的任务与索引数据并为分析查询准备数据的任务分开。在一些示例中,队列和事件存储器143还可以使独立用户能够直接消耗流记录的流。在一些示例中,队列和事件存储器143可用于发现异常并实时产生警报。在一些示例中,可以通过读取封装的分组来解析流数据,包括VXLAN、基于UDP的MPLS和基于GRE的MPLS。
拓扑和度量源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的查询。为了创建查询,流API 146可以使用来自拓扑和度量源144的拓扑信息。流API 146可以代表用户接口装置129使用一个或多个这样的查询来执行分析。这种分析可以包括业务去重、覆盖-底层关联、业务路径识别和/或热图业务计算。具体地,这种分析可以涉及将底层流数据与覆盖流数据相关联,从而能够识别哪些底层网络装置与通过虚拟网络和/或在两个虚拟机之间流动的业务相关。通过根据本公开的一个或多个方面的技术,网络分析系统140能够将数据流与数据中心(例如,多租户数据中心)中的应用程序相关联。
图2是示出根据本公开的一个或多个方面的用于分析网络上和/或数据中心内的业务流的示例网络的框图。图2的网络系统200可以被描述为图1A或图1B的网络系统100的示例或替代实现。可以在图1A或图1B的上下文中描述图2的一个或多个方面。
尽管诸如图1A、图1B和图2所示的数据中心可以由任何实体操作,但是一些数据中心由服务提供商操作,其中,这种服务提供商的商业模式是向其客户提供计算能力。因此,数据中心通常包含大量计算节点或主机装置。为了高效运行,这些主机必须相互连接并连接到外部世界,并且通过物理网络装置提供这种能力,这些装置可能以叶-主干拓扑互连。这些物理装置(例如,网络装置和主机)的集合构成了底层网络。
这样的数据中心中的主机装置通常有多个虚拟机在其上运行,这称为工作负载。数据中心的客户端通常可以访问这些工作负载,并可以使用这些工作负载安装应用程序和执行其他操作。在不同主机装置上运行但可由一个特定客户端访问的工作负载被组织到虚拟网络中。每个客户端通常至少有一个虚拟网络。这些虚拟网络也称为覆盖网络。
在图2的示例中,网络205连接网络分析系统240、网络装置210A、网络装置210B和网络装置210N。网络分析系统240可以对应于图1A和图1B所示的网络分析系统140的示例或替代实现。网络装置210A、网络装置210B至网络装置210N可以统称为“网络装置210”,表示任意数量的网络装置210。
每个网络装置210可以是图1A和图1B的装置110的示例。在一些示例中,一个或多个网络装置210执行多个虚拟计算实例,例如,虚拟机228。
可以由管理员128操作的用户接口装置129也连接到网络205,如图1A和图1B所示。在一些示例中,用户接口装置129可以在与用户接口装置129相关联的显示装置处呈现一个或多个用户界面,其中一些用户接口可以具有类似于用户界面400的形式。在一些示例中,用户接口装置129可以呈现用于配置应用程序、建立规则、查看查询结果等的用户界面。在本公开的其他地方更详细描述的图4和图5是可以由用户接口装置129呈现的用户界面的示例。
图2还示出了在网络系统200内流动的底层流数据报204和覆盖流数据报206。具体地,底层流数据报204被示出离开主干装置202A并流向网络分析系统240。类似地,覆盖流数据报206被示为离开网络装置210A并流过网络205。在一些示例中,覆盖流数据报206通过网络205被传送到网络分析系统240,如本文所述。为简单起见,图2示出了单个底层流数据报和单个覆盖流数据报。然而,应该理解,每个主干装置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可以是蜂窝、ZigBee、蓝牙、近场通信(NFC)、卫星、企业、服务提供商和/或能够在计算系统、服务器和计算装置之间传输数据的其他类型的网络。一个或多个客户端装置、服务器装置或其他装置可以使用任何合适的通信技术通过网络205发送和接收数据、命令、控制信号和/或其他信息。网络205可以包括一个或多个网络集线器、网络交换机、网络路由器、圆盘式卫星电视天线或任何其他网络设备。这些装置或组件可以可操作地相互耦接,从而提供计算机、装置或其他组件之间(例如,一个或多个客户端装置或系统与一个或多个服务器装置或系统之间)的信息交换。图2所示的每个装置或系统可以使用一个或多个网络链路可操作地耦接到网络205。将这种装置或系统耦接到网络205的链路可以是以太网、异步传输模式(ATM)或其他类型的网络连接,并且这种连接可以是无线和/或有线连接。图2所示的一个或多个装置或系统或以其他方式在网络205上的一个或多个装置或系统可以相对于一个或多个示出的其他装置或系统位于远程位置。
网络分析系统240可以被实现为任何合适的计算系统,例如,一个或多个服务器计算机、工作站、大型机、设备、云计算系统和/或能够执行根据本公开的一个或多个方面描述的操作和/或功能的其他计算系统。在一些示例中,网络分析系统240表示向客户端装置和其他装置或系统提供服务的云计算系统、服务器群和/或服务器集群(或其一部分)。在其他示例中,网络分析系统240可以表示数据中心、云计算系统、服务器群和/或服务器集群的一个或多个虚拟化计算实例(例如,虚拟机、容器)或通过数据中心、云计算系统、服务器群和/或服务器集群的一个或多个虚拟化计算实例(例如,虚拟机、容器)来实现。
在图2的示例中,网络分析系统240可以包括电源241、一个或多个处理器243、一个或多个通信单元245、一个或多个输入装置246以及一个或多个输出装置247。存储装置250可以包括一个或多个收集器模块252、命令接口模块254、规则管理器255、API服务器256、规则数据库257、高速缓存258、流数据库259和警报模块260。
网络分析系统240的一个或多个装置、模块、存储区域或其他组件可以互连,以实现组件间通信(物理地、通信地和/或可操作地)。在一些示例中,可以通过通信信道(例如,通信信道242)、系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法来提供这种连接。
电源241可以向网络分析系统240的一个或多个组件供电。电源241可以从数据中心、建筑物、家庭或其他位置的主交流(AC)电源接收电力。在其他示例中,电源241可以是电池或提供直流(DC)的装置。在又一些示例中,网络分析系统240和/或电源241可以从其他源接收电力。网络分析系统240中示出的一个或多个装置或组件可以连接到电源241,和/或可以从电源241接收电力。电源241可以具有智能功率管理或消耗能力,并且这些特征可以由网络分析系统240的一个或多个模块和/或一个或多个处理器243控制、访问或调整,以智能地消耗、分配、供应或以其他方式管理电力。
网络分析系统240的一个或多个处理器243可以实现与网络分析系统240相关联的或者与本文示出和/或描述的一个或多个模块相关联的功能和/或执行与网络分析系统240相关联的或者与本文示出和/或描述的一个或多个模块相关联的指令。一个或多个处理器243可以是根据本公开的一个或多个方面执行操作的处理电路、可以是根据本公开的一个或多个方面执行操作的处理电路的一部分和/或可以包括根据本公开的一个或多个方面执行操作的处理电路。处理器243的示例包括微处理器、应用程序处理器、显示控制器、辅助处理器、一个或多个传感器集线器以及被配置为用作处理器、处理单元或处理装置的任何其他硬件。中央监控系统可以使用一个或多个处理器243来使用驻留在网络分析系统240中和/或在网络分析系统240处执行的软件、硬件、固件或硬件、软件和固件的组合来根据本公开的一个或多个方面执行操作。
网络分析系统240的一个或多个通信单元245可以通过发送和/或接收数据来与网络分析系统240外部的装置通信,并且在某些方面,可以作为输入装置和输出装置来操作。在一些示例中,通信单元245可以通过网络与其他装置通信。在其他示例中,通信单元245可以在诸如蜂窝无线电网络的无线电网络上发送和/或接收无线电信号。通信单元245的示例包括网络接口卡(例如,以太网卡)、光收发器、射频收发器、GPS接收器或能够发送和/或接收信息的任何其他类型的装置。通信单元245的其他示例可以包括能够通过GPS、NFC、ZigBee和蜂窝网络(例如,3G、4G、5G)进行通信的装置、以及在移动装置以及通用串行总线(USB)控制器等中发现的无线电。这种通信可以坚持、实现或遵守适当的协议,包括传输控制协议/互联网协议(TCP/IP)、以太网、蓝牙、NFC或其他技术或协议。
一个或多个输入装置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可以生成足以生成一组用户接口的信息,并且使得通信单元245通过网络205输出这样的信息,以供用户接口装置129使用,以在与用户接口装置129相关联的显示装置上呈现一个或多个用户界面。
API服务器256可以执行涉及存储在流数据库259中的数据的分析查询,从底层流数据报204和覆盖流数据报206的集合中导出该数据。在一些示例中,API服务器256可以接收从HTTP POST请求导出的信息形式的请求,并且作为响应,可以将该请求转换成要在流数据库259上执行的查询。此外,在一些示例中,API服务器256可以获取与装置110相关的拓扑信息,并执行包括数据去重、覆盖-底层关联、业务路径识别和热图业务计算的分析。
流数据库259可以表示用于存储与数据流信息相关的信息的任何合适的数据结构或存储介质,包括从底层流数据报204和覆盖流数据报206导出的流数据报的存储。根据本公开的技术,流数据库259可以存储使用应用程序标识符丰富的经丰富的应用程序流数据报或其他数据。流数据库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,管理程序221包括内核模块222、虚拟路由器模块224和代理模块226。虚拟机228A至228N(统称为“虚拟机228”并表示任意数量的虚拟机228)在管理程序221之上执行或由管理程序221控制。类似地,虚拟路由器代理(VRA)229可以在管理程序221上或在管理程序221控制下执行。网络装置210A的一个或多个装置、模块、存储区域或其他组件可以互连,以实现组件间通信(物理地、通信地和/或可操作地)。在一些示例中,可以通过通信信道(例如,通信信道212)、系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法来提供这种连接。
电源211可以向网络装置210A的一个或多个组件供电。处理器213可以实现与网络装置210A相关联的功能和/或执行与网络装置210A相关联的指令。通信单元215可以代表网络装置210A与其他装置或系统通信。一个或多个输入装置216和输出装置217可以表示与网络装置210A相关联的任何其他输入和/或输出装置。存储装置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还可以负责收集覆盖流数据,例如,当在部署有轨迹SDN的基础设施中使用时的轨迹流数据。因此,每个网络装置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可以表示运行客户应用程序的租户虚拟机,例如,网络服务器、数据库服务器、企业应用程序或用于创建服务链的托管虚拟化服务。在一些情况下,网络装置210或另一计算装置中的任何一个或多个直接托管客户应用程序,即,不作为虚拟机。尽管在虚拟机或虚拟主机方面描述了本公开的一个或多个方面,但是根据本公开的一个或多个方面的在本文针对这些虚拟机或虚拟主机描述的技术,也可以应用于在网络装置210上执行的容器、应用程序、进程或其他执行单元(虚拟化或非虚拟化)。
在图2的示例中,虚拟路由器代理229包括在网络装置210A内,并且可以与SDN控制器132和虚拟路由器模块224通信,以便控制虚拟网络的覆盖并且协调网络装置210A内的数据分组的路由。通常,虚拟路由器代理229与SDN控制器132通信,SDN控制器132生成命令以通过数据中心101控制分组的路由。虚拟路由器代理229可以在用户空间中执行,并且用作虚拟机228和SDN控制器132之间的控制平面消息的代理。例如,虚拟机228A可以请求经由虚拟路由器代理229使用其虚拟地址发送消息,并且虚拟路由器代理229又可以发送该消息,并且请求针对发起第一消息的虚拟机228A的虚拟地址接收对该消息的响应。在一些情况下,虚拟机228A可以启用由虚拟路由器代理229的应用程序编程接口呈现的过程或函数调用,并且在这样的示例中,虚拟路由器代理229也处理消息的封装,包括寻址。
网络分析系统240可以配置主干装置202和叶装置203中的每一个,以生成底层流数据报204。例如,在可以参考图2描述的示例中,网络分析系统240的收集器模块252使得通信单元245通过网络205输出一个或多个信号。主干装置202和叶装置203中的每一个都检测信号,并将该信号解释为能够生成底层流数据报204的命令。例如,在检测到来自网络分析系统240的信号时,主干装置202A可以将其自身配置为收集sFlow数据,并通过网络205将sFlow数据报(作为底层流数据报204)传送给网络分析系统240。作为另一示例,在检测到来自网络分析系统240的信号时,叶装置203A检测到信号,并将其自身配置为生成sFlow数据报,并通过网络205将sFlow数据报传送到网络分析系统240。此外,在一些示例中,每个网络装置210可以检测来自网络分析系统240的信号,并将该信号解释为能够生成sFlow数据报的命令。因此,在一些示例中,sFlow数据报可以由在网络装置210上执行的收集器模块(代理)生成。
因此,在所描述的示例中,主干装置202、叶装置203(以及可能的一个或多个网络装置210)生成sFlow数据报。然而,在其他示例中,一个或多个这样的装置可以生成其他类型的底层流数据报204,例如,IPFIX和/或NetFlow数据。收集任何这样的底层流数据报可能涉及收集5元组数据,包括源和目的地IP地址、源和目的地端口号以及所使用的网络协议。
网络分析系统240可以配置每个网络装置210来生成覆盖流数据报206。例如,继续参考图2描述的示例,收集器模块252使通信单元245通过网络205输出一个或多个信号。每个网络装置210检测被解释为生成覆盖流数据报206并将覆盖流数据报206传送到网络分析系统240的命令的信号。例如,参考网络装置210A,网络装置210A的通信单元215通过网络205检测信号,并将关于该信号的信息输出到管理程序221。管理程序221向代理模块226输出信息。代理模块226将来自管理程序221的信息解释为生成覆盖流数据报206的命令。代理模块226配置虚拟路由器模块224,以生成覆盖流数据报206并将覆盖流数据报206传送给网络分析系统240。
在至少一些示例中,覆盖流数据报206包括关于源地址和目的地地址、端口和协议的5元组信息。此外,覆盖流数据报206可以包括关于与流相关联的虚拟网络的信息,包括源虚拟网络和目的地虚拟网络。在一些示例中,特别是对于使用可从加利福尼亚州森尼维尔的Juniper Networks公司获得的轨迹SDN配置的网络,覆盖流数据报206可以对应于轨迹流数据(Contrail Flow data)。
在所描述的示例中,代理模块226配置虚拟路由器模块224来生成覆盖流数据报206。然而,在其他示例中,管理程序221可以配置虚拟路由器模块224来生成覆盖流数据报206。此外,在其他示例中,覆盖流数据报206数据可以由另一模块(替代地或额外地)生成,例如,代理模块226,或者甚至由管理程序221或内核模块222生成。因此,在一些示例中,网络装置210可以生成底层流数据报(sFlow数据报)和覆盖流数据报(例如,轨迹流数据报)两者。
网络分析系统240可以接收底层流数据报204和覆盖流数据报206两者。例如,继续该示例并参考图2,主干装置202A采样、检测、感测和/或生成底层流数据报204。主干装置202A通过网络205输出信号。网络分析系统240的通信单元245检测来自主干装置202A的信号,并将关于该信号的信息输出到收集器模块252。收集器模块252确定该信号包括关于底层流数据报204的信息。
类似地,网络装置210A的虚拟路由器模块224在网络装置210A处采样、检测、感知和/或生成覆盖流数据报206。虚拟路由器模块224使网络装置210A的通信单元215通过网络205输出信号。网络分析系统240的通信单元245检测来自网络装置210A的信号,并将关于该信号的信息输出到收集器模块252。收集器模块252确定该信号包括关于覆盖流数据报206的信息。
网络分析系统240可以处理从网络系统100内的各种装置接收的底层流数据报204和覆盖流数据报206。例如,仍然继续相同的示例,收集器模块252通过在多个收集器模块252上分配信号来处理从主干装置202A、网络装置210A和其他装置接收的流数据报。在一些示例中,每个收集器模块252可以在不同的物理服务器上执行,并且可以独立地和水平地缩放,以处理来自主干装置202、叶装置203和网络装置210的业务流的期望量或峰值容量。每个收集器模块252存储底层流数据报204和覆盖流数据报206的每个实例,并使存储的流数据报可用于在流数据库259中摄取。收集器模块252索引流数据报,并准备流数据报以供分析查询使用。
规则管理器255获得一组规则。例如,命令接口模块254可以接收该组规则的用户输入的指示。在该示例中,命令接口模块254可以向规则管理器255提供该组规则。规则管理器255可以将规则存储在规则数据库257中用于永久存储。在一些示例中,规则数据库257被实现为PostgreSQL数据库。在其他示例中,规则数据库257使用其他类型的数据库来实现。每个规则都指定了如何将流与应用程序相关联。规则管理器255使用存储在规则数据库257中的规则来配置收集器模块252,以将流与应用程序相关联,或者更具体地,将流与应用程序标识符相关联。应用程序标识符包括识别应用程序的数据。
高速缓存258可以存储VN信息。高速缓存258可以被实现为Redis高速缓存。收集器模块252可以导出流数据报的VN信息,并且可以将导出的VN信息存储在高速缓存258中。收集器模块252可以使用存储在高速缓存258中的信息来避免查询流数据库259,以确定VN信息。
例如,sFlow数据报不指定源VN信息或目的地VN信息。相反,sFlow数据报包含一个VN字段。另一方面,覆盖流数据报确实包括指定源VN和目的地VN的字段。然而,将底层网络数据报与源和目的地VN相关联可能是有价值的。每个覆盖流数据报和底层流数据报包括指定源IP地址、目的地IP地址、源端口、目的地端口和协议的5元组。5元组中值的不同组合对应于不同的流。高速缓存258存储键值映射。键值对的每个键指定由收集器模块252在任一覆盖流数据报中接收的5元组的实例。键值对的每个值都指定了在覆盖流数据报中指定的源VN和目的地VN。当任何收集器模块252接收到底层流数据报(例如,sFlow数据报)时,收集器模块确定底层流数据报的5元组是否被指定为存储在高速缓存258中的键值对中的键。如果这样,收集器模块可以丰富底层流数据报,以指定由键值对的值指示的源VN和目的地VN。这样,被丰富的底层源数据报可以存储到流数据库259中。以这种方式使用高速缓存258来丰富底层流数据报,可以避免对流数据库259执行查询以确定与底层流数据报相关联的源和目的地VN的需要。
网络分析系统240可以在流数据库259中存储底层流数据报204和覆盖流数据报206。例如,在图2中,收集器模块252向流数据库259输出信息。流数据库259确定该信息对应于底层流数据报204和覆盖流数据报206。流数据库259以索引格式存储数据,实现快速聚合查询和快速随机访问数据检索。在一些示例中,流数据库259可以通过在可能位于多个物理主机上的多个存储装置上分享和复制数据来实现容错和高可用性。
根据本公开的一种或多种技术,收集器模块252可以使用应用程序的规则数据来识别与该应用程序相关联的流数据报。收集器模块252可以生成关于与应用程序相关联的流的流数据报(即,经丰富的应用程序流数据报),并且可以将经丰富的应用程序流数据报存储在流数据库259中。流收集器142(图1A)可以以与收集器模块252相同的方式操作。
网络分析系统240的命令接口模块254可以接收查询。例如,仍然继续相同的示例并参考图2,用户接口装置129检测输入,并通过网络205输出从该输入导出的信号。网络分析系统240的通信单元245检测信号并将信息提供给命令接口模块254,命令接口模块254又基于所提供的信息向API服务器256提供查询。该查询可以是对于给定时间窗口的关于网络系统200的信息的请求。API服务器256处理对流数据库259中的数据的查询。例如,用户接口装置129的用户(例如,管理员128)可能想要确定哪些网络装置210涉及与特定应用程序相关联的流。API 146(图1A)可以以与API服务器256相同的方式操作。
网络分析系统240可以使基于查询结果的用户界面呈现在用户接口装置129上。例如,API服务器256可以向命令接口模块254输出关于查询结果的信息。在该示例中,命令接口模块254使用来自API服务器256的信息来生成足以创建用户界面的数据。此外,在该示例中,命令接口模块254使得通信单元245通过网络205输出信号。在该示例中,用户接口装置129检测该信号,并基于该信号生成用户界面(例如,用户界面400)。用户接口装置129在与用户接口装置129相关联的显示器上呈现用户界面。
在图2中示出的(例如,虚拟路由器模块224、代理模块226、收集器模块252、命令接口模块254、规则管理器255、API服务器256)和/或在本公开的其他地方示出或描述的模块可以执行使用驻留在一个或多个计算装置中和/或在一个或多个计算装置上执行的软件、硬件、固件或硬件、软件和固件的组合描述的操作。例如,计算装置可以使用多个处理器或多个装置来执行一个或多个这样的模块。计算装置可以作为在底层硬件上执行的虚拟机来执行一个或多个这样的模块。一个或多个这样的模块可以作为操作系统或计算平台的一个或多个服务来执行。一个或多个这样的模块可以作为一个或多个可执行程序在计算平台的应用层执行。在其他示例中,模块提供的功能可以由专用硬件装置实现。
尽管可以单独示出包含在一个或多个存储装置中的某些模块、数据存储、组件、程序、可执行文件、数据项、功能单元和/或其他项,但是这些项中的一个或多个可以组合并作为单个模块、组件、程序、可执行文件、数据项或功能单元来操作。例如,一个或多个模块或数据存储可以组合或部分组合,使得它们作为单个模块操作或提供功能。此外,一个或多个模块可以相互作用和/或彼此结合操作,使得例如一个模块用作另一模块的服务或扩展。此外,存储装置内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其他项可以包括多个组件、子组件、模块、子模块、数据存储和/或未示出的其他组件或模块或数据存储。
此外,存储装置内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其他项可以以各种方式实现。例如,存储装置内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为可下载或预安装的应用程序或“app”。在其他示例中,存储装置内示出的每个模块、数据存储、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为在计算装置上执行的操作系统的一部分。
图3是示出根据本公开的一个或多个方面的网络分析系统240的组件监控应用程序流的示例交互的框图。在图3的示例中,网络分析系统240包括收集器模块252、命令接口模块254、规则管理器255、API服务器256、规则数据库257、高速缓存258和流数据库259。在其他示例中,网络分析系统240可以包括更多、更少或不同的额外组件。例如,在其他示例中,网络分析系统240可以包括警报模块260(图2)或其他组件。
在图3的示例中,命令接口模块254可以接收一个或多个应用程序的规则数据。在一些示例中,命令接口模块254可以接收指定一个或多个应用程序的规则数据的用户输入的指示。因此,在一些示例中,用户可以使用命令接口模块254来定义和管理来自命令接口模块254的应用程序的规则。在命令接口模块254接收指定规则数据的用户输入的指示的示例中,命令接口模块254可以被认为是命令用户界面(UI)模块。下面更详细描述的图4和图5是用户可以用来配置规则的用户界面的示例。在其他示例中,命令接口模块254可以从另一计算系统接收规则数据。命令接口模块254向规则管理器255提供规则数据。
规则管理器255管理为应用程序配置的规则。如图3的示例所示,规则管理器255从命令接口模块254接收规则数据。另外,规则管理器255将规则数据存储在规则数据库257中。在一些示例中,规则管理器255将每个应用程序与唯一应用程序标识符(ID)、应用程序名称或持续时间中的一个或多个相关联。示例应用程序名称可能包括SSH、HTTPS、Apache软件基金会的等。应用程序的持续时间是应用程序有效的时间范围。在一些示例中,应用程序的持续时间的结束日期和/或结束时间可以是未定义的。
规则管理器255可以管理应用程序的多个规则。应用程序的每个规则都可以用作检测过滤器以将流数据报与应用程序相关联。应用程序的规则可以指定一组字段的值。包含在与应用程序相关联的流数据报中的数据具有该组字段的指定值。该组字段可以包括以下一项或多项:
·源端口,
·目的地端口,
·源IP地址,
·目的地IP地址,
·协议,
·覆盖源端口,
·覆盖目的地端口,
·覆盖源IP地址,
·覆盖目的地IP地址,
·覆盖协议,
·覆盖源VN,或
·覆盖目的地VN。
收集器模块252可以使用应用程序的规则来生成经丰富的应用程序流数据报。经丰富的应用程序流数据报可以包括应用程序的应用程序标识符。例如,如果一个收集器模块252接收到流数据报,该流数据报包含指示由应用程序的规则指定的值的源端口字段、指示由应用程序的规则指定的值的目的地端口字段、指示由应用程序的规则指定的值的源IP地址、指示由应用程序的规则指定的值的目的地IP地址,则收集器模块可以确定流数据报与应用程序相关联。流数据报可以是底层流数据报或覆盖流数据报。在一些示例中,覆盖流数据报可以称为轨迹流数据报。
如上所述,该组字段可以包括覆盖源VN和/或覆盖目的地VN。覆盖源VN和覆盖目的地VN可能没有在收集器模块252接收的单个分组中明确指定。因此,收集器模块252可以使用存储在高速缓存258中的数据来基于分组中的其他信息来确定分组的覆盖源VN和/或覆盖目的地VN。
此外,如图3的示例所示,收集器模块252可以将经丰富的应用程序流数据报存储在流数据库259中。在一些示例中,收集器模块252可以基于经丰富的应用程序流数据报而生成数据,并将结果数据存储在流数据库259中,而不是直接将经丰富的应用程序流数据报的流存储在流数据库259中。
API服务器256可以从规则管理器255接收规则标识符到应用程序名称的映射。规则标识符到应用程序名称的映射包括将规则中使用的应用程序标识符(即,规则标识符)映射到人类可读的应用程序名称的数据。
另外,API服务器256可以从命令接口模块254接收查询。API服务器256可以响应于基于经丰富的应用程序流数据报的查询来生成结果。在一些示例中,经丰富的应用程序流数据报包括应用程序标识符(例如,规则标识符),而不包括人类可读的应用程序名称。因此,API服务器256可以使用规则标识符到应用程序名称的映射来将查询结果中的规则标识符转换成人类可读的应用程序名称。
图4是示出根据本公开的一个或多个方面的用于配置新应用程序的示例界面400的概念图。图5是示出根据本公开的一个或多个方面的用于向应用程序添加规则的示例界面500的概念图。在图4和图5的示例中,用户可以首先使用界面400来配置新应用程序,然后可以使用界面500来设置和管理应用程序的规则。
如图4的示例所示,界面400包括应用程序名称元件402、覆盖网络元件404、底层网络元件406、时间范围元件408、取消按钮410和创建按钮412。应用程序名称元件402允许输入应用程序的应用程序名称。应用程序的应用程序名称可用于规则标识符到应用程序名称的映射。覆盖网络元件404包括用于指定与覆盖网络中应用程序相关联的流的特征的输入特征。底层网络元件406包括用于指定与底层网络中的应用程序相关联的流的特征的输入特征。时间范围元件408的选择可以使得界面400显示用于接收指示应用程序的持续时间的数据的输入特征。命令接口模块254可以响应于接收到选择取消按钮410的用户输入的指示来取消应用程序的创建。命令接口模块254可以响应于接收到选择创建按钮412的用户输入的指示,基于在应用程序名称元件402、覆盖网络元件404、底层网络元件406和时间范围元件408中接收到的数据来为应用程序创建数据。在其他示例中,界面400可以包括用于指定更多、更少或不同方面的应用程序的元件。
如图5的示例所示,界面500包括应用程序名称元件502、规则元件504A至规则元件504C(统称为“规则元件504”)和添加规则按钮506。在图5的示例中,界面500包括3个规则元件504。然而,在其他示例中,界面500可以包括3个以上或3个以下的规则元件。此外,命令接口模块254可以响应于用户输入的指示来添加或删除规则元件。每个规则元件504对应于与应用程序名称元件502中命名的应用程序相关联的规则。
应用程序名称元件502指定应用程序的名称。响应于接收到选择应用程序名称元件502的铅笔图标503的用户输入的指示,命令接口模块254可以接收编辑应用程序名称的输入。
在图5的示例中,规则元件504A和规则元件504C处于折叠状态,而规则元件504B处于扩展状态。在一些示例中,多个规则元件可能同时处于扩展状态。在图5的示例中,当规则元件(例如,规则元件504B)处于扩展状态时,规则元件包括覆盖网络元件508、底层网络元件510、时间范围元件512、移除按钮514、取消按钮516和保存按钮518。
覆盖网络元件508、底层网络元件510和时间范围元件512以与图4的覆盖网络元件404、底层网络元件406和时间范围元件408相似的方式操作。响应于接收到选择保存按钮518的用户输入的指示,命令接口模块254可以基于覆盖网络元件508、底层网络元件510和时间范围元件512中的数据变化来更新与规则元件504相关联的规则数据。响应于接收到选择移除按钮514的用户输入的指示,命令接口模块254可以移除与规则元件504B相关联的规则。响应于接收到选择取消按钮516的用户输入的指示,命令接口模块254可以将覆盖网络元件508、底层网络元件510和时间范围元件512中的值恢复为未编辑的值。
图6是示出根据本公开的一种或多种技术的示例方法的流程图。尽管参照图2的示例描述了图6的示例,但是可以在图1A或图1B的示例中执行图6的方法。
在图6的示例中,网络分析系统240的规则管理器255存储应用程序的规则数据(600)。应用程序的规则数据指定了网络中产生的与应用程序相关联的流的特征。在图3的示例中,规则管理器255将应用程序的规则数据存储在规则数据库257中。
此外,在图6的示例中,网络分析系统240的收集器模块252从网络收集流数据报的流(602)。在网络205内的节点上运行的代理可以生成流数据报(例如,底层流数据报和覆盖流数据报),并且可以将流数据报转发给收集器模块252。代理可以基于在网络205上传输的分组来生成流数据报。代理可以根据协议(例如,sFlow、NetFlow、IPFIX或另一协议)生成和发送流数据报。在一些示例中,不同的收集器模块252可以对应于不同的协议。在一些示例中,不同的收集器模块252可以同时用于负载均衡。在典型示例中,代理不针对网络205上传输的每个分组生成流数据报。相反,代理可以对传输的分组进行采样,并基于在网络205上传输的采样分组生成流数据报。例如,代理可以基于代理在网络205上接收的每个X个分组来生成流数据报。每个代理可以是在诸如网络205的主干装置202、叶装置203或网络装置210的装置上实现的软件和/或硬件系统。
在图6的示例中,收集器模块252基于应用程序的规则数据识别流数据报的流中与应用程序相关联的流数据报(604)。例如,收集器模块252可以确定流数据报是否具有由应用程序的规则数据指定的值。
收集器模块252可以基于识别的流数据报生成经丰富的应用程序流数据报的流(606)。经丰富的应用程序流程图可以指示应用程序。例如,收集器模块252可以修改识别的流数据报,以包括指示应用程序的标识符的字段。在另一示例中,收集器模块252可以基于识别的流数据报生成新的流数据报。在该示例中,新的流数据报不一定包括在识别的流数据报中包括的任何信息,但是收集器模块252可以响应于识别与应用程序相关联的一个或多个流数据报来生成新的流数据报。
此外,在图6的示例中,网络分析系统240的API服务器256可以基于经丰富的应用程序流数据报来处理查询的结果(608)。API服务器256可以从命令接口模块254或另一源接收查询。该查询可以为结果数据指定选择标准(并且在一些示例中,结果格式化标准)。因为经丰富的应用程序流数据指示应用程序,所以由查询指定的选择标准可以包括一个或多个应用程序。以这种方式,API服务器256可能能够处理对用例的查询,例如,通过应用程序来确定前N个流。在另一示例中,API服务器256可能能够处理使用覆盖/底层关联来识别应用程序正在使用的物理和虚拟资源的查询。在该示例中,API服务器256可以通过应用程序过滤网络205的拓扑上的业务,并因此允许例如可视地检查使用情况(例如,使用热图、表格数据、图表或另一种类型的数据可视化)。在一些示例中,API服务器256可能能够处理提供与特定应用程序相关联的流正在使用的路径以及沿着路径的路由器和交换机的可见性的查询。在一些示例中,API服务器256可能能够处理为使用特定应用程序(例如,特定视频流服务)和/或消耗与该应用程序相关联的大部分带宽的特定用户提供可见性的查询。
在一些示例中,查询识别了时间帧。在这样的示例中,作为处理查询的一部分,API服务器256可以基于时间帧来识别在该时间帧期间已经处理了与应用程序相关联的至少一个分组的一个或多个网络装置。在该示例中,流数据库259可以存储指示发起流数据报的装置的数据。此外,在该示例中,API服务器256可以基于与应用程序相关联的流数据报的源,来识别已经处理了与应用程序相关联的分组的装置。
在一些示例中,如果与应用程序相关联的流满足特定警报标准,则API服务器256可能能够处理启用对该应用程序的警报的查询。换言之,网络分析系统240可以基于一个或多个查询的结果来确定是否生成警报,并且可以基于生成警报的确定来生成警报。在这样的示例中,可以为单个应用程序或应用程序组配置警报(例如,使用命令接口模块254)。警报模块260可以自动发起查询,这些查询返回警报监控单元可以用于确定是否满足警报的警报标准的结果。警报标准可以包括例如流的特定特征是否与一个或多个阈值(例如,预定阈值、自适应确定的阈值等)、时间段、布尔标准等相交。流的特征可以包括与应用程序相关联的流中的分组的总量、与通过网络205中的特定节点或通信链路的应用程序相关联的流中的分组的量等。在一个示例中,如果视频流站点超过一定量的带宽,则警报模块260可以生成警报。在类似的示例中,如果视频流站点超过一定量的带宽持续至少一定量的时间,则警报模块260可以生成警报。在一些示例中,警报可以是电子邮件消息、推送通知、日志条目、屏幕消息的形式,或者对个人或计算系统的其他形式的指示符。
对于在本文描述的包括在任何作业图或流程图中的过程、装置和其他示例或图示,在本文描述的任何技术中包括的某些操作、动作、步骤或事件可以以不同的顺序执行,可以添加、合并或一起省略(例如,并非所有描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,操作、动作、步骤或事件可以例如通过多线程处理、中断处理或多个处理器同时执行,而不是依次执行。此外,某些操作、动作、步骤或事件可以自动执行,即使没有被特别标识为自动执行。此外,被描述为自动执行的某些操作、动作、步骤或事件可以替代地不自动执行,而是在一些示例中可以响应于输入或另一事件来执行这些操作、动作、步骤或事件。
为了便于说明,在附图中和/或本文引用的其他图示中仅示出了有限数量的装置(例如,用户接口装置129、主干装置202、叶装置203、网络装置210、网络分析系统240以及其他装置)。然而,根据本公开的一个或多个方面的技术可以使用更多这样的系统、组件、装置、模块和/或其他项来执行,并且对这样的系统、组件、装置、模块和/或其他项的集中引用可以表示任何数量的这样的系统、组件、装置、模块和/或其他项。
本文包括的附图均示出了本公开的一个方面的至少一个示例实现。然而,本公开的范围不限于这样的实现。因此,除了附图中示出的那些之外,本文描述的系统、方法或技术的其他示例或替代实现在其他情况下可能是合适的。这种实现可以包括附图中包括的装置和/或组件的子集,和/或可以包括附图中未示出的额外装置和/或组件。
以上阐述的详细描述旨在作为各种配置的描述,并且不旨在表示可以实践本文描述的概念的唯一配置。详细描述包括具体细节,目的是提供对各种概念的充分理解。然而,可以在没有这些具体细节的情况下实施这些概念。在某些情况下,为了避免混淆这些概念,在参考图中以框图形式示出了众所周知的结构和组件。
因此,尽管可以参考特定附图描述各种系统、装置和/或组件的一个或多个实现,但是这些系统、装置和/或组件可以以多种不同的方式实现。例如,在本文的附图中作为独立装置示出的一个或多个装置可以替代地实现为单个装置;作为独立组件示出的一个或多个组件可以替代地实现为单个组件。此外,在一些示例中,在本文的附图中作为单个装置示出的一个或多个装置可以替代地实现为多个装置;作为单个组件示出的一个或多个组件可以替代地实现为多个组件。这种多个装置和/或组件中的每一个可以经由有线或无线通信直接耦接和/或经由一个或多个网络远程耦接。此外,可以在本文的各种附图中示出的一个或多个装置或组件可以替代地实现为在这些附图中未示出的另一装置或组件的一部分。以这种方式和其他方式,本文描述的一些功能可以通过两个以上装置或组件的分布式处理来执行。
此外,某些操作、技术、特征和/或功能在本文中可以被描述为由特定组件、装置和/或模块执行。在其他示例中,这样的操作、技术、特征和/或功能可以由不同的组件、装置或模块来执行。因此,在其他示例中,可以在本文描述为归属于一个或多个组件、装置或模块的一些操作、技术、特征和/或功能,可以归属于其他组件、装置和/或模块,即使在本文没有以这种方式具体描述。
尽管结合一些示例的描述已经识别出具体的优点,但是各种其他示例可以包括一些列举的优点、不包括列举的优点或包括所有列举的优点。本领域普通技术人员从本公开中可以明白其他技术或其他优点等。此外,尽管本文已经公开了具体的示例,但是本公开的方面可以使用任何数量的无论当前是否已知的技术来实现,并且因此,本公开不限于在本公开中具体描述和/或示出的示例。
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任意组合来实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上和/或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括对应于有形介质(例如,数据存储介质)的计算机可读存储介质、或者包括便于将计算机程序从一个地方传送到另一地方(例如,根据通信协议)的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)通信介质,例如,信号或载波。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索指令、代码和/或数据结构来实现本公开中描述的技术。计算机程序产品可以包括计算机可读介质。
通过示例而非限制的方式,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁性存储装置、闪存或任何其他可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的介质。此外,任何连接件都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术(例如,红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如,红外线、无线电和微波)包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接件、载波、信号或其他瞬态介质,而是涉及非瞬态有形存储介质。如所使用的,磁盘和光盘包括光盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上述的组合也应该包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”或“处理电路”可以均指任何前述结构或任何其他适合于实现所描述技术的结构。此外,在一些示例中,可以在专用硬件和/或软件模块中提供所描述的功能。同样,这些技术可以在一个或多个电路或逻辑元件中充分实现。
本公开的技术可以在多种装置或设备中实现,包括无线手机、移动或非移动计算装置、可穿戴或非可穿戴计算装置、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的装置的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。
Claims (15)
1.一种用于应用程序流监控的方法,所述方法包括:
由计算系统存储应用程序的规则数据,其中,所述应用程序的所述规则数据指定网络内发生的并且与所述应用程序相关联的流的特征;
由所述计算系统从所述网络收集流数据报的流;
由所述计算系统基于所述应用程序的所述规则数据,识别所述流数据报的流中与所述应用程序相关联的流数据报;
由所述计算系统基于识别的流数据报生成经丰富的应用程序流数据报的流,其中,所述经丰富的应用程序流数据报包括指示所述应用程序的数据;并且
由所述计算系统基于所述经丰富的应用程序流数据报处理查询的结果。
2.根据权利要求1所述的方法,其中,所述应用程序的所述规则数据包括以下一项或多项:
源端口,
目的地端口,
源互联网协议IP地址,
目的地IP地址,以及
协议。
3.根据权利要求1所述的方法,其中,所述应用程序的所述规则数据包括以下一项或多项:
覆盖源端口,
覆盖目的地端口,
覆盖源IP地址,
覆盖目的地IP地址,
覆盖协议,
覆盖源虚拟网络VN,以及
覆盖目的地VN。
4.根据权利要求1所述的方法,其中,所述流数据报的流符合以下协议中的一者:sFlow、NetFlow和IPFIX。
5.根据权利要求1至4中任一项所述的方法,其中,所述结果通过应用程序指定所述网络内的前N个流。
6.根据权利要求1至4中任一项所述的方法,还包括:
由所述计算系统基于所述结果确定是否生成警报;并且
由所述计算系统基于生成所述警报的确定来生成所述警报。
7.根据权利要求1至4中任一项所述的方法,其中,所述查询识别时间帧,并且其中,处理所述查询包括:
基于所述时间帧,识别在所述时间帧期间已经处理了与所述应用程序相关联的至少一个分组的一个或多个网络装置。
8.一种计算系统,包括:
存储装置,被配置为存储应用程序的规则数据,其中,所述应用程序的所述规则数据指定网络内发生的并且与所述应用程序相关联的流的特征;
一个或多个处理器,能够访问所述存储装置并被配置为:
从所述网络收集流数据报的流;
基于所述应用程序的所述规则数据识别所述流数据报的流中与所述应用程序相关联的流数据报;
基于识别的流数据报生成经丰富的应用程序流数据报的流,其中,所述经丰富的应用程序流数据报包括指示所述应用程序的数据;并且
基于所述经丰富的应用程序流数据报处理查询的结果。
9.根据权利要求8所述的计算系统,其中,所述应用程序的所述规则数据包括以下一项或多项:
源端口,
目的地端口,
源互联网协议IP地址,
目的地IP地址,以及
协议。
10.根据权利要求8所述的计算系统,其中,所述应用程序的所述规则数据包括以下一项或多项:
覆盖源端口,
覆盖目的地端口,
覆盖源IP地址,
覆盖目的地IP地址,
覆盖协议,
覆盖源虚拟网络VN,以及
覆盖目的地VN。
11.根据权利要求8所述的计算系统,其中,所述流数据报的流符合以下协议中的一者:sFlow、NetFlow和IPFIX。
12.根据权利要求8至11所述的计算系统,其中,所述结果通过应用程序指定所述网络内的前N个流。
13.根据权利要求8至11中任一项所述的计算系统,其中,所述一个或多个处理器还被配置为:
基于所述结果确定是否生成警报;并且
基于生成所述警报的确定来生成所述警报。
14.根据权利要求8至11中任一项所述的计算系统,其中,所述查询识别时间帧,并且所述一个或多个处理器被配置为所述一个或多个处理器执行以下以作为处理所述查询的一部分:
基于所述时间帧,识别在所述时间帧期间已经处理了与所述应用程序相关联的至少一个分组的一个或多个网络装置。
15.一种计算机可读介质,编码有指令,所述指令用于使一个或多个可编程处理器执行根据权利要求1至7中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/917,690 US20210409294A1 (en) | 2020-06-30 | 2020-06-30 | Application flow monitoring |
US16/917,690 | 2020-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113867885A true CN113867885A (zh) | 2021-12-31 |
Family
ID=72561624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010998080.XA Pending CN113867885A (zh) | 2020-06-30 | 2020-09-21 | 用于应用程序流监控的方法、计算系统和计算机可读介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210409294A1 (zh) |
EP (1) | EP3934176A1 (zh) |
CN (1) | CN113867885A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760086A (zh) * | 2022-01-24 | 2022-07-15 | 北京中交兴路信息科技有限公司 | 一种网站页面合规性检测方法、装置、存储介质及终端 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11444855B2 (en) | 2020-07-07 | 2022-09-13 | Juniper Networks, Inc. | System and method for determining a data flow path in an overlay network |
US20230179525A1 (en) * | 2021-12-02 | 2023-06-08 | Juniper Networks, Inc. | Edge device for telemetry flow data collection |
US11627061B1 (en) * | 2022-02-24 | 2023-04-11 | Microsoft Technology Licensing, Llc | Packet capture using VXLAN encapsulation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090168648A1 (en) * | 2007-12-29 | 2009-07-02 | Arbor Networks, Inc. | Method and System for Annotating Network Flow Information |
US20120026914A1 (en) * | 2010-07-28 | 2012-02-02 | Swapnesh Banerjee | Analyzing Network Activity by Presenting Topology Information with Application Traffic Quantity |
US20180212788A1 (en) * | 2017-01-26 | 2018-07-26 | International Business Machines Corporation | Multicast helper to link virtual extensible lans |
US20180287902A1 (en) * | 2017-03-29 | 2018-10-04 | Juniper Networks, Inc. | Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control |
CN109643269A (zh) * | 2016-06-29 | 2019-04-16 | 贝宝公司 | 网络运营应用程序监测 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8010469B2 (en) * | 2000-09-25 | 2011-08-30 | Crossbeam Systems, Inc. | Systems and methods for processing data flows |
CA2989897C (en) * | 2016-12-29 | 2021-09-21 | Bce Inc. | Cyber threat intelligence system infrastructure |
US11444864B2 (en) * | 2017-10-27 | 2022-09-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Optimized datapath troubleshooting with trace policy engine |
US11658909B2 (en) * | 2018-04-10 | 2023-05-23 | Kentik Technologies, Inc. | Analyzing network traffic by enriching inbound network flows with exit data |
US10862804B2 (en) * | 2018-10-09 | 2020-12-08 | Colotokens Inc. | Redirecting data packets between overlay network and underlay network |
CN113348645B (zh) * | 2018-11-27 | 2024-02-27 | 萨瑟尔公司 | 数据流分类的系统和方法 |
US10944652B2 (en) * | 2019-05-16 | 2021-03-09 | Arista Networks, Inc. | Method and network device for tagging network traffic flows |
-
2020
- 2020-06-30 US US16/917,690 patent/US20210409294A1/en not_active Abandoned
- 2020-09-18 EP EP20196848.4A patent/EP3934176A1/en not_active Withdrawn
- 2020-09-21 CN CN202010998080.XA patent/CN113867885A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090168648A1 (en) * | 2007-12-29 | 2009-07-02 | Arbor Networks, Inc. | Method and System for Annotating Network Flow Information |
US20120026914A1 (en) * | 2010-07-28 | 2012-02-02 | Swapnesh Banerjee | Analyzing Network Activity by Presenting Topology Information with Application Traffic Quantity |
CN109643269A (zh) * | 2016-06-29 | 2019-04-16 | 贝宝公司 | 网络运营应用程序监测 |
US20180212788A1 (en) * | 2017-01-26 | 2018-07-26 | International Business Machines Corporation | Multicast helper to link virtual extensible lans |
US20180287902A1 (en) * | 2017-03-29 | 2018-10-04 | Juniper Networks, Inc. | Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760086A (zh) * | 2022-01-24 | 2022-07-15 | 北京中交兴路信息科技有限公司 | 一种网站页面合规性检测方法、装置、存储介质及终端 |
CN114760086B (zh) * | 2022-01-24 | 2023-12-05 | 北京中交兴路信息科技有限公司 | 一种网站页面合规性检测方法、装置、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
EP3934176A1 (en) | 2022-01-05 |
US20210409294A1 (en) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113973079B (zh) | 用于确定覆盖网络中的数据流路径的系统和方法 | |
CN112398717B (zh) | 用于在覆盖网络中确定数据流路径的系统和方法 | |
EP3780502B1 (en) | Underlay-overlay correlation | |
CN110971584B (zh) | 针对虚拟网络生成的基于意图的策略 | |
EP3588292A1 (en) | Monitoring and policy control of distributed data and control planes for virtual nodes | |
EP3934206B1 (en) | Scalable control plane for telemetry data collection within a distributed computing system | |
US9606896B2 (en) | Creating searchable and global database of user visible process traces | |
CN113867884B (zh) | 用于计算机网络的方法和系统及存储介质 | |
EP3934176A1 (en) | Application flow monitoring | |
EP4142243A1 (en) | Adaptive flow monitoring | |
EP3937425A1 (en) | Deriving network device and host connection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |