是否有任何 bpfilter 工具允许配置防火墙?

Ste*_*dny 2 bpf

我想了解 bpfilter。我不能使用 netfilter(太慢)、nftables(没有我的功能集)。

内核说:

CONFIG_BPFILTER: ? ? 这构建了旨在实现的实验性 bpfilter 框架?? 通过 BPF 提供与 netfilter 兼容的功能

有没有:

  • 允许使用 BPF 而不是 netfilter 配置防火墙规则的工具?
  • 文档允许轻松跳入主题?
  • 手动的?....

到目前为止,我只追踪了一篇 LWN 帖子,解释了 bpffilter 有多酷,但对于管理目的而言,它毫无用处。

https://lwn.net/Articles/747551/

是不是太新太粗略以至于无法关心?

Qeo*_*ole 6

截至 2019 年初,bpfilter 仍在开发中,尚无法使用。基本骨架就在这里,甚至可以在 4.18+ 内核中激活,但由于不完整,目前不会做太多事情。将 iptables 规则翻译成 BPF 字节码所需的代码,虽然是按照原始 RFC提交的,但目前还没有进入内核。

一旦准备就绪,就不需要任何特定的工具。Bpfilter 可能会使用诸如 之类的东西启用modprobe bpfilter,然后整个想法是透明地替换后端,同时保持前端不变:因此iptables应该是处理规则所需的唯一工具,不需要任何特定选项。此外,该bpftool允许检查内核中加载的 eBPF 程序(包括由 bpfilter 翻译的 iptables 规则)。

如果需要,您可以在以下视频(免责声明:由我公司提供)中检查这一点,该视频展示了我们如何使用 bpfilter 和经典的 iptables 规则(我们已经使用 RFC 中的代码修补了内核;并在最终版本将不需要控制台)。

即使不使用 bpfilter,您仍然可以将 BPF 程序附加到 XDP 挂钩(在驱动程序级别),以获得比 netfilter 提供的性能更好的性能。但是,您必须将规则完全重写为 C 程序,使用 clang 将它们编译成 eBPF,并使用例如ip工具(来自 iproute2)加载它们。我不知道这是否符合您的“功能集”。根据您的需求有多强烈,另一个激烈的选择可能是将您的数据包处理转移到用户空间并使用 DPDK 框架重新实现您的设置。