NetFlow学习笔记

2023-11-25 21:48
文章标签 学习 笔记 netflow

本文主要是介绍NetFlow学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NefFlow的出现:

  互联网业务流量监测技术现状分析

  目前国内电信运营商的运维部门大都还没有建设一套能够完全满足管理需求的互联网业务流量监测系统。现有的网络管理系统虽然可以提供业务流量监测 手段,但基本上只是采用一些通用型的网络链路使用率监视软件,如利用免费的MRTG和简单网络管理协议(SNMP),对网络的重点链路和互联点进行简单的 端口级流量监视和统计;或采用在网络中部分重点业务接入点(POP)加装远程监控(RMON)探针的方式,利用RMON I/Ⅱ协议对网络中部分端口进行网络流量和上层业务流量的监视和采集。

  上述两种被普遍采用的网络流量监测系统都有着明显的技术局限性。

  SNMP采集端口的数据主要是在网元层用来监控网络流量和设备的性能,而且SNMP采集的数据是基于端口的,无法提供端到端的准确的流量信息,因此对流向的统计手段不明确。

  利用RMON探针对运营商网络进行流量和流向管理可以部分弥补SNMP的技术局限性,其业务分析和协议分析功能较强。但是,采用RMON探针建设的流量监测系统也有处理性能不足和难以在大型网络普遍部署的局限性。

  为克服现有网管系统对网络流量和流向分析功能的技术局限性,运营商迫切需要寻找一种功能丰富、成熟稳定的新技术,对现有管理系统中流量信息的采 集和分析方式进行改造和升级。新的流量信息采集和分析技术应具备对运营商的运行网络影响小、无需对网络拓扑进行改变就能平滑升级的技术特征,既可以对网络 中各个链路的带宽使用率进行统计,又可以对每条链路上不同类型业务的流量和流向进行分析和统计。本文主要讨论功能强大、应用广泛的NetFlow技术。





---------------------



NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读。Netflow由Cisco创造。
 
工作原理:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,NetFlow缓存同时包含了随后数据流的统计信息。NetFlow有两个核心的组件:NetFlow缓存,存储IP流信息;NetFlow的数据导出或传输机制,NetFlow利用此机制将数据发送到网络管理采集器。
概念:一个NetFlow流定义为在一个源IP地址和目的IP地址间传输的单向数据包流,且所有数据包具有共同的传输层源、目的端口号。
 
确定Flow的标识:SIP+DIP+SPORT+DPORT  +Layer 3 protocol type + TOS byte() + Router or switch interface
             61.*.*.68|61.*.*.195|64917|Others|9|13|4528|135|6|4|192|1
  数据中各字段的含义如下:
       源地址|目的地址|源自治域|目的自治域|流入接口号|流出接口号|源端口|目的端口|协议类型|包数量|字节数|流数量
 
cache缓存空间

可配置的Cache维护机制

一般情况下Cache空间的占用是与所监控的Flow数量呈正比的,但是当链路中充斥着大量的短连接Session时,
Flow表项数量可能会因为没有得到及时释放而过多占用有限的Cache空间。为此,NetFlow提供了一种非常复杂、
高效的算法以快速定位一个数据包在该Cache中的位置或判断是否应新建表项,并且通过管理员给定
的阀值进行各类表项的超时导出,从而及时释放老的表项以容纳新建Flow信息。
Flow Cache表项 Timed-Out操作可由以下几项因素进行驱动:
该表项已经空闲了指定的时间长度(Inactive Timer,缺省15 seconds);
          长连接会话 强制超时(Active Timer,缺省 30 minutes);
          缓存空间耗尽所触发的强制超时;
          TCP  FIN/RST触发的超时。

规范的导出报文格式
NetFlow采用了主动式数据推送机制,一般用UDP传送。
NetFlow的封装格式分为1个Header和若干个Record:
Header:主要包括版本号、序列号、后续Record数量、系统启动时间等;
   Record:提供对每个Flow的详细数据记录。
下文以NetFlow V9为例,输出报文Header与Record整体结构如下所示:
在上述格式中,各字段的具体含义描述如下:  
  表格3-3 NetFlow V9各字段含义

字段名称

所处位置

字段长度

含义

Version

Header

2 Bytes

版本号,0x0009

Count

2 Bytes

报文中所有记录的数量(包括template and data两种类型)

System Uptime

4 Bytes

自网元设备加电以来的毫秒数

Unix Seconds

4 Bytes

网元设备当前机器时间(与所在时区相关)与格林威治时间(亦即”0 UTC”)197011 000秒之间的秒数差额

Package Sequence

4 Bytes

网元设备所导出的Flow报文的序列号,顺序递增,可用以检测Flow报文丢失。

Source ID

4 Bytes

0x0000+路由引擎标识+线路板卡标识构成,可与Flow报文源IP地址结合起来唯一的标识Flow信息导出节点。

FlowSet ID

Template FlowSet

2 Bytes

用以区分Template RecordData RecordTemplate RecordFlowSet ID 位于0~255之间,而 Data Record FlowSet ID 总在255以上。

Length

2 Bytes

FlowSet的总体长度。

Template ID

Template Record

2 Bytes

开始一个新的Template Record,声明一个新的Data Record格式的编号ID,数值总大于255,在该网元设备本地有效。

Field Count

2 Bytes

Template Record所包含的字段数量。

Field 1 Type

2 Bytes

开始一个新字段的定义,说明该字段的类型,类型编号与厂商相关,CiscoNetFlow V9中总共定义了89种类型

Field 1 Length

