メーターのnftables設定の構文置換は正確にどのように機能しますか?

メーターのnftables設定の構文置換は正確にどのように機能しますか?

今日はnftablesおすすめたとえば、動的IP固有のブラックリストを作成するときは、メーターの代わりにコレクションを使用します。マニュアルページv0.98:

set blackhole {
    type ipv4_addr
    flags dynamic
    timeout 30m
}

set flood {
    type ipv4_addr
    flags dynamic
    timeout 1m
}

ip saddr @blacklist drop

ct state new \
  add @flood { ip saddr limit rate over 10/minute } \
  add @blacklist { ip saddr } \
  drop
  1. ここでステートメントの実行フローは何ですかadd? 2番目は、add最初に指定されたIPごとの制限に達した場合にのみ実行されますが、なぜですか?最初の項目が実際に何をするのか(つまり、まだテーブルに項目がないか)に関連していますかaddaddそれとも、これまでに作成された接続のセットと数を見て、どのような役割を果たしているのでしょうか。

  2. 常に実行されますかdrop?それともadd2番目のものを評価した後?なぜ?

  3. ルックアップテーブルは、制限を追跡するのにどのように役立ちますか?実際のコレクションの内容を見ると、最後の新規接続などの数値はまったく見えません。タイムスタンプを保存し、実際の計算をカーネルに委任しますか?

  4. なぜ洪水制限間隔を2回指定するのですか(settimeoutlimitステートメントのように)? 2つの異なる値を使用するのに適したユースケースはありますか?

  5. これRed Hat 7 ドキュメントIP固有の接続リミッタの例は次のとおりです。 nft add rule ip filter input ip protocol tcp ct state new, untracked limit rate over 10/minute add @denylist { ip saddr }

為替レートがこのため、私の考えには正確ではないようです。今後つまり、add1分あたり10個の新しい接続に到達すると、IPをテーブルに追加することを意味します。どの知的財産権?

言語の実際の意味に関する文書へのポインタを提供していただきありがとうございます。

ベストアンサー1

おすすめ記事