centos6.5下PF_RING安装方法

参考的是这个大牛的文章:http://blog.csdn.net/fan_hai_ping/article/details/6705170

自己的环境是centos6.5,是开发的版本

编译安装PF_RING之前需要卸载原来的网卡驱动,卸载之前使用ethtool命令查看当前网卡的类型和驱动版本。

# ifconfig  //查看网卡的名称,如果是单网卡一般是eth0,双网卡的话,找到你要使用pf_ring的网卡名字替换下面的eth0

# ethtool -i eth0  //查看网卡的驱动名称

# lsmod | grep e1000e //查看网卡驱动是否存在

# rmmod e1000e //卸载电脑自动安装的网卡驱动   此处为e1000e驱动

注:如果使用ssh远程卸载驱动会造成网络不能连接,务必现场操作。

2.0   首先安装:numactl-2.0.3

2.1.  编译内核

解压缩PF_RING安装包,进入到Kernel目录下编译和安装内核补丁。

# tar -zxf PF_RING.4.7.0.tar.gz

# cd PF_RING.4.7.0/

# make    //直接在跟目录下面make,进行全部编译

# cd PF_RING.4.7.0/kernel

# make

# sudo make install  //内核安装需要root用户权限

insmod <PF_RINGPATH>/kernel/pf_ring.ko [transparent_mode=0|1|2]

[min_num_slots=x][enable_tx_capture=1|0][enable_ip_defrag=1|0][quick_mode=1|0]

加载pf_ring模块到内核实例:

# sodu insmod pf_ring.ko transparent_mode=1   //最好设置一下,好像是2最强了

当PF_RING激活时,会创建/proc/net/pf_ring目录,使用cat命令查看设置:

# cat /proc/net/pf_ring/info

注1:为了编译PF_RING内核模块,你需要安装Linux内核的头文件(或者内核源代码)。

2.2.  编译用户空间PF_RING库

进入到用户空间库userland/lib下,编译和安装。

# cd ../userland/lib

# ./configure

# make

# sodu make install

如果需要使用libpcap抓包分析,请卸载之前安装的libpcap,然后进入/userland/libpcap-xxx-ring/目录下配置、编译和安装驱动。

# rpm -qa libpcap    //查看安装的libpcap,如果有libpcap则强制卸载

# rpm --nodeps -e libpcap //按照原文的报错,没有--nodefs,--nodeps是不验证包依赖性

最好加上 –e是擦除erase 

# cd ../libpcap

# ./configure

# make

# sudo make install

注:为了使用PF_RING的优点,请使用PF_RING使能的libpcap.a重新编译应用。

 

2.3.  编译网卡的驱动

进入到drivers目录下,根据ethtool -i ethx命令查看的网卡类型和驱动进入指定的目录进行编译和安装。

# cd /root/soft/PF_RING/PF_RING-5.6.2/drivers/PF_RING_aware/intel/e1000e/e1000e-2.0.0.1/src

# make

# sodu make install

开始安装驱动,进入/lib/modules/<redhat-version>/kernel/net目录,可以看到有pf_ring目录,进入到该目录下进行PF_RING模块的安装。

# sodu insmod pf_ring.ko transparent_mode=1

安装网卡驱动,进入到目录lib/modules/<redhat-version>/kernel/drivers/net下进行网卡驱动安装。

网卡所在目录

/root/soft/PF_RING/PF_RING-5.6.2/drivers/PF_RING_aware/intel/e1000e/e1000e-2.0.0.1/src

# sodu insmod e1000e.ko  //安装pf_ring网卡驱动

# sodu modprobe e1000e  (只能载入/lib/modules/<kernel ver>/中模块)

安装完毕,使用dmesg命令查看驱动是否安装成功,如果成功的话,可以看到:

# dmesg

 

测试网卡:

进入到userland/examples目录编译例子程序。

# cd <PF_RING PATH>/userland/examples

# make

# ./pfcount -i eth0     捕获eth0网口的数据报文

注:使用drivers/intel/ixgbe下的驱动(支持DNA的ixgbe驱动的网卡)+DNA驱动技术可以达到线速采集,PF_RING模块必须在DNA驱动之前加载。

 

[PR_RING]…… 信息。

测试网络的接收的包数

常见错误解决方法:

1    错误:insmod: error inserting 'pf_ring.ko': -1 Unknown symbol in module

        解决方法:没有卸载当前的网卡驱动,新的加载不了,需要卸载网卡驱动

2    错误:--nodefs: unknown option

        解决方法:rpm --nodeps -e libpcap

3     在这个目录下/root/soft/PF_RING/PF_RING-5.6.2/drivers/PF_RING_aware/intel/e1000e/e1000e-2.0.0.1/src

   编译网卡模块驱动

   make

   错误:/root/soft/PF_RING/PF_RING-5.6.2/drivers/PF_RING_aware/intel/e1000e/e1000e-2.0.0.1/src/kcompat.h:3039: error: conflicting types for ‘netdev_features_t’

      解决方法:vim kcompat.h +3039    注释掉3039这一行

4  网卡驱动模块所在目录

   /root/soft/PF_RING/PF_RING-5.6.2/drivers/PF_RING_aware/intel/e1000e/e1000e-2.0.0.1/src

    insmod e1000e.ko

你可能感兴趣的:(centos6)