NTFablesエクスポートフック?

NTFablesエクスポートフック?

DockerコンテナのDHCP出力を制御するために、送信にファイアウォールルールを適用したいと思います。 DHCPコンテナを追加すると、コンテナはネットワークCAP_NET_ADMINスタックを効果的に制御できるため、DHCPコンテナはホスト上のネットワークスタックを共有したくありません。

私は気づいたここカーネル5.7のnetfilterに終了フックが追加されました(uname -r5.10があるとします)。

データによるとこれ送信後、次の表を追加しました。

table netdev filterfinal_lan {
    chain egress {
        type filter hook egress device enp1s0 priority 0; policy accept;
    }
}

ただし、構成を適用しようとすると認識できないというメッセージが表示されます。

/etc/nftables.conf:107:20-25: Error: unknown chain hook
                type filter hook egress device enp1s0 priority 0; policy accept;
                                 ^^^^^^

どのバージョンのnftablesが送信フックをサポートしているのかわかりませんが、私はnft --version送信nftables v0.9.8 (E.D.S.)フックに関する情報を見つけるのが難しいようです。

このフックを使用するには何が必要ですか?

答え1

実際にnftables送信フックはカーネル5.16に追加され、fwd5.17()ではサポートが改善されました。

以前はいくつかの試みがあり、そのうちの1つは元のコミットでNACK処理され、Kernel Newbiesの5.7バージョンに登場しました。nftables'wikiはLinux 5.16の代わりにLinux 5.7用のKernelnewbiesに正しく接続されていません。

以下は、2020年3月(カーネル5.7程度)の関連メーリングリストへのリンクです:

タイトル: Re: [パッチ 00/29] Netfilter アップデート net-next
送信者: David Miller <davem() davemloft!net>

送信者:アレクセイスターロボイトフ<[Eメール保護]>
日時:2020年3月17日火曜日20:55:46 -1000

2020年3月17日火曜日午後2時42分 Pablo Neira Ayuso[Eメール保護]書いた:

  1. Lukas Wunnerの新しい出口リングを追加しました。

NACK 作成者: Alexey Starovoitov[Eメール保護]

申し訳ありません。このプル要求をキャンセルするまで、このコンテンツは表示されませんでした。

誰かが回復などを通じてこの問題を処理してください。

以来、このコミットから復元されました。netfilter:シャットダウンフックの導入を復元。この回答はまだ関連するすべてのメーリングリストに公開されていない可能性があり、それによって混乱が加重されます。


ほぼ2年が経ちました。質問と懸念(tc / qdiscとの相互作用を含む)が解決されました。出口カーネル5.16(2022年1月9日)に再度追加されました。Linux 5.16 カーネルの新機能次の項目があります。

Webフィルタ

Linuxカーネルドライバデータベースから:

CONFIG_NETFILTER_EGRESS: Netfilter エクスポートのサポート

[...]

  • Linux カーネルで発見: 5.16–5.19, 5.19+HEAD

同様に、nftablesユーザーモードのサポート出口nf-nextでカーネルサポートがコミットされた後(5.16がリリースされる前)、正式に追加されました。nftables 1.0.1 リリース:

このリリースには、Linuxカーネル5.16-rc1以前に利用可能な新機能が含まれています。

[...]

  • シャットダウンフックサポート(5.16-rc1から利用可能)

CONFIG_NETFILTER_EGRESSOPのルールセットは、バージョン> = 5.16でなければならない関連カーネルオプションを持つカーネルで許可されています。nftables>= 1.0.1。

関連情報