「テーブル」に関するOpenBSD FAQによると(http://www.openbsd.org/faq/pf/tables.html)、persist
属性なし、
テーブルを参照する最後のルールがフラッシュされると、カーネルは自動的にテーブルを削除します。
私はこれが何を意味するのか理解できず、それを説明するためにいくつかの例が欲しかった。
ベストアンサー1
私は専門家ではありませんが、次のように進行すると思います。
pfルールが静的である場合、永続性を使用する良い方法は見えませんが、動的である場合(ルールにアンカーを使用するという意味)、ルールが表示されなくなります。永続性は、ルールセットが変更され、テーブルを参照するルールがなくなったときにテーブルをアクティブに保つことです。
アンカーはpfルールセットの一種の「インポート」ステートメントであると考えるため、そのアンカーにインポートされた内容によっては、定義したテーブルが参照される場合もあり、参照されない場合もあります。
アンカーを動的に使用する方法の例として、次の点を考慮してください。
$ echo "my super cool pf rule that uses table 'foo' that I want inserted" | pfctl -a nameOfAnchor -f -
その後、標準入力から直接新しいルールを読み、アンカー「nameOfAnchor」を置き換えて、「挿入したい非常にクールなpfルール」をルールセットに入れます。ルールセットに以前に定義された「foo」テーブルは、pfctlを使用してこのルールを動的に追加するまで、どのようなものでも参照できなくなります。 "foo"がpersistキーワードを使用している場合は問題ありません。それ以外の場合、この新しいルールをすぐに挿入すると、「foo」が存在せず、すべてが崩壊します。 :)
ところで、第2版。 Michael LucasのAbsolute OpenBSDは最後の部分に素晴らしい章を持っています。ここでは、アンカーポイントの使用方法の詳細を入手できます。
また、OpenBSDのPFファイアウォールとその機能に関するより集中的な参考資料については、Peter M. Hansteenが書いた「The PF Book」の第3版を参照してください。 彼はまた、PFに関するオンライン資料を持っています。