nftablesにはどのようなワイルドカードがありますか?

nftablesにはどのようなワイルドカードがありますか?

eth+iptablesでは、これで始まるすべてのインタフェースと一致するインタフェース名として使用できますeth(またはより実用的な例として、これはシェルでglobの効果があるように見えるvirbr+andと一致するかもしれません)。veth++*

nftablesはインターフェース名を一致させるための同様のツールを提供しますか?どうやって使うの?

ベストアンサー1

はい、一般的なワイルドカードは次*のとおりです。NFFT等しいiptables' +。最近まで、マニュアルページにはこの(比較的古い)機能が文書化されていました。

最近からnftマニュアルページ:

iptablesと同様に、インターフェース名のプレフィックスのワイルドカード一致は、アスタリスク(*)文字を追加することでiifname一致させることができます。oifnameただし、iptablesとは異なり、nftablesはワイルドカードのみを含むインターフェイス名を許可しません。ユーザーは常に一致する式をスキップする必要があります。リテラルアスタリスク文字を一致させるには、バックスラッシュ(\)を使用してエスケープします。

たとえば、

iifname "veth*" accept

また、今日では、要素でワイルドカード(または)を含む一連のインタフェースを使用することは不可能ですtype ifnametypeof iifname

アップデート:これ2022年4月gitコミットnftables他の関連コミットと一緒に間隔をメソッドとして使用して、コレクションにインターフェイスワイルドカードを最終的に許可するのに十分なカーネルサポートが可能です。

間隔セットで名前の関連付けを許可します。

table inet filter {
        set s {
                type ifname
                flags interval
                elements = { eth*, foo }
        }

これは1.0.2以降の現在のバージョンで利用可能です。


動的に表示され、消えるインターフェイスを管理するまったく異なる方法は、次の方法を使用することです。グループ生成された直後(そしておそらく生成される前)nftablesインターフェイスグループに一致するルールです。たとえば、

ip link set ppp7 group 42

どちらも持っているnftablesルールはこのメタ情報を再利用します。

iifgroup 42 jump from-ppp

おすすめ記事