NetFlow学习笔记
Netflow网络流量分析手册

Netflow网络流量分析手册作者:聂晓亮(毛蛋哥)目录一、作者简介 (4)二、为什么会有这本书 (5)三、流量分析原理 (6)(一)原始流量分析方式 (6)(二)Netflow分析方式 (6)四、流量采样 (8)(一)在网络设备上开启Netflow功能 (8)(二)网络设备不支持Netflow (9)1.部署方式 (9)2.安装Fprobe (11)3.启动Fprobe (11)4.镜像流量至Fprobe服务器 (12)5.检测是否收到Netflow数据 (12)五、部署服务器 (13)(一)硬件需求 (13)(二)安装FreeBSD (13)(三)安装Nfsen (14)1.安装apache22 (14)2.安装php5 (14)3.安装nfsen (15)(四)安装PortTracker (15)(五)访问Nfsen (16)六、抓贼攻略 (18)(一)了解网络运行状况 (18)(二)什么协议吞了带宽 (22)(三)抓出罪魁祸首 (25)七、感谢 (30)一、作者简介本书作者聂晓亮,网名毛蛋哥。
2004年毕业于北京联合大学信息工程学院,热爱网络相关知识及摄影,机缘巧合参加了Cisco认证培训,并获得了一些成绩。
本书写于2008年10月,作者目前状态工作较为舒适,故有空闲时间完成此书。
聂晓亮(毛蛋哥)拥有自己的Blog及Wiki空间,其中记录了作者的工作、生活、学习。
作者希望通过此书以及Blog、Wiki同全世界的网络爱好者分享其知识与快乐。
聂晓亮(毛蛋哥)的Blog:聂晓亮(毛蛋哥)的Wiki:欢迎交流:pharaohnie@二、为什么会有这本书在工作的几年当中,经常有朋友和一些网友问我一些关于流量分析的问题,诸如:●我们局域网怎么这么慢,是不是有人在下BT?●192.168.0.1也没人用,怎么网卡疯狂闪烁,它在做什么?●老板让我查查服务器为什么总是那么大流量,可我不知道从何下手。
●公司出口带宽不够了,但一时有没那么多带宽预算,我在考虑是不是要关掉一些和公司业务无关的协议,但不知道应该关哪些协议。
s03-流量分析技术-netflow

3-19
Flow tools
IP网络流量分析
3-20
Arbor
• 支持NetFlow V5,V7,V9,probe
• Peakflow SP(最新的arbor主页无法看到DoS和
Traffic,合并了?)
– Peakflow DoS:主要侧重于网络内的异常行为 – Peakflow Traffic:主要侧重于流量和路由行为
期的flow记录以UDP方式导出
IP网络流量分析
3-5
NetFlow原理-2
IP网络流量分析
3-6
支持NetFlow的设备
NE系列
IP网络流量分析
3-7
对于不支持netflow的设备
• • • •
读入流量,生成netflow数据 Nprobe v5/v9/nFlow Probe for IPv4/v6 Packet Size (Bytes): Throughtput (Pkt/sec)
IP网络流量分析
3-29
NetFlow配置-2
• 配置netflow服务器地址和端口号
– config全局状态下: – (config)#ip flow-export destination xxx.xxx.xxx.xxx 55888 – xxx.xxx.xxx.xxx为netflow服务器地址,即运 行netflow版流量监视程序主机的IP地址
IP网络流量分析
3-14
NetFlow实测对比
• CISCO实测
– 某省骨干端口GE口 GSR12416 – CPU前后没有变化2% – 平均入流量在650M,采样 率为500的时候 – 15分钟平均flow条数为 110000万条 – 每秒122条flow – 122*1.4k=171k/sec – 预期:650M的百分之一 6.5兆=6500k
netflow字段解释

netflow字段解释netflow各个字段解释中英文对照dpkts和doctets 分别是是流的包和字节数first和last 分别是流中第一个包和最后一个包的时间戳srcaddr和dstaddr 分别是是源IP和目的IP地址srcport和dstport 分别是源IP和目的IP的端口号prot 是传输协议比如TCP或者UDPsrc_mask和dst_mask 分别是源的最长匹配IP前缀的长度和目的IP地址src_as和dst_as 分别是匹配源地址和目的地址的IP前缀的AS举例来说#:unix_secs,unix_nsecs,sysuptime,exaddr,dpkts,doctets,first,l ast,engine_type,engine_id,srcaddr,dstaddr,nexthop,input,output, srcport,dstport,prot,tos,tcp_flags,src_mask,dst_mask,src_as,dst_a s1285804501,0,2442636503,127.0.0.1,1,40,2442590868,2442 590868,0,0,128.103.176.0,24.8.80.0,64.57.28.75,213,225,80,51979 ,6,0,17,16,0,1742,0这就表示,你有一个流,里面有40 byte的包,在2442590868时刻到达,这个包由128.103.176.0源地址发往24.8.80.0目的地址,其中最后11位置0,是为了数据的匿名。
源端口是80,目的端口是51979;假定这是一个web服务器到web客户端的流。
协议号是6,tcp_flag是17表示ACK和FINbit位被设置为1,考虑这是一个FIN-ACK包。
Web传输的其他传输的其他包可能没有包括在这个流记录中,这是由于报文抽样导致的。
源和目的mask是16和0,表示源前缀128.103.0.0/16和目的前缀都是未知的或者是0.0.0.0/0,源AS是1742,由于各种原因原因目的AS未知。
6-IPFIX和NetFlow

