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

itoedr的it学苑

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

 
 
 

日志

 
 

统一网络监控方案:Fprobe/netflow/  

2013-10-26 09:48:30|  分类: 系统监控 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一. Fprobe简介

    Fprobe 是一款在 FreeBSD下运行的软件,它可以将其接口收到的数据转化为Netflow 数据,并发送至Netflow 分析端。

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

二. Fprobe工作原理

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

统一网络监控方案:Fprobe/netflow/ - itoedr - itoedr的it学苑
 

    首先数据包的获取主要是调用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来完成以上 “抓取—分析、封装—发射” 过程的。

三. Fprobe线程工作流程图。

统一网络监控方案:Fprobe/netflow/ - itoedr - itoedr的it学苑
 

四. Fprobe四个线程详细解析。

  评论这张
 
阅读(127)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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