用于从观察域卸载IPFIX查找和转换操作的装置、系统和方法转让专利

申请号 : CN202010046721.1

文献号 : CN112787933B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·M·普尔纳查理A·古普塔D·H·沙希库玛

申请人 : 瞻博网络公司

摘要 :

本公开的实施例涉及用于从观察域卸载IPFIX查找和转换操作的装置、系统和方法。公开的方法包括:在IPFIX收集器处从在远程设备上所实现的IPFIX输出器接收IPFIX消息;标识IPFIX消息内的、由远程设备上所实现的IPFIX输出器输出的数据集合;标识IPFIX消息内的数据级别指示符,该数据级别指示符指示数据集合是(A)由在远程设备上实现的观察域所观察到的主要数据集合还是(B)由在远程设备上实现的观察云得到的次要数据集合;在IPFIX收集器处标识与IPFIX消息中标识的数据级别指示符相对应的数据库;根据数据级别指示符将数据集合存储在数据库中;至少部分地基于存储在数据库中的数据集合来执行动作。

权利要求 :

1.一种方法,包括:

在因特网协议流信息输出(IPFIX)收集器处从在远程设备上所实现的IPFIX输出器接收至少一个IPFIX消息;

标识所述IPFIX消息内的、由在所述远程设备上所实现的所述IPFIX输出器输出的数据集合;

标识所述IPFIX消息内的数据级别指示符,所述数据级别指示符指示所述数据集合是:由在所述远程设备上所实现的观察域所观察到的主要数据集合;还是由在所述远程设备上所实现的观察云得到的次要数据集合;

在所述IPFIX收集器处标识与所述IPFIX消息内被标识的所述数据级别指示符相对应的数据库;

根据所述数据级别指示符将所述数据集合存储在所述数据库中;以及至少部分地基于被存储在所述数据库中的所述数据集合来执行至少一个动作。

2.根据权利要求1所述的方法,还包括:在IPFIX收集器处,从在所述远程设备上所实现的附加IPFIX输出器接收至少一个附加IPFIX消息;

标识所述附加IPFIX消息内的、由在所述远程设备上所实现的所述附加IPFIX输出器输出的附加数据集合;

标识所述附加IPFIX消息内的附加数据级别指示符,所述附加数据级别指示符指示所述附加数据集合是:

由在所述远程设备上所实现的所述观察域所观察到的主要数据集合;还是由在所述远程设备上所实现的所述观察云得到的次要数据集合;在所述IPFIX收集器处标识与所述附加IPFIX消息内被标识的所述附加数据级别指示符相对应的附加数据库;

以及

根据所述附加数据级别指示符将所述附加数据集合存储在所述附加数据库中。

3.根据权利要求2所述的方法,还包括:在所述IPFIX收集器处提供执行所述数据库和所述附加数据库的联合的联合层。

4.根据权利要求3所述的方法,其中执行所述数据库和所述附加数据库的所述联合包括:

标识所述IPFIX消息内的、被包括在由所述IPFIX输出器输出的所述数据集合中的公共属性标识符;

至少部分地基于所述公共属性标识符在所述附加数据库中搜索所述附加数据集合;以及

至少部分基于所述公共属性标识符来创建统一所述数据集合和所述附加数据集合的记录。

5.根据权利要求3所述的方法,其中执行所述数据库和所述附加数据库的所述联合包括:

标识所述附加IPFIX消息内的、被包括在由所述附加IPFIX输出器输出的所述附加数据集合中的公共属性标识符;

至少部分地基于所述公共属性标识符在所述数据库中搜索所述数据集合;以及至少部分基于所述公共属性标识符来创建统一所述数据集合和所述附加数据集合的记录。

6.根据权利要求2所述的方法,其中:所述数据级别指示符指示所述数据集合是由在所述远程设备上所实现的所述观察域观察到的主要数据集合;以及

所述附加数据级别指示符指示所述附加数据集合是由在所述远程设备上所实现的所述观察云得到的次要数据集合。

7.根据权利要求2所述的方法,其中:所述观察域包括观察点集合,所述观察点集合观察穿过网络的业务;以及所述观察云包括在所述远程设备上所实现的观察域集合。

8.根据权利要求7所述的方法,其中:所述远程设备包括路由器;

所述观察云包括所述路由器的路由引擎;以及所述观察域包括被安装到所述路由器的所述路由引擎的线卡集合。

9.根据权利要求8所述的方法,其中所述观察点包括网络接口集合,所述网络接口集合被包括在被安装到所述路由器的所述路由引擎的所述线卡中的一个线卡上;以及还包括:

在被包括在所述线卡中的所述一个线卡上的所述网络接口处检测穿过所述网络的多个分组;

标识在所述分组内的所述分组共同共享的一个或多个可观察属性;

至少部分地基于所述分组共同共享的所述可观察属性来使所述分组彼此匹配;

由所述线卡中的所述一个线卡生成所述IPFIX消息,使得所述IPFIX消息指定所述分组共同共享的所述可观察属性;以及由所述线卡中的所述一个线卡将IPFIX消息发送到所述IPFIX收集器。

10.根据权利要求9所述的方法,其中:所述数据集合包括在被包括在所述线卡中的所述一个线卡上的所述网络接口处所检测到的所述分组的至少一个域级别统计数据;以及生成所述IPFIX消息包括:将在被包括在所述线卡中的所述一个线卡上的所述网络接口处所检测到的所述分组的所述域级别统计数据插入所述IPFIX消息中。

11.根据权利要求9所述的方法,还包括:从所述分组共同共享的所述可观察属性中选择可观察属性,以用作对于所述线卡中的所述一个线卡是本地唯一的域级别公共属性标识符;以及生成所述IPFIX消息包括:将所述域级别的公共属性标识符插入所述IPFIX消息中,以使所述IPFIX收集器能够将所述数据集合记录为源自所述线卡中的所述一个线卡。

12.根据权利要求9所述的方法,其中生成所述IPFIX消息包括:在所述IPFIX消息内设置所述数据级别指示符,以指示所述数据集合是由被安装到所述路由器的所述路由引擎的所述线卡中的所述一个线卡观察到的主要数据集合。

13.根据权利要求9所述的方法,还包括:在所述路由器的所述路由引擎处从所述线卡中的所述一个线卡接收通知,其中所述通知指示被包括在所述线卡中的所述一个线卡上的所述网络接口已经检测到共同共享所述可观察属性的所述分组;

通过执行以下项中的至少一项来得到所述分组的多个附加属性:查找操作,至少部分地基于所述分组共同共享的所述可观察属性中的一个可观察属性;以及

转换操作,至少部分基于所述分组共同共享的所述可观察属性中的一个可观察属性;

由所述路由器的所述路由引擎生成所述附加IPFIX消息,使得所述附加IPFIX消息指定所述分组共同共享的所得到的所述附加属性;以及由所述路由器的所述路由引擎向所述IPFIX收集器发送所述附加IPFIX消息。

14.一种系统,包括:

至少一个存储器设备,所述至少一个存储器设备存储因特网协议流信息输出(IPFIX)收集器,所述IPFIX收集器包括收集器模块、标识模块、存储模块和动作模块,其中:所述IPFIX收集器的所述收集器模块从远程设备上所实现的IPFIX输出器接收至少一个IPFIX消息;

所述IPFIX收集器的所述标识模块:标识所述IPFIX消息内的、由在所述远程设备上所实现的所述IPFIX输出器输出的数据集合;

标识所述IPFIX消息内的数据级别指示符,所述数据级别指示符指示所述数据集合是:由在所述远程设备上所实现的观察域观察到的主要数据集合;还是由在所述远程设备上所实现的观察云得到的次要数据集合;

在所述IPFIX收集器处标识与所述IPFIX消息内所标识的所述数据级别指示符相对应的数据库;

所述IPFIX收集器的所述存储模块根据所述数据级别指示符将所述数据集合存储在所述数据库中;

所述动作模块至少部分地基于被存储在所述数据库中的所述数据集合来执行至少一个动作;以及

至少一个物理处理器,被配置为执行所述收集器模块、所述标识模块、所述存储模块、和所述动作模块。

15.一种非暂态计算机可读介质,包括一个或多个计算机可执行指令,所述一个或多个计算机可执行指令当由计算设备的至少一个处理器执行时,使所述计算设备:由因特网协议流信息输出(IPFIX)收集器从在远程设备上所实现的IPFIX输出器接收至少一个IPFIX消息;

