Iptables、-m stateと-m conntrackの違いは何ですか?


48

実際の違いは何ですか:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

そして

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

どちらを使用するのが最適ですか?

ありがとうございました。


9
Linux Kernel 3.7以降では、状態が削除されていることに注意してください。conntrackのみが利用可能です。
Mr. X

3.10.0を実行していますが、状態は引き続きサポートされています

1
状態はconntrackを支持して廃止され、カーネルのビルド方法に応じてコンパイルされる場合とされない場合があります。
マイケルハンプトン

回答:


26

両方とも、同じカーネル内部を使用します(接続追跡サブシステム)。

xt_conntrack.cのヘッダー:

xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)

だから私は言うだろう-状態モジュールはよりシンプルです(そして多分エラーが少ない傾向があります)また、カーネルでは長くなります。反対側のConntrackには、より多くのオプションと機能があります[1]。

私の呼び出しは、機能が必要な場合はconntrackを使用することです。それ以外の場合は状態モジュールに固執します。

netfilterメールリストに関する同様の質問。

[1]「-m conntrack --ctstate DNAT -j MASQUERADE」ルーティング/ DNATフィックスアップのように非常に便利です;-)


8

これらの2つのルールの結果に違いはありません。両方の一致拡張機能は、同じデータを使用して接続追跡状態を一致させます。stateは「古い」一致拡張であり、conntrackはより新しく、接続追跡状態を単に一致させるよりも多くのオプションがあります。


1

Iptables Doc

ドキュメントが言うように:

conntrackの一致は状態一致の拡張バージョンであり、これによりパケットをより詳細に一致させることができます。状態一致など、「フロントエンド」システムを使用せずに、接続追跡システムで直接利用可能な情報を確認できます。接続追跡システムの詳細については、「ステートマシン」の章をご覧ください。


参照が機能しなくなった
-prosti

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.