问题标签 [pf-ring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5440 浏览

c++ - TCP 和 PF_RING

我正在研究PF_RING在我的应用程序中使用用于发送和接收。

如果我打算PF_RING用于维护 TCP 连接,看起来我需要自己手动“伪造”IP 和 TCP 消息,因为pfring_send发送原始数据包。这是否意味着我必须在上面手动重新实现 TCP PF_RING

我知道使用 接收有明显的优势PF_RING,有没有人尝试使用 发送数据PF_RING?与普通发送呼叫相比有明显优势吗?

注意:我没有使用 DNA(直接 NIC 访问),我只是使用带有 NIC 感知驱动程序的内核部分绕过。

0 投票
2 回答
456 浏览

c - pf_ring 和 libpcap if_index 没有返回

我最近一直在使用 pf_ring / libpcap。我从来没有使用 libpcap 或 pf_ring 开发过,所以请原谅这似乎是一个愚蠢的问题,因为网络编程对我来说是半新的......从广义上讲,我想要做的是访问 if_index 接收的数据包。我目前使用 pf_ring 使用“C”创建了一个简单的原始数据包嗅探器,如下所示:

查看 pf_ring API 中的 pfring_pkthdr 结构,我应该能够执行以下操作:

但是,当我尝试打印索引时,它只打印 0。我猜 if_index 实际上并没有被设置,因为当我实际调用 pf_ring 函数来获取设备 if 索引时,我实际上收到了指定设备的值:

问题是我正在尝试查看每个数据包的 if_index,因此在回调函数“processRingPacket”中无法通用指定设备。我在这里笼统地说是因为会有两个接口捕获数据包。关于我的菜鸟错误可能是什么的任何想法?

0 投票
2 回答
550 浏览

xcode - 在 Mac OS X 上安装 pf-ring

我正在尝试在 mac os x yosemite 10.10.4 上安装 pf-ring。做这里写的:http: //www.ntop.org/get-started/download/ 所以:

到目前为止一切都很好,但是在做“make”时得到这个:

有什么问题以及如何解决?请帮忙!谢谢!

0 投票
1 回答
177 浏览

security - 重放 pcap 文件时 pfsend 得到的奇怪结果

我正在使用工具重播从瑞典国防研究机构借来pfsend的巨大 pcap ,以评估和强调 Bro 集群。file

我无法得到我期望的关于 pcap 文件中的数据包发送速率的结果,即当我要求pfsend在接口上发送 pcap 文件时,假设eth2速率为 1.0 Gbps 我随机每组数据包的速率。这里是输出的快照pfsend

正如您所看到的,每一步的 TX 速率都不相同,并且pfsend不会以所需的速度发送数据包。我试图阅读源代码pfsend并理解其行为,pfsend但我没有得到它。

我可以理解数据包的大小不一样,可能是原因,但我不确定这是唯一的原因。任何人都可以指导我并给我见解?我会感激的。谢谢。

0 投票
1 回答
426 浏览

linux - 使用 pfsend 丢包的原因是什么

我正在使用 pfsend 以非常高的速度将流量从主机 1 发送到主机 2。

在 host2 端,我使用 pfcount 来获取有关丢弃数据包和接收数据包数量的一些统计信息。

我正在从 host1 运行 pfsend,如下所示:pfsend -z -n 0 -i eth2 -m MAC@

的输出结果pfsend如下:

在host2端,pfcount的输出如下:

任何人都可以为我提供一些见解?是否与连接两台主机的交换机有关?或与 Linux 网络内核相关的东西?问候。

0 投票
2 回答
5091 浏览

ubuntu - PF_RING ubuntu 安装

我正在尝试在 ubuntu 虚拟机上安装 pf_ring,我尝试了很多次,但每次都失败:(。所以,我正在使用教程: http://www.ntop.org/pf_ring/installation-guide-for -pf_ring/

在本教程中,驱动程序eth0e1000e,在我的计算机上是e1000. 第一个错误在 libpcap 文件夹中。当我试图在该文件夹上运行“make”时,它正在写入no targets specified and no makefile found. Stop.。我试图跑./configure,但它没有帮助。我跳过了这部分安装。

第二个错误是当我尝试安装 pf_ring 驱动程序时。我要去~/PF_RING/drivers/DNA/e1000-8.0.35-DNA/src文件夹并运行make并接收这个:this driver is not supported on kernel versions older than 2.4.0. Stop.

也许有人知道问题出在哪里以及如何安装 PF_RING ?或者也许有人已经拥有一个包含该模块的虚拟机并且他/她可以与我共享它?或者也许有人知道更好和更新的教程(链接中的教程来自 2010 年)?

谢谢你 !

0 投票
1 回答
793 浏览

packet-capture - 两个或多个应用程序如何使用 PF_RING ZC 集群?

下图表明许多应用程序可以使用 PF_RING 集群。 ref:UserGuid.pdf 由 ntop.org 提供

我已经通过以下命令对此进行了测试。

./zount -i eth0 -c 55 ---- 好的

./zcount1 -i eth0 -c 99 ----- 好的

假设我想使用 pf_ring zc。据我所知,如果您在零拷贝中使用 PF_RING 感知驱动程序(例如 pfcount -i zc:eth1)打开设备,则该设备将无法用于标准网络,因为它是通过内核绕过以零拷贝方式访问的,就像发生在前身DNA。一旦访问设备的应用程序关闭,标准的网络活动就可以再次发生。

我有两个问题:

问题1-只要应用程序通过ZC(例如pfcount -i zc:eth1)连接到网卡,其他应用程序就无法访问该网卡。在这种情况下,没有人可以使用零拷贝。

$pfcount2 -i zc:eth1 -------- 错误。

如果我错了,是否可以像 PF_RING 一样使用 PF_RING ZC?下面的图片显示了我想说的。

在此处输入图像描述

问题2:是否可以按如下方式使用PFRing_zc?如果答案是肯定的,怎么办?有API吗?

在此处输入图像描述

提前致谢

0 投票
1 回答
646 浏览

linux - 用户空间桥接 - Linux vs. FreeBSD

背景:

我正在将一个数据包解析/操作程序从 FreeBSD 移植到 Linux(特别是 Debian - jessie)。该程序在两个物理接口之间实现双向桥接,同时在 TX 操作之前执行解析/操作。

在 FreeBSD 中,此应用程序使用 Pcap 进行 RX/TX。在 Linux 中,到目前为止,我已经使用 Pcap、PACKET_MMAP(使用 TPACKET_V2)和 Vanilla PF_RING 进行了测试。

测试结果:

使用相同的硬件和实验室环境,我从使用 iperf 执行的几个测试中观察到以下(近似)吞吐量结果:

  • FreeBSD 内核桥接:880Mb/s
  • FreeBSD Pcap(用户空间)网桥:700Mb/s
  • Debian 内核桥:880Mb/s
  • Debian Pcap(用户空间)网桥:120Kb/s
  • Debian Vanilla PF_RING(用户空间)网桥:980Kb/s
  • Debian PACKET_MMAP(用户空间)网桥:480Kb/s

想法和问题:

Debian 用户空间的速度对我来说似乎很荒谬。它们无法使用——我怀疑我遗漏了一些东西。是否有我需要启用的系统选项(“快点”,大声笑)?

或者这就是 Linux 用户空间桥接的方式?

编辑/更新

我一直怀疑存在影响 Debian 测试的管理限制。我正在搜索(某物/任何东西)的系统文档,但无济于事。关于什么可能限制这一点的任何想法?

0 投票
1 回答
238 浏览

linux - pfring 无法在 Raspberry Pi 3 B 的以太网上捕获入站数据包

我在运行 Ubuntu 14.04 的 x86_64 机器上安装了 PFRING-6.6.0(加载了“pf_ring.ko”),以捕获源或目标端口为“2404”的“eth0”上的所有传入数据包(参见下面的代码)。并且代码工作正常。以下代码使用给定的 BPF 过滤器创建一个 pfring 套接字,该套接字应该只捕获传入的“2404”数据包
但我的问题是虽然我在运行 Ubuntu-mate 16.04 的 Raspberry Pi 3 B 机器上安装了相同的 PFRING,但相同的代码是无法捕获传入的数据包。(我已将设备名称更改为“eth0”)。这是与架构相关的问题吗?...如何解决这个问题?

0 投票
0 回答
236 浏览

c - PF_RING 用户态编译问题

我正在尝试使用 PF_RING 读取传入的以太网数据包。这是我的示例代码。即使我成功安装了 pf_ring,编译器也会给出如下错误。

/home/entc24/workspace/PFRing/Debug/../main.c:32:未定义对pfring_open' /home/entc24/workspace/PFRing/Debug/../main.c:36: undefined reference topfring_recv 的引用

我在这里做错了什么?