bpfilter是否有任何工具可以配置防火墙?

时间:2019-01-25 00:15:26

标签: bpf

我想知道bpfilter。我不能使用netfilter(太慢),nftables(没有设置我的功能)。

内核说:

CONFIG_BPFILTER:││建立实验性的bpfilter框架,旨在通过││通过BPF提供与netfilter兼容的功能

有没有

  • 可以使用BPF而非netfilter配置防火墙规则的工具吗?
  • 可以轻松进入主题的文档吗?
  • 手动?....

到目前为止,我只追踪了一篇LWN帖子,解释了bpffilter多么酷,但是出于管理目的,它是无用的。

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

它太新了,太粗略了,根本就不在乎吗?

2 个答案:

答案 0 :(得分:1)

截至2019年初,bpfilter仍在开发中,尚无法使用。基本骨架在此处和may even be activated in 4.18+ kernels,但目前does not do much尚不完整,因此暂时没有。将iptables规则转换为BPF字节码所需的代码虽然已通过the original RFC提交,但目前尚未提交给内核。

一旦准备就绪,就不需要任何特定的工具。可以使用modprobe bpfilter之类的东西启用Bpfilter,然后整个想法是透明地替换后端,同时不影响前端:因此iptables应该是处理规则,无需任何特殊选择。另外,bpftool允许检查内核中加载的eBPF程序(包括bpfilter转换的iptables规则)。

如果需要,可以在下面的video中进行检查(免责声明:由我公司提供),它显示了我们如何将bpfilter与经典的iptables规则结合使用(我们已经使用RFC中的代码对内核进行了修补;最终版本就不需要在控制台中执行bpfilter.ko。

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

答案 1 :(得分:0)

似乎有一个名为bpf-iptables的工具。更好的是,它似乎使用了常规的iptables语法。我还没有亲自使用过它,但是我认为下次我必须设置iptables时会尝试使用它。