NetStream介绍

  • NetStream系统组成
  • NetStream流老化
  • NetStream流输出
  • NetStream流输出格式
  • NetStream镜像功能
  • NetStream过滤功能
  • NetStream采样功能
  • 开启NetStream功能
  • 开启接口的NetStream功能
  • 开启NetStream流表项信息存档功能
  • 配置NetStream镜像功能
  • 配置NetStream端口镜像
  • 配置NetStream过滤功能
  • 配置NetStream采样功能
  • 配置NetStream统计接口出方向的IPsec加密的报文功能
  • 配置NetStream输出报文的格式
  • 配置NetStream输出报文版本9模板的刷新率
  • 配置NetStream的按时老化
  • 配置NetStream TCP的FIN或RST报文触发老化
  • 配置NetStream流统计信息输出
  • 配置NetStream聚合流的统计信息输出
  • NetStream显示
  • 基于会话的NetStream

NetStream技术是一种基于流的统计技术,可以对网络中的业务流量进行统计分析。它根据IPv4报文的目的ip、源ip、目的端口、源端口、协议号、ToS(Type of Service,服务类型)、输入接口或输出接口来定义流,七元组相同的报文属于同一条流。NetStream除了可以逐流统计,也可以将许多具有某些相同特征的流聚合成一条流进行统计。

NetStream系统组成

一个典型的NetStream系统由NDE(NetStream Data Exporter,网络流数据输出者)、NSC(NetStream Collector,网络流数据收集者)和NDA(NetStream Data Analyzer,网络流数据分析者)三部分组成。

  • NDE根据七元组对网络流进行分类,提取符合条件的流进行统计,并将统计信息输出给NSC设备。输出前也可以对数据进行一些处理,比如聚合。配置了NetStream功能的设备在NetStream系统中担当NDE角色。
  • NSC通常为运行在某种操作系统上的应用程序,负责解析来自NDE的报文,把统计数据收集到数据库中,可供NDA进行解析。NSC可以采集多可NDE设备输出的数据。
  • NDA是一个网络流量分析工具,它从NSC中提取数据,生成报表,为各种业务提供依据(比如流量计费、网络规划、攻击检测)。NDA可以提取多个NSC中的数据,通常NDA具有图形化用户界面,用户可以方便地获取、分析数据。
    NetStream系统中的设备角色

NetStream流老化

NetStream流老化是设备向NetStream服务器输出流统计信息的一种手段。当设备开启NetStream功能后,流统计信息首先会被储存在设备的NetStream缓冲区中。当储存在设备上的NetStream流信息老化后,设备会把缓冲区中的流统计信息通过制定版本的NetStream输出报文发送给NetStream服务器,同时清除缓冲区中对应的信息。
NetStream流老化有按时老化、强制老化、TCP的FIN和RST报文触发老化三种方式。
按时老化分为以下两种:

  • 流的不活跃老化:从采集到到的最后一个报文开始,该流在指定的时间内没有被采集到,那么设备会向NetStream服务器输出该流的统计信息,这种老化称为流的不活跃老化。通过这种老化,可以清除设备上NetStream缓冲区中的无用表项,充分利用统计表项资源。
  • 流的活跃老化:从采集到的第一个报文开始,该流在指定时间内能被采集到。活跃时间超过设定时长后,需要输出该流的统计信息,这种老化称为流的活跃老化。设备向NetStream服务器输出流的统计信息后,因为该流还存在,所以设备会继续统计该流。这种老化方式是设备定期向NetStream服务器输出流统计信息的一种机制。

强制老化分为以下两种方式:

  • 手工强制老化:执行命令强制将NetStream缓冲区中所有流老化、输出,并清空NetStream缓冲区信息。
  • 最大数目老化:当NetStream流缓冲区中流表项的数目达到最大数时,强制老化部分流表项或禁止新建流表项。

TCP的FIN和RST报文触发老化:

对于TCP连接,当收到标志为FIN或RST的报文时,表示一次会话结束。因此当一条已经存在的TCP协议NetStream流中流过一个标志为FIN或RST的报文时,可以立即老化,输出相应的NetStream流,并清除该NetStream流。但是假如一条流的第一个报文就是TCP的FIN或RST报文,则会按正常的流程创建一条新流,不进行老化。

