Centos6.8 64位编译安装PF_RING心得和总结

转载的https://blog.csdn.net/haolipengzhanshen/article/details/51746958

非常感谢老大的分享

1)确认是否安装PF_RING

如果你已经安装pf_ring,你可能需要执行:
rmmod pf_ring

如果你不确定你是否安装pf_ring,执行:
modinfo pf_ring
2)编译和安装PF_RING内核模块

进入到kernel文件夹中make和make install

# 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用户权限

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

3) 加载PF_RING内核模块

切换到/lib/modules//kernel/net目录,可以看到有pf_ring目录,进入pf_ring目录

执行sudo insmod pf_ring.ko transparent_mode=1
//最好设置一下,官方解释是2的性能最好,但是有大神测试后发现差别并不是很大

当PF_RING激活时,会创建/proc/net/pf_ring目录,使用cat命令查看pf_ring的属性信息:

# cat /proc/net/pf_ring/info

    1

注:为了编译PF_RING内核模块,你需要安装Linux内核的头文件(或者内核源代码)。本人测试过2.6.X的内核,是可以编译过的
4)编译安装PF_RING所需依赖库

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

# cd ../userland/lib

# ./configure

# make

# sodu make install

    1
    2
    3
    4
    5
    6
    7

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

卸载原来的libpcap:

# rpm -qa libpcap //查看安装的libpcap,如果有libpcap则强制卸载
# rpm --nodeps -e libpcap //按照原文的报错,没有--nodefs选项,使用的是--nodeps,不验证包依赖性, –e 选项,意思是擦除erase

    1
    2

安装pf_ring的libpcap:

# cd ../libpcap

# ./configure

# make

# sudo make install

    1
    2
    3
    4
    5
    6
    7

注:为了使用PF_RING的优点,请使用PF_RING使能的libpcap.a重新编译应用。
5)编译网卡驱动并加载网卡驱动

进入到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

    1
    2
    3
    4
    5

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

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

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

    1
    2
    3

6. 测试网络的接收的包数

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

# cd <PF_RING PATH>/userland/examples

# make

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

    1
    2
    3
    4
    5

注:使用drivers/intel/ixgbe下的驱动(支持DNA的ixgbe驱动的网卡)+DNA驱动技术可以达到线速采集,PF_RING模块必须在DNA驱动之前加载。
7. 常见错误及解决方法

1.pf_ring.ko模块加载错误

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

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

2. 编译网卡模块驱动错误

   驱动所在目录:/root/soft/PF_RING/PF_RING-5.6.2/drivers/PF_RING_aware/intel/e1000e/e1000e-2.0.0.1/src

   错误信息:/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行

3. 网卡驱动模块所在目录:/root/soft/PF_RING/PF_RING-5.6.2/drivers/PF_RING_aware/intel/e1000e/e1000e-2.0.0.1/src

加载网卡驱动模块:insmod e1000e.ko

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值