मैं iptablesनियमों के विशेषज्ञ होने का दावा नहीं करता, लेकिन पहला कमांड कनेक्शन ट्रैकिंग एक्सटेंशन ( conntrack) का उपयोग कर रहा है जबकि दूसरा stateएक्सटेंशन का उपयोग कर रहा है।
डेटा बिंदु # 1
इस दस्तावेज़ के अनुसार conntrackविस्तार का विस्तार हुआ state।
Obsolete extensions:
• -m state: replaced by -m conntrack
डेटा बिंदु # 2
यहां तक कि मुझे यह एसएफ क्यू एंड ए शीर्षक मिला: फायरवाल राज्य और नीति के बारे में प्रश्न? जहां ओपी ने # iptables @ freenode में IRC पर यह सवाल पूछा है। वहां इस पर चर्चा करने के बाद वह इस निष्कर्ष पर पहुंचे कि:
तकनीकी रूप से कंसट्रैक मैच डूब जाता है - और ऐसा ही है - स्टेट मैच। लेकिन व्यावहारिक रूप से राज्य मैच किसी भी तरह से बाधित नहीं है।
डेटा बिंदु # 3
अंत में मुझे यह SF Q & A शीर्षक मिला: Iptables, क्या अंतर है -m स्थिति और -m संबंध? । इस सवाल से जवाब शायद सबसे अच्छा सबूत और कैसे के उपयोग को देखने के लिए के बारे में सलाह है conntrackऔर state।
अंश
दोनों एक ही कर्नेल इंटर्नल का उपयोग करते हैं (कनेक्शन ट्रैकिंग सबसिस्टम)।
Xt_conntrack.c का शीर्षलेख:
xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)
तो मैं कहूंगा - राज्य मॉड्यूल सरल है (और शायद कम त्रुटि वाला)। यह अब कर्नेल में भी है। दूसरी तरफ Conntrack में अधिक विकल्प और विशेषताएं हैं [1] ।
यदि आपको इसकी विशेषताओं की आवश्यकता है, तो मेरा कॉल कॉनट्रैक का उपयोग करना है, अन्यथा राज्य मॉड्यूल के साथ रहें।
[१]"-m conntrack --ctstate DNAT -j MASQUERADE"
राउटिंग / डीएनएटी फ़िक्सअप; क्विट जैसे उपयोगी
डेटा बिंदु # 4
मुझे यह धागा netfilter@vger.kernel.org netfilte / iptables चर्चा से मिला, जिसका शीर्षक है: राज्य मिलान अप्रचलित है 1.4.17 , जो बहुत कुछ कहता है कि stateयह सिर्फ एक उपनाम है conntrackइसलिए यह वास्तव में कोई फर्क नहीं पड़ता जो आप उपयोग करते हैं, दोनों परिस्थितियों का आप उपयोग कर रहे हैं conntrack।
अंश
दरअसल, मुझे सहमत होना होगा। हम "राज्य" को एक उपनाम के रूप में क्यों नहीं रखते हैं और "वाक्य रचना" में पुराने वाक्यविन्यास को स्वीकार करते हैं?
यदि कर्नेल के पास है तो राज्य को वर्तमान में अलियास किया जाता है और iptables में अनुवाद किया जाता है। कोई स्क्रिप्ट नहीं टूटी।
यदि उपयोक्ता में अलियासिंग की जाती है, तो कर्नेल भाग को हटाया जा सकता है - किसी दिन।
उपयोगकर्ता नाम में aliasing पहले से ही किया गया है। "स्टेट" में एक प्रकार और इसे "कॉनट्रैक" में बदल दिया जाता है और फिर इसे कर्नेल में भेज दिया जाता है। (जहां तक मैं देख रहा हूं कि अगर ipt_state, आदि मॉड्यूल एलियाज़ को कन्वर्टर मॉड्यूल में जोड़ दिया गया, तो भी राज्य कर्नेल मॉड्यूल को हटाया जा सकता है।)
संदर्भ