nftablesはハンドルを渡さずにルールを削除します(iptables deleteに似ています)。

nftablesはハンドルを渡さずにルールを削除します(iptables deleteに似ています)。

iptablesの削除構文ははるかに簡単です。 「追加」を削除に置き換えると、ルールを削除するコマンドが得られます。

nftable は、いくつかのルール管理の側面に対して同様の構成を提供します。

  1. テーブルの追加とテーブルの削除(対称の追加と削除)
  2. チェーンの追加と削除(対称の追加と削除)

私のクエリは

  1. 追加と削除に同じ規則を提供しない理由/理由はありますか?
  2. ルールを削除するより便利な方法があります(ハンドルをつかみ、ハンドルを使用してルールを削除することに加えて)

非常にありがとう

ベストアンサー1

私が考えることができる理由の1つは、ルールを削除するときのコストと追加するときのコストが同じであることです。

そしてiptables(レガシー)誤った理由:追加または削除にも同じコストが発生します。一つルール強制配信みんなカーネルのルールセットはユーザーモード(iptablesコマンド)ルールセット全体をカーネルに戻します。したがって、1,000,000のルールを含むルールセットにルールを追加するには、とにかく1,000,000 + 1のルールを処理する必要があります。iptables-nft、同時に使用nftablesバックエンドとしてのカーネルAPIは互換性があるため、ルールを削除してユーザー領域操作を実行するように求められたら、必要以上のものを検索する必要があります。

そしてnftables、ルールが追加されると、このルールだけがカーネルに送信され、カーネルはハンドルを再送信します(ただし、インデックスを使用するには追加の作業が必要になる場合があります)。 1,000,000のルールチェーンに1つのルールを追加しても、すでに存在する1,000,000のルールに関連する追加費用は発生しません。コンテンツごとにルールを削除するには、少なくともチェーン全体を検索して検索するまで解析する必要があり、そのためには1,000,000のルールを解析する必要があります。解析はマーキングには適していますが、迅速な操作を実行するときは可能であれば避けるべきです。独自のハンドルを使用する方が高速です。管理アプローチを犠牲にして、これらのランタイムコストを回避するための決定が下されたようです。

これで、問題に応じて削除に依存しない方法がいくつかあります。内容別

  • コードからデータを分離する(優先)

    名前の使用セット地図そして仮想地図動的データを使用する静的ルールを維持できます。これにより、通常のランタイムを使用するときにルールを追加または削除する必要がなくなります。要素要素ルックアップ(パケットパスのナビゲーション中)およびアクション(設定または動的使用中)(たとえば、リアルタイムでアドレスをブラックリストに追加するツール、例:失敗2禁止))はこれらの用途(フードの下の適切なハッシュなど)に最適化されており、操作はハンドルではなくコンテンツを介して行われます。

    同様に、iptables書くことができるIPセット同じ目的ですが、nftables一般に、より一般的には、これらのデータ構造とより多くの相互作用を可能にする。iptablesそしてIPセット

  • ハンドルが作成されたらすぐにハンドルを保存します(プログラムまたはスクリプトの実行中)。

    nft --echo --handle ...追加されるたびに、ルールとそのハンドルがエコーされます。 JSON出力の場合、--json自動化のために簡単に使用できます。このツールでできることiptablesまた、ユーザースペースでもこれを行います。ハンドルを見つけるために一致するルールを見つけます。しかし、これはカスタム用途なので、おそらくより簡単な方法です。

  • ルールを特定の一般(ユーザー)チェーンに分割

    できるだけiptables、コードではなくデータを所有する役割を果たすプライベートチェーンを使用します。その後、再構築するには、まず更新し、外部データソースから再入力します。 〜のようにnftablesジョブはアトミックである可能性があり(使用時nft -f ...)、一時的に誤動作するルールセットはありません。

    それでも使用する方が良いと思います。置く/地図/仮想マッピング逆に、パケットはすべてのルールを持つチェーンを直線的に通過するため、このパケットを一致させようとするnルールのあるチェーンを通過する平均ルックアップ時間はO(n)です。置く/地図/仮想マッピング(単一のルールで呼び出されます)はハッシュされ、より速い巡回を取得します。平均照会時間はO(1)です。

おすすめ記事