Linux 的 libpcap 详细流程为:网卡硬中断 - 软中断 - 内核协议栈 - 系统调用 -socket 接口 -libpcap 接口 - 用户应用程序,在这个流程中,可以看出数据的 copy 比较多。所以 libpcap 抓包丢包严重也不用感到奇怪了,为了减少丢包率,采用 libpcap-pfring 方

Linuxlibpcap详细流程为:网卡硬中断->软中断->内核协议栈->系统调用->socket接口->libpcap接口->用户应用程序,在这个流程中,可以看出数据的copy比较多。所以libpcap抓包丢包严重也不用感到奇怪了,为了减少丢包率,采用libpcap-pfring方法。

下面讲解fedora 9下如何安装PF-RING,安装过程如下:

1)cd /home 然后再这里建立一个目录 mkdir rfring-libpcap

2)cd rfring-libpcap

3)svn co https://svn.ntop.org/svn/ntop/trunk/PF_RING/ 下载PF-RING

4)PF-RING下载完后,cd /PF-RING/legacy下,vi mkpatch.sh 修改内核版本号={SUBLEVEL-25.14}

5)./mkpatch.sh 下载内核到workspace中,生成目录linux-2.6.25-14-686-smp-PF_RING和补丁文件linux-2.6.25-14-686-smp-PF_RING.patch.gz

6)按下面操作

mv linux-2.6.25-14-686-smp-PF_RING/ linux-2.6.25-14-686-smp-PF_RING.bak/
zcat linux-2.6.25-14-686-smp-PF_RING.patch.gz | patch -p0

7cd linux-2.6.25 编译内核

#vi Makefile 在这个地方加上一个自定义的后缀: EXTRAVERSION = -PF_RING ,这会显示在界面启动的时候看到

8make oldconfig 主要目的是选择RF_RING

9) make menuconfig 检查Networking->Networking options —>PF_RING socketsEXPERIMENTAL

10) 然后就开始编译内核了,按我以前写的一篇博客操作 make

11make modules

12make modules_install

13) make install

14) cd /root/grub

15) vim menu.lst 删除menuhidden

16) cd ../..

cp kernel/include/linux/ring.h /usr/include/linux/

17)编译源码和libpcap

cd userland

make

cd lib/

make install

cd ../libpcap-1.1.1-ring/

make install

18) reboot 重启系统

09-14 11:42