CenOS 安装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)可以工作在混杂模式(经过网卡的报文全部可以被捕获到);

官网:http://www.ntop.org

最新版本6.0.1,下载网址http://sourceforge.net/projects/ntop/files/PF_RING/

最新版本的目录结构:

drivers/

drivers/DNA/

drivers/PF_RING_aware/

Kernel/  内核有关的补丁

Userland/  用户空间代码

Userland/lib  用户空间库用于控制PF_RING

Userland/libpcap-1.1.1-ring  PF_RING支持的Libpcap增强库

Userland/examples/  包计数应用(使用它作为测试使用)

2.       编译

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

# ethtool -i ethx

# lsmod | grep e1000e

# rmmod e1000e           此处为e1000e驱动

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

2.1.  编译内核

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

# tar -zxf PF_RING.4.7.0.tar.gz

# 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]

实例:

# sodu insmod pf_ring.ko transparent_mode=1

当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 -e libpcap --nodefs

# cd ../libpcap

# ./configure

# make

# sudo make install

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

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

# cd <PF_RING PATH>/userland/examples

# make

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

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

2.3.  编译网卡的驱动

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

# cd ../../ drivers/intel/e1000e/e1000e-1.3.10a/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下进行网卡驱动安装。

# sodu insmod e1000e.ko

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

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

# dmesg

[PR_RING]…… 信息。

PF_RING会安装一个类型为27的协议簇,可以使用sock(PF_RING, SOCK_RAW,0)打开一个socket,使用libpcap的朋友不需要修改程序,需要重新编译,链接的时候请加上libpfring.so。

启动自动加载PF_RING模块,修改/etc/modprobe.conf文件

# vi /etc/modprobe.conf

在文件的尾部增加一行 modprobe pf_ring

系统重启后内核会自动加载pf_ring模块,modprobe只能加载/lib/modules下的模块。

3. 使用

使用用户空间中的PF_RING库API来编写代码,并且使用用户空间中的libpfring.a和libpcap.a编译代码就可以使用PF_RING来提高包捕获的性能。

请详细的内容请参考网址:http://www.ntop.org/PF_RING.html

时间: 2024-12-05 05:36:54

CenOS 安装PF_RING的相关文章

cenos 安装 jdk 1.8

1.源码包准备: 首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,我下载jdk-7u45-linux-x64.tar.gz,下载到主目录 2.解压源码包 通过终端在/usr/local目录下新建java文件夹,命令行: sudo mkdir /usr/local/java 然后将下载到压缩包拷贝到java文件夹中,命令行: 进入jdk源码包所在目录 cp 

Cenos安装输入法

打开终端界面,使用su - root切换到超级用户,然后输入yum install"@Chinese support",回车. 中间安装过程提示你输入的时候都输入y,一直到安装完成. 然后点击桌面左上角的system->perference,在里面可以看到一个input method,点击进去. 选中Enable前面的方框,点击Input method. 在打开的窗口中选择中间那个input method,再点击select input method,在里面依次选择Chinese

CenOS安装Redis

环境:Centos 6.2 redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string.list.set.zset和hash.这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作.在此基础上,redis支持各种不同方式的排序.Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加

cenos 安装git

1.安装所需软件包 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel # yum install gcc perl-ExtUtils-MakeMaker 2.下载&安装 # cd /usr/src # wget https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz # tar xzf git-2.7.0.tar.gz # cd

CenOS 安装python3 与python2共存

Linux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装python3和python2共存 首先去Python官网下载python3的源码包,网址:https://www.python.org/ 进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source code,就是源码包的意思,这里选择最新版本3.5.1,当然下面

PF_RING 6.0.2在Redhat 6.3 x86_64上编译和安装

前言 本文详细描述Linux下PF_RING的编译和安装过程. PF_RING版本:6.0.2(当前最新版本) 官方网址:http://www.ntop.org/products/pf_ring/ 下载网址:http://sourceforge.net/projects/ntop/files/PF_RING/ Linux系统:Redhat 6.3(x86_64) GCC版本:GCC 4.4.6 下载PF_RING 1)确认是否安装PF_RING 如果你已经安装pf_ring,你可能需要执行:rm

PF_RING安装

1.安装Build-essential.SVN.Flex.Libnuma-dev.bison sudo apt-get install build-essential subversion flex libnuma-dev bison 2.下载PF_RING svn co https://svn.ntop.org/svn/ntop/trunk/PF_RING/ PF_RING 3.卸载本机网卡驱动 (1)检查当前网卡 ethtool -i 指定网卡(eth0) (2)卸载网卡驱动 sudo rm

linux环境下搭建svn服务器

前提: linux为cenos ; 安装了yum ; 1.进入linux,执行yum直接下载安装 yum install svbversion 2,查看svn安装位置 rpm -ql subversion 3.创建svn的版本库目录 makdir -p /var/svn/svnrepos 4.创建版本库 svnadmin create /var/svn/svnrepos 执行3.4后会在svnrepos下生成文件: 5.了解该svn版本库配置文件 conf目录 cd conf #进入该版本库的配

使用ntopng,在Linux上搭建基于Web的网络流量监控系统

Ntopng 简介: Ntopng是原ntop下一代版本,用于网络流量实时监控显示.Ntopng类似于RMON远端网络监控代理,具有内置的Web服务能力,使用redis键值服务按时间序列存储统计信息.你可以在任何指定的监控服务器上安装ntopng,只需使用任一web浏览器,就能实时访问服务器上的流量报告了. Ntopng 常用功能说明: 根据许多协议对网络流量进行排序: 显示网络流量和IPv4/v6的活动主机: 显示主机的地理位置: 显示IP的各种协议流量分布: 根据源/目的IP流量分析和排序: