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

系统环境:centos6.5 开发版

PF_RING版本:PF_RING-5.6.2

0. 卸载系统自带的网卡驱动

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

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

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

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

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

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

1. 首先安装:numactl-2.0.3

2. 编译安装PF_RING内核模块

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

# tar -zxf PF_RING.4.7..tar.gz

# cd PF_RING.4.7./

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

# cd PF_RING.4.7./kernel

# make

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

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

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

加载pf_ring内核模块,进入/lib/modules/<redhat-version>/kernel/net目录,可以看到有pf_ring目录,进入到该目录下进行PF_RING模块的安装。

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

具体的mode取值的测试可以参考这个链接:

http://jaseywang.me/2015/02/28/%E9%80%9A%E8%BF%87-tcpcopypf_ring-%E5%AF%B9-bcm-5719-%E5%B0%8F%E5%8C%85%E5%81%9A%E7%9A%84%E5%A4%9A%E7%BB%84-benchmark/

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

# cat /proc/net/pf_ring/info

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

3. 编译安装PF_RING所需依赖库

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

# cd ../userland/lib

# ./configure

# make

# sodu make install

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

卸载原来的libpcap:

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

# rpm --nodeps -e libpcap //按照原文的报错,没有--nodefs选项,使用的是--nodeps,不验证包依赖性, –e 选项,意思是擦除erase  

安装pf_ring的libpcap:

# cd ../libpcap

# ./configure

# make

# sudo make install

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

4. 编译网卡的驱动

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

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

# make

# sodu make install

安装网卡驱动,进入到目录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 | grep Ethernet

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

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

# cd <PF_RING PATH>/userland/examples

# make

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

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

6. 常见错误及解决方法

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

       驱动所在目录:/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行

    2. 网卡驱动模块所在目录:/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.5下PF_RING安装方法的更多相关文章

  1. CentOS6.5下Oracle11G-R2安装、卸载

    CentOS6.5下Oracle11G-R2安装.卸载 资源下载地址(包含本人全部安装过程中,系统备份文件):http://download.csdn.net/detail/attagain/7700 ...

  2. Linux下软件安装方法即路径设置

    Linux下软件安装方法即路径设置 http://www.cnblogs.com/edward259/archive/2010/07/02/1770066.html

  3. centos6.7下编译安装lnmp

    很多步骤不说明了,请参照本人的centos6.7下编译安装lamp,这次的架构是nginx+php-fpm一台服务器,mysql一台服务器 (1)首先编译安装nginx: 操作命令: yum -y g ...

  4. (转载)EhLib 在 Delphi 7 下的安装方法

    EhLib 在 Delphi 7 下的安装方法 1.将 EhLib 解压到一个目录,如:E:\VCL\EhLib: 2.将 EhLib 安装目录下 Common 目录.DataService 目录下的 ...

  5. centos6.7下 编译安装MySQL5.7

    centos6.7下编译安装MySQL5.7 准备工作 #-----依赖包及MySQL和boost安装包----- #yum包安装: shell> yum -y install gcc-c++ ...

  6. Linux(CentOS6.5)下编译安装PHP5.6.22时报错”configure: error: ZLIB extension requires gzgets in zlib”的解决方式(确定已经编译安装Zlib,并已经指定Zlib路径)

    本文地址http://comexchan.cnblogs.com/,作者Comex Chan,尊重知识产权,转载请注明出处,谢谢!   今天在CentOS6.5下编译安装PHP时,一直报错 confi ...

  7. CentOS6.5_64bit下编译安装MySQL-5.6.23

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/44785511 ************************************** ...

  8. CentOS6.5下编译安装LAMP环境

    LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架.该框架能够满足大流量.大并发量的网站需求:当然.也可以直接使用高性能的服务器.高性能的负载均衡硬件以及CDN ...

  9. elasticsearch-5.2在windows下的安装方法

    elasticsearch-5.2.1安装方法 1. 安装java 下载安装java jdk 1.7 以上 配置java环境变量 右击[我的电脑]---[属性]-----[高级系统设置]---[环境变 ...

随机推荐

  1. 两个DataGridEHToExcel

    procedure TForm1.N1Click(Sender: TObject); var    GridtoExcel: TDBGridEhToExcel; begin    try    Gri ...

  2. Loadrunner - Controller - policy - 设置集合点策略

    控制器中设置集合点策略                                                        我们在Virtual User Generator 中回放脚本无法 ...

  3. EasyNVR流媒体服务器接入EasyDSS云视频平台快照上传实现

    EasyNVR拥有接入EasyDSS云平台的功能 接入EasyDSS云平台会定时向云平台上传快照数据,这个快照数据用于云平台向客户端提供快照展示 遇到的问题 由于快照上传的间隔提供认为修改的功能,则我 ...

  4. css jquery 实现轮播效果

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  5. linux c编程:网络编程

    在网络上,通信服务都是采用C/S机制,也就是客户端/服务器机制.流程可以参考下图: 服务器端工作流程: 使用socket()函数创建服务器端通信套接口 使用bind()函数将创建的套接口与服务器地址绑 ...

  6. SAP 已经有17个模块

    SAP模块清单: 传统五大郎: MM,SD,PP,FI 财务会计CO 管理会计 +QM 质量管理 (制造业用的不少)+ABAP.BASIS.BW BI商务智能的组件之一CRM 客户管理SRM 供应商管 ...

  7. Redis——慢查询分析

    核心知识点: 1.什么是慢查询? 2.客户端执行一条命令的步骤? 3.阈值和慢查询日志的设置? 4.慢查询日志的操作命令:slowlog get.slowlog len.slowlog reset. ...

  8. ubuntu 更新软件命令

    安装软件最好加权限(sudo) --default-timeout=100 设置超时时间100秒 install -U setuptools 表示更新安装setuptools sudo pip3 -- ...

  9. vs2012环境配置

    快捷键 css格式设置 字体设置 新建项目 项目创建失败? 更改默认开发语言环境 1.快捷键 代码格式化:Ctrl+K+D 2.css格式设置: 工具→选项→文本编辑器→CSS→格式设置→选择“紧凑模 ...

  10. Warning: Cannot send session cookie – headers already sent…

    相信大多数人在写PHP代码的时候,都遇到过类似 "Warning: Cannot send session cookie – headers already sent…“或者”Cannot ...