论坛网站建设开源工具,科凡全屋定制,高端网页制作公司,天津武清网站开发摘要#xff1a;Ntop是一款Linux下常见的开源监控软件#xff0c;它可以监测的数据包括#xff1a;网络流量、使用协议、系统负载、端口情况、数据包发送时间等。正常情况下它工作的时候就像一部被动声纳#xff0c;默默的接收看来自网络的各种信息#xff0c;通过对这些数…摘要Ntop是一款Linux下常见的开源监控软件它可以监测的数据包括网络流量、使用协议、系统负载、端口情况、数据包发送时间等。正常情况下它工作的时候就像一部被动声纳默默的接收看来自网络的各种信息通过对这些数据的分析网络管理员可以深入了解网络当前的运行状况不过一旦超过Ntop数据包的处理能力Ntop随即出现性能问题从而导致Ntop无法准确分析网络流量和各种数据对网络管理造成影响。下文介Ntop是一款Linux下常见的开源监控软件它可以监测的数据包括网络流量、使用协议、系统负载、端口情况、数据包发送时间等。正常情况下它工作的时候就像一部被动声纳默默的接收看来自网络的各种信息通过对这些数据的分析网络管理员可以深入了解网络当前的运行状况不过一旦超过Ntop数据包的处理能力Ntop随即出现性能问题从而导致Ntop无法准确分析网络流量和各种数据对网络管理造成影响。下文介绍了一种提高Ntop性能的方法。通常Ntop的抓包分析功能是通过Ntop自己完成但它们都是通过libpcap来实现抓包且速度不能超过100M分析一下libpcap的流程我们明白首先数据包通过路径为网卡硬中断→软中断→内核协议栈→系统调用→socket→-libpcap接口→用户应用程序在这个流程中可以看出数据的copy比较多所以在高速率下libpcap 抓包丢包严重也不用感到奇怪了。对于千兆的网络就需要采用PF_RING技术来接受数据包了PF_Ring运行于Linux的内核层体系结构图如下图所示它采用类类似零拷贝技术而且PF_Ring从网卡获取的数据的速度比libpcap有成倍的提高而且在千兆环境下几乎不丢包。对于内核必须熟悉的可以用下面的方法首先给内核源码打补丁(以下内容需要读者具备Linux内核编译基础)。1).zcat linux-2.6.25-1-686-smp-PF_RING.patch.gz | patch -p02).在/usr/src/目录下的linux-2.6.25目录中编辑Makefile 在这个地方加上一个自定义的后缀(比如-PF_RING)EXTRAVERSION -PF_RING3).make menuconfig这里按y选上PF_RING然后保存修改到.config退出。然后就开始编译内核#make#make modules 安装编译好的modules#make install注意将bzImage添加到grub中以便用新内核启动(注意新添加的内核不是默认启动项)(用 make install 可以免去手动复制bzImage并生成initrd的繁琐过程)进入libpcap-1.1.1-ring目录下修改源码将pf_ring的内核ring缓冲区设为2M默认0.5M然后修改MakeFile将安装目录指向usr/,默认指向usr/local。接着编译make,然后make install;这样就将libpfring.so ,pfring_e1000e_dna.h,pfring.h,libpfring.a拷贝到了usr/include或usr/lib下同时用libpcap-1.1.1-ring的库文件替换了原来的libpcap库文件;如果大家觉得这种修改内核的方法比较复杂下面给大家推荐一个简单的方法到www.ntop.org,下载PF_RING-5.1.0.tar.gz包解开PF_RING 以独立模块运行就成了没有必要打 patch 到内核后直接make就可以。#insmod ./pf_ring.ko 加载模块# dmesg | grep RING[PF_RING] Welcome to PF_RING 3.9.3 # 这一部分是PF_RING初始化时输出的[PF_RING] Ring slots 4096[PF_RING] Slot version 9[PF_RING] Capture TX Yes [RXTX][PF_RING] IP Defragment No[PF_RING] Initialized correctly[PF_RING] registered /proc/net/pf_ring/[PF_RING] successfully allocated 815104 bytes at 0xd0ad4000 # 以后每次运行PF_RING程序会输出这样的调试信息[PF_RING] allocated 4115 slots [slot_len198][tot_mem815104][PF_RING] removed /proc/net/pf_ring/2849-eth0.0注意刚启动机器时ls /proc/net/pf_ring/ 是看不到这个目录的只有当需要PF_RING的程序第一次运行时才会生成这个目录以及一个info文件安装完成后在shell下输入:#dmesg |grep PF_RING即可验证是否配置成功参见图4。当你看到如图4所示的输出后就预示着这次对Ntop的性能提上改造成功这时你的Ntop系统在数据包捕获性能上就比先前有所提高能够适应更加大流量的网络环境。