NetStream流输出

普通流输出:
指所有流的统计信息都要被统计。在流老化后,每条流的统计信息都要输出到NetStream服务器。优点是NetStream服务器可以得到每条流的详细统计信息。缺点是增加了网络带宽和设备的CPU占有率,而且为了储存这些信息,需要大量的储存空间。
聚合流输出:
指设备对与聚合关键项完全相同的流的统计信息进行汇总,从而得到对应的聚合流统计信息,并将该聚合统计信息发送到相应的NetStream服务器。
目前聚合流输出支持的聚合方式如表所示。系统根据选择的聚合方式聚合关键项,将关键项相同的多条流的统计信息合并为一条流的统计信息,记录该聚合流的统计信息。这些聚合方式相互独立,可以同时配置。

在统计AS号时,如果流量没有按照BGP的路由表进行转发,则系统无法统计住AS号。
在统计BGP下一跳地址时,如果流量没有按照BGP的路由表进行转发,则系统无法统计出BGP下一跳地址。

NetStream流输出格式

版本5:根据七元组产生原始的数据流,不支持聚合流输出,报文格式固定,不易扩展。
版本8:支持聚合流流输出,报文格式固定,不易扩展。
版本9:基于模板方式,模板可遵循RFC定义的模板格式的前提下自定义。版本9支持聚合流输出,对BGP下一跳信息和MPLS报文的统计输出。

NetStream镜像功能

NetStream镜像功能是将满足某种QoS策略或指定端口上的报文复制到提供NetStream功能的业务板上,然后在业务板上进行流量统计和NetStream流表项的输出。通过这种方式,可以将NetStream流统计集中到一块业务板上,而不会对设备的转发性能造成影响。
NetStream镜像由一下方式:
NetStream流镜像,通过QoS策略定义类,并定义流行为将符合分类的报文镜像到提供NetStream功能的业务板或业务设备上。
NetStream端口镜像,端口镜像是指将端口上的报文镜像到提供NetStream功能的业务板或业务设备上。

NetStream过滤功能

NetStream可以与ACL(Access Control List,访问控制列表)配合使用,NetStream只统计ACL筛选出的报文。通过这种方式可以使NetStream只对用户关注的数据进行统计,更能满足用户要求。

NetStream采样功能

NetStream可以与Sampler(采样器)配合使用。通过设定适当的采样间隔,不但减少了统计的报文数量,也可以保证收集到的统计信息基本正确的反应整个网络流的状况。另外,采样还可以减小网络的流量,避免网络中的大流量对设备转发性能造成影响。

开启NetStream功能

进入系统视图
System-veiw
开启全局的NetStream功能
ip netstream

开启接口的NetStream功能

进入系统视图
System-veiw
进入接口视图
interface interface-type interface-number
开启接口的NetStream功能
ip netsteam [inbound | outbound]
缺省情况下,全局的NetStream功能处于关闭状态。

开启NetStream流表项信息存档功能

缺省情况下,NetStream流表项信息存档功能处于关闭状态。缓存中的NetStream流表项老化输出后,就会从缓存中清除。用户无法查看已输出的流表项信息。配置本特性后,NetStream会将统计到的流表项信息在老化输出之前以二进制的形式保存到本地,名称为netstream.log。使用display ip netstream cache archive命令可查看保存到本地的NetStream流表项信息。
当本地已无足够剩余储存空间的情况时,设备将用新的NetStream流表项覆盖旧的NetStream流表项来保证NetStream流表项存档。

本功能适用于少量NetStream流表项目且无日志服务器的场景,对于大量NetStream流表项的场景,开启本功能后会影响设备性能,不建议启用。

进入系统视图
system-view
开启NetStream流表项信息存档功能
ip netstream cache archive enable
缺省情况下,NetStream流表项信息存档功能处于关闭状态

配置NetStream镜像功能

