博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《数据驱动的网络分析》——2.3 NetFlow
阅读量:5965 次
发布时间:2019-06-19

本文共 2305 字,大约阅读时间需要 7 分钟。

本节书摘来自异步社区《数据驱动的网络分析》一书中的第2章,第2.3节,作者: 【美】Michael Collins 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 NetFlow

NetFlow是Cisco开发的流量汇总标准,最初用于网络服务记账。虽然本意不是为了安全性,但是人们臆测NetFlow对此有益,因为它提供了紧凑的网络通信会话摘要,可以快速访问,并且包含了以相对紧凑的格式保存的最高价值信息。从1999年flow-tools软件包发布以来,NetFlow越来越多地用于安全分析,已经开发出了各种工具,这些工具为NetFlow提供了更多的字段,例如可选择的载荷片段。

NetFlow的核心是流(Flow)的概念,它与TCP会话近似。回忆前面介绍的知识,TCP会话在端点通过比较顺序号组装。在路由器判断处理多个TCP会话中包含的顺序号是不可能的,但是可以用超时值做出合理的估算。流是一组时间上很接近的同地址封包。

2.3.1 NetFlow v5格式和字段

NetFlow v5是最早的通用NetFlow标准,在讨论替代的版本之前,有必要介绍一下NFv5的字段值。NetFlow的字段如表2-2所示,大致分为3类:直接从IP封包中复制的字段、IP封包摘要字段和与路由相关的字段。

<a href=https://yqfile.alicdn.com/d12a2fa22769d6fd24892a453282356f02673484.png" >
<a href=https://yqfile.alicdn.com/bd4ed8eecbeb8b48dbc7c1c933ce4b3e8b7c6d16.png" >

  a这个值是路由器系统启动时间的相对值

NetFlow记录的srcaddr、 dstaddr、 srcport、 dstport、 prot和 tos字段直接从IP封包的对应字段复制。但是,对于IP协议族中的每个协议都会生成流,这就意味着,srcport和dstport字段严格来说是TCP/UDP专用的,不一定总是有意义的。在ICMP协议中,NetFlow在dstport字段中记录类型和代码,其他协议则忽略该值。

packets、dOctets、 first、 last和 tcp_flags字段都是从一个或者多个封包中汇总而得。packets和dOctets是简单的总和,需要注意的是,dOctets值是第3层的字节总数,也就是说包含了IP和协议报头(例如,没有载荷的单封包TCP流将记录为40个字节,而没有载荷的单封包UDP流将记录为28个字节)。first和last值分别是流中第一次和最后一次观察到封包的时间。

tcp_flags的情况特殊。在NetFlow v5中,tcp_flags字段由出现在流中的所有标志进行或运算求得。在形式合法的流中,这意味着SYN、FIN和ACK标志总为高值。

最后一组字段——nexthop、input、output、src_as、dst_as、src_mask和dst_mask都与路由相关。这些值只能在路由器上采集。

“流和内容”:NetFlow v9和IPFIX

Cisco开发了NetFlow的多个版本,最终NetFlow v5成为这个标准的主力实现。但是v5是一个受限和过时的标准,主要针对IPv4,而且是在流被广泛采用之前设计的。Cisco的解决方案是NetFlow v9,这是一个基于模板的流报告标准,路由器管理员可以用它指定包含在流中的字段。

之后,基于模板的NetFlow由IETF标准化为IPFIX1。IPFIX提供了几百种流字段,这些字段在RFC 5102中说明。该标准优先考虑的是网络监控和流量分析,而不是信息安全。为了处理可选的字段,IPFIX有一个“供应商空间”的概念。在开发SiLK工具包的过程中,卡内基梅隆大学的CERT网络态势感知小组在他们的IPFIX空间内开发了一组安全敏感字段,提供一组用于安全分析的有用字段。

2.3.2 NetFlow生成和采集

NetFlow记录由网络硬件设施(例如路由器或者交换机)直接生成,或者使用软件将封包转换为流。每种方法各有不同的优劣之处。

基于设施的生成手段使用的是硬件制造商提供的NetFlow机制。不同制造商使用类似但不同于Cisco的名称,例如Juniper Networks的Jflow和华为的NetStream。因为NetFlow由许多不同制造商提供,具有各种各样的规则,不可能在本书的范围内对必要的配置进行技术性探讨。但是,下面的经验法则值得一提。

NetFlow生成可能在路由器上造成性能问题,尤其是旧的型号。各个公司以不同的方式解决这个问题,包括降低该进程优先级(并抛弃记录)和将NetFlow生成任务卸载到可选(且昂贵)的硬件上。

大部分NetFlow配置默认采用某种形式的采样,以便降低性能负载。对于安全分析,NetFlow应该配置为提供未采样记录。
许多NetFlow配置提供一些汇总和报告格式,你应该采集原始的NetFlow数据,而不是汇总。
基于路由采集的替代方法是使用应用程序,如CERT的Yet Another Flowmeter(YAF)工具、softflowd 或者QoSient Argus 工具提供的大量流监控工具,从pcap数据生成NetFlow。这些应用程序将Pcap当成文件,或者直接从网络接口上采集封包并将其聚合成流。此类传感器缺乏路由器的观察点,但是同时能够提供更多的处理资源,分析封包和生成更加丰富的NetFlow输出,包含深度封包检查等功能。

转载地址:http://jpxax.baihongyu.com/

你可能感兴趣的文章
Dumpsys Input Diagnostics
查看>>
ASP.NET MVC 入门8、ModelState与数据验证
查看>>
Understanding the Router
查看>>
组件居中显示 安卓
查看>>
delete
查看>>
sql server生成不重复的时间字符串
查看>>
DataBase 之 数据库设计六大范式
查看>>
比特币钱包安全
查看>>
Lucene就是这么简单
查看>>
2015年第6届蓝桥杯Java B组省赛试题解析
查看>>
一个有味道的函数
查看>>
zookeeper在linux环境安装
查看>>
Python_异常和模块
查看>>
【386天】跃迁之路——程序员高效学习方法论探索系列(实验阶段143-2018.02.26)...
查看>>
Java数据类型分类
查看>>
springboot应用启动原理(一) 将启动脚本嵌入jar
查看>>
SpringMVC架构
查看>>
JAVA团队开发手册 - 2.代码管理
查看>>
超详细步骤 | 如何用小程序 SDK 实现电商评价模
查看>>
Android 类库
查看>>