nftables 0.9.4より前に、IPv4およびIPv6ルールを統合するためにセットセットを表現する方法はありましたか?

nftables 0.9.4より前に、IPv4およびIPv6ルールを統合するためにセットセットを表現する方法はありましたか?

文書0.9.4からは、IPv4とIPv6のセットを組み合わせて(同様に)nftables使用できることをお勧めします。typeof ip daddr残念ながら、LTS Ubuntuバージョン20.04はそのバージョン(0.9.3)よりも少ないパッチです。

引用:

0.9.4から利用可能なこのtypeofキーワードを使用すると、高度な式を使用してnftablesに基本型を解析することができます。

以前はipset名前だけ言及したいたびにコレクションを作ってみました。したがって、IPv4専用セット(例blackhole4:)、IPv6専用セット(例blackhole6:)、および両方を含むセット(例blackhole:)があります。パッケージ内のパスとipsetコレクション要素のCLIアップデートは、このコレクションセットに適しています。これらの要素は適切な「サブセット」に挿入/更新されます。

統一は可能ですか?セットnftables 0.9.3でも動作しますか?

注:個別のIPv4およびIPv6関連セットを作成し、いくつかのコンテナを設定することでこの機能を実装できます。ドキュメントだけを見ると、これを実装する方法がわかりません。

PS:見ました。これそしてこれしかし、他のnftablesバージョンで動作します。そして結果は私たちが望むものではありません。

答え1

現在、2021年5月1日現在、カーネルとnftables(0.9.8を含む)のバージョンのいずれもこの操作を実行できません。

チーフ開発者Pablo Neira Ayusoは、2020年9月26日に実装を妨げる主なアーキテクチャの問題はありませんが、まだ完了していないと書いています。

https://www.spinics.net/lists/netfilter/msg59761.html:

したがって、次のものを統合したいと思います。

tcp dport @b_t update @b_sa4 { ip saddr } drop
tcp dport @b_t update @b_sa6 { ip6 saddr } drop

定期的に?

まるで(仮想の文法)

tcp dport @b_t update @b_sa { inet saddr } drop

どこb_sa同様のコレクションですtype inet_addr

https://www.spinics.net/lists/netfilter/msg59761.html:

もちろん、inetを介してIPv4およびIPv6抽象化のための共通集合インフラストラクチャを提供することも可能です。

関連情報