1.       概述

PF_RING是Luca Deri发明的提高内核处理数据包效率,并兼顾应用程序的补丁,如Libpcap和TCPDUMP等,以及一些辅助性程序(如ntop查看并分析网络流量等)。PF_RING是一种新型的网络socket,它可以极大的改进包捕获的速度。并且有如下特征:

1) 可以用于Linux2.6.32以上的内核;

2)PF_RING可以直接应用于内核,不需要给内核打补丁;

3) PF_RING驱动可以进行包捕获的加速;

4) 支持使用商用网络适配器的10 GB的硬件包过滤

5) 设备驱动无关(推荐使用支持NAPI的网卡(intel网卡)来获得最好的性能);

6) 基于内核的包捕获和采样;

7) Lipcap支持与基于pcap的应用程序的无缝集成;

8) 可以指定上百个头过滤到BPF中;

9) 内容检查,以至于只有符合负载过滤的包才能通过;

10)PF_RING的插件可以用于增强包解析和内容过滤;

11)可以工作在混杂模式(经过网卡的报文全部可以被捕获到);

![](data:image/png;base64,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nnnG2zKMQ5jAyyG2bt0qtWvXlqVLl3p7cieEVRj+bxiGkVr+/PNPOf744+XAgQPentxLoUKFpE2bNt6WYRzCBF4OMXLkSJ34/5hjjvH2GIZhGKkBj1W9evUkX7583h7DMEIxgZdDXHvttTJ16lTJkyePtyd3w+wdN998s7dlGIYRmUcffVTeffddb8twvPHGGzJlyhRvy8jtmMDLIfLnzy+FCxf2toyjjjpKhgwZotMMGYZhJEelSpXishh8RmGWizvuuMPbMnI7JvCMqACDPWPGDBtwYRiGkU4Qdz179vS2jNyOCbxsZsCAAfL66697W4Yf5qktUqSIt2UYhpGU/v37y+LFi70tIxTs5w033OBtGbmdXCPwpk+fLu+//763lXM8++yzcuSRR3pbhmEYRmpYsmSJPPLII96WYRgpkaMCb9CgQdKyZUudW49ClYMHD9b9VOWuVauWlhLJLEg8Zf6+nObTTz+Vtm3beltGOPg72Ldvn7dlGEZ62Lx5s2zatMnbSsqyZctk//79uk7e1u7du3Xdz8aNG+X777/X49FAsWLFdOYbng1G8mA///jjD2/LyK3kmMC76qqr1JvVsWNHnUuwX79+MnDgQPn666+1dAgjKkuUKOGdHT/k1ul00gIj5CZNmuRtGYaRHl577TWtFbdhwwZvzyHoWI8fP17XL774YhkxYoSuw/z583X6r4oVK0qnTp10jtebbropURDmFEzpaAMIUsc333wjp512mnWUczk5IvAQcR988IF8+OGHmhBKwV8MCbkVZ511lk49g1GhhAiFgCmhsWrVKq0d51i0aJEOCec69FRhwoQJ2ut07NmzRz766CNvKylbtmyRjz/+WEdu0kPFs7Zz5049hrePnu/MmTN1vlQje3n88cd1GjPDMNIPD/c1a9aEzcnCY+e8duvXr09cX7BggQoDGrYXu0tEhSXXMmKD008/XT2eub2Qfm4nRwQewowwZbNmzbw9CbiilYi3yy+/XA3Ue++9p968xo0b63ogEJCXXnpJQ7pjxoyRN998U26//XZ9Xa9evXTSfscvv/wiXbt29bYOQXiiQYMGcv/992vPtWnTpnLllVfKjz/+qMe5Xrdu3aR169aZJvDWrl2rQtVImR49ekiLFi28LcMw0gsDl7CDqa0ZR45b/fr1NU3i6KOP1n2MbP/888+lWrVqup0TmCcq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KV26tHdWUr7//nv54osvpF+/ft6eQ8yfP1++/fZb+fHHH/V96tWrJy1atJAjjzzSO8MwjHBkp32Azz77TGbMmOFtiZQvX16aN28up556qtoLiHX78Oeff8prr70m9913n9p4oLOeP39+KVy4sG7XqFFDqlSpIt98841up5YdO3bo77V161Zvj0iZMmWkVq1a0rZt28TrOzL63e3bt0/uvfdeOe2006RLly7eXiPTQeAZmUfwBgtUq1YtEBRy3p6kjB07FkEdGDRokLcn8wgayUDwRgwcd9xxuv3uu+/qe02aNCnsdkYYPny4XqtcuXKBoEEJBA2ObtOC4lY/i/+80BY09oEDBw7oOSkR+l5B463bxYoVC4wfP947KxB4//33df+UKVN0+7333tPt1q1b63Y4brrpJj0n+EDy9gQCQWMXCBod3R98MAWCRi4QNGK6XbRo0UDwgRTYv3+/d7ZhGKFkp30AbF6BAgX0vWiFChXS67Rp0yYQFEF6Tqzbh0ceeUTfg+/M0aRJk0CrVq28rUDg6KOPDgRFtLeVeiZMmKDXDoo6/f4qVaqk/zf28dtx3E96vzsHzz+O8bzasGGDt9fIbCxEm8nguVuxYoV899133p6kjBgxQvLmzatevsymYMGCMnXqVBkzZoy3J+vYu3evLj/44APtGa9bt05++eUX6dGjh3z00UfaswN33sSJEyVosBPbypUr9XtIDaHvFTQIsmzZMvXitW/fXhYsWKDH8Y4C14fg37cu6UXS8w2He41b4kk4/fTT5eOPP5agQZX169fLH3/8oZ6Gn376SU466SQNc3NNwzDCk532AbgOERHei7ZlyxZ56623JNiZleuuu07PiXX7cNddd8no0aPl4osv9vaIbNy4UT9DRsGjBoMHD9bvb+3ateqFHTdunD5XLr300kQ7C+n57vzw25x88sn6uwUFq7fXyGxM4GUyV155pS4RcqHgBieUQGgx1I3PDfXXX38l3jgIGL8h+vvvv3UdMH5LlizxtpIS7MlK1apVva3UE+xxasjB5eft3r1bb/S0cMIJJ2gOCOEDbmD3fwFCNBhs1zJKsKcqwV6kfkcpGdNjjz1WevfurSGOlHjzzTfl559/1jDOQw89pKEeB8ab0AehhwsvvNDbaxhGashO+1CoUCEVk3S4sQ/Yt0hkp33AXiHKwvH77797a0nhfIRl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)

最新版本6.4.1,下载网址  [http://www.ntop.org/products/pf_ring/](http://www.ntop.org/products/pf_ring/)

最新版本的目录结构:

Drivers/ ---intel网卡

               e1000e (1 Gbit - PCI Express-only) 8254x/8256x/8257x/8258x

              igb (1 Gbit) 82575/82576/82580/I350/I210

              ixgbe (10 Gbit) 82599/X520/X540

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 e1000e

rmmod e1000e           此处为e1000e驱动

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

2.1.  编译内核

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

wget [http://nchc.dl.sourceforge.net/project/ntop/PF_RING/PF_RING-6.4.1.tar.gz](http://nchc.dl.sourceforge.net/project/ntop/PF_RING/PF_RING-6.4.1.tar.gz)

tar zxvf PF_RING-6.4.1.tar.gz

cd PF_RING.6.4.1/kernel

make

makeinstall

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

makeinstall

如果需要使用libpcap抓包分析,请卸载之前安装的libpcap,然后进入/userland/libpcap-1.1.1-ring/目录下配置、编译和安装驱动。

rpm -qa libpcap    查看安装的libpcap,如果有libpcap则强制卸载

rpm -e libpcap --nodeps 

cd ../libpcap-1.1.1-ring

./configure

makemakeinstall

注:为了使用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  makemakeinstall

开始安装驱动

进入/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](http://www.ntop.org/PF_RING.html)