PF_RING安装指南

 原文网址: http://www.ntop.org/blog/pf_ring/installation-guide-for-pf_ring/

一个简单的安装,除了提到的包以外不用安装其它的包:

1 使用apt-get卸载libpcap和其它依赖的应用程序/库

2 安装SVN(获得最新的源代码)

Flex和bison(要求重新编译pf_ring使用的pcap)

Ethtool(如果没有预先安装,一些基本的NIC信息需要)

# sodu apt-get install subversion flex bison ethtool

3 使用SVN获得源代码

# svn co https://svn.ntop.org/svn/ntop/trunk/PF_RING/ PF_RING

【卸载本机网卡驱动】

4 使用ethtool检查当前网卡/驱动

# 改变eth0为你的以太网卡

# ethtool -i eth0

例子:

driver: e1000e

version: 1.0.2-k2

firmware-version: 0.4-3

bus-info: 0000:00:19.0

注意:一些流行的网卡的修改过的设备驱动可以在PF_RING/drivers下找到。

5 卸载以太网卡的驱动(它显示在上面命名删除的第一行)

# sodu rmmod e1000e

【编译安装kernel内核】

6 改变当前的目录到kernel

# cd PF_RING/kernel

7 编译源代码

# make

8 现在安装最新编译的源代码

# sodu make install

【编译安装用户态库】

9 改变工作目录到PF_RING/userland/lib

# cd ../userland/lib

10 再一次编译源代码

# make

11 安装库(这包括pfring.h)

Sudo make install

【注意在最新版本中没有出现pfring_e1000e_dna.c/h这两个文件】

12 一件奇怪的事情是我发现make install命令拷贝pfring.h到/usr/local/include,但是遗留下其它依赖的文件有:

 pfring_e1000e_dna.c/h

13 虽然这向这些文件中的函数在许多程序中不要求,在pfring.h中也包含,我不希望mess up。因此我拷贝他们到/usr/local/include中。

# cp pfring_e1000e_dna.* /usr/local/include

【编译安装PF_RING可用的pcap库】

14 现在必须编译PF_RING使用pcap库,改变工作目录到userland/libpcap-1.0.1-ring

# cd ../libpcap

15 配置

# ./configure

16 编译源代码

# make

17 安装PF_RING使用的libpcap

# sodu make install

【安装PF_RING使用设备驱动,选择适合本机的】

18 现在需要安装设备驱动(PF_RING使用)。改变工作目录到/drivers///src。在我的情况下,它是drivers/intel/e1000e-1.0.33/src

# cd ../../drivers/intel/e1000e-1.0.33/src

19 编译源代码

# make

20 安装驱动

# sodu make install

【激活PF_RING使其加载到内核工作】

21 现在需要激活PF_RING,如果它没有被激活的话,你能使用lsmod检查pf_ring是否启动。改变工作目录到/lib/modules/<kernel-version>/kernel/net/pf_ring

使用uname -r获得内部额的版本。

# cd /lib/modules/`uname -r`/kernel/net/pf_ring

22 使能PF_RING(如果已经使能,你能使用sudo rmmod pf_ring卸载)

# sudo insmod pf_ring.ko transparent_mode=1

注意:

l  transparent_mode=0(缺省)

利用标准的Linux接口接收报文,任何驱动都能使用该模式

l  transparent_mode=0(普通和PF_RING使用的驱动都可以使用)

报文memcpy()到PF_RING,并且也到标准Linux路径

l  transparent_mode=0(只对PF_RING使用的驱动有效)

报文只是memcpy()到PF_RING中,不到标准Linux路径(例如,tcpdump不能考到任何报文)。

越高的transparent_mod值,获得报文捕获的速度越快。

 

其它参数:

    # min_num_slots  最小的ring slots数量(缺省为-4096)

    # enable_tx_capture

    设置1捕获输出的报文,设置0不捕获删除的报文,缺省RX+TX

    # enable_ip_defrag

    设置1使能IP反分片,只有rx(接收)的流量被分分片。

更多的传输模式可以在http://www.ntop.org/blog/?p=56中找到。

【是驱动开始工作】

23 现在使能你的驱动,进入到/lib/modules/<kern-ver>/kernel/drivers/net/e1000e

# cd /lib/modules/<kernel-ver>/kernel/drivers/net/e1000e

24 使能驱动

# sodu insmod e1000e.ko

25 现在你可让你的PF_RING应用程序开始工作了

注意:你必须重新编译如何应用程序,例如tcpdump(修改过的),网络管理器等。Google下这写编译方法。

 

概括来说PF_RING是即简单又有力量的技术,能够使开发者在少量时间内创建告诉传输监控和应用。

检查PF_RING设备配置

当PF_RING激活,会创建一个新的入口/proc/net/pf_ring。

# cat /proc/net/pf_ring/info

# cat /proc/net/pf_ring/plugins_info

链接PF_RING使能的应用程序必须有libpfring和libpcap库,也需要依赖于-lpthread库。

使用相关命令来查看抓包情况(userland/examples)

Dmesg或者/var/log/messages可以看到PF_RING的信息。

你可能感兴趣的:(pf_ring)