zoukankan      html  css  js  c++  java
  • 【转】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.1.tar.gz
    cd PF_RING.6.0.1/kernel
    make
    make install
    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
    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.32-431.el6.x86_64/kernel/net
    insmod pf_ring.ko transparent_mode=1

    安装网卡驱动

    进入到目录/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

  • 相关阅读:
    POJ 1251 Jungle Roads
    1111 Online Map (30 分)
    1122 Hamiltonian Cycle (25 分)
    POJ 2560 Freckles
    1087 All Roads Lead to Rome (30 分)
    1072 Gas Station (30 分)
    1018 Public Bike Management (30 分)
    1030 Travel Plan (30 分)
    22. bootstrap组件#巨幕和旋转图标
    3. Spring配置文件
  • 原文地址:https://www.cnblogs.com/tswcypy/p/3941619.html
Copyright © 2011-2022 走看看