> **来源:[研报客](https://pc.yanbaoke.cn)** # NetStream 技术白皮书 # 目录 # 1NetStream概述 1.1 NetStream产生背景 1.2 NetStream 应用场景 # 2NetStream技术实现 2.1 NetStream系统组成 2.2 NetStream 工作机制 2.3 NetStream 采样 2.4 NetStream 流建立 2.5 NetStream 流老化 2.6 NetStream 流输出 2.6.1普通流输出 4 2.6.2 聚合流输出 5 2.6.3NetStream输出报文版本 6 # 2.7NetStream输出报文格式 6 2.7.2 V5报文格式 6 2.7.3 V8报文格式 2.7.4 V9报文格式 8 2.7.5 V10 报文格式 11 2.7.6 输出报文格式比较 11 # 2.8NetStream镜像功能 12 2.9 NetStream 过滤功能 ..... 13 # 3典型组网应用 13 3.1 NetStream 应用于流量计费场景 13 3.2 NetStream 应用于网络规划场景 # 1 NetStream 概述 # 1.1 NetStream产生背景 Internet高速发展,使得网络带宽不断增加,网络支持的业务和应用也日渐增多。传统的流量统计技术(如SNMP、端口镜像等),由于统计流量方式不灵活或是需要投资专用服务器成本高等原因,无法满足对网络进行更细致的管理的要求。因此,亟需一种新技术来更好的支持网络流量统计。 为了应对企业网络管理中的这些问题,NetStream应运而生。NetStream是一种基于网络流信息的统计技术,定义了用于设备输出网络流量统计数据的方法,设备对通过其的数据进行统计和分析,并上报给网络流量分析器,经合并处理后存入数据库,并进行进一步的分析处理。 NetStream 技术可利用网络数据流创造价值,并可在最大限度减小对 NetStream 性能影响的前提下提供详细的数据流统计信息。在网络的接入层、汇聚层、核心层上,都可以部署 NetStream,以帮助网络管理人员了解企业内部网络的运行状况,及时发现并解决网络中的性能瓶颈问题、网络异常现象,也能作为用户进行网络优化、网络设备投资、网络带宽优化等的参考。 # 1.2 NetStream应用场景 NetStream 技术的应用场景有以下几种: 计费:基于线路、带宽、时段等资源的占用情况,NetStream可提供精细的计费数据支持。Internet服务提供商可以利用这些信息来实行灵活的计费策略,如基于时间、带宽、应用、服务质量等。企业客户可以使用这些信息计算部门费用或分配成本,以便有效利用资源。 - 网络规划:NetStream 可以为网络管理工具提供关键信息,比如各个 AS 域之间的网络流量情况,以便优化网络设计和规划,实现以最小的网络运营成本达到最佳的网络性能和可靠性。 - 网络监控:通过在出口部署NetStream,可实时监控连接Internet网络的接口流量,从而分析不同业务对出口带宽的占用情况。网管人员可以根据这些信息判断网络的运行情况,尽早发现不合理的网络结构或是网络中的性能瓶颈,方便网管人员规划和分配网络资源。 - 用户监控和分析:通过NetStream技术可以使网络管理者轻松获取用户使用网络和应用资源的详细情况,进而用于高效地规划以及分配网络资源,并保障网络的安全运行。 # 2 NetStream 技术实现 NetStream 是一项基于“流”来统计报文的技术,可以对网络中的业务流量进行统计和分析。它将具有相同特征的报文作为一条流,对各个流进行统计,记录流的统计信息并输出。也可以把多个具有某些相同特征的流聚合成一条聚合流,记录聚合流的统计信息并输出。 # 2.1 NetStream系统组成 一个典型的 NetStream 系统由 NDE(NetStream Data Exporter,网络流数据输出者)、NSC(NetStream Collector,网络流数据收集者)和 NDA(NetStream Data Analyzer,网络流数据分析者)三部分组成。 NDE NDE负责对网络流进行分类,提取符合条件的流进行统计,并将统计信息上报给NSC设备。输出前也可对数据进行一些处理,比如聚合。配置了NetStream功能的设备在NetStream系统中担当NDE角色。 # NSC NSC 通常为运行于某种操作系统上的一个应用程序,负责解析来自 NDE 的报文,把统计数据收集到数据库中,可供 NDA 进行解析。NSC 可以采集多个 NDE 设备输出的数据。 # NDA NDA 是一个网络流量分析工具,它从 NSC 中提取统计数据,进行进一步的加工处理,生成报表,为各种业务提供依据(比如流量计费、网络规划,攻击监测)。NDA 可以提取多个 NSC 中的数据。通常,NDA 具有图形化用户界面,可以使用户方便地获取、显示和分析收集到的数据。 NSC和NDA可以集成在一台NetStream服务器上。 图1NetStream系统中的设备角色 # 2.2 NetStream工作机制 NetStream 的工作机制如下: (1) NDE 把采集到的关于流的详细统计信息定期发送给 NSC。 (2) NSC 将统计信息收集到数据库后发送给 NDA。 (3) NDA对数据进行分析,用于计费、网络规划等应用。 设备作为NDE的NetStream处理过程如图2所示,主要分为以下几个步骤: (4) 设备按照配置的采样方式对业务流量进行NetStream采样。 (5) 设备根据关键值对采样报文进行NetStream流建立。 (6) 设备按照老化方式对 NetStream 流进行流老化。 (7) 设备按照输出方式进行NetStream流输出。 图2NDE的NetStream处理过程 # 2.3 NetStream采样 - NetStream 可以与 Sampler(采样器)配合使用。通过设定适当的采样间隔,只针对样本报文进行流信息统计分析。收集到的统计信息可以基本正确地反映整个网络流的状况,同时也能降低NetStream 功能对设备性能的影响。 NetStream 采样有以下两种方式: - 随机报文间隔采样:在设置的数量间隔内随机采样报文。比如,将报文采样的数量间隔设置为100,则每100个报文中随机采样1个报文。 - 固定报文间隔采样:在设置的数量间隔内周期采样报文。比如,将报文采样的数量间隔设置为100,如果第3个报文被采样,则每隔100个报文都会再次采样,即第103个报文会再采集一次,以此类推。 # 2.4 NetStream流建立 通过在设备的接口上配置适当的采样方式对业务流量进行采样、获取采样报文后,NetStream根据报文中的关键值建立NetStream流,相同关键值的报文标识为同一条NetStream流。例如,若指定区分流的关键值为目的MAC地址和源MAC地址,则目的MAC地址和源MAC地址均相同的报文标识为同一条NetStream流。 不同类型的报文,NetStream 流建立的关键值如表 1 所示。 表1NetStream流建立的关键值 <table><tr><td>报文类型</td><td>NetStream流的关键值</td></tr><tr><td>二层报文</td><td>目的MAC地址、源MAC地址、目的VLAN ID、源VLAN ID、协议类型、输入接口或输出接口</td></tr><tr><td>三层报文</td><td>目的IP地址、源IP地址、目的端口号、源端口号、协议类型、ToS、IPv6流标签、VPN、应用ID、VXLAN ID、输入接口或输出接口</td></tr><tr><td>MPLS报文</td><td>MPLS标签、目的IP地址、源IP地址、目的端口号、源端口号、协议类型、ToS、IPv6流标签、VPN、应用ID、输入接口或输出接口</td></tr></table> # 2.5 NetStream流老化 NetStream 流老化是设备向 NetStream 服务器输出流统计信息的前提。当设备开启 NetStream 功能后,流统计信息首先会被存储在设备的 NetStream 缓冲区中。当存储在设备上的 NetStream 流信息老化后,设备会把缓冲区中的流统计信息通过指定版本的 NetStream 输出报文发送给 NetStream 服务器,同时清除缓冲区中的对应信息。 NetStream 流老化有按时老化、强制老化、TCP 的 FIN 和 RST 报文触发老化三种方式。 # 1. 按时老化 按时老化分为以下两种方式: - 流的不活跃老化:从采集到的最后一个报文开始,该流在指定的时间内没有被采集到,那么设备会向NetStream服务器输出该流的统计信息,这种老化称为流的不活跃老化。这种老化方式主要应用于短时间流,可以及时清除设备上NetStream缓冲区中的无用表项,节省内存空间,充分利用统计表项资源。 - 流的活跃老化:从采集到的第一个报文开始,该流在指定的时间内一直能被采集到。当流活跃时间超过设定的时长后,需要输出该流的统计信息,这种老化称为流的活跃老化。设备向NetStream服务器输出流的统计信息后,因为该流还存在,所以设备会继续统计该流。这种老化方式主要应用于持续时间较长的流量,是设备定期向NetStream服务器输出流统计信息的一种机制。 # 2. 强制老化 强制老化分为以下两种方式: - 手工强制老化:执行命令强制将NetStream缓冲区中所有流老化、输出,并清空NetStream缓冲区信息。 - 最大数目老化:当NetStream流缓存区中流表项的数目达到指定的最大数目时,强制老化部分流表项或禁止新建流表项。 强制老化主要应用于老化条件尚未满足,但此时又需要最新的统计信息,或者NetStream业务发生异常,导致流缓存区中某些流始终不老化。 # 3. TCP 的 FIN 和 RST 报文触发老化 对于 TCP 连接,当收到标志为 FIN 或 RST 的报文时,表示一次会话结束。因此,当一条已经存在的 TCP 协议 NetStream 流中,接收到一个标志为 FIN 或 RST 的报文时,可以立即老化该流,输出该流的统计信息,并清除该 NetStream 流。 但是,如果一条流的第一个报文就是TCP的FIN或RST报文,则会按正常的流程创建一条新流,不进行老化。 # 2.6 NetStream流输出 # 2.6.1 普通流输出 普通流输出是指所有流的统计信息都要被统计。在流老化后,每条流的统计信息都要输出到NetStream服务器。 普通流输出的优点是,NetStream 服务器可以得到每条流的详细统计信息。但其缺点也很明显,这种方式增加了网络带宽和设备的 CPU 占有率,而且为了存储这些信息,需要大量的存储介质空间。 # 2.6.2 聚合流输出 聚合流输出是指设备对聚合关键项完全相同的流的统计信息进行汇总,从而得到对应的聚合流统计信息,并将该聚合统计信息发送到相应的NetStream服务器。 目前,聚合流输出支持的聚合方式如表2所示。系统根据选择的聚合方式的聚合关键项,将聚合关键项均相同的多条流的统计信息合并为一条聚合流的统计信息,记录该聚合流的统计信息,并将其发送给NetStream服务器。 # 说明 不同的聚合方式相互独立,可以同时配置。 例如,设备采集到四条TCP流,其目的地址相同、源地址不同、源端口和目的端口均为10。选择表2中的“协议-端口聚合”方式,该聚合方式的依据为“协议号、源端口、目的端口”。因为这四条TCP流的源端口、目的端口和协议号相同,所以在聚合流统计表项中只会记录一条聚合流统计信息。设备只将聚合统计信息发送给相应的NetStream服务器。由此可见,聚合的最大好处是可以减少对网络带宽的占用。 表2 聚合流输出支持的聚合方式 <table><tr><td>聚合方式</td><td>聚合关键项</td></tr><tr><td>自治系统聚合(as)</td><td>源AS号、目的AS号、输入接口索引、输出接口索引</td></tr><tr><td>BGP团体属性聚合(bgp-community)</td><td>NetStream流的输入、输出接口索引、BGP团体属性</td></tr><tr><td>协议-端口聚合(protocol-port)</td><td>协议号、源端口、目的端口</td></tr><tr><td>源前缀聚合source-prefix)</td><td>源AS号、源掩码长度(源IP的掩码长度)、源前缀(源IP的网络地址)、输入接口索引</td></tr><tr><td>目的前缀聚合(destination-prefix)</td><td>目的AS号、目的掩码长度(目的IP的掩码长度)、目的前缀(目的IP的网络地址)、输出接口索引</td></tr><tr><td>源和目的前缀聚合(prefix)</td><td>源AS号、目的AS号、源掩码长度、目的掩码长度、源前缀、目的前缀、输入接口索引、输出接口索引</td></tr><tr><td>前缀-端口聚合(prefix-port)</td><td>源前缀、目的前缀、源掩码长度、目的掩码长度、ToS、协议号、源端口、目的端口、输入接口索引、输出接口索引</td></tr><tr><td>服务类型-自治系统聚合(tos-as)</td><td>ToS、源AS号、目的AS号、输入接口索引、输出接口索引</td></tr><tr><td>服务类型-源前缀聚合(tos-source-prefix)</td><td>ToS、源AS号、源前缀、源掩码长度、输入接口索引</td></tr><tr><td>服务类型-目的前缀聚合(tos-destination-prefix)</td><td>ToS、目的AS号、目的掩码长度、目的前缀、输出接口索引</td></tr><tr><td>服务类型-前缀聚合(tos-prefix)</td><td>ToS、源AS号、源前缀、源掩码长度、目的AS号、目的掩码长度、目的前缀、输入接口索引、输出接口索引</td></tr><tr><td>服务类型-协议-端口聚合(tos-protocol-port)</td><td>ToS、协议类型、源端口、目的端口、输入接口索引、输出接口索引</td></tr><tr><td>服务类型-BGP下一跳聚合(tos-bgp-nexthop)</td><td>ToS、BGP下一跳地址、输出接口索引</td></tr></table> # 说明 - 在统计AS号时,如果流量没有按照BGP的路由表进行转发,则系统无法统计出AS号。 - 在统计 BGP 下一跳地址时,如果流量没有按照 BGP 的路由表进行转发,则系统无法统计出 BGP 下一跳地址。 # 2.6.3 NetStream 输出报文版本 目前NetStream输出的报文主要有如下版本: - 版本5:根据关键值产生原始的数据流,不支持聚合流输出,报文格式固定,不易扩展。 版本8:支持聚合流输出,报文格式固定,不易扩展。 - 版本 9: 基于模板方式, 模板可在遵循 RFC 定义的模板格式的前提下自定义。版本 9 支持聚合流输出, 支持对 BGP 下一跳信息和 MPLS 报文进行统计输出。 - 版本10:基于模板方式,模板可在遵循RFC定义的模板格式的前提下自定义。版本10支持聚合流输出,支持对BGP下一跳信息和MPLS报文进行统计输出。版本10输出格式符合IPFIX协议规定。 # 2.7 NetStream输出报文格式 NDE 将收集到的业务流统计信息封装在 UDP 报文中,发送给 NetStream 服务器。一个 UDP 报文中可以携带多条统计信息。这些统计信息输出的格式是由 NDE 设备决定的,NetStream 服务器收到 NDE 发送来的统计报文后,会根据 NetStream 流输出的格式,分析收集到的数据。NetStream 报文格式如图 3 所示。通过 Header 字段中的 Version 字段来区分 NetStream 输出报文的版本。 图3 NetStream报文格式 # 说明 IPv4 NetStrem 输出报文版本支持 V5、V8、V9 和 V10,IPv6 NetStream 输出报文版本仅支持 V9 和 V10。 # 2.7.2 V5报文格式 NetStream 版本 5 的报文头(Header),如图 4 所示。 图4Netflix版本5的报文头(Header) <table><tr><td>0</td><td>7</td><td>15</td><td>31</td></tr><tr><td colspan="2">Version</td><td colspan="2">Count</td></tr><tr><td colspan="4">System Up Time</td></tr><tr><td colspan="4">Unix Secs</td></tr><tr><td colspan="4">Unix Nsecs</td></tr><tr><td colspan="4">Flow Sequence</td></tr><tr><td>EngineType</td><td>Engine ID</td><td colspan="2">Reserved</td></tr></table> 其中,各字段的含义如下: - Version: NetStream 输出报文的版本,对于版本 5,取值为 5。 - Count: 当前报文中的流记录数。 - System Up Time: 报文产生的时间, 从系统启动到报文产生的时间, 单位为毫秒。 - Unix Secs: 报文产生时间的整秒数, 即从 1970 年 1 月 1 日 0 时以来时间的整秒数。 - Unix Nsecs: 报文产生时间的纳秒数, 即从 1970 年 1 月 1 日 0 时以来时间不足 1 秒的纳秒数。 - Flow Sequence: 流记录的顺序号。 - Engine Type: 流交换引擎类型,填充的内容是设备类型。 - Engine ID:流交换引擎的槽位号,填充的内容为当前NetStream处理板的槽位号。 Reserved: 保留字段, 取值为全 0。 # 2.7.3 V8报文格式 NetStream 版本 8 的报文头(Header),如图 5 所示。 图5 Streaming 版本 8 的报文头(Header) <table><tr><td>0</td><td>7</td><td>15</td><td>31</td></tr><tr><td colspan="2">Version</td><td colspan="2">Count</td></tr><tr><td colspan="4">System Up Time</td></tr><tr><td colspan="4">Unix Secs</td></tr><tr><td colspan="4">Unix Nsecs</td></tr><tr><td colspan="4">Flow Sequence</td></tr><tr><td>EngineType</td><td>Engine ID</td><td>Aggregation</td><td>Aggregation Version</td></tr><tr><td colspan="2">Sampling Interval</td><td colspan="2">Reserved</td></tr></table> 其中,各字段的含义如下: - Version: NetStream 输出报文的版本,对于版本 8,取值为 8。 - Count: 当前报文中的流记录数。 - System Up Time:报文产生的时间,从系统启动到报文产生的时间,单位为毫秒。 - Unix Secs:报文产生时间的整秒数,即从1970年1月1日0时以来时间的整秒数。 - Unix Nsecs: 报文产生时间的纳秒数, 即从 1970 年 1 月 1 日 0 时以来时间不足 1 秒的纳秒数。 - Flow Sequence: 流记录的顺序号。 - Engine Type: 流交换引擎类型,填充的内容是设备类型。 - Engine ID:流交换引擎的槽位号,填充的内容为当前NetStream处理板的槽位号。 - Aggregation: 聚合类型。 - Aggregation Version: 聚合版本号,取值为 0x02。 - Sampling Interval: 采样间隔,取值为0。 Reserved: 保留字段, 取值为全 0。 # 2.7.4 V9报文格式 # 1. 报文头格式 NetStream 版本 9 的报文头(Header),如图 6 所示。 图6 Streaming 版本 9 的报文头(Header) 其中,各字段的含义如下: - Version: NetStream 输出报文的版本,对于版本 9,取值为 9。 - Count: 该报文包含的 FlowSet record(包括模板记录和数据记录)的数目。 - System Up Time:报文产生时间,距离系统启动的时间,单位为毫秒。 - Unix Secs:报文产生时间,从1970年1月1日0时以来时间的整秒数。 - Package Sequence: 输出报文的序列号, 该值是输出报文数量的累加, 每发送一个报文, 报文序列号加 1 , 可以被 NSC 用来判断是否有输出报文丢失。 - Source ID: 输出流记录的设备的唯一标识。Source ID 长度为四个字节: 。前两个字节是保留值,取值为0。 。第三个字节为 Engine Type,表示流交换引擎类型,填充的内容是设备类型。 。第四个字节为Engine ID,表示流交换引擎的槽号,填充的内容为当前NetStream处理板的槽位号。 # 2. 报文格式 V5和V8版本的报文格式都是固定的,不可更改。V9版本报文输出格式非常灵活,可以根据需要定义不同的模板。 V9 的输出报文分为模板输出报文和数据输出报文,分别如图 7 和图 8 所示。模板输出报文用来规定对应的数据输出报文中的数据如何解释,NSC 根据收到的模板来解释后续收到的数据。 图7 V9模板输出报文格式示意图 <table><tr><td>Packet Header</td><td>Template FlowSet</td><td>...</td><td>Template FlowSet</td><td>...</td></tr></table> 图8 V9数据输出报文格式示意图 <table><tr><td>Packet Header</td><td>Data FlowSet</td><td>...</td><td>Data FlowSet</td><td>...</td></tr></table> # (1) 模板输出报文 模板输出报文由 Packet Header 和一个或多个 Template FlowSet 构成。Template FlowSet 的格式,如图 9 所示。 图9 Template FlowSet 的报文格式 <table><tr><td>0</td><td>7</td><td>15</td></tr><tr><td colspan="3">FlowSet ID=0</td></tr><tr><td colspan="3">Length</td></tr><tr><td colspan="3">Template ID</td></tr><tr><td colspan="3">Field Count</td></tr><tr><td colspan="3">Field 1 Type</td></tr><tr><td colspan="3">Field 1 Length</td></tr><tr><td colspan="3">Field 2 Type</td></tr><tr><td colspan="3">Field 2 Length</td></tr><tr><td colspan="3">......</td></tr><tr><td colspan="3">Field n Type</td></tr><tr><td colspan="3">Field n Length</td></tr></table> 其中,各字段的含义如下: 。FlowSet ID:取值固定为0,表示为模板流集。 。Length:模板流集中所有字段长度的总和,单位为字节。 。Template ID:用来标识不同的模板,不同的模板对应不同的Template ID。 。Field Count:当前模板记录的域的数目。一个模板流集可以包含多个模板记录,Field Count给出了某个模板记录所包含的域的数量,以便定位到下一个模板记录。 ○ Field Type: 域类型, 用于定义使用该模板的数据记录中包含流的哪些信息, 其取值可以由用户自己定义。比如, “Source AS” 和 “Destination AS” 分别用来表示源、目的 AS。 。Field Length: 使用该模板的数据记录中该类型域的长度, 单位为字节。比如, 域类型 “Source AS” 和 “Destination AS” 的域长度取值为 4 , 表示 4 个字节。 # (2) 数据输出报文 数据输出报文由 PacketHeader 和一个或多个 DataFlowSet 构成。DataFlowSet 的格式,如图 10 所示。 图10 Data FlowSet 的报文格式 其中,各字段的含义如下: 。FlowSet ID:取值为数据记录使用的模板记录的TemplateID。NSC通过TemplateID将数据报文与对应的模板记录关联,以便根据模板记录来解析该数据记录。 。Length:数据流集的总长度,单位为字节。 o Record-Filed Value: 数据流的信息, 取值为信息的具体数值。这些字段的类型和长度已通过 Template FlowSet 中的 “Field Type” 和 “Field Length” 定义。 # 3. Template FlowSet 与 Data FlowSet 的关系 Template FlowSet 与 Data FlowSet 的关系,如图 11 所示。通过 Data FlowSet 中的 FlowSet ID 值找到 Template FlowSet 中与之取值相同的 Template ID,从而可以找到每个数据流信息对应的域类型和域长度。比如: - Template FlowSet 中的 “Field 1 Type” 和 “Field 1 Length” 的取值分别为 “Source IPv4 address” 和 “4”。 - Data FlowSet 中的 “Record-Field 1 Value” 的取值为 “137.66.8.1”。 - Data FlowSet 中 “137.66.8.1” 则被解析为长度为 4bits 的源 IP 地址。 图11 Template FlowSet与Data FlowSet的关系 # 2.7.5 V10报文格式 NetStream 版本 10 的报文与版本 9 的报文类似,主要差别为报文头和模板支持的字段不同(V10 版本支持的字段更丰富)。NetStream 版本 10 的报文头(Header),如图 12 所示。 图12 NetStream 版本 10 的报文头(Header) 其中,各字段的含义如下: - Version: NetStream 输出报文的版本,对于版本 10,取值为 10。 Length: 输出报文长度, 包括报文头的长度, 单位为字节。 - Export Time: 流记录从 NDE 发出的时间, 取值为从 1970 年 1 月 1 日 0 时以来时间的整秒数。 - Sequence Number: 输出报文的顺序号,该值是输出报文数量的累加,可以被 NSC 用来判断是否有输出报文丢失。 - Observation Domain ID: 观察域 ID, 从同一台设备输出的所有流的观察域 ID 相同。 # 2.7.6 输出报文格式比较 NetStream 输出报文的四种格式对比如表 3 所示。 表3 NetStream 输出报文格式对比表 <table><tr><td>版本</td><td>支持的流输出方式</td><td>优点</td><td>缺点</td></tr><tr><td>V5</td><td>原始流</td><td>·将流的详细信息输出给NSC,输出的字段丰富全面 ·NDE负荷小</td><td>·报文格式固定,不易扩展 ·数据量大,NSC无法长期保存 ·NSC、NDA解析和分析的负担较重 ·扩展新的输出信息时,需要升级NSC/NDA软件,来适应NDE的变化</td></tr><tr><td>V8</td><td>聚合流</td><td>·支持聚合流输出方式,减少对网络带宽的占用 ·可以针对关注的统计项,配置不同的聚合方式 ·可以扩展新的聚合方式</td><td>·报文格式固定,不易扩展 ·NDE ·扩展新的输出信息时,需要升级NSC/NDA软件,来适应NDE输出报文的变化</td></tr><tr><td>V9</td><td>原始流、聚合流</td><td>·基于模板方式,报文格式灵活,易扩展 ·模板提供了灵活可扩展的报文输出格式,可以在不改变输出报文格式情况下,增加新的流统计项 ·NSC/NDA无需升级软件来适应NDE输出报文的变化</td><td>-</td></tr><tr><td>V10</td><td>原始流、聚合流</td><td>·基于模板方式,报文格式灵活,易扩展 ·模板提供了灵活可扩展的报文输出格式,可以在不改变输出报文格式情况下,增加新的流统计项 ·NSC/NDA无需升级软件来适应NDE输出报文的变化 ·模板支持的字段比V9更丰富</td><td>-</td></tr></table> # 2.8 NetStream镜像功能 NetStream镜像功能是将满足某种QoS策略或指定端口上的报文复制到提供NetStream功能的业务板上,然后在业务板上进行流量统计和Nestream流表项的输出。通过这种方式,可以将NetStream流统计集中到一块业务板上,而不会对设备的转发性能造成影响。 NetStream镜像有以下方式: - NetStream 流镜像 通过 QoS 策略定义类,并定义流行为将符合分类的报文镜像到提供 NetStream 功能的业务板或业务设备上。 - NetStream端口镜像 端口镜像是指将端口上的报文镜像到提供NetStream功能的业务板或业务设备上。 # 2.9 NetStream过滤功能 NetStream 可以与 ACL(Access Control List,访问控制列表)配合使用,NetStream 只统计 ACL 筛选出的报文。通过这种方式可以使 NetStream 只对用户关注的数据进行统计,更能满足用户多样的统计要求。 # 3 典型组网应用 # 3.1 NetStream应用于流量计费场景 某公司的市场部和技术部通过Device接入到Internet网络,公司希望能够掌握两个部门的上网情况,以便进行分部门计费。在设备连接Internet网络的接口上,通过NetStream统计功能,可以统计接口出、入方向的流量信息,并上送给NetStream服务器进行后续的分析,以便实现监控两个部门的上网情况,为分部门计费提供依据。 图13 NetStream 应用于流量计费场景组网图 # 3.2 NetStream应用于网络规划场景 某校园被划分为三个教学区,最初网络管理员为每个教学区分配了相同的带宽。但是随着 VoIP、P2P、IPTV 等新业务的应用,之前的网络划分已经无法满足学生和老师们的需求,同时也不利于管理。管理员可以在 Gateway 连接 Internet 网络侧的接口上部署 NetStream 功能,统计接口出、入方向的流量信息,并上送给 NetStream 服务器进行后续的分析,以便通过获取到的带宽使用率的详细信息进行网络的规划和分配,同时对网络流量进行监管。 图14 NetStream 应用于网络规划场景组网图