需要先开启全局的NetStream功能后才能配置本功能
进入系统视图
System-view
定义一个类,并进入类视图
traffic classifier classifier-name [operator {and|or}]
定义匹配数据包规则
if-match match-criteria
退回系统视图
quit
定义一个流行为,并进入流行为视图
traffic behavior behavior-name
配置NetStream流镜像
(分布式设备-独立运行模式)(集中式IRF设备)
mirror-to slot slot-number [backup-slot slot-number] [sampler sampler sampler-name]
(分布式设备-IRF模式)
Mirror-to chassis chassis-number slot slot-number [backup chassis chassis-number slot slot-number] [sampler sampler-name]
缺省情况下,未配置NetStream流镜像
退回系统视图
quit
定义一个QoS策略,并进入QoS策略视图
qos policy policy-name
为类指定流行为
classifier classifier-name behavior behavior-name [mode dcbx]

配置NetStream端口镜像

进入系统视图
System-view
进入接口视图
interface interface-type interface-number
将端口流量镜像到指定slot
(分布式设备—独立运行模式)(集中式IRF设备)
ip netstrean {inbound | outbound} mirror-to service slot slot-number [backup slot slot-number]
(分布式设备—IRF模式)
ip netstream { inbound | outbound} mirror-to service chassis chassis-number slot slot-number [ back chassis chassis-number slot slot-number]
缺省情况下,不对端口流量进行镜像

配置NetStream过滤功能

NetStream使用ACL对报文进行过滤
如果在设备上同时配置NetStream过滤和采样功能,设备会先过滤报文,然后进行采样。
NetStream过滤功能对MPLS报文无效
进入系统视图
System-view
进入接口视图
interface interface-type interface-number
开启NetStream过滤功能
ip netstream { inbound | outbound} filter acl ipv4-acl-number
缺省情况下,NetStream过滤功能处于关闭状态

配置NetStream采样功能

设备开启NetStream功能后,缺省情况下不会对流量进行采样,即对所有业务流量都进行统计和分析,此时会消耗大量设备硬件资源,使CPU利用率过高。建议在满足NetStream收集到的统计信息能基本反映整个网络的状况的前提下,开启NetStream采样功能并配置合适的采样率,避免过多的设备硬件消耗对设备转发性能造成影响。

进入系统视图
System-view
创建采集器
sampler sampler-name mode { fixed | random} packet-interval n-power rate
进入接口视图
interface interface-type interface-number
开启NetStream采样功能
ip netstream [ inbound | outbound] sampler sampler-name
缺省情况下,NetStream采样功能处于关闭状态

配置NetStream统计接口出方向的IPsec加密的报文功能

进入系统视图
System-view
进入接口视图
interface interface-type interface-number
开启接口出方向的NetStream功能
ip netstream outbound
缺省情况下,接口出方向的NetStream功能
ip netstream outbound
缺省情况下,接口的出方向的NetStream功能处于关闭状态
IPsec加密前的报文功能,并关闭NetStream统计接口出方向的IPsec
加密的报文功能
Ip netstream ipsec raw-packet
缺省情况下,NetStream统计接口出方向的IPSec加密前的报文功能处于关闭状态,NetStream统计接口出方向的IPSec加密的报文功能处于开启状态

配置NetStream输出报文的格式

可以通过配置NetStream输出报文的格式,进一步明确需要统计的选项(自治系统号、BGP下一跳地址)
进入系统视图
System-view
配置NetStream统计输出报文版本及自治系统选项、BGP下一跳选项。请选择其中一项进行配置
配置NetStream版本5的自治系统选项
ip netstream export version5 {origin-as | peer-as}
配置NetStream版本9的自治系统选项和BP下一跳选项
Ip netstream export version 9 {origin-as | peer-as} [bgp-nexthop]
缺省情况下,NetStream统计输出报文使用版本9,记录邻接自治系统(peer-as)信息,不记录BGP下一跳信息

配置NetStream输出报文版本9模板的刷新率