标识所述IPFIX消息内的、由在所述远程设备上所实现的所述IPFIX输出器输出的数据集合;

标识所述IPFIX消息内的数据级别指示符,所述数据级别指示符指示所述数据集合是:由在所述远程设备上所实现的观察域观察到的主要数据集合;还是由在所述远程设备上所实现的观察云得到的次要数据集合;

在所述IPFIX收集器处标识与所述IPFIX消息内所标识的所述数据级别指示符相对应的数据库;

根据所述数据级别指示符将所述数据集合存储在所述数据库中;以及至少部分地基于被存储在所述数据库中的所述数据集合来执行至少一个动作。

说明书 :

用于从观察域卸载IPFIX查找和转换操作的装置、系统和方法

背景技术

[0001] 因特网协议流信息输出(IPFIX)协议通常用于输出有关在网络中某些观察点处遇到的流的数据。输出的IPFIX数据可以为管理员和/或分析引擎提供对网络内部工作、组成
和/或业务信息的实时了解。在一些示例中,IPFIX数据可以由包括观察点集合的观察域输
出。在这样的示例中,观察域可以通过对在观察点之间遇到的流中发现的共性进行重复删
除来减少输出的IPFIX数据中的冗余。
[0002] 不幸的是,IPFIX协议可能会给网络设备制造商带来某些挑战。例如要输出IPFIX数据,IPFIX协议可能需要和/或依赖某些查找和/或转换。这些IPFIX查找和/或转换可能会
占用大量资源和/或要求很高。因此,这些IPFIX查找和/或转换可能会导致性能问题。在传
统的IPFIX技术中,这些IPFIX查找和/或转换可以由观察域执行。
[0003] 除了占用大量资源和/或要求很高之外,这些IPFIX查找和/或转换可能还需要和/或依赖完整的转发信息库(FIB)。在一些示例中,完整的FIB可以包括和/或表示大量的路线
(例如一百万条路线、两百万条路线等),这些路线在观察域中共同消耗大量的存储器资源。
因此,为了支持传统技术中的IPFIX协议,观察域可能仅限于在包含足够存储器资源的昂贵
物理设备上实现。
[0004] 尽管观察域可以通过对在观察点之间遇到的流中发现的共性进行重复删除来减少输出的IPFIX数据中的冗余,但是传统的IPFIX技术可能无法解决和/或顾及在观察域集
合之间发现的其他共性。因此,这些传统的IPFIX技术可能由于无法解决和/或顾及跨观察
域集合而发现的其他共性而失去一定的效率。因此,本公开标识并解决了对用于从观察域
卸载IPFIX查找和转换操作的其他改进系统和方法的需求。

发明内容

[0005] 如下面将更详细描述的,本公开总体上涉及用于从观察域卸载IPFIX查找和转换操作的系统和方法。在一个示例中,一种用于完成这种任务的方法可以包括(1)在IPFIX收
集器处从在远程设备上实现的IPFIX输出器接收至少一个IPFIX消息,(2)标识IPFIX消息中
内的、由在远程设备上所实现的IPFIX输出器输出的数据集合,(3)标识IPFIX消息内的数据
级别指示符,该数据级别指示符指示数据集合是(A)由远程设备实现的观察域所观察到的
主要数据集合还是(B)由在远程设备上实现的观察云得到的次要数据集合,(4)在IPFIX收
集器处标识与IPFIX消息中识别的数据级别指示符相对应的数据库,(5)根据数据级别指示
符将数据集合存储在数据库中,然后(6)至少部分地基于存储在数据库中的数据集合来执
行至少一个动作。
[0006] 类似地,实现上述方法的系统可以包括被配置为执行存储在存储器中的各种模块的物理处理器。在一个示例中,该系统可以包括和/或执行(1)收集器模块,该收集器模块从
在远程设备上实现的IPFIX输出器接收至少一个IPFIX消息,(2)标识模块,模块标识(A)标
识IPFIX消息内的、由在远程设备上实现的IPFIX输出器输出的数据集合,(B)标识IPFIX消
息内的数据级别指示符,该数据级别指示符指示该数据集合是(I)由在远程设备上所实现
的观察域观察到的主要数据集合还是(II)由远程设备上实现的观察云得到的次要数据集
合,并且(C)在IPFIX收集器处标识与IPFIX消息中标识的数据级别指示符相对应的数据库;
(3)存储模块,根据数据级别指示符将数据集合存储在数据库中;以及(4)动作模块,至少部
分地基于存储在数据库中的数据集合执行至少一个动作。
[0007] 附加地或替代地,实现上述方法的非暂态计算机可读介质可以包括一个或多个计算机可执行指令。当由计算设备的至少一个处理器执行时,计算机可执行指令可以使计算
设备(1)由IPFIX收集器从远程设备上实现的IPFIX输出器接收至少一个IPFIX消息,(2)标
识IPFIX消息内的、由远程设备上实现的IPFIX输出器输出的数据集合,(3)标识IPFIX消息
内的数据级别指示符,该数据级别指示符指示该数据集合是(A)由远程设备上实现的观察
域所观察到的主要数据集合还是(B)由远程设备上实现的观察云得到的次要数据集合,(4)
在IPFIX收集器处标识与IPFIX消息中标识的数据级别指示符相对应的数据库,(5)根据数
据级别指示符将数据集合存储在数据库中,然后(6)至少部分地基于存储在数据库中的数
据集合来执行至少一个动作。
[0008] 根据本文描述的一般原理,可以将来自上述任意实施例的特征彼此组合使用。在结合附图和权利要求阅读以下详细描述时,将更充分地理解这些和其他实施例、特征和优
点。

附图说明

[0009] 附图示出了多个示例性实施例,并且是说明书的一部分。这些附图与以下描述一起说明和解释了本公开的各种原理。
[0010] 图1是用于从观察域卸载IPFIX查找和转换操作的示例性系统的框图。
[0011] 图2是用于从观察域卸载IPFIX查找和转换操作的附加的示例性系统的框图。
[0012] 图3是用于从观察域卸载IPFIX查找和转换操作的示例性方法的流程图。
[0013] 图4是用于从观察域卸载IPFIX查找和转换操作的附加的例性系统的框图。
[0014] 图5是示例性IPFIX消息的图示。
[0015] 图6是示例性主要数据集合的图示。
[0016] 图7是示例性次要数据集合的图示。
[0017] 图8是将主要数据集合和次要数据集合统一的示例性记录的图示。
[0018] 图9是用于收集和统一输出的IPFIX数据的示例性方法的流程图。
[0019] 图10是示例性计算系统的框图,该示例性计算系统能够实现本文描述和/或图示的一个或多个实施例和/或结合本文描述和/或图示的一个或多个实施例使用。
[0020] 在所有附图中,完全相同的附图标记和描述表示相似但不一定完全相同的元件。尽管本文描述的示例性实施例易于进行各种修改和替代形式,但是在附图中以示例的方式
示出了特定实施例,并将在本文中对其进行详细描述。然而,本文描述的示例性实施例并不
旨在限于所公开的特定形式。相反,本公开涵盖落入所附权利要求的范围内的所有修改、等
同形式和替代形式。

具体实施方式

