intermapper(以下简称im)是一款网管工具,它大部分的功能跟其它网管软件并无二致,唯一让我动心的是它集成了ProQuesys公司的flowtraq这个netflow/sflow分析工具[1],利用该组件,网管可以通过交互方式迅速定位带宽滥用者。

intermapper的架构如下所示:

intermapper-arch

其中flow用于收集netflow&sflow的信息,并进行分析,它必须依托于im,也就是说须先安装im,才能安装flow组件。remoteaccess允许网管员从远程访问intermapper,即便不在现场也能远程访问控制。

有一个真实的案例,某客户租用了运营商的100M专线,经常投诉上网慢,利用传统的cacti发现该专线的带宽利用率高达100%,那究竟是谁,使用了什么应用将带宽全部用完呢,im flow能够解答这个问题。

netflow分析工具的简易测试报告

通过snmp可以获取到端口流量,但是snmp无法知道这些流量的具体组成,因此在实际的排错中还需要用到netflow/sflow这些工具,netflow是一个捕获和分析session[2]的工具。

netflow架构

netflow-arch

我借用了Intermapper中的一张图片进行说明,其中cisco Router/Switch、nProbe/nTop这些都是exporter,假如你的交换机不支持netflow协议,那么可以通过端口镜像到一台服务器,再利用该服务器上面的软exporter输出到Collector,大家可以将InterMapper Server看做是一个Collector。我对比了几个软exporter,觉得最好用的还是ProQuesys公司提供的免费工具:flowexport,它支持windows和Linux/unix,只有一个可执行文件,不需要另行编译。

netflow分析工具

我测试了几款netflow分析工具,它们分别是:

  1. Intermapper flower 1.2.1

  2. ManageEngine Netflow Analyzer 8

  3. PRTG network monitor 8

易用性的对比

  • im flow

易用性以Intermapper flow 1.2.1最佳,它使用了客户端的方式,如下图所示

image::{pic-im-flow-gui}[im flow gui]

屏幕中分为过滤条件、堆叠图、饼图和图表四大区域,管理员可以很方便从任一地方选择特定PC来查看它的全部流量,譬如双机堆叠图中的某一个颜色。这中交互模式是网页所无法提供的,因此Intermapper flow是网管排错的一个高效工具。唯一可惜的是Intermapper Remote Access这个工具是要收费的,因此网管员只能远程登录到该服务器来使用。

  • ManageEngine Neflow Analyzer 8

me-netflow-analyzer

Netflow Analyzer 8也提供了丰富的过滤选项,支持IP段分组,设备分组、Group by src/dst ip,时间段,流量方向等,只是在交互上的操作流畅性方面还是比不上Intermapper flow。

  • PRTG Network monitor 8

prtg-8

它的易用性最差,网页上未能提供太多的可选项,需要用户预先定制模板,但是复杂的用户上网行为而言,根本无法满足网管员对灵活性的要求。

软硬件要求的对比

Intermapper flow和ManageEngine Neflow Analyzer 8均采用java,其内存占用方面比PRTG要高,大约需要700多M,但是速度方面倒没有太大差异,700多M对于现在的白菜价硬件而言并无太大负担。PRTG仅支持windows,Neflow Analyzer和Intermapper flow支持多种操作系统。

免费版的限制对比

  • Intermapper flow最为慷慨,它提供了1个无限期的export,只需要在互联网网关之前的核心交换机上启用netflow export就可以看到整个企业的session。

  • Netflow Analyzer8的试用版仅支持2个interface,我使用的是flowexport这个工具,它有31个interface,因此在测试的过程中所捕获的数据并不精确。

  • PRTG的trial版本支持2个Netflow/sflow sensor,它不以interface作为计数单位,因此能够支持2个collector,但是free版本就不支持了。

总的来说,作为一款Netflow分析工具而言,im flow是最好的选择。

Intermapper的使用

intermapper-gui

在上图中,用得最多的是仅发送按钮,数据过滤框。其中选择“仅接送”按钮后,在主窗口显示的是所有主机发送的数据,譬如,在10.168.1.15这台主机上,使用QQdownloader下载一个文件,在顶部的IP地址列表中,所有的主机都与10.168.1.15发生关系,他们都发送文件的一部分给10.168.1.15,那为什么10.168.1.15也有发送的数据包呢?因为根据tcp/ip工作原理,当其他主机给本机发送数据的时候,本机需要回复一个确认,因此10.168.1.15也有少量的发送流量。 在“top sessions”页面会看得更明白:

im-top-sessions

testsrv-win2k3作为客户机,其它均作为服务器存在,服务器发送数据给客户机。


1. 该工具在intermapper中以flow组件方式存在
2. 一个session由两个不同方向的数据流(flow)组成:一个从PC到服务器,一个从服务器到PC。