版本9是基于模板方式的、支持自定义格式的输出报文版本。由于NetStream服务器不会永久保存模板,所以设备需要定期通知NetStream服务器最新的版本9模板格式。
进入系统视图
System-view
配置NetStream统计输出报文版本9模板的刷新率
Ip netstream export v9-template refresh-rate {packet packets | time minutes}
缺省情况下,每隔20个包刷新一次版本9模板;每隔30分钟刷新一次版本9模板

配置NetStream的按时老化

进入系统视图
System-view
配置流的活跃老化时间
ip netstream max-entry {max-entries | aging | disable-caching}
退回用户视图
quit
将流缓存区中所有流强制老化,并清除NetStream缓冲区的状态信息和输出报文信息
reset ip netstream statistics

配置NetStream TCP的FIN或RST报文触发老化

进入系统视图
system-view
配置NetStream流缓存区中流表项的最大数目及达到最大数目时的处理方式
Ip netstream aging

配置NetStream流统计信息输出

进入系统视图
System-view
配置NetStream普通流统计信息输出的目的地址和目的UDP端口号
Ip netstream export host ip-address udp-port [vpn-instance vpn-instance-name]
(可选)配置NetStream统计输出报文的源接口
ip netstream export source interface interface-type interface-number
缺省情况下,采用统计输出报文的出接口作为源接口
(可选)配置输出速率限制
Ip netstream export rate rate
缺省情况下,NetStream统计输出报文的输出速率不受限制

配置NetStream聚合流的统计信息输出

设备支持两种聚合方式:软件聚合和硬件聚合。缺省情况下,设备会通过软件与聚合关键项完全相同的流的统计信息进行汇总;配置采用硬件流聚合功能后,设备会通过硬件直接对与聚合关键项完全相同的流的统计信息进行汇总。因此通过配置硬件流聚合功能,能够有效降低流聚合对设备资源的消耗。

进入系统视图
system-view
开启NetStream硬件流聚合功能
Ip netstream aggregation advanced
缺省情况下,设备会通过软件对与聚合关键项完全相同的流的信息进行汇总
进入NetStream聚合视图并指定流聚合方式
Ip netstream aggregation {as | destination-prefix | prefix | prefix-port | protocol-port | source-prefix | tos-as | tos-bgp-nexthop | tos-destination-prefix | tos-prefix | tos-protocol-port | tos-source-prefix}
缺省情况下,未配置NetStream流聚合方式
开启聚合视图对应的聚合功能
Enable
缺省情况下,NetStream聚合功能处于关闭状态
配置NetStream聚合流统计信息输出的目的地址和目的UDP端口号
Ip netstream export host ip-addrress udp-port [vpn-instance vpn-instance-name]
缺省情况下,聚合视图下为配置目的地址和目的UDP端口号
(可选)配置NetStream聚合统计信息输出的源接口。系统会将NetStream统计输出报文的源IP地址设置为该接口的IP地址
Ip netstream export source interface interface-type interface-number
缺省情况下,采用统计输出报文的出接口IP地址作为源接口的IP地址
不同聚合视图下可以配置不同的源接口
聚合视图下未配置源接口,则使用系统视图下的配置

NetStream显示

在任意视图下执行display命令可以显示配置后NetStream的运行情况,在用户视图下执行reset命令可以清除NetStream的统计信息


基于会话的NetStream

基于会话的NetStream用来对基于会话的业务流量进行统计和分析并使用NetStream版本9对报文进行输出。
聚合方式:

当设备开启基于会话的NetStream功能后,生成的统计信息存储在设备的NetStream缓冲区中,根据用户指定的基于会话的NetStream表项老化时间发送给服务器,输出后会自动清除缓冲区的统计信息。在尚未达到用户指定的基于会话的NetStream表项的老化时间,但NetStream缓冲区已无足够剩余储存空间的情况下,设备将停止对新增会话信息进行统计,但依旧对已有会话信息进行统计。
当统计的会话本身已经老化或者统计的会话被手动删除也会触发NetStream表项输出。

基于会话的NetStream必须在开启DPI功能后才能生效。

