免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 18753 | 回复: 14
打印 上一主题 下一主题

pf_ring 使用心得 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-09 20:52 |只看该作者 |倒序浏览
本帖最后由 pdsxw123 于 2010-08-09 20:54 编辑

在论坛里已经有人把pf_ring的原理大概讲述了,在此不再累述。

大家如果想了解或者学习的话,可以直接从官方网站上下载,http://www.ntop.org

最新版本为4.4.0,目录为:
drivers\
drivers\broadcom
drivers\intel
drivers\myricom
kernel/                        Kernel related patches
userland/                        User space code
userland/lib/                User space library used to manpulate PF_RING
userland/libpcap-XXX-ring/        Libpcap enhanced with PF_RING support
userland/examples/                P(acket)count application (use it for your tests)

1.编译安装之前需要卸载网卡驱动,卸载之前可以使用ethtool -i ethx 查看当前网卡类型和驱动版本。
2.cd 到kernel下,make,然后sudo make install
3.cd 到userland/lib/下,make,然后sudo make install
4.如果需要使用libcap抓包做分析,请先卸载之前装的libcap,然后cd 到userland/libpcap-XXX-ring/
./configure ---> make -----> sudo make install
5.cd 到drivers下,根据ethtool -i ethx 命令看到的网卡驱动和类型,进入指定的目录。
假设你看到如下信息:
driver: e1000e
version: 1.0.2-k2
firmware-version: 0.4-3
bus-info: 0000:00:19.0

cd 到drivers\intel\e1000e-1.0.15下,
make ----> sudo make install
6.开始安装驱动,cd 到 lib/modules/xxx/kernel/net,可以看到有个pf_ring的目录,cd 到pf_ring下
使用命令 sudo insmod pf_ring.ko transparent_mode=1
7.安装网卡驱动,cd到目录lib/modules/xxx/kernel/driver/net下,
使用命令 sudo insmod e1000e.ko

安装完毕,现在我们可以使用命令 dmesg 查看驱动是否安装成功,如果成功的话,可以看到
[PF RING]..................
............................... 信息

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

刚接触pf_ring,主要是冲着能提高libcap的抓包效率去的,感兴趣的朋友可以一起讨论...............................

论坛徽章:
0
2 [报告]
发表于 2010-08-09 22:09 |只看该作者
好吧,我支持。

论坛徽章:
0
3 [报告]
发表于 2010-08-09 22:27 |只看该作者
我也支持的说……

论坛徽章:
0
4 [报告]
发表于 2010-08-10 23:55 |只看该作者
最近在使用的时候,发现pf_ring只做了intel e1000e的DNA的实现,局限性太大了。
现在的网卡类型,特别是服务器上的基本上是HP、broadcom等,如果只是使用PF_RING抓包的话,经过简单测试后暂时发现与用libcap没什么区别。

并且pf_ring定制的libpcap没有缓存功能

论坛徽章:
0
5 [报告]
发表于 2010-08-11 09:51 |只看该作者
回复 4# pdsxw123


    pf_ring 可以 zero copy吗?

论坛徽章:
0
6 [报告]
发表于 2010-08-11 10:57 |只看该作者
不是零拷贝

论坛徽章:
0
7 [报告]
发表于 2010-08-11 23:27 |只看该作者
pf_ring有两种工作模式,可以使用transparent_mode设置,0:表示与libpcap什么区别,pf_ring.ko注册个回调函数到网卡驱动,经过此网卡的包会复制一份。
如果设置为1,表示打算使用dna技术,这一般是使用pf_ring的目的,也就是打算使用此特性,使网卡收到的包,不经过kernel的捣腾,由pf_ring直接mmap到用户空间。也就是实现了zero copy。大大的提升了抓包的性能(官网上说的),本人还没有验证。

在pf_ring.ko中只是实现了intel 的独立网卡的dna处理。
在非intel的独立网卡,如果非要使用的话,transparent_mode设置0,在这种情况下,建议直接使用libpcap

论坛徽章:
0
8 [报告]
发表于 2010-08-12 11:48 |只看该作者
关注PFRING,等待新的回复

论坛徽章:
0
9 [报告]
发表于 2010-08-17 15:37 |只看该作者
嘿嘿  最近正在做pf_ring的测试   
完了 我把结果贴一贴

论坛徽章:
0
10 [报告]
发表于 2010-08-17 18:10 |只看该作者
等高人出教程,及性能测试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP