3

bpfilter について知りたいです。netfilter (遅すぎる)、nftables (機能セットがない) を使用できません。

カーネルは次のように述べています。

CONFIG_BPFILTER: │ │ これは、BPF を介して netfilter と互換性のある機能を │ │ 提供することを目的とした実験的な bpfilter フレームワークを構築します

ありますか:

  • netfilter の代わりに BPF を使用してファイアウォール ルールを構成できるツールはありますか?
  • 主題に簡単にジャンプできるドキュメント?
  • マニュアル?....

これまでのところ、bpffilter がいかに優れているかを説明する LWN の投稿を 1 つだけ追跡しましたが、管理目的では役に立ちません。

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

新しすぎて大ざっぱすぎて気にすることさえできませんか?

4

2 に答える 2

7

2019 年初頭の時点では、bpfilter はまだ開発中であり、まだ使用できません。基本的なスケルトンはここにあり、4.18 以降のカーネルでも有効化される可能性がありますが、まだ完成していないため、現時点ではあまり機能しません。iptables ルールを BPF バイトコードに変換するために必要なコードは、元の RFCに沿って提出されましたが、現時点ではカーネルに組み込まれていません。

準備が整ったら、特定のツールは必要ありません。Bpfilter は などで有効になる可能性が高くmodprobe bpfilter、バックエンドを透過的に置き換え、フロントエンドはそのままにしておきiptablesます。特定のオプションを必要とせずに、ルールを処理するために必要な唯一のツールにする必要があります。さらに、bpftoolカーネルにロードされた eBPF プログラム (bpfilter によって変換された iptables ルールを含む) を検査できます。

必要に応じて、次のビデオ(免責事項: 私の会社によるもの) でこれを確認できます。これは、従来の iptables ルールで bpfilter を使用した方法を示しています (RFC のコードでカーネルにパッチを適用し、bpfilter.ko を実行しています)。コンソールは最終バージョンでは必要ありません)。

bpfilter を使用しなくても、BPF プログラムを (ドライバーレベルで) XDP フックにアタッチして、netfilter が提供するものよりもはるかに優れたパフォーマンスを得ることができます。ただし、ルールを C プログラムとして完全に書き直し、clang を使用してそれらを eBPF にコンパイルし、ipツール (iproute2 から) などでロードする必要があります。これがあなたの「機能セット」と一致するかどうかはわかりません。必要性に応じて、別の抜本的なオプションとして、パケット処理をユーザー空間に移動し、DPDK フレームワークを使用してセットアップを再実装することができます。

于 2019-01-25T10:56:55.923 に答える
0

bpf-iptablesという名前のこれを行うツールがあるようです。さらに良いことに、通常のiptables構文を使用しているように見えます。私自身はまだ使っていませんが、次回セットアップするときに試してみようと思いますiptables

于 2019-12-11T03:32:42.210 に答える