2 Bytes

上述所定义的字段的长度。

……

……

……

Field N Type

2 Bytes

开始第N个新字段的定义,说明该字段的类型。

Field N Length

2 Bytes

上述所定义的字段的长度。

FlowSet ID

Data FlowSet

2 Bytes

引用一个Template Record ID以开始一个新的Data FlowSet。该字段数值总在255以上。

Length

2 Bytes

Data FlowSet的总体长度。

Record 1 - Field 1 value

Data Record

2 Bytes

1Data Record的第1个字段的数值。

……

……

……

Record 1 - Field N value

2 Bytes

1Data Record的第N个字段的数值。

Record N - Field 1 value

2 Bytes

NData Record的第1个字段的数值。

……

……

……

Record N - Field N value

2 Bytes

NData Record的第N个字段的数值。

……

……

……

Padding

报文尾部

填充位,将该Data FlowSet补齐至N*32 bits长度。这些填充位将计算入该Data FlowSetLength数值。

Template功能:NetFlow V9是首先对Template进行支持的版本,
通过Template功能NetFlow V9获得了前所未有的扩展灵活性。
Template描述了NetFlow输出记录的各字段定义,无需改变现有
规范即可支持将来可能出现的增强功能,从而无需重新编译、
修改流量采集分析系统即可快速支持新增功能特征。

     Flow具备详尽的会话描述能力。在NetFlow V9中,缺省提供了多达89种字段类型,并允许通过Template和
Aggregation机制进行任意组合、汇聚,能够详细描述流量分布的各类特征.

NetFlow与SNMP的不同

  无论是MIB还是后来的RMON,SNMP所针对的信息一般都围绕网元设备展开,如Interface吞吐率、
接收到的坏帧数量、CPU/RAM利用率等。
而NetFlow正如同它的名字一样,其所关注的重点在于网络链
路上所传输流量的特征信息,并且这些信息能够更直接的反映出当前网络上访问行为分
布以及合同客户此时所得到的真实的服务质量水平。

  NetFlow与SNMP的主要差异可以从以下几点得到说明:
  NetFlow关注流量特征,SNMP关注设备状态;
  NetFlow直接围绕Session会话连接进行数据提取,而SNMP则以物理接口为基本单位进行数据统计;
  从Agent角度来看,NetFlow采用数据主动推送技术,SNMP则主要采取被动轮询机制;
  NetFlow数据信息更为丰富、描述能力更强;
  NetFlow支持抽样操作,具备良好的扩展弹性,能够更好适应高端网络实际需求;
  SNMP功能通常随着设备销售而免费提供,而在很多现有设备中,NetFlow作为增值功能则需要额外
购买许可License或特定软件包。
  因此,在网络流量测量及分析系统中,如异常流量分析系统,NetFlow已经成为一个重要的数据提取方式,
为高端网络骨干链路的实时流量采集
分析提供高效、准确的数据摘要提取服务,是网络流量分析阵营不可或缺的基础技术。

 
限制条件
     需要网络设备对NetFlow的支持,需要分析NetFlow数据的工具软件,需要网络管理员准确区分正常流量数据和异常流量数据等。 

挑战者SFlow
     NetFlow一样,sFlow是一种向采集器发送报告的推送技术。所不同的是,NetFlow是一种基于软件的技术,而sFlow则采用内置在硬件中的专用芯片。这种做法消除了路由器或交换机的CPU和内存的负担。
     sFlow系统的基本原理为:分布在网络不同位置的sFlow代理把sFlow数据报源源不断地传送给中央sFlow采集器,采集器对sFlow数据报进行分析并生成丰富的、实时的、全网范围的传输流视图。
     sFlow是一种纯数据包采样技术,即每一个被采样的X包的长度被记录下来,而大部分的包则被丢弃,只留下样本被传送给采集器。由于这项技术是基于样本的,如果没有复杂的算法来尝试推测准确的会话字节量,那么几乎不可能获得每台主机流量100%的准确值。在使用这项技术时,交换机每隔100个数据包(可配置)对每个接口采一次样,然后将它传送给采集器。sFlow的规格也支持11的采样率,即对每一个数据包都进行“采样”。对数据包最大采样频率的限制取决于具体的芯片厂商和sFlow实现情况。
     NetFlow更多的是在路由器上得到支持,而sFlow则在交换机上更加流行。两者都是开放标准,但在非常大的流量传输环境中,sFlow采样架构可能要优于NetFlows汇集方式。

其他Flow

Flow名称

代表厂商

主要版本

备注

NetFlow

Cisco

V1V5V7V8V9

应用最广

CFlowd

Juniper

V5V8

厂商跟进力度不高

sFlow

FoundryHPAlcatelNECExtreme

V4V5

实时性较强,具备突出的第二~七层信息描述能力

NetStream

华为

V5V8V9

NetFlow较为类似

IPFIX

IETF标准规范

RFC 3917

NetFlow V9为蓝本


参考:流量分析新贵--NetFlow  http://www.enet.com.cn/ediy/inforcenter/enet_z.jsp?articleid=20060809158100
          百度百科   http://baike.baidu.com/view/490587.htm
          NetFlow还是SFlow    http://www.ccw.com.cn/cso/htm2008/20080225_382116.shtm
          NetFlow流量采集与聚合的研究实现  http://www.21ic.com/app/analog/200907/44851.htm
          Introduction to Cisco IOS NetFlow - A Technical Overview 
                 http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6555/ps6601/prod_white_paper0900aecd80406232.html


这篇关于NetFlow学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424670

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件