问题标签 [xdp-ebpf]

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 投票
0 回答
33 浏览

c - xdp_md->egress_ifindex 未找到 | XDP Ebpf

所以我在我的 ebpf 程序中有这个代码,所以我的系统struct xdp_md确实存在。

上面的结构在 /usr/include/linux/bpf.h 文件中

所以你可以看到 egree_ifindex 确实存在。但是当我编译时它说

以下是我在 ebpf 程序中的代码

谁能指导我获取 iphdr(用于出口数据包)究竟需要什么。这可能吗?

0 投票
0 回答
29 浏览

c - 使用 bcc 和 xdp 更新目标端口

我正在容器中的端口 80 中运行应用程序。现在我想通过使用端口 90 来调用它,xdp 会将端口从 90 更改为 80。但是由于某种原因,我得到了任何响应,或者服务器也没有得到任何调用。这是我的 ebf 代码:

仅供参考,我正在使用 bcc 库并在那里创建了一个问题。任何建议将不胜感激。 https://github.com/iovisor/bcc/issues/3829

注意:我使用的是环回lo接口。

0 投票
0 回答
19 浏览

c - 如何在 C 中不使用带有 XDP 的帮助头来解析数据包中的字节?

我是使用 XDP 的新手,并试图自学如何创建 ELF 程序来执行各种 XDP 操作。我也是使用 C 的初学者。

如何在不使用帮助标头(ip.h、tcp.h、udp.h 等)的情况下解析数据包以显示数据中特定字节的数据?

我尝试按照此处找到的解析数据包的 xdp_tutorial 部分进行操作 我还尝试阅读如何使用 bpf 解析来自 skbuff 的数据包。在这里找到的这个 git repo 中有一个示例。Tbh,尝试遵循 xdp_tutorial 示例对我来说相当困难,因为我对 C 很陌生。我确实在这里找到了一些 XDP 示例,这些示例对我来说更直接。

所有这些示例都存在相同的问题,即没有详细说明如何在数据包中使用更高级别的标头(DNS、HTTP 等)。

我了解设置 xdp 程序的基础知识。清除缓冲区*data*data_end然后找到以太网标头、ip 标头和 L4 标头的长度。问题是我遵循的大多数示例和指南都要求我使用头文件中的结构来解析数据包的结构。这一切都很好,但是我将如何解析 DNS 或 HTTP 标头?如果我想查看 FTP 标头的第 11 个字节是什么?如何检查 HTTP 标头是否包含 GET 或 PUT 请求?

只是寻找一个通过 HTTP 等更高级别数据包工作的示例。