[0021] 本公开描述了用于从观察域卸载IPFIX查找和转换操作的各种系统和方法。如下面将更详细解释的,本公开的实施例可以实现支持IPFIX协议的观察云。在一些示例中,观
察云可以包括和/或表示观察域集合,每个观察域具有各种观察点。在这样的示例中,将数
据输出到IPFIX收集器的职责可以以观察域无需执行与IPFIX数据输出相关的查找或转换
操作的方式,在观察域和观察云之间进行划分。
[0022] 由于在这些示例中,观察域无需执行与IPFIX数据输出相关的查找或转换操作,因此观察域无需完整的FIB就可以支持IPFIX协议。因此,网络设备制造商可以设计和/或提供
IPFIX支持的设备,该IPFIX支持的设备能够以比传统IPFIX技术更少的存储容量来实现观
察域。
[0023] 作为示例,路由器可以包括安装到路由引擎的线卡集合。在该示例中,线卡可以实现观察域集合,并且路由引擎可以实现与观察域对接的观察云。为了实现将数据输出到
IPFIX收集器的可行分工,每个观察域可以发现和/或输出该域的观察点遇到的各种流的可
观察属性。流的这种可观察的属性可以包括和/或表示通过对流的分组的简单检查可以发
现的任意元数据、特性、特征和/或字段。因此,每个观察域可能负责将流的可观察属性输出
到IPFIX收集器。
[0024] 出于本公开的目的,可将流的可观察属性与流的可得到属性区分开。可得到属性可能需要查找和/或转换,而可观察的属性可能会在没有查找或转换的情况下被发现。在该
示例中,与观察域相反,观察云可以发现和/或输出跨各个观察域的观察点遇到的流的可得
到属性。流的这种可得到属性可以包括和/或表示需要一个或多个查找和/或转换操作才能
进行发现的任意元数据、特性、特征和/或字段。因此,观察云可能负责将流的可得到属性输
出到IPFIX收集器。
[0025] 在此示例中,远程设备可以实现IPFIX收集器,该IPFIX收集器从观察云和各个观察域接收IPFIX输出。在远程设备上,IPFIX收集器可在源自观察云的IPFIX输出和源自观察
域的IPFIX输出之间进行区分。IPFIX收集器因此可以将来自观察云的IPFIX输出存储在一
个数据库中,并将来自观察域的IPFIX输出存储在另一个数据库中。然后,IPFIX收集器可以
至少部分地基于由那些IPFIX输出共享的一个或多个公共标识符,来统一、组合和/或合并
来自一个数据库的IPFIX输出和来自另一个数据库的对应IPFIX输出。IPFIX输出的结果统
一可以包括和/或表示针对所讨论的流的完整的IPFIX数据集合。
[0026] 在该示例中,IPFIX收集器可以至少部分地基于IPFIX输出的统一来执行和/或促进某些动作和/或服务。例如IPFIX收集器和/或另一个设备或组件可以使用特定流的完整
IPFIX数据集合来促进某些网络服务,诸如业务计量、业务分析、安全评估、入侵检测、计费
和/或帐单等等。
[0027] 以下将参考图1、2和4提供示例性系统的详细描述和用于从观察域卸载IPFIX查找和转换操作的对应实现。将分别结合图5、6、7和8来提供示例性IPFIX消息、主要数据集合、
次要数据集合和/或统一数据记录的详细描述。结合图3和图9,将提供用于从观察域卸载
IPFIX查找和转换操作的计算机实现的方法的详细描述。此外,将结合图10提供用于执行这
些方法的示例性计算系统的详细描述。
[0028] 图1示出了示例性系统100,其促进从观察域卸载IPFIX查找和转换操作。如图1所示,系统100可以包括用于执行一个或多个任务的一个或多个模块102。如将在下面更详细
解释的,模块102可以包括收集器模块104、识别模块106、存储模块108、动作模块110、输出
器模块112和/或联合模块114。尽管被示为分离的元件,但是图1中的模块102中的一个或多
个可以表示单个模块、应用和/或操作系统的部分。
[0029] 在某些实施例中,图1中的模块102中的一个或多个可以表示一个或多个软件应用或程序,当它们由计算设备的处理器执行时,使该计算设备执行一个或多个任务。例如并且
如将在下面更详细地描述的,模块102中的一个或多个可以表示被存储和被配置为在一个
或多个计算设备上运行的模块,诸如图2中所示的设备(例如计算设备202、计算设备208、计
算设备210和/或网络设备206)和/或图4中的设备(例如输出器410和/或收集器230)。图1中
的模块102中的一个或多个也可以表示被配置为执行一个或多个任务的一个或多个专用计
算机的全部或部分。
[0030] 如图1所示,示例性系统100还可以包括一个或多个存储设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易
失性存储设备或介质。在一个示例中,存储器140可以存储、加载和/或维护模块102中的一
个或多个。存储器140的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存、
硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓存、以上一个或多个的变体或组
合、和/或任意其他合适的存储存储器。
[0031] 如图1所示,示例性系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解释和/或执行计算机可读指令的任何类型或形式的硬
件实现的处理设备。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中
的模块102中的一个或多个。附加地或替代地,物理处理器130可以执行模块102中的一个或
多个以促进从观察域卸载IPFIX查找和转换操作。物理处理器130的示例包括但不限于中央
处理器(CPU)、微处理器、微控制器、实现软核处理器的现场可编程门阵列(FPGA)、专用集成
电路(ASIC)、以上一个或多个的部分、以上一个或多个的变体或组合、和/或任何其他合适
的物理处理器。
[0032] 如图1所示,示例性系统100可以还包括一个或多个数据集合,诸如主要数据集合120和/或次要数据集合122。在一些示例中,主要数据集合120可以包括和/或表示通过网络
设备的数据路径、数据平面和/或转发平面观察、采样和/或标识的数据。在一个示例中,主
要数据集合120可以包括、表示和/或标识跨观察域的观察点监视的流的一个或多个公共属
性和/或元素。集成在主要数据集合120中的数据、公共属性和/或元素的示例包括但不限于
入口接口索引、下一跳索引、流向、转发状态、数据链路帧大小、数据链路帧选择、网关、传出
接口(OIF)、以上一个或多个的组合或变体、和/或任意其他合适的数据、公共属性和/或元
素。
[0033] 在一些示例中,主要数据集合120可以包括、指定和/或标识一个或多个公共属性标识符。在这样的示例中,这些公共属性标识符可以用于使主要数据集合120与IPFIX收集
器上的对应次要数据集合相关和/或匹配。附加地或替代地,主要数据集合120可以包括、标
识某种格式和/或以某种格式呈现。例如主要数据集合120可以包括和/或标识定义对应数
据、公共属性和/或元素的格式的模板(诸如选项模板)。在一些实施例中,该模板可以与
2009年3月发布的标题为“Reducing Redundancy in IP Flow Information Export
(IPFIX)and Packet Sampling(PSAMP)Reports”的因特网工程任务组(IETF)的RFC 5473中
提供的定义、格式和/或配置一致,其全部公开内容通过引用并入本文。
[0034] 在一些示例中,次要数据集合122可以包括和/或表示由网络设备的控制路径、控制平面和/或路由平面输出、得到和/或外推的数据。在一个示例中,次要数据集合122可以
包括,表示和/或标识跨观察云的观察域监视的流的一个或多个公共属性和/或元素。集成
在次要数据集合122中的数据、公共属性和/或元素的示例包括但不限于出口接口索引、网
关地址、简单网络管理协议(SNMP)索引、接口名称、入口虚拟路由和转发(VRF)索引、VRF名
称、下一跳地址、出口VRF索引、主要数据集合120的一部分、入口接口索引、下一跳索引、以
上一个或多个的组合或变体、和/或任意其他合适的数据、公共属性和/或元素。
[0035] 在一些示例中,次要数据集合122可以包括、指定和/或标识一个或多个公共属性标识符。在这样的示例中,这些公共属性标识符可用于将次要数据集合122与IPFIX收集器
上的主要数据集合120相关联和/或匹配。附加地或替代地,次要数据集合122可以包括、标
识某种格式和/或以某种格式呈现。例如次要数据集合122可以包括和/或标识定义对应数
据、公共属性和/或元素的格式的模板(诸如选项模板)。在某些实施例中,该模板可以与
IETF RFC 5473中提供的定义、格式和/或配置一致。
[0036] 如图1所示,示例性系统100可以附加包括一个或多个数据库,诸如数据库124和数据库126。在一些示例中,数据库124和126可以位于IPFIX收集器上和/或由IPFIX收集器维
护。在一个示例中,数据库124可以是专用于和/或被配置为存储由观察域观察到的主要数
据集合。附加地或替代地,数据库126可以是专用于和/或被配置为存储由观察云得到的次
要数据集合。
[0037] 如图1所示,示例性系统100还可以包括一个或多个观察点,诸如观察点128。在一些示例中,观察点128可以包括和/或表示促进网络内业务流的物理设备和/或组件。附加地
或替代地,观察点128可以由在网络内转发业务的物理设备和/或组件来实现。此类物理设
备和/或组件的示例包括但不限于物理接口、千兆位以太网(GE)接口、10千兆位以太网(XE)
接口、十个GE接口、异步传输模式(ATM)接口、帧中继接口、出口接口、入口接口、通信端口、
以上一个或多个的部分、以上一个或多个的组合或变形、和/或任意其他合适的物理设备
和/或组件。
[0038] 如图1所示,示例性系统100可以还包括一个或多个观察域,诸如观察域134。在一些示例中,观察域134可以包括和/或表示观察点集合和/或一组观察点。附加地或替代地,
观察域134可以由在网络内转发业务的物理设备和/或组件来实现。在一个示例中,每个观
察域可以包括和/或被分配唯一的观察域标识符。此类物理设备和/或组件的示例包括但不
限于分组转发引擎(PFE)、物理接口卡(PIC)、灵活PIC集中器(FPC)、交换接口板(SIB)、控制
板、连接器接口面板、线卡、以上一个或多个的部分、以上一个或多个的组合或变形、和/或
任意其他合适的物理设备和/或组件。
[0039] 在某些实施例中,这些观察点和观察域可以与2008年1月发布的标题为“Specification of the IP Flow Information Export(IPFIX)Protocol for the 
Exchange of IP Traffic Flow Information”的IETF的RFC 5101中提供的定义、实现,和/
或配置一致,其全部公开内容通过引用并入本文。
[0040] 此外,如图1所示,示例性系统100可以包括一个或多个观察云,诸如观察云132。在一些示例中,观察云132可以包括和/或表示观察域集合和/或一组观察域。附加地或替代
地,观察云132可以由在网络内路由业务的物理设备和/或组件来实现。在一个示例中,每个
观察云可以包括和/或被分配唯一的观察云标识符。此类物理设备和/或组件的示例包括但
不限于路由引擎、FPC、路由器(诸如提供商边缘路由器、集线器路由器、分支路由器、自治系
统边界路由器和/或区域边界路由器)、交换机、集线器、调制解调器、桥接器、中继器、网关
(例如宽带网络网关(BNG))、以上一个或多个的部分、以上一个或多个或多个的组合或变
形、和/或任意其他合适的物理设备和/或组件。
[0041] 用于从观察域卸载IPFIX查找和转换操作的装置可以包括示例性系统100的全部或部分。在一些示例中,图1中的系统100可以以各种方式来实现。例如示例性系统100的全
部或一部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可以包括网络
204,该网络204促进网络设备206、计算设备202、计算设备208、和/或计算设备210之间的通
信。
[0042] 如图2所示,网络204可以包括和/或表示形成和/或建立通信路径和/或分段的各种网络设备和/或节点。例如网络204可以包括在计算设备202和计算设备208之间转发业务
的网络设备206。在一个示例中,在网络设备206上和/或由网络设备206实现的IPFIX输出器
可以监视通过网络204的业务。在该示例中,IPFIX输出器可以跨观察点和/或观察域观察
和/或得到此类业务的公共属性。这些IPFIX输出器可以将IPFIX数据集合从网络设备206输
出到在计算设备210上实现的收集器230。
[0043] 在一些示例中,并且如将在下面更详细地描述的,模块102中的一个或多个可以使计算设备210(1)通过收集器230从在网络设备206上实现的IPFIX输出器(诸如观察域134
(1)‑(N)和/或观察云132)接收至少一个IPFIX消息,(2)在IPFIX消息中标识由在网络设备
206上实现的IPFIX输出器输出的数据集合,(3)在IPFIX消息中标识数据级别指示符,该数
据级别指示符指示该数据集合是(A)观察域134(1)‑(N)之一所观察到的主要数据集合还是
(B)由观察云132得到的次要数据集合,(4)由收集器230标识与IPFIX消息中标识的数据级
别指示符相对应的数据库(诸如数据库124或数据库126),(5)将数据集合存储在根据数据
级别指示符的数据库中,然后(6)至少部分地基于数据库中存储的数据集合来执行至少一
项动作。
[0044] 在一些示例中,网络设备206和计算设备202、208和210可以各自总体上表示能够读取计算机可执行指令的任意类型或形式的物理计算设备。网络设备206和计算设备202、
208和210的示例包括但不限于路由器(诸如提供商边缘路由器、集线器路由器、分支路由
器、自治系统边界路由器和/或区域边界路由器)、交换机、集线器、调制解调器、网桥、中继
器、网关(例如BNG)、多路复用器、网络适配器、网络接口、客户端设备、笔记本电脑、平板电
脑、台式机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设
备、游戏机、以上一个或多个的变体或组合、和/或任意其他合适的网关设备。
[0045] 网络204通常表示能够促进通信或数据传递的任意介质或体系结构。在一个示例中,网络204也可以包括计算设备202、208和210中的一个或多个,即使这些设备被示为在图
2中的网络204外部。附加地或替代地,网络204可以包括促进网络设备206和/或计算设备
202、208和210之间进行通信的其他设备。网络204可以促进使用无线和/或有线连接的通信
或数据传递。网络204的示例包括但不限于内联网、接入网络、第2层网络、第3层网络、多协
议标签交换(MPLS)网络、网际协议(IP)网络、异构网络(例如第2层、第3层、IP和/或MPLS)网
络、广域网(WAN)、局域网(LAN)、个人局域网(PAN)、因特网、电力线通信(PLC)、蜂窝网络(例
如全球移动通信系统(GSM)网络)、以上一个或多个的部分、以上一个或多个的变体或组合
和/或任意其他合适的网络。
[0046] 图3是用于从观察域卸载IPFIX查找和转换操作的示例性计算机实现的方法300的流程图。图3所示的步骤可以由任意合适的计算机可执行代码和/或计算系统执行,包括图1
中的系统100、图2中的系统200、图4中的系统400、图10中的系统1000和/或以上一个或多个
的变体或组合。在一个示例中,图3所示的步骤中的每一个可以表示算法,其结构包括多个
子步骤和/或由多个子步骤表示,其示例将在下面更详细地提供。
[0047] 如图3所示,在步骤310,本文描述的系统中的一个或多个可以在IPFIX收集器处从在远程设备上实现的IPFIX输出器接收至少一个IPFIX消息。例如作为图2中的计算设备210
的一部分,接收模块104可以从在网络设备206上实现的IPFIX输出器接收至少一个IPFIX消
息。在一个示例中,IPFIX输出器可以包括和/或表示观察域134(1)‑(N)之一。在该示例中,
观察域134(1)‑(N)可以各自由安装到网络设备206的路由引擎的FPC和/或线卡来实现和/
或执行。
[0048] 在另一示例中,IPFIX输出器可以包括和/或表示观察云132。在该示例中,观察云132可以由网络设备206的路由引擎实现和/或执行。附加地或替代地,观察云132可由网络
设备206的物理处理器实现和/或执行。
[0049] 本文描述的系统可以以各种方式和/或在各种上下文中执行步骤310。在一些示例中,接收模块104可以针对从网络204内的某些网络设备到达的IPFIX消息来监视计算设备
210。在一个示例中,在网络设备206上实现的IPFIX输出器可以生成IPFIX消息以输出到在
计算设备210上实现的收集器230。在此示例中,IPFIX输出器可以指示网络设备206将IPFIX
消息发送到计算设备210。在针对IPFIX消息监视计算设备210的同时,接收模块104可以在
到达计算设备210上实现的收集器230处时接收IPFIX消息。
[0050] 在一个示例中,图2中的网络设备206可以包括和/或表示部署在网络204内的路由器。在该示例中,图2中的观察云132可以包括和/或表示路由器的路由引擎,并且观察域134
(1)‑(N)可各自包括和/或表示安装到路由器的路由引擎的线卡。附加地或替代地,观察点
128(1)可以包括和/或表示集成在第一线卡中的网络接口集合,并且观察点128(N)可以包
括和/或表示集成在第二线卡中的网络接口集合。
[0051] 继续该示例,标识模块106可以标识和/或检测在被集成在第一线卡上的网络接口处遇到的各种分组。在该示例中,标识模块106可以在分组的部分(例如报头、元数据和/或
有效载荷)中搜索那些分组共同共享的某些可观察的属性。在搜索期间,标识模块106可以
结合第一线卡标识和/或检测这种可观察的属性。这样的观察属性的示例包括但不限于入
口接口索引、下一跳索引、流方向、转发状态、数据链路帧大小、数据链路帧选择、以上一个
或多个的组合或变体、和/或任意其他合适的数据、公共属性和/或元素。
[0052] 在一个示例中,标识模块106可以至少部分地基于分组共同共享的可观察属性,在第一线卡处将分组彼此匹配和/或对分组进行分组。分组的这种匹配和/或分组可以表示
和/或构成跨整个第一线卡的流。在该示例中,标识模块106可以选择和/或挑选可观察属性
中的一个以用作对于流和/或第一线卡本地唯一的域级别公共属性标识符。
[0053] 在一个示例中,输出器模块112可以生成和/或准备与第一线卡有关的IPFIX消息。在一些实施例中,该IPFIX消息可以标识和/或指定在第一线卡处检测到和/或观察到的分
组共同共享的可观察属性的。附加地或替代地,该IPFIX消息可以标识和/或包括与第一线
卡相关地检测和/或观察到的分组的某些域级别统计数据。在该示例中,输出器模块112可
以确定考虑与第一线卡相关地检测到和/或观察到的分组的这种域级别统计数据。
[0054] 在一些示例中,输出器模块112可以将域级别的公共属性标识符、对应的可观察属性和/或域级别的统计数据或信息插入到IPFIX消息中。在一个示例中,域级别的公共属性
标识符、对应的可观察属性和/或域级别的统计数据可以共同表示和/或构成IPFIX消息的
数据集合。
[0055] 附加地或替代地,输出器模块112可以在IPFIX消息内设置和/或配置数据级别指示符。该数据级别指示符可以指示和/或指定IPFIX消息的数据集合是主要还是次要数据集
合。相应地,由于此IPFIX消息源自第一线卡,因此此IPFIX消息的数据级别指示符可以被设
置和/或被配置为指示IPFIX消息中输出的数据集合是第一线卡观察到的主要数据集合。然
后,输出器模块112可以将此IPFIX消息发送到收集器230。
[0056] 在一些示例中,线卡可以向路由引擎报告关于各个网络接口遇到的各种分组的某些信息和/或统计数据。在这些示例中,标识模块106可以在路由引擎处接收来自线卡的具
有这种信息和/或统计数据的通知。例如源自第一线卡的通知可能指示该线卡的网络接口
已检测到共同共享可观察属性的某些分组。类似地,源自第二线卡的通知可以指示该线卡
的网络接口已检测到公同共享可观察属性的某些分组。
[0057] 在一些示例中,标识模块106可以在来自线卡的通知中搜索那些分组共同共享的可观察属性的指示。在搜索期间,标识模块106可以标识和/或检测可观察属性的这种指示。
分组的匹配和/或分组可以表示和/或构成跨整个第一线卡的流。在该示例中,标识模块106
可以从通知中维护和/或复制域级别公共属性标识符,以用作云级别公共属性标识符。
[0058] 在一些示例中,标识模块106可以在路由引擎处得到、确定和/或发现分组的附加属性。在一示例中,标识模块106可以至少部分地基于分组的可观察属性中的一个或多个来
在路由引擎处执行查找操作。例如标识模块106可以至少部分地基于所讨论的流的目的地
前缀来查找OIF和/或网关。
[0059] 附加地或替代地,标识模块106可以至少部分地基于分组的可观察属性中的一个或多个来在路由引擎处执行转换操作。例如标识模块106可以至少部分地基于所讨论的流
的目的地前缀来转换所查找的OIF和/或网关。在该示例中,标识模块106能够至少部分地基
于查找操作和/或转换操作来在路由引擎处得到分组的附加属性。
[0060] 在一个示例中,标识模块106可以至少部分地基于分组共同共享的可观察的属性,在路由引擎处将分组彼此匹配和/或对分组进行分组。分组的这种匹配和/或分组可以表示
和/或构成跨整个路由引擎的流,该路由引擎包括第一和第二线卡。在该示例中,标识模块
106可以从通知中维护和/或复制域级别公共属性标识符,以用作云级别公共属性标识符。
[0061] 在一个示例中,输出器模块112可以生成和/或准备与路由引擎有关的IPFIX消息。在一些实施例中,该IPFIX消息可以标识和/或指定跨安装到路由引擎的所有线卡检测和/
或观察到分组的得到的属性。附加地或替代地,该IPFIX消息可以识别和/或包括跨安装到
路由引擎的所有线卡检测和/或观察到的分组的某些云级别统计数据。在该示例中,标识模
块106可以确定考虑了跨安装到路由引擎的所有线卡检测到和/或观察到的分组的这种云
级别统计数据。
[0062] 在一些示例中,输出器模块112可以将云级别公共属性标识符、对应的得到的属性和/或云级别统计数据或信息插入到IPFIX消息中。在一个示例中,云级别公共属性标识符、
对应的得到的属性和/或云级别统计数据可以共同表示和/或构成IPFIX消息的数据集合。
在该示例中,云级别公共属性标识符可以使收集器230能够将数据集合记录为源自路由引
擎。
[0063] 附加地或替代地,输出器模块112可以在IPFIX消息内设置和/或配置数据级别指示符。该数据级别指示符可以指示和/或指定IPFIX消息的数据集合是主要数据集合还是次
要数据集合。因此,由于此IPFIX消息源自路由引擎,因此该IPFIX消息的数据级别指示符可
以被设置和/或被配置为指示IPFIX消息中输出的数据集合是第一线卡观察到的主要数据
集合。然后,输出器模块112可以将此IPFIX消息发送到收集器230。
[0064] 在一些示例中,路由引擎可以将公共属性标识符输出到线卡。因此,线卡可能能够生成和/或输出IPFIX消息到收集器230,而无需执行对目标前缀的公共属性(例如OIF和网
关)的查找或转换。换句话说,线卡可以简单地使用这些公共属性标识符,从而避免查找和
转换。
[0065] 图4是用于从观察域卸载IPFIX查找和转换操作的示例性系统400的框图。如图4所示,示例性系统400可以包括和/或表示输出器410和收集器230。在一些示例中,输出器410
可以向收集器230发送IPFIX消息412。在一个示例中,可以在图2中的网络设备206上实现
和/或执行输出器410。附加地或替代地,可以在图2中的计算设备210上实现和/或执行收集
器230。
[0066] 在一些示例中,输出器410可以包括和/或表示在图2中的网络设备206上实现的观察域134(1)‑(N)之一。在其他示例中,输出器410可以包括和/或表示在图2中的网络设备
206上实现的观察云132。
[0067] 图5是示例性IPFIX消息412的框图。如图5所示,示例性IPFIX消息412可包括和/或包含数据级别指示符514和数据集合516。在一些示例中,数据级别指示符514可以包括和/
或表示向收集器230指示数据集合516是主要数据集合还是次要数据集合的数据位。因此,
数据集合516可以包括和/或表示源自观察域134(1)‑(N)之一的主要数据集合。替代地,数
据集合516可以包括和/或表示源自观察云132的次要数据集合。
[0068] 在一些示例中,IPFIX消息412可以经由各种不同的协议输出。例如如果IPFIX消息412携带主要数据集合,则可以使用用户数据报协议(UDP)传输会话来输出IPFIX消息412。
在该示例中,IPFIX消息412还可以包括和/或包含具有观察域标识符的报头,该观察域标识
符唯一地对应于和/或标识出IPFIX消息412所源自的观察域。
[0069] 替代地,如果IPFIX消息412携带次要数据集合,则可以使用传输控制协议(TCP)传输会话来输出IPFIX消息412。在该示例中,IPFIX消息412还可以包括和/或包含具有观察云
标识符的报头,该观察云标识符唯一地对应于和/或标识出IPFIX消息412源自其的观察云。
[0070] 图6是示例性主要数据集合120的图示。如图6所示,示例性主要数据集合120可以包括和/或包含数据集合和/或格式。在一个示例中,数据集合可以包括、表示和/或标识入
口接口索引、下一跳索引、流方向、转发状态和/或数据链路帧大小。在该示例中,数据集合
可以对应于和/或特定于在观察域134(1)‑(N)之一处检测和/或观察到的特定流。更具体
地,数据集合可以对应于和/或特定于跨观察域134(1)‑(N)之一内的各个观察点检测和/或
观察到的特定流。
[0071] 在一个示例中,数据集合的格式可以对应于模板和/或由模板定义。例如模板可以指示数据集合的格式包括位于最左侧位置的第一和第二公共属性标识符以及位于最右侧
位置的第一、第二和第三公共属性。在该示例中,输出器模块112可以选择入口接口索引和/
或下一跳索引以分别用作第一公共属性标识符和第二公共属性标识符。这些公共属性标识
符可以使收集器230能够将主要数据集合120记录为源自观察域134(1)‑(N)之一。附加地或
替代地,这些公共属性标识符可以使收集器230能够在稍后的时间点将主要数据集合120与
对应的次要数据集合相关联和/或匹配。
[0072] 图7是示例性次要数据集合122的图示。如图7所示,示例性次要数据集合122可以包括和/或包含数据集合和/或格式。在一个示例中,数据集合可以包括、表示和/或标识入
口接口索引、入口接口SNMP ID、入口接口名称、入口VRF ID、入口VRF名称、下一跳索引、出
口接口SNMP ID、出口接口名称、下一跳IPv4地址、出口VRF ID和/或出口VRF名称。在该示例
中,数据集合可以对应于和/或特定于在观察云132处检测和/或观察到的特定流。更具体
地,该数据集可以对应于和/或特定于跨观察云132中包括的各个观察域134(1)‑(N)所检测
和/或观察到的特定流。例如图6中的主要数据集合120和图7中的次要数据集合122可以对
应和/或表示相同的流程。
[0073] 在一个示例中,数据集合的格式可以对应于模板和/或由模板定义。例如模板可以指示数据集合的格式包括位于单独数据行的最左侧位置的第一和第二公共属性标识符。在
此示例中,模板还可指示第一、第二、第三和第四公共属性遵循数据行之一中的第一公共属
性标识符,并且第五、第六、第七、第八和第九公共属性遵循另一个数据行中的第二公共属
性标识符。
[0074] 在一个示例中,输出器模块112可以选择入口接口索引和/或下一跳索引以用作第一公共属性标识符和第二公共属性标识符。通过这样做,输出器模块112可以确保在主要数
据集合120和次要数据集合122两者中第一和第二公共属性标识符是相同的。这些公共属性
标识符可以使收集器230能够将次要数据集合122记录为源自观察云132。附加地或替代地,
这些公共属性标识符可以使收集器230能够在稍后的时间点将次要数据集合122与对应的
主要数据集合相关联和/或匹配。
[0075] 在一些示例中,网络设备206可以在网络设备206的路由引擎处的FIB中安装能够在网络204内携带和/或转发业务的路由集合。一旦该路由集合被安装,则路由集合可被视
为完整和/或完整的FIB。在一个示例中,网络设备206的路由引擎可以从线卡中的每一个中
保留安装在FIB中的一些路由,使得没有一个线卡包括所有路由。通过这样做,路由引擎可
以使网络设备206能够支持IPFIX协议,同时还使线卡能够与传统IPFIX技术相比以更少的
存储容量进行操作。
[0076] 返回图3,在步骤320,本文所述的系统中的一个或多个可以标识IPFIX消息内的由在远程设备上所实现的IPFIX输出器输出的数据集合。例如作为图2中计算设备210的一部
分,标识模块106可以标识IPFIX消息512内的数据集合516。在一个示例中,数据集合516可
以由在网络设备206上所实现的观察域134(1)‑(N)之一输出。在该示例中,数据集合516可
以由在网络设备206上所实现的观察云132输出。
[0077] 本文描述的系统可以以各种方式和/或在各种上下文中执行步骤320。在一些示例中,标识模块106可以在IPFIX消息412中搜索从IPFIX输出器输出的任意数据集合。在搜索
期间,标识模块106可以将数据集合516标识为由在网络设备206上所实现的IPFIX输出器输
出。在一个示例中,数据集合516可以包括和/或表示主要数据集,该主要数据集合标识跨观
察域134(1)‑(N)之一遇到的特定流的可观察属性。在另一个示例中,数据集合516可以包括
和/或表示第二数据集合,该第二数据集合标识跨观察云132的观察域134(1)‑(N)遇到的特
定流的得到的属性。
[0078] 返回图3,在步骤330,本文描述的系统中的一个或多个可以标识IPFIX消息中的数据级别指示符,该数据级别指示符指示数据集合是观察域观察到的主要数据集合还是观察
云得到的次要数据集合。例如作为图2中的计算设备210的一部分,标识模块106可以标识数
据级别指示符514,该数据级别指示符514指示数据集合516是由观察域观察到的主要数据
集合还是由观察云得到的次要数据集合。在一示例中,数据级别指示符514可以指示数据集
合516是由观察域输出的。在另一个示例中,数据级别指示符514可以指示数据集合516是由
观察云输出的。
[0079] 本文描述的系统可以以各种方式和/或在各种上下文中执行步骤330。在一些示例中,标识模块106可以在IPFIX消息412中搜索关于数据集合516是主要数据集合还是次要数
据集合的任意指示。例如标识模块106可以搜索IPFIX消息412的报头和/或元数据。在该搜
索期间,标识模块106可以标识数据级别指示符514。之后,收集器模块104可以能够确定数
据集合516是主要数据集合还是次要数据集合。
[0080] 返回图3,在步骤340,本文描述的系统中的一个或多个可以在IPFIX收集器处标识与在IPFIX消息内识别的数据级别指示符相对应的数据库。例如作为图2中的计算设备210
的一部分,标识模块106可以将数据库124标识为与IPFIX消息412内标识的数据级别指示符
514相对应。在该示例中,数据级别指示符514可以指示IPFIX消息412正在携带主要数据集
合。
[0081] 替代地,标识模块106可以将数据库126标识为与在IPFIX消息412内标识的数据级别指示符514相对应。在该示例中,数据级别指示符514可以指示IPFIX消息412正在携带次
要数据集合。
[0082] 本文描述的系统可以以各种方式和/或在各种上下文中执行步骤340。在一些示例中,标识模块106可以在IPFIX消息412中搜索关于数据集合516是主要数据集合还是次要数
据集合的任意指示。例如标识模块106可以搜索IPFIX消息412的报头和/或元数据。在该搜
索期间,标识模块106可以标识数据级别指示符514。之后,收集器模块104可以能够确定数
据集合516是主要数据集合还是次要数据集合。
[0083] 返回图3,在步骤350,本文描述的系统中的一个或多个可以根据数据级别指示符将数据集合存储在数据库中。例如作为图2中的计算设备210的一部分,存储模块108可以根
据数据级别指示符514将数据集合516存储在数据库124中。在一个示例中,如果数据级别指
示符514指示数据集合516为主要数据集合,存储模块108可以将数据集合516存储在数据库
124中。在另一个示例中,如果数据级别指示符514指示数据集合516是次要数据集合,则存
储模块108可以在数据库126中存储数据集合516。
[0084] 本文描述的系统可以以各种方式和/或在各种上下文中执行步骤350。在一些示例中,存储模块108可以将数据集合516从IPFIX消息412复制到数据库124或数据库126。附加
地或替代地,存储模块108可以在数据库124或数据库126中维护和/或保存数据集合516以
至少部分基于IPFIX出口的统一来促进某些动作和/或服务。
[0085] 在一些示例中,模块102可以结合收集器230接收到的附加IPFIX消息来重复以上描述的任意步骤和/或动作。例如模块102中的一个或多个可以使计算设备210(1)由收集器
230从在网络设备206上实现的IPFIX输出器(例如观察域134(1)‑(N)和/或观察云132)接收
至少一个附加IPFIX消息,(2)标识附加IPFIX消息中的、由在网络设备206上实现的IPFIX输
出器输出的数据集合,(3)标识附加IPFIX消息中的附加数据级别指示符,该附加数据级别
指示符指示数据集合是(A)观察域134(1)‑(N)之一所观察到的主要数据集合还是(B)由观
察云132得到的次级数据集合(4)由收集器230标识与IPFIX消息中标识的数据级别指示符
相对应的数据库(例如数据库124或数据库126),然后(5)根据数据级别指示符将数据集合
存储在数据库中。
[0086] 在一些示例中,收集器230可以包括、提供和/或部署执行和/或实行数据库124和数据库126的联合的联合层,诸如联合模块114。在一个示例中,由联合模块114执行的联合
可以涉及标识在主要数据集合120中包括的一个或多个公共属性标识符。在该示例中,联合
还可能涉及至少部分基于公共属性标识符在数据库126中搜索次要数据集合122。
[0087] 附加地或替代地,由联合模块114执行的联合可以涉及标识包括在次级数据集合122中的一个或多个公共属性标识符。在该示例中,联合还可以涉及至少部分地基于公共属
性标识符在数据库124中搜索主要数据集合120。附加地,联合可以涉及至少部分基于公共
属性标识符来创建统一和/或联接主要数据集合120和次要数据集合122的记录。
[0088] 作为特定示例,联合模块114可以将入口接口索引和下一跳索引标识为特定流的第一公共属性标识符和第二公共属性标识符。在该示例中,联合模块114可以在数据库124
和/或数据库126中搜索包括和/或标识相同的入口接口索引和下一跳索引的任意条目。通
过这样做,联合模块114可能能够至少部分地基于入口接口索引和下一跳索引来关联和/或
匹配来自数据库124的一个条目和来自数据库126的另一条目。
[0089] 继续该示例,联合模块114可以在图8中创建记录800。如图8所示,记录800可以包括和/或表示从主要数据集合120和次要数据集合122的联合形成的统一数据集合。例如统
一数据集合可以包括、表示和/或标识入口接口索引SNMP ID、入口接口名称、入口VRF名称、
出口接口SNMP ID、出口接口名称、流向、转发状态和/或所考虑的流的数据链路大小帧。
[0090] 图9是用于在IPFIX收集器处存储和/或统一主要和次要数据集合的示例性计算机实现的方法900的流程图。图9所示的步骤可以由任意合适的计算机可执行代码和/或计算
系统执行,包括图1中的系统100、图2中的系统200、图4中的系统400、图10中的系统1000和/
或以上的一个或多个的变体或组合。在一个示例中,图9所示的每个步骤可以表示一种算
法,其结构包括多个子步骤和/或由多个子步骤表示。
[0091] 如图9所示,收集器230可以接收IPFIX消息,并且然后确定IPFIX消息是否在数据集合中包括信息元素。如果IPFIX消息确实在数据集合中包括信息元素,则收集器230可以
确定该数据集合是主要数据集合还是次要数据集合。如果它是次要数据集合,则收集器230
可以确定该数据集合是源自观察域还是观察云。一方面,如果数据集合源自观察域,则收集
器230可将信息元素存储在观察域数据库中,并且然后访问数据集合中的下一个信息元素。
另一方面,如果数据集合源自观察云,则收集器230可将信息元素存储在观察云数据库中,
并且然后访问数据集合中的下一个信息元素。
[0092] 如果它是主要数据集合,则收集器230可以确定该数据集合是源自观察域还是观察云。一方面,如果数据集合源自观察域,则收集器230可以从观察域数据库取回公共属性
标识符。另一方面,如果数据集合源自观察云,则收集器230可从观察云数据库取回公共属
性标识符。
[0093] 如果找到了公共属性标识符,则收集器230可以扩展数据库中存储的数据集合中的至少一个(例如观察域数据库中存储的主要数据集合),以包括和/或表示主要数据集合
和次要数据集合的联合和/或组合。因此,数据库中的所得条目和/或记录可以是完整的和/
或整个的。然而,如果未找到公共属性标识符,则收集器230可递增计数器和/或丢弃主要数
据集合。
[0094] 如果数据集合不是源自观察域或观察云,则收集器230可以对信息元素执行和/或实行正常的IPFIX处理,并且然后访问数据集合中的下一个信息元素。此后,收集器230可以
对包括在数据集合中的每个信息元素重复上述步骤,直到整个数据集合的处理的完成为
止。
[0095] 返回图3,在步骤360,本文描述的系统中的一个或多个可以至少部分地基于存储在数据库中的数据集合来执行至少一个动作。例如作为图2中的计算设备210的一部分,动
作模块110可以至少部分地基于存储在数据库124和/或数据库126中的数据集合来执行至
少一个动作。这样的动作的示例包括但不限于业务计量、业务分析、安全评估、入侵检测、计
费服务、计费服务、以上一个或多个或多种组合和/或变体、和/或任意其他合适的动作。
[0096] 如以上结合图1‑9所解释的,本文描述的各种系统和方法可能能够将IPFIX查找和转换操作从观察域卸载到观察云。对于IPFIX输出器而言,ASIC查找和转换的成本非常高。
对于IP前缀的任意得到的字段,IPFIX输出器可能需要执行查找和转换。但是,对于任意观
察到的IPFIX前缀字段,IPFIX输出器现在都可以避免执行查找和转换。因此,为了促进
IPFIX输出而不强制在观察域上进行ASIC查找和转换,可以将数据输出到IPFIX收集器的职
责在观察域和包括完整FIB表的观察云之间进行划分。在该示例中,观察云可能能够至少部
分基于目的地前缀而不是观察域来执行查找和转换。因此,观察域不需要下载完整的FIB
表,观察域也不需要具有存储完整FIB表的存储容量。
[0097] 在一个示例中,源地址和目的地址可以跨在路由器处遇到和/或观察到的100,000个流进行匹配。在该示例中,路由器的路由引擎可以将公共属性标识符输出为主要数据集
合。附加地或替代地,OIF和网关可以跨安装到路由引擎的所有线卡是公共的。在该示例中,
路由器的路由引擎可以输出那些匹配的公共属性。这样,安装到路由引擎的每个线卡可能
不需要单独输出那些匹配的公共属性。因此,路由器的路由引擎可能能够输出公共属性,以
避免将完整的FIB表下载到每个线卡。
[0098] 在一个示例中,路由引擎可能能够将公共属性标识符输出到线卡,使得当线卡生成IPFIX分组或将IPFIX分组输出到收集器时,线卡不需要为目的地前缀的OIF和网关执行
查找或转换。在此示例中,线卡可以简单地使用这些公共属性标识符,从而避免查找和转
换。IPFIX输出责任的这种划分可以使某些集成到线卡中的现代ASIC芯片组仍然可以贡献
和/或支持IPFIX协议。
[0099] 在某些示例中,安装到路由器的路由引擎的每个线卡都可以输出IPFIX消息。在这样的示例中,这些IPFIX消息可各自包括具有用于对应观察域标识符的字段的报头。该观察
域标识符可以唯一地标识和/或指定输出线卡。
[0100] 类似地,路由器的路由引擎可以输出IPFIX消息。在这样的示例中,这些IPFIX消息可各自包括具有用于对应观察云标识符的字段的报头。该观察云标识符可以唯一地标识
和/或指定输出路由引擎。
[0101] 在一个示例中,收集器可以维护两个数据库,一个数据库用于主要数据集合,并且另一个数据库用于次要数据集合。在此示例中,主要数据集合可以经由由观察域(例如线卡
和/或在线卡上运行的PFE实例)输出的IPFIX消息来到达收集器。相反,次要数据集合可以
经由由观察云(例如路由引擎和/或路由器)输出的IPFIX消息来到达收集器。收集器可以基
于公共属性标识符执行查找,以组合和/或统一主要数据集合和次要数据集合。然后,收集
器可以使用主要和次要数据集合来创建统一和/或组合的记录。
[0102] 图10是示例性计算系统1000的框图,该示例性计算系统1000能够实现本文描述和/或示出的实施例中的一个或多个和/或结合本文描述和/或示示出的实施例中的一个或
多个来使用。在一些实施例中,计算系统1000的全部或一部分可以单独地或与其他元件组
合地执行结合图3描述的一个或多个步骤和/或作为用于执行结合图3描述的一个或多个步
骤的手段。计算系统1000的全部或部分还可以执行和/或是用于执行和/或实现本文描述
和/或示出的任意其他步骤、方法或过程的部件。
[0103] 计算系统1000广泛地表示任意类型或形式的电负载,包括能够执行计算机可读指令的单处理器或多处理器计算设备或系统。计算系统1000的示例包括但不限于工作站、膝
上型计算机、客户端终端、服务器、分布式计算系统、移动设备、网络交换机、网络路由器(例
如骨干路由器、边缘路由器、核心路由器、移动服务路由器、宽带)路由器等)、网络装备(例
如网络安全装备、网络控制装备、网络定时装备、SSL VPN(安全套接字层虚拟专用网络)装
备等)、网络控制器、网关(例如服务网关、移动分组网关、多路访问网关、安全网关等)和/或
任意其他类型或形式的计算系统或设备。
[0104] 计算系统1000可以被编程、被配置和/或以其他方式被设计为符合一个或多个联网协议。根据某些实施例,计算系统1000可以被设计为与开放系统互连(OSI)参考模型的一
层或多层的协议一起工作,诸如物理层协议,链路层协议,网络层协议,传输层协议,会话层
协议,表示层协议和/或应用层协议。例如计算系统1000可以包括根据以下各项配置的网络
设备:通用串行总线(USB)协议、电气和电子工程师协会(IEEE)1394协议、以太网协议、T1协
议、同步光网络(SONET))协议、同步数字体系(SDH)协议、集成服务数字网络(ISDN)协议、异
步传输模式(ATM)协议、点对点协议(PPP)、以太网上点对点协议(PPPoE)、ATM上的点对点协
议(PPPoA)、蓝牙协议、IEEE 802.XX协议、帧中继协议、令牌环协议、生成树协议和/或任意
其他合适的协议。
[0105] 计算系统1000可以包括各种网络和/或计算组件。例如计算系统1000可以包括至少一个处理器1014和系统存储器1016。处理器1014通常表示能够处理数据或解释和执行指
令的任意类型或形式的处理单元。例如处理器1014可以表示ASIC、片上系统(例如网络处理
器)、硬件加速器、通用处理器和/或任意其他合适的处理元件。
[0106] 处理器1014可以根据上面讨论的一种或多种联网协议来处理数据。例如处理器1014可以执行或实现协议栈的一部分,可以处理分组,可以执行存储器操作(例如对分组进
行排队以供以后处理),可以执行最终用户应用,和/或可以执行任意其他处理任务。
[0107] 系统存储器1016通常表示能够存储数据和/或其他计算机可读指令的任意类型或形式的易失性或非易失性存储设备或介质。系统存储器1016的示例包括但不限于随机存取
存储器(RAM)、只读存储器(ROM)、闪存或任意其他合适的存储设备。尽管不是必需的,但是
在某些实施例中,计算系统1000可以包括易失性存储单元(例如系统存储器1016)和非易失
性存储设备(诸如例如主存储设备1032,如下详细描述)。系统存储器1016可以被实现为网
络设备中的共享存储器和/或分布式存储器。此外,系统存储器1016可以存储在联网操作中
使用的分组和/或其他信息。
[0108] 在某些实施例中,除了处理器1014和系统存储器1016之外,示例性计算系统1000还可以包括一个或多个组件或元件。例如如图10所示,计算系统1000可以包括存储器控制
器1018、输入/输出(I/O)控制器1020和通信接口1022,它们中的每一个都可以经由通信基
础设施1012互连。通信基础设施1012通常表示能够促进计算设备的一个或多个组件之间的
通信的任意类型或形式的基础设施。通信基础设施1012的示例包括但不限于通信总线(诸
如串行ATA(SATA)、工业标准架构(ISA)、外围组件互连(PCI)、PCI Express(PCIe)和/或任
意其他合适的总线)和网络。
[0109] 存储器控制器1018通常表示能够处理存储器或数据或控制计算系统1000的一个或多个组件之间的通信的任意类型或形式的设备。例如在某些实施例中,存储器控制器
1018可以经由通信基础设施1012来控制处理器1014、系统存储器1016和I/O控制器1020之
间的通信。在一些实施例中,存储器控制器1018可以包括直接存储器访问(DMA)单元,其可
以向链路适配器或从链路适配器传递数据(例如分组)。
[0110] I/O控制器1020通常表示能够协调和/或控制计算设备的输入和输出功能的任意类型或形式的设备或模块。例如在某些实施例中,I/O控制器1020可以控制或促进数据在计
算系统1000的一个或多个元件之间的传递,诸如处理器1014、系统存储器1016、通信接口
1022和存储接口1030。
[0111] 通信接口1022广泛地表示能够促进示例性计算系统1000与一个或多个附加设备之间的通信的任意类型或形式的通信设备或适配器。例如在某些实施例中,通信接口1022
可以促进计算系统1000与包括附加计算系统的私有或公共网络之间的通信。通信接口1022
的示例包括但不限于链路适配器、有线网络接口(诸如网络接口卡)、无线网络接口(诸如无
线网络接口卡)和任意其他合适的接口。在至少一个实施例中,通信接口1022可以经由到诸
如因特网的网络的直接链接来提供到远程服务器的直接连接。通信接口1022还可以通过例
如局域网(诸如以太网)、个人局域网、广域网、专用网络(例如虚拟专用网络)、电话或有线
网络、蜂窝电话连接、卫星数据连接或任意其他合适的连接来间接地提供这种连接。
[0112] 在某些实施例中,通信接口1022还可以表示主机适配器,该主机适配器被配置为促进计算系统1000与一个或多个附加网络或存储设备之间经由外部总线或通信信道的通
信。主机适配器的示例包括但不限于小型计算机系统接口(SCSI)主机适配器、通用串行总
线(USB)主机适配器、IEEE 1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA
(SATA)、和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口
1022还可以使计算系统1000能够进行分布式或远程计算。例如通信接口1022可以从远程设
备接收指令,或者向远程设备发送指令以用于执行。
[0113] 如图10所示,示例性计算系统1000还可包括经由存储接口1030耦合到通信基础设施1012的主存储设备1032和/或备份存储设备1034。存储设备1032和1034通常表示能够存
储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如存储设备
1032和1034可以表示磁盘驱动器(例如所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带
驱动器、光盘驱动器、闪存驱动器或类似物。存储接口1030通常表示用于在存储设备1032和
1034与计算系统1000的其他组件之间传递数据的任意类型或形式的接口或设备。
[0114] 在某些实施例中,存储设备1032和1034可以被配置为从可移动存储单元读取和/或写入该可移动存储单元,该可移动存储单元被配置为存储计算机软件、数据或其他计算
机可读信息。合适的可移动存储单元的示例包括但不限于软盘、磁带、光盘、闪存设备等。存
储设备1032和1034还可包括用于允许将计算机软件、数据或其他计算机可读指令加载到计
算系统1000中的其他类似结构或设备。例如存储设备1032和1034可被配置为读取和写入软
件、数据或其他计算机可读信息。存储设备1032和1034可以是计算系统1000的一部分,或者
可以是通过其他接口系统访问的单独的设备。
[0115] 许多其他设备或子系统可以连接到计算系统1000。相反,图10所示的所有组件和设备不必存在以实践本文描述和/或示出的实施例。上面引用的设备和子系统也可以以不
同于图10所示的方式互连。计算系统1000还可以采用任意数量的软件、固件和/或硬件配
置。例如本文公开的一个或多个示例性实施例可以被编码为计算机可读介质上的计算机程
序(也称为计算机软件、软件应用、计算机可读指令或计算机控制逻辑)。术语“计算机可读
介质”通常是指能够存储或携带计算机可读指令的任意形式的设备、载体或介质。计算机可
读介质的示例包括但不限于传输类型的介质,诸如载波;和非暂态型的介质,诸如磁存储介
质(例如硬盘驱动器和软盘)、光存储介质)(例如光盘(CD)和数字视频磁盘(DVD))、电子存
储介质(例如固态驱动器和闪存介质)和其他分发系统。
[0116] 尽管前述公开使用特定框图、流程图和示例阐述了各种实施例,但是本文描述和/或示出的每个框图组件、流程图步骤、操作和/或组件可以单独地和/或使用各种硬件、软件
或固件(或其任意组合)配置来共同地实现。附加地,由于可以实现许多其他架构来实现相
同的功能,因此应将包含在其他组件中的组件的任意公开本质上视为示例性的。
[0117] 在一些示例中,图1中的系统100的全部或一部分可以表示云计算或基于网络的环境的一部分。云计算和基于网络的环境可以经由因特网提供各种服务和应用。这些云计算
和基于网络的服务(例如软件即服务、平台即服务、基础架构即服务等)可以通过Web浏览器
或其他远程接口访问。本文描述的各种功能还可以提供网络交换能力、网关访问能力、网络
安全功能、用于网络的内容缓存和递送服务、网络控制服务和/或其他联网功能。
[0118] 附加地,本文描述的一个或多个模块可以将数据,物理设备和/或物理设备的表示从一种形式转换成另一种形式。附加地或替代地,通过在计算设备上执行、将数据存储在计
算设备上、和/或以其他方式与计算设备进行交互,本文所述的一个或多个模块可以将处理
器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换为
另一种形式。
[0119] 本文描述和/或示出的过程参数和步骤顺序仅作为示例给出,并可根据需要改变。例如尽管可以以特定顺序示出或讨论本文中示出和/或描述的步骤,但是这些步骤不一定
需要以示出或讨论的顺序执行。本文所描述和/或图示的各种示例性方法还可以省略本文
所描述或示出的步骤中的一个或多个,或者除了所公开的步骤之外还包括其他步骤。
[0120] 已经提供了前面的描述以使本领域的其他技术人员能够最好地利用本文公开的示例性实施例的各个方面。该示例性描述并非旨在穷举或限于所公开的任意精确形式。在
不脱离本公开的精神和范围的情况下,可以进行许多修改和变化。在所有方面,本文公开的
实施例应被认为是示意性的而非限制性的。在确定本公开的范围时,应参考所附权利要求
及其等同物。
[0121] 除非另有说明,否则说明书和权利要求书中使用的术语“连接到”和“耦合到”(及其派生词)应解释为允许直接和间接(即,经由其他元件或组件)连接两者。附加地,在说明
书和权利要求书中使用的术语“一个”或“一种”应被解释为表示“至少一个”。最后,为了易
于使用,如说明书和权利要求书中所使用的术语“包含”和“具有”(以及它们的派生词)可以
与单词“包括”互换并且具有与单词“包括”相同的含义。