Address
Source AS Number Source Subnet Mask
Interface Application
Input physical interface Source TCP/UDP port Packet count Byte count
Statistics
Start timestamp End timestamp
因特网是全球性的工具 因特网有统一的基本规则、协议、流程 谁来制订这些统一的标准? 主要组织:IETF
– – –
3
Internet Engineering Task Force 通过发布RFC的形式制订标准
l
l l
4
IPFIX-网络流量监测系统参考模型
详见RFC5470
5
监测系统各个组件
• Observation Points:探针,连接到网络接口,获取流量。 • Metering Process:测量程序,将网络流量转化为流记录。 • Exporter:上报设备,运行一个或多个上报程序 • Exporting Process:上报程序,发送流记录到一个或多个采集程 序,流记录由一个或多个测量程序产生。
–
仅有HP、Foundry和Extreme Networks等厂商的部分型号 的交换机支持sFlow。
主流的流技术
l
J-Flow
–
Juniper开发的网络监测技术,类似于cisco的 Netflow。 目前有版本v5,v8,其中v5最常用。 华为制订的私有技术协议,类似于Cisco公司的 Netflow。 应用于华为、华为3com的部分型号网络设备。
NetFlowV5

NetFlow以UDP数据报(datagram)的形式,其中的所有字段都是按照网络字节的次序排列的。
Cisco建议接收程序检查数据报,用以保证数据是从有效的NetFlow源头来的。
Cisco 建议你首先检查数据报的大小,确信它最起码有足够长,可以容下版本字段和计数字段。
接下来,你应该证实版本是有效的(为1或5),而且接收到的字节数足以容纳头标信息和对信息流记录进行计数(当然要使用合适的版本)。
因为NetFlow输出采用“用户数据报协议”(UDP——User DatagramProtocol)来发送输出的数据报,所以可能会丢失数据。
为了确定信息流输出信息是否丢失了,版本5的头标信息格式中包含了一个信息流序列号。
这个序列号等于前一个序列号加上刚刚过去的数据报中信息流的个数。
当接收到一个新的数据报后,接收程序可以从头标信息中的序列号中提取出的预期的序列号,这样即可以获取丢失信息流的数目。
版本5头标信息格式
版本5信息流记录格式。
netflow协议的原理

netflow协议的原理宝子!今天咱来好好聊聊Netflow协议这个挺有趣的玩意儿。
Netflow协议啊,就像是网络世界里的一个小侦探呢。
你想啊,在一个超级复杂的网络环境里,就像一个超级大的迷宫,里面有各种各样的数据跑来跑去。
Netflow 协议呢,它的任务就是要搞清楚这些数据是从哪儿来的,要到哪儿去,就像是追踪小怪兽的踪迹一样。
那它是怎么做到的呢?这就很神奇啦。
当网络设备,比如说路由器或者交换机,在处理数据流量的时候,Netflow协议就开始发挥作用了。
它会悄悄地在旁边看着这些数据流动,然后把一些关键的信息给记下来。
比如说,它会记录这个数据流量是哪个源IP地址发出来的,就像是知道是哪个小房子里的人发出了信号一样。
还有目的IP地址,这就好比是这个信号要到达的另外一个小房子。
而且啊,它还会记下这个流量用的是什么端口,这就像知道是从哪个小窗户发出去或者要进入哪个小窗户似的。
这个协议啊,还有个很贴心的地方呢。
它不仅仅是简单地记录这些信息,还会把这些信息按照一定的规则给整理好。
就像把你那些乱七八糟的小物件都分类放在不同的小盒子里一样。
它会把相似的流量信息归为一组,比如说,从同一个源IP地址到同一个目的IP地址,而且端口也相同的流量,就把它们放在一起。
这样做有啥好处呢?这就方便网络管理员去查看和分析啦。
你可以想象一下,如果没有Netflow协议,网络管理员就像是在一个黑暗的房间里找东西,完全不知道数据的流动情况。
但是有了Netflow协议呢,就好像有人给他开了一盏小灯,他可以清楚地看到数据的走向。
比如说,要是发现某个源IP地址总是向一个不正常的目的IP地址发送大量的数据,那管理员就可以怀疑是不是有什么安全问题啦,是不是有小坏蛋在偷偷搞事情呢。
而且啊,Netflow协议还能帮助网络管理员来管理网络的带宽呢。
就像你家里的水管子一样,如果不知道哪里用水多,哪里用水少,可能就会造成一些地方水不够用,一些地方又浪费水。
netflow技术讲解

