मैंने अपना मूल उत्तर हटा दिया, क्योंकि मुझे पूरा भरोसा नहीं था कि यह सही था। तब से मेरे पास कुछ समय के लिए VMs के एक छोटे से वर्चुअल नेटवर्क को स्थापित करने के लिए है, ताकि नेटवर्क पर सवाल उठाया जा सके। यहाँ फ़ायरवॉल नियमों का एक सेट है जो मेरे लिए काम करता है ( iptables-save
प्रारूप में, nat
केवल तालिका के लिए ):
-A PREROUTING -d 89.179.245.232/32 -p tcp -m multiport --dports 22,25,80,443 -j DNAT --to-destination 192.168.2.10
-A POSTROUTING -s 192.168.2.0/24 -o ppp0 -j MASQUERADE
-A POSTROUTING -s 192.168.2.0/24 -d 192.168.2.10/32 -p tcp -m multiport --dports 22,25,80,443 -j MASQUERADE
पहला POSTROUTING
नियम लैन के साथ इंटरनेट कनेक्शन साझा करने का एक सीधा तरीका है। मैंने इसे पूर्णता के लिए वहीं छोड़ दिया।
PREROUTING
नियम और दूसरा POSTROUTING
एक साथ शासन उचित NATs स्थापित है, तो बाहरी आईपी पते के माध्यम सर्वर से है कि कनेक्शन, हो सकता है की कनेक्शन बाहर से या लैन अंदर से हुई हों परवाह किए बिना। जब LAN पर क्लाइंट बाहरी IP पते के माध्यम से सर्वर से जुड़ते हैं, तो सर्वर राउटर के आंतरिक आईपी पते (192.168.2.1) से आने वाले कनेक्शन को देखता है।
दिलचस्प बात यह है कि यह पता चलता है कि दूसरे POSTROUTING नियम के कुछ रूपांतर भी काम करते हैं। यदि लक्ष्य को बदल दिया जाता है -j SNAT --to-source 192.168.2.1
, तो प्रभाव समान रूप से नहीं होता है MASQUERADE
: सर्वर राउटर के आंतरिक आईपी पते से उत्पन्न होने के रूप में स्थानीय लैन क्लाइंट से कनेक्शन देखता है । दूसरी ओर, यदि लक्ष्य को बदल दिया जाता है -j SNAT --to-source 89.179.245.232
, तो NAT अभी भी काम करता है, लेकिन इस बार सर्वर स्थानीय LAN क्लाइंट से कनेक्शन को राउटर के बाहरी आईपी पते (89.179.245.232) से उत्पन्न होने के रूप में देखता है ।
अंत में, ध्यान दें कि आपके मूल PREROUTING
/ DNAT
नियम के साथ -i ppp0
काम नहीं करता है, क्योंकि नियम कभी भी लैन क्लाइंट से आने वाले पैकेट से मेल नहीं खाता है (क्योंकि वे ppp0
इंटरफ़ेस के माध्यम से राउटर में प्रवेश नहीं करते हैं )। PREROUTING
केवल आंतरिक LAN क्लाइंट के लिए एक दूसरा नियम जोड़कर इसे काम करना संभव होगा , लेकिन यह एक असंगत (IMO) होगा और अभी भी बाहरी आईपी पते को स्पष्ट रूप से संदर्भित करने की आवश्यकता होगी।
अब, "हेयरपिन NAT" (या "NAT लूपबैक", या "NAT परावर्तन", या जो कोई भी इसे कॉल करना पसंद करता है) को पूर्ण विस्तार से हल करने के बाद भी, मुझे अभी भी विश्वास है कि एक विभाजन-क्षितिज DNS समाधान-- -साथ ही बाहरी आईपी और आंतरिक ग्राहकों के आंतरिक आईपी के लिए हल करने वाले बाहरी क्लाइंट --- लेने के लिए अधिक उचित मार्ग होगा। क्यों? क्योंकि अधिक लोग समझते हैं कि DNS कैसे काम करता है, यह समझने के लिए कि NAT कैसे काम करता है, और अच्छे सिस्टम के निर्माण का एक बड़ा हिस्सा उन भागों का उपयोग करना चुन रहा है जो बनाए रखने योग्य हैं। एक DNS सेटअप को समझने की अधिक संभावना है, और इस प्रकार एक आर्क एनएटी सेटअप (आईएमओ, निश्चित रूप से) की तुलना में सही ढंग से बनाए रखा जाता है।