进入系统视图
System-view
开启基于会话的NetStream功能
Session-based netstream enable
缺省情况下,基于会话的NetStream功能处于关闭状态
配置基于会话的NetStream聚合方式
Session-bsed netstream aggregation {app | app-interface | app-profile |app-user | app-zone |session}
缺省情况下,未配置任何基于会话的NetStream的聚合方式
配置基于会话的NetStream输出报文的目的地址和目的UDP端口号
(可选)配置基于会话的NetStream输出报文的源地址
Session-based netstream export source ip ip-address
缺省情况下,采用输出报文出接口的主IP地址作为源地址
(可选)配置基于会话的NetStream统计信息表项老化时间
Session-based netstream timeout minutes
缺省情况下,基于会话的NetStream统计信息表项的老化时间为分钟

显示基于会话的NetStream的统计信息
display session-based netstream aggregation-cache {app | app-interface | app-profile | app-user | app-zone | session}

NetStream介绍相关推荐

  1. ESFramework介绍之(23)―― AgileTcp

    前面已经介绍了ITcp接口,而AgileTcp就是ESFramework给出的ITcp的参考实现.在之前,我曾经讲解过模拟完成端口的Tcp组件实现和异步Tcp组件实现,在它们的基础之上,我更改了处理策 ...

  2. rtmp直播协议介绍

    转载自:http://bbs.baofengcloud.com/home.php?mod=space&uid=30&do=blog&quickforward=1&id= ...

  3. Introduction to Flash NetConnection/NetStream

    Introduction to Flash NetConnection/NetStream Author:柳大·Poechant(钟超) Email:zhongchao.ustc#gmail.com( ...

  4. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  5. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  6. python:Json模块dumps、loads、dump、load介绍

    20210831 https://www.cnblogs.com/bigtreei/p/10466518.html json dump dumps 区别 python:Json模块dumps.load ...

  7. pytorch学习笔记(九):PyTorch结构介绍

    PyTorch结构介绍 对PyTorch架构的粗浅理解,不能保证完全正确,但是希望可以从更高层次上对PyTorch上有个整体把握.水平有限,如有错误,欢迎指错,谢谢! 几个重要的类型 和数值相关的 T ...

  8. Python字节码介绍

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...

  9. Pytest - 使用介绍

    1. 概述 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1.简单灵活,容易上手,文档丰富: 2.支持参数化,可以细粒度地控制要测试的测试用例: 3.能够支持简单的单 ...

最新文章

  1. Javascript对象的查询字符串编码
  2. leetcode - Populating Next Right Pointers in Each Node II
  3. Nginx vs Apache--reference
  4. 从零开始的 React 组件开发之路 (一):表格篇
  5. Java线程中wait、await、sleep、yield、join用法总结
  6. 惊呆!学习MySQL真的这一篇就够了!太全了
  7. Android Shell命令dumpsys
  8. rest framework错误笔记——身份验证和权限
  9. js面向对象编程:命名空间
  10. java之Calendar类
  11. centos安装wget_宝塔是干什么的?3分钟教会你云服务器上安装宝塔面板
  12. windows 用户基本查看命令
  13. Xcode8注释快捷键不能使用
  14. 国科大学习资料--人工智能原理与算法-第四次作业解析(学长整理)
  15. 青岛软控为机电软一体化企业的PLM建设树立样板
  16. Latex中将图例(图1:)改为(图1-1)
  17. PMP学习笔记 第3章 项目经理的角色
  18. linux su无效_linux系统 su切换用户失败情况
  19. P2P之UDP穿透NAT的原理与实现(附源代码)
  20. 【Vue】 Vue生命周期详解

热门文章

  1. 算命php源码全开源搭建
  2. 防止企业微信进入离开状态
  3. 基础(网络知识 一)——网络结构的组成
  4. “名媛拼团”背后,藏着消费者由“淘”入“拼”的新思潮
  5. 马克扎克伯格谈未来科技趋势:视频、人工智能、VR
  6. 对短视频应该持有的正确态度-今抖云创
  7. 网站短链生成服务器,一天时间撸个短链服务器
  8. 金刀的博客 | 《后端架构师技术图谱》
  9. js查找html里面的字符串,JS字符串查找(6种方法)
  10. standard python venv module_Python venv ModuleNotFoundE