注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

Fprobe/Netflow的理解与应用(收集)  

2015-08-16 15:09:37|  分类: 系统监控 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://blog.csdn.net/lwbeyond/article/details/5861839

一. Fprobe简介

    Fprobe 是一款在 FreeBSD下运行的软件,当然现在已经可以在linux上运行得好好的了。它可以将其接口收到的数据转化为Netflow 数据,并发送至Netflow 分析端。 其中的Netflow 是 Cisco 公司开发出的一套协议,用于与门解决原始流量方式所产生的问题。当在网络设备戒其接口上开启 Netflow 功能后,网络设备会对需要迚行分析的流量迚行采样分析,并把采样分析的结果发送到分析端进行流量分析,当然这些采样分析的结果要比原始数据小的多的多。其 中网络设备采样分析的结果数据会包括源地址、目的地址、源端口、目的端口、数据流的大小、数据流经过的接口、数据流的到达时间、数据流的送出时间等参数。

二. Fprobe工作原理

    Fprobe的工作原理主要调用pcap类库从数据链路层进行抓包,并把抓取数据包封装成Netflow格式,然后发到相应的分析端。所以我们首先来分析一下pcap的使用,然后看fprobe是怎样使用pcap来工作的。其简单流程见下图:

clip_image002

    首先数据包的获取主要是调用pcap类库来工作的,下面是一个基于pcap的嗅探程序的总体布局。流程如下:

1) 我们从决定用哪一个接口进行嗅探开始。在Linux中,这可能是eth0, 而在BSD系统中则可能是xl1,等等。我们也可以用一个字符串来定义这个设备,或者采用pcap提供的接口名来工作。相关函数dev = pcap_lookupdev()。

2) 初始化pcap。在这里我们要告诉pcap对什么设备进行嗅探。假如愿意的话,我们还可以嗅探多个设备。怎样区分它们呢?使用文件句柄。就像打开一个文件 进行读写一样,必须命名我们的嗅探“会话”,以此使它们各自区别开来。相关函数handle = pcap_open_live()。

3) 如果我们只想嗅探特定的传输(如TCP/IP包,发往端口23的包,等等),我们必须创建一个规则集合,编译并且使用它。这个过程分为三个相互紧密关联的 阶段。规则集合被置于一个字符串内,并且被转换成能被 pcap 读的格式(因此编译它)。编译实际上就是在我们的程序里调用一个不被外部程序使用的函数。接下来我们要告诉pcap使用它来过滤出我们想要的那一个会话。 相关函数pcap_compile()。

4) 最后, 我们告诉pcap进入它的主体执行循环。在这个阶段内, pcap一直工作到它接收了所有我们想要的包为止。每当它收到一个包就调用另一个已经定义好的函数, 这个函数可以做我们想要的任何工作,它可以剖析所部获的包并给用户打印出结果, 它可以将结果保存为一个文件, 或者什么也不作。相关函数pcap_loop()。

5) 在嗅探到所需的数据后, 我们要关闭会话并结束。相关函数pcap_close(handle)。

这是实际上一个很简单的过程。一共五个步骤,其中一个(第3个)是可选的。

其次在调用pcap抓到包后,对所抓的包进行提取、封装成Netflow格式,发送出去,为了考虑效率,发包并非实时发送的,而是在达到Netflow的最大值时才Send给指定的地址。

需要说明的是,上面的过程是在Fprobe里是调用四个线程pcap_thread, unpending_thread, scan_thread, emit_thread来完成以上 “抓取—分析、封装—发射” 过程的。

更多详细内容>>>http://blog.csdn.net/lwbeyond/article/details/5861839

附:netflow的理解

  一个Netflow系统包括三个主要部分:探测器,采集器,报告系统。探测器是用来监听网络数据的。采集器是用来收集探测器传来的数据的。报告系统是用来从采集器收集到的数据产生易读的报告的。
   NetFlow是Cisco设备NLOS软件中内嵌的一种功能,用来将网络流量记录到设备的高速缓存中,从而提供非常精准的流量测量。 由于网络通信具有流动性,所以缓存中记录的NetFlow统计数据通常包含转发的IP信息。 输出的NetFlow统计数据可用于多种目的,如网络流量核算、网络付费、网络监控以及商业目的的数据存储。
   路由器和交换机输出的NetFlow数据记录由过期的数据流及详细的流量统计数据组成。这些数据流中包含来源和目的相关的信息,以及端到端会话使用的协议和端口。这些信息能帮助IT人员监控和调整网络流量,以及面向网络有效地分配带宽。 NetFlow流量统计数据包括数据流时戳 源IP地址和目的IP地址 源端口号和目的端口号 输入接口号和输出接口号 下一跳IP地址 信息流中的总字节数 信息流中的数据包数量 信息流中的第一个和最后一个数据包时戳 源AS和目的AS,及前置掩码 序号(只有版本5中支持)。
  评论这张
 
阅读(164)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017