`
zhou.xingbo
  • 浏览: 53151 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PF_RING

阅读更多

1. PF_RING 安装

 

A clean install, no other packages were installed other than mentioned(提到).

 

1. Uninstall libpcap and other dependent applications/library using apt-get

原因?

 

2. Install subversion(Get latest source codes)

flex and bison(Required to recompile pf_ring aware pcap)

ethtool(if not preinstalled, required for some basic Nic info of your computer)

sudo apt-get install subversion flex bison ethtool
  

3. Use Subversion to fetch source codes

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

 

[卸载本机网卡驱动]

4. Check your current network card/driver using ethtool

 #change eth0 to your ethernet card
ethtool -i eth0

 

Sample:

driver: e1000e

version: 1.0.2-k2

firmware-version: 0.4-3

bus-info: 0000:00:19.0

 

Note: The modified device drivers for some of the popular network cards can be found in PF_RING/drivers.

 

5. Unload the ethernet card driver(this is shown in the first line of output of above command)

 

sudo rmmod e1000e

 

 

[编译安装kernel] 

6. Change current working directory to kernel

 

cd PF_RING/kernel
 

 

7. Make the source codes 

 

make

 

 

8. Now install the newly build source

 

sudo make install

 

 

[编译安装用户态库]

9. Change the working directory to PF_RING/userland/lib

cd ../userland/lib

 

10. Again build the source codes

make

 

11. Install the library(This include pfring.h)

sudo make install 


[注意] 在最新版本没有出现pfring_e1000e_dna.c和pfring_e1000e_dna.h这两个文件

12. One bizerre(奇异) thing  that I observed(观察) is that the make install copies pfring.h to /usr/local/include but leaves the other dependent files these are:

 1. pfring_e1000e_dna.c

 2. pfring_e1000e_dna.h

 

13. Although the function in these files are not required in much of the program, they are include in pfring.h and i don't want to mess up with that.So we copy this to /usr/local/include.

 

cp pfring_e1000e_dna.c /usr/local/include
cp pfring_e1000e_dna.h /usr/local/include

 

 

[编译安装PF_RING可用pcap库]

14. Now we have to compile PF_RING aware pcap library. Change the working directory to userland/libpcap-1.0.0-ring

 

cd ../libpcap-1.0.0-ring/

 

 

15. Configure

 

./configure

 

 

16. Build the sources

 

make
 

 

17. Install pf_ring aware(知道) libpcap

 

sudo make install

 


[安装PF_RING可用设备驱动, 选择适合本机的]

18. Now we need to install the device driver(pf_ring aware). Change the working directory to drivers///src

In my case it is "drivers/intel/e1000e-1.0.15/src"

 

cd ../../drivers/intel/e1000e-1.0.15/src
 

 

19. Build the source

 

make

 

 

20. Install the driver

 

sudo make install

 


[激活PF_RING使其加载到内核工作]

21. Now we need to activate PF_RING if its not already activated. You can use Ismod to check if pf_ring is started or not.

Change the working directory to /lib/modules//kernel/net/pf_ring

Use uname -r to get  the kernel version 

 

cd /lib/modules/2.6.31-14-generic/kernel/net/pf_ring
 

 

22. Enable PF_RING(if already enabled you can disable it using sudo rmmod pf_ring)

 

sudo insmod pf_ring.ko transparent_mode=1

 

 

Note:

   • transparent_mode=0 (default)

      Packets are received via the standard Linux interface. Any driver can use this mode.  

   • transparent_mode=1 (Both vanilla and PF_RING-aware drivers)

      Packets are memcpy() to PF_RING and also to the standard Linux path.

   • transparent_mode=2 (PF_RING -aware drivers only)

      Packets are ONLY memcpy() to PF_RING and not to the standard Linux path (i.e. tcpdump won't see

      anything).

The higher is the transparent_mode value, the faster it gets packet capture.

 

 

 

Other parameters:

   • min_num_slots

     Min number of ring slots (default — 4096).

   • enable_tx_capture

     Set to 1 to capture outgoing packets, set to 0 to disable capture outgoing packets (default — RX+TX).

   • enable_ip_defrag

     Set to 1 to enable IP defragmentation, only rx traffic is defragmented.

 

 

More on transparent mode can be found at http://www.ntop.org/blog/?p=56

 

[使驱动开始工作]

23. Now enable to enable your driver go to /lib/modules//kernel/drivers/net/e1000e

 

cd /lib/modules/2.6.31-14-generic/kernel/drivers/net/e1000e
 

 

24. Enable the driver

 

sudo insmod e1000e.ko
 

 

25. Now you can start working on your PF_RING application.

Note: You will have to recompile many applications such as tcpdump(modified included), network manager etc. Google for doing so.

 

2. PF_RING demo

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

 

Checking PF_RING Device Configuration

When PF_RING is activated, a new entry /proc/net/pf_ring is created.

 

cat /proc/net/pf_ring/info

 

cat /proc/net/pf_ring/plugins_info

 

 

libpfring and libpcap is necessary to link you PF_RING-enabled applications also against the -lpthread library.

 

 

 

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

 

dmesg或/var/log/messages可以看到PF_RING的信息

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    pf_ring源码

    pd = pfring_open(eth1, SNAP_LEN, PF_RING_PROMISC); if (pd == NULL) { printf("pfring_open error [%s]\n", strerror(errno)); exit(EXIT_FAILURE); } if (pfring_set_direction(pd, rx_only_direction) != 0)...

    PF_RING中文用户指南

    ### PF_RING中文用户指南知识点概览 #### 一、PF_RING简介 - **定义与功能**:PF_RING是一个用于Linux平台的高速数据包捕获库,能够将普通的PC转变成高效的网络测量工具,用于实时流量分析及数据包操作。PF_RING...

    PF_RING_学习笔记

    - PF_RING通过ring_table维护了所有的ring sockets,每个socket对应一个struct sock,而struct ring_opt则存储了与特定协议相关联的私有信息。 - PF_RING使用了自定义的net_device notifier来处理设备状态变化的事件...

    pf_ring 4.5.0

    **pf_ring 4.5.0 源代码详解** `pf_ring` 是一个高性能的网络数据包捕获和分析框架,广泛应用于网络监控、安全分析以及数据中心性能优化。pf_ring 4.5.0 版本是该框架的一个特定发布,通过SVN版本控制系统同步获取...

    PF_RING-7.6.0.tgz

    PF_RING是网络数据包捕获和分析领域的一个关键组件,尤其在高性能网络监控和安全应用中扮演着重要角色。这个“PF_RING-7.6.0.tgz”压缩包文件包含的是PF_RING库的7.6.0版本,它是一个开源软件项目,由意大利公司Ntop...

    PF_RING用户指南.V5.4.4

    pf_ring是一个专门用于数据包捕获的高性能库。这个库被设计用来在Linux环境下运行,专门用于网络监控和流量分析,可以极大的提高数据包捕获的速度和效率。这个库使用一种独特的内核模块架构,能够绕过标准的数据包...

    PF_RING-6.2.0.tar.gz

    PF_RING 是一个高性能的数据包捕获和分析框架,主要用于网络监控、网络安全和数据分析等领域。6.2.0 版本是该框架的一个特定发行版,提供了改进和新特性以优化性能和功能。 在PF_RING 6.2.0中,我们可能会发现以下...

    PF_ring的多种负载均衡方法.pdf

    在PF_RING中,提供了多种负载均衡方法,包括标准PF_RING的负载均衡、PF_RING Cluster(Kernel)和PF_RING ZC负载均衡等。这些方法可以根据不同的应用场景选择使用,提高网络流量监控和网络流量分析的效率。 标准PF_...

    pf_ring.rar_PF _RING_libcap_pf ring download_pf_ring_zero copy

    **pf_ring概述** pf_ring是由Nethesis公司开发的一款高性能网络数据包捕获和分析库,主要用于提升在Linux系统上的网络监控和数据处理能力。它通过优化系统内核,实现了比标准libpcap更高的数据包捕获速度。pf_ring...

    PF_Ring.rar_pf ring_pf_ring 开发_pfring_pfring broadcast_环形 数据包

    **PF_Ring:高效的数据包捕获与处理技术** PF_Ring是由Ntop组织开发的一种高性能的数据包捕获和分析框架,特别适用于Linux操作系统。它为网络监控、数据分析和性能优化提供了强大的工具,通过利用环形缓冲技术显著...

    PF_RING源码安装包

    PF_RING 是一个高性能的数据包处理框架,主要用于网络监控、网络安全分析和数据中心的性能优化。它由意大利电信研发,提供了一种高效的方式,让应用程序能够快速地读取和处理网络接口中的数据包,甚至超过了操作系统...

    PF_RING 安装包源码及使用手册

    PF_RING是Luca Deri发明的提高内核处理数据包效率,并兼顾应用程序的补丁,如Libpcap和TCPDUMP等,以及一些辅助性程序(如ntop查看并分析网络流量等)。 压缩包里使用手册很详细,具有很强参考价值

    PF_RING用户中文指南.rar

    PF_RING是Luca研究出来的基于Linux内核级的高效数据包捕获技术。简单来说PF_RING 是一个高速数据包捕获库,通过它可以实现将通用 PC 计算机变成一个有效且便宜的网络测量工具箱,进行数据包和现网流量的分析和操作。...

    pf_ring user guide 技术文档

    ### PF_RING用户指南技术文档知识点概述 #### 一、PF_RING简介 PF_RING是一款高性能的包捕获库,能够将普通PC转变为高效的网络测量设备,适用于包和活动流量的分析与处理。它不仅提升了网络监控的效率,还开启了新...

    PF_RING DNA 5分钟授权hack版

    自己破解的PF_RING DNA 5分钟授权限制的版本。

    PF_RING 用户指南 英文

    PF_RING 是一个高性能的数据包捕获和分析框架,主要用于Linux系统。这个用户指南详细介绍了如何在Linux环境中高效地抓取和处理网络数据包。PF_RING的版本为5.4.6,更新于2012年10月,由ntop.org开发。 1. **介绍** ...

    PF_RING 翻译文档

    **PF_RING 翻译文档** PF_RING 是一个高性能的网络数据包捕获和分发框架,主要用于提高网络数据包处理的效率。它的设计目的是解决传统libpcap库在处理高吞吐量网络数据时存在的效率问题。以下是PF_RING的核心知识点...

    LINUX系统中基于PF_RING套接字的高性能包捕获技术

    LINUX系统中基于PF_RING套接字的高性能包捕获技术

    基于 IPv6 的 PF_RING ZC 数据包捕获技术在 IDS 中的应用.pdf

    在IDS中,传统数据分组的捕获是从网卡复制到内核,再由内核复制到用户空间,这导致了...为了提升捕获包效率,采用多线程思想,通过PF_RING ZC技术实现零拷贝,把PF_RING ZC捕获数据分组的方法做成动态链接库,并集成到Snort中

Global site tag (gtag.js) - Google Analytics