【转】CentOS安装PF_RING(虚拟机)
1. 概述
PF_RING是Luca Deri发明的提高内核处理数据包效率,并兼顾应用程序的补丁,如Libpcap和TCPDUMP等,以及一些辅助性程序(如ntop查看并分析网络流量等)。PF_RING是一种新型的网络socket,它可以极大的改进包捕获的速度。并且有如下特征:
1) 可以用于Linux 2.6.18以上的内核;
2) 4.x版本的PF_RING可以直接应用于内核,不需要给内核打补丁;
3) PF_RING驱动可以进行包捕获的加速;
4) 支持使用商用网络适配器的10 GB的硬件包过滤
5) 设备驱动无关(推荐使用支持NAPI的网卡(intel网卡)来获得最好的性能);
6) 基于内核的包捕获和采样;
7) Lipcap支持与基于pcap的应用程序的无缝集成;
8) 可以指定上百个头过滤到BPF中;
9) 内容检查,以至于只有符合负载过滤的包才能通过;
10)PF_RING的插件可以用于增强包解析和内容过滤;
11)可以工作在混杂模式(经过网卡的报文全部可以被捕获到);

最新版本6.0.1,下载网址 http://www.ntop.org/products/pf_ring/
最新版本的目录结构:
Drivers/
Kernel/ 内核有关的补丁
Userland/ 用户空间代码
Userland/lib 用户空间库用于控制PF_RING
Userland/libpcap-1.1.1-ring PF_RING支持的Libpcap增强库
Userland/examples/ 包计数应用(使用它作为测试使用)
###
基本库:
libnuma-dev
yum install numactl-devel
###
2. 编译
编译安装PF_RING之前需要卸载原来的网卡驱动,卸载之前使用ethtool命令查看当前网卡的类型和驱动版本。
ethtool -i eth0
lsmod | grep igb
rmmod igb
注:如果使用ssh远程卸载驱动会造成网络不能连接,务必现场操作。
2.1. 编译内核
解压缩PF_RING安装包,进入到Kernel目录下编译和安装内核补丁。
tar zxvf PF_RING-6.0..tar.gz
cd PF_RING.6.0./kernel
make
make install
insmod pf_ring.ko transparent_mode=
当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
make install
如果需要使用libpcap抓包分析,请卸载之前安装的libpcap,然后进入/userland/libpcap-1.1.1-ring/目录下配置、编译和安装驱动。
rpm -qa libpcap 查看安装的libpcap,如果有libpcap则强制卸载
rpm -e libpcap --nodeps
cd ../libpcap-1.1.1-ring
./configure
make
make install
注:为了使用PF_RING的优点,请使用PF_RING使能的libpcap.a重新编译应用。
进入到userland/examples目录编译例子程序。
cd /userland/examples
make
./pfcount -i eth0
注:使用drivers/intel/ixgbe下的驱动(支持DNA的ixgbe驱动的网卡)+DNA驱动技术可以达到线速采集,PF_RING模块必须在DNA驱动之前加载。
2.3. 编译网卡的驱动
进入到drivers目录下,根据ethtool -i ethx命令查看的网卡类型和驱动进入指定的目录进行编译和安装。
cd ../../drivers/PF_RING_aware/non-ZC-drivers/intel/e1000/e1000-8.0.35/src
make
make install
开始安装驱动
进入/lib/modules/2.6.32-431.el6.x86_64/kernel/net目录,可以看到有pf_ring目录,进入到该目录下进行PF_RING模块的安装。
cd
cd /lib/modules/2.6.-.el6.x86_64/kernel/net
insmod pf_ring.ko transparent_mode=
安装网卡驱动
进入到目录/lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net下进行网卡驱动安装。
insmod e1000.ko 若没有卸载原有驱动会报错
modprobe e1000 (只能载入/lib/modules/2.6.32-431.el6.x86_64/中模块)
安装完毕,使用dmesg命令查看驱动是否安装成功,如果成功的话,可以看到:
dmesg
[PR_RING]…… 信息。
PF_RING会安装一个类型为27的协议簇,可以使用sock(PF_RING, SOCK_RAW,0)打开一个socket,使用libpcap的朋友不需要修改程序,需要重新编译,链接的时候请加上libpfring.so。
3. 使用
使用用户空间中的PF_RING库API来编写代码,并且使用用户空间中的libpfring.a和libpcap.a编译代码就可以使用PF_RING来提高包捕获的性能。
请详细的内容请参考网址:http://www.ntop.org/PF_RING.html
用户手册:https://svn.ntop.org/svn/ntop/trunk/PF_RING/doc/UsersGuide.pdf
【转】CentOS安装PF_RING(虚拟机)的更多相关文章
- KVM | centos 安装 window 虚拟机
KVM | centos 安装 window 虚拟机 环境: CENTOS 7.3 1. 准备 1.1 检查是否支持虚拟化 cat /proc/cpuinfo | egrep 'vmx|svm' 要求 ...
- centos安装xen虚拟机并且配置bridge
主要参考的几个官方文档: http://wiki.centos.org/HowTos/Xen/Xen4QuickStart 在centos上安装xen组件并建立dom0 http://wiki.cen ...
- Centos操作系统在虚拟机VMware上的安装
1.下载centos操作系统,提供百度云盘链接:http://pan.baidu.com/s/1pLHOR03 2.打开上篇在VMware中新建好的空白虚拟机,将centos安装在此空白虚拟机上,步骤 ...
- Windows10下安装VMware虚拟机并搭建CentOS系统环境
转载: http://blog.51cto.com/10085711/2069270 操作系统 Windows 10专业版(64位) VMware虚拟机 产品:VMware® Workstation ...
- CentOS 7.5 安装KVM虚拟机(Windows)
一.KVM环境搭建1.检测系统是否支持cat /proc/cpuinfo | egrep 'vmx|svm' KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查 ...
- vmware虚拟机centOs安装教程
1安装vmware 虚拟机软件 1.解压vmware安装 汉化vmware虚拟机 复制注册码,并填写进vmware 2安装linux(centos)虚拟机 1. 点击文件----->新建虚拟机 ...
- CentOS 5.5 虚拟机安装 VirtualBox 客户端增强功能
.启动安装在 VirtualBox 中的 CentOS 5.5 虚拟机,点击“设备” => “安装增强功能”.这个时候你就可以看到有一个“光盘”已经挂载到 CentOS 5.5 的桌面上了.它包 ...
- 安装vmware虚拟机和linux(centos)
打开 WMware Workstation 8,然后选择新建虚拟机 2 新建虚拟机向导 选择 自定义(高级)(C)然后点击[下一步]按钮 3 选择虚拟机硬件兼容性 选择 workstation 8.0 ...
- CentOS 6 命令行下安装 VirtualBox 虚拟机步骤
CentOS 6 命令行下安装 VirtualBox 虚拟机步骤 1. 准备工作 安装内核更新 yum install kernel-develyum update kernel*如果内核有更新,则需 ...
随机推荐
- nginx(ubuntu)设置别名访问目录
1 2 3 4 5 6 7 8 9 10 11 12 13 location /phpmyadmin/ { alias /data/phpmyadmin/; index index.html in ...
- SELECT TOP 1 * FROM是什么意思
SELECT TOP 1 * FROM的含义: 1.select为命令动词,含义为执行数据查询操作: 2.top 1子句含义为查询结果只显示首条记录: 3.*子句表示查询结果包括数据源中的所有字段: ...
- python--lambda和def函数
1.Python lambda和Python def区别分析 Python支持一种有趣的语法,它允许你快速定义单行的最小函数.这些叫做lambda的函数,是从Lisp借用来的,可以用在任何需要函数的地 ...
- ftp以及smb的配置
linux下ftp服务的配置1,打开终端,cd /etc/vsftpd2 vi vsftpd.conf3 相关的都打开说明: anonymous_enable=YES //允许匿名 ...
- ecshop 去版权(前台)
该偏文章模板堂搜集总结,包括ecshop前台版权,ecshop后台版权,一个都不留,干干净净,推荐收藏 一.去掉网页标题 Powered by ECShop 打开includes/lib_main.p ...
- 硬盘安装win8系统方法汇总
从硬盘安装 (推荐)硬盘安装方法一 使用Nt6 hdd installer进行安装,此方法适合XP,vista, Windows 7等系统. 下载Nt6 hdd installer(Win8硬盘安装工 ...
- QML插件扩展2(基于C++的插件扩展)
上一节介绍了纯QML的插件扩展方式,这种扩展方式基本满足大部分的扩展需求,下面开始介绍比较小众的基于C++的扩展 (一)更新插件工程 1.更新MyPlugin工程下的qmldir文件,加入plugin ...
- Windows下动态库的编译以及调用
1.MFC下生成动态库 1>显式调用 在.cpp文件里添加接口函数 int sum(int a,int b) { return a + b; } int sub(int a,int b) { r ...
- HttpCookie类
转自:http://www.cnblogs.com/kissdodog/archive/2013/01/08/2851937.html HttpCookie类专门由C#用于读取和写入Cookie的类. ...
- IPSEC VPN配置实例
TL-R400VPN应用——IPSEC VPN配置实例 TL-ER6120是TP-LINK专为企业应用而开发的VPN路由器,具备强大的数据处理能力,并且支持丰富的软件功能,包括VPN.IP/MAC 地 ...