私はiptables
ルールの専門家であると主張していませんが、最初のコマンドは接続追跡拡張機能(conntrack
)を使用し、2番目のコマンドは拡張機能を使用していstate
ます。
データポイント#1
この文書によると、conntrack
拡張は取って代わりましたstate
。
Obsolete extensions:
• -m state: replaced by -m conntrack
データポイント#2
それでも、「SFの状態とポリシーに関する質問」というタイトルのSF Q&Aを見つけました。OPは、#iptables @ freenodeのIRCでこの質問をしたと主張しました。そこで議論した後、彼は次のような結論に達しました。
技術的には、conntrackのマッチは状態のマッチに取って代わります。しかし、実際には、州の一致は決して時代遅れではありません。
データポイント#3
最後に、このSF Q&Aタイトル:Iptables、-m stateと-m conntrackの違いは何ですか?。この質問の答えは、おそらくの使用状況を表示する方法についての最良の証拠とアドバイスですconntrack
とstate
。
抜粋
両方とも、同じカーネル内部を使用します(接続追跡サブシステム)。
xt_conntrack.cのヘッダー:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
だから私は言うだろう-状態モジュールはシンプルです(そして多分エラーが少ない傾向があります)。また、カーネルでは長くなります。反対側のConntrackには、より多くのオプションと機能があります[1]。
私の呼び出しは、機能が必要な場合はconntrackを使用することです。それ以外の場合は状態モジュールに固執します。
[1]"-m conntrack --ctstate DNAT -j MASQUERADE"
ルーティング/ DNATフィックスアップのような非常に便利な;-)
データポイント#4
私はnetfilter@vger.kernel.org netfilteからこのスレッドを見つけた/ iptablesの議論は、題し:状態の試合は廃止1.4.17でかなりのことが言い、state
するだけの別名であるconntrack
ので、それは本当に問題であなたが、使用しません。あなたが使用している両方の状況conntrack
。
抜粋
実際、私は同意しなければなりません。「状態」をエイリアスとして保持し、「conntrack」の古い構文を受け入れないのはなぜですか。
カーネルが持っている場合、状態は現在エイリアス化され、iptablesのconntrackに変換されます。スクリプトが壊れていません。
エイリアシングがユーザー空間で行われた場合、カーネル部分は削除される可能性があります-いつかは。
エイリアシングはすでにユーザースペースで行われています。「状態」と入力すると、「conntrack」に変換され、カーネルに送信されます。(したがって、ipt_stateなどのモジュールエイリアスがconntrackモジュールに追加されたかどうかを確認する限り、状態カーネルモジュールも削除できます。)
参照資料