IP网络承载能力与所提供的应用业务规模向来都是相辅相成的,一方面IP网络的建设将给新应用技术的推广提供有效的实施平台,另一方面应用业务也会随着自身系统发展需要而对现有IP网络提出更高的资源需求,从而推动IP网络基础建设进入新的建设周期。
在这种类似于“鸡生蛋、蛋生鸡”的逻辑悖论中,另外一个问题却是毋庸置疑的凸现了出来,那就是如何把应用业务与其所占用的IP资源(如带宽)清晰、准确的对应起来,如何保证有限的IP资源能够被合理应用的到主要利润业务中。
以NetFlow为代表的Flow技术正是为响应这种挑战而出现的新型解决途径。
什么是Flow在最开始,Flow是网络设备厂商为了在网元设备内部提高路由转发速度而引入的一个技术概念,其本意是将高CPU消耗的路由表软件查询匹配作业部分转移到硬件实现的快速转发模块上(如Cisco的CEF模式)。
在这种功能模式中,数据包将通过几个给定的特征定义归并到特定的集合中,这个集合就是Flow。
每个Flow的第一个数据包除了促使该Flow记录的产生以外,还要驱动网元三层模块完成路由查询并将查询结果同期放入Flow记录中,而该Flow集合的后续数据包将直接在Flow的已有记录中获得路由转发信息,从而提高了网元设备的路由转发效率。
作为网元设备内部路由机制优化的副产物,Flow记录能够提供传统SNMP MIB 无法比拟的丰富信息,因此Flow数据被广泛用于高端网络流量测量技术的支撑,以提供网络监控、流量图式分析、应用业务定位、网络规划、快速排错、安全分析(如DDOS)、域间记帐等数据挖掘功能。
相对于会话(“Session”)而言,“Flow”具备更细致的标识特征,在传统的TCP/IP五元组的基础上增加了一些新的域值,至少包括以下几个字段:源IP地址目的IP地址源端口目的端口IP层协议类型ToS服务类型输入物理端口以上七个字段可以唯一地确定任意一个数据包属于哪个特定的Flow,换而言之任何一个字段出现了差异都意味着一个新Flow的发生。
netflow 解析

netflow 解析
NetFlow是一种网络监测功能,可以收集进入及离开网络界面的IP封包的数量及资讯。
最早由思科公司研发,应用在路由器及交换器等产品上。
经由分析NetFlow收集到的资讯,网络管理人员可以知道封包的来源及目的地,网络服务的种类,以及造成网络拥塞的原因。
NetFlow的版本有:
NetFlow V1:为NetFlow技术的第一个实用版本,在如今的实际网络环境中已经不建议使用。
NetFlow V5:增加了对数据流BGP AS信息的支持,是当前主要的实际应用版本。
NetFlow V7:思科Catalyst交换机设备支持的一个版本,需要利用交换机的MLS或CEF 处理引擎。
NetFlow V8:增加了网络设备对NetFlow统计数据进行自动汇聚的功能,大大降低对数据输出的带宽需求。
NetFlow的IP Flow和NetFlow Cache是两个重要的概念。
IP Flow可以用于网络设备之间的流量信息交换,帮助网络管理人员更好地了解网络流量情况。
而NetFlow Cache则可以用于存储NetFlow收集到的流量信息,以便后续分析和处理。
以上信息仅供参考,如有需要,建议您咨询专业技术人员。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
数据采集格式
NFC(Cisco NetFlow Collector) 可以定制多种NetFlow数据采集格式,下例为NFC2.0采集的一种流量数据实例,本文的分析都基于这种格式。
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整体结构如下所示:
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 的规格也支持1比1的采样率,即对每一个数据包都进行“采样”。
对数据包最大采样频率的限制取决于具体的芯片厂商和sFlow实现情况。
NetFlow更多的是在路由器上得到支持,而sFlow则在交换机上更加流行。
两者都是开放标准,但在非常大的流量传输环境中,sFlow采样架构可能要优于NetFlows汇集方式。
其他Flow。