AWS VPC - इंटरनेट गेटवे बनाम NAT [बंद]


209

इंटरनेट गेटवे क्या है? एक NAT उदाहरण क्या है? वे क्या सेवाएं प्रदान करते हैं?

AWS VPC डॉक्यूमेंटेशन को पढ़ते हुए, मैं निवर्तमान अनुरोधों के लिए इंटरनेट रूट-सक्षम पतों के लिए दोनों निजी आईपी पते एकत्र करता हूं और इंटरनेट से आने वाली प्रतिक्रियाओं को सबनेट पर आवश्यक रूप से भेजता है।

तो उनके बीच क्या अंतर हैं? मैं इंटरनेट गेटवे के बजाय (या इसके अलावा) NAT उदाहरण का उपयोग करने के लिए किन परिदृश्यों का उपयोग करूं? क्या वे अनिवार्य रूप से कुछ नेटवर्क अनुप्रयोगों को चलाने वाले EC2 इंस्टेंसेस हैं या वे राउटर जैसे विशेष हार्डवेयर हैं?

केवल AWS डॉक्यूमेंट लिंक की ओर इशारा करने के बजाय, क्या आप सार्वजनिक और निजी सबनेट पर कुछ पृष्ठभूमि को जोड़ने के साथ उन्हें समझा सकते हैं ताकि नेटवर्किंग के सीमित ज्ञान के साथ कोई भी शुरुआत करने वाला इन्हें आसानी से समझ सके? इसके अलावा, मुझे NAT उदाहरण के बजाय NAT गेटवे का उपयोग कब करना चाहिए?

PS मैं AWS VPC में नया हूं, इसलिए मैं यहां सेब की तुलना संतरे से कर सकता हूं।

जवाबों:


230

इंटरनेट गेटवे

इंटरनेट गेटवे एक अमेज़ॅन VPC और इंटरनेट के बीच एक तार्किक कनेक्शन है । यह एक भौतिक उपकरण नहीं है। प्रत्येक VPC के साथ केवल एक ही संबद्ध हो सकता है। यह इंटरनेट कनेक्टिविटी की बैंडविड्थ को सीमित नहीं करता है । (बैंडविड्थ पर एकमात्र सीमा अमेज़ॅन EC2 उदाहरण का आकार है, और यह सभी ट्रैफ़िक पर लागू होता है - VPC के आंतरिक और इंटरनेट से बाहर।)

यदि किसी VPC में इंटरनेट गेटवे नहीं है, तो VPC में संसाधनों को इंटरनेट से एक्सेस नहीं किया जा सकता है (जब तक कि कॉर्पोरेट नेटवर्क और वीपीएन / डायरेक्ट कनेक्ट के माध्यम से ट्रैफ़िक नहीं बहता है)।

एक सबनेट को सार्वजनिक सबनेट माना जाता है यदि इसके पास एक रूट टेबल है जो इंटरनेट गेटवे के लिए यातायात को निर्देशित करता है।

NAT उदाहरण

एक NAT इंस्टेंस एक अमेज़ॅन EC2 उदाहरण है जो इंटरनेट पर ट्रैफ़िक को अग्रेषित करता है। यह एक मौजूदा एएमआई से लॉन्च किया जा सकता है, या इस तरह से उपयोगकर्ता डेटा के माध्यम से कॉन्फ़िगर किया जा सकता है:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF

एक निजी सबनेट में ऐसे उदाहरण जो इंटरनेट का उपयोग करना चाहते हैं, उनके इंटरनेट-बाउंड ट्रैफिक को रूट टेबल कॉन्फ़िगरेशन के माध्यम से NAT इंस्टेंस पर भेजा जा सकता है। NAT इंस्टेंस तब इंटरनेट से अनुरोध करेगा (क्योंकि यह एक सार्वजनिक सबनेट में है) और प्रतिक्रिया को निजी उदाहरण में वापस भेज दिया जाएगा।

NAT इंस्टेंस को भेजा जाने वाला ट्रैफ़िक आमतौर पर एक ऐसे IP पते पर भेजा जाएगा जो NAT इंस्टेंस से जुड़ा नहीं है (यह इंटरनेट पर सर्वर के लिए किस्मत में होगा)। इसलिए, NAT इंस्टेंस पर स्रोत / गंतव्य जांच विकल्प को बंद करना महत्वपूर्ण है अन्यथा यातायात अवरुद्ध हो जाएगा।

नेट गेटवे

AWS ने एक NAT गेटवे सेवा शुरू की, जो एक NAT इंस्टेंस का स्थान ले सकती है। एक नेट गेटवे सेवा का उपयोग करने के लाभ हैं:

  • यह पूरी तरह से प्रबंधित सेवा है - बस इसे बनाएं और यह स्वचालित रूप से काम करता है, जिसमें असफलता भी शामिल है
  • यह 10 Gbps तक फट सकता है (एक NAT इंस्टेंस EC2 उदाहरण प्रकार से जुड़े बैंडविड्थ तक सीमित है)

तथापि:

  • सुरक्षा समूह NAT गेटवे से संबद्ध नहीं हो सकते
  • आपको प्रत्येक AZ में एक की आवश्यकता होगी क्योंकि वे केवल एक ही AZ में काम करते हैं

4
क्या आप अपने नोट में एक और बिंदु जोड़ सकते हैं? यदि आप सार्वजनिक सबनेट पर IGW है तो NAT उदाहरण कार्य करेंगे। वे सबनेट में आपके उदाहरण के लिए इंटरनेट से रिवर्स लुकअप को भी प्रतिबंधित करते हैं।
अमेय

1
अब 2019 में, NAT gw का उपयोग केवल VPC में किया जा सकता है, "इंटरनेट गेटवे" के साथ "public" सबनेट या सबनेट में EIP आवंटित करके और आंतरिक सबनेट में, NAT gw के लिए सिर्फ रूट।
फेलिप बुकेओनी

क्या यह जवाब अभी भी सटीक है? से एडब्ल्यूएस डॉक्स , मैं देख रहा हूँ: An internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows communication between instances in your VPC and the internet. It therefore imposes no availability risks or bandwidth constraints on your network traffic.। विवरण से मुझे आभास होता है कि यह एक वास्तविक हार्डवेयर उपकरण है, लेकिन AWS द्वारा प्रबंधित है। अगर मेरी समझ बंद है तो कृपया मुझे सुधारें
अभिषेक दिवेकर

@AbhishekDivekar कुछ नहीं बदला है। AWS के साथ काम करते समय, अंतर्निहित हार्डवेयर के बारे में सोचने के बजाय आप क्या हासिल करना चाहते हैं, उस पर ध्यान केंद्रित करें।
जॉन रोटेनस्टीन

1
@ संदीप NAT इंस्टेंसेस और NAT गेटवे एक VPC के भीतर मौजूद हैं। इसलिए किसी भी ट्रैफ़िक को इससे बाहर निकलने और इंटरनेट की यात्रा करने के लिए अभी भी इंटरनेट गेटवे से गुजरना होगा। यदि इंटरनेट गेटवे नहीं है, तो इंटरनेट तक पहुंच नहीं होगी।
जॉन रोटेनस्टीन

127

जहाँ तक NAT गेटवे बनाम NAT उदाहरण है, या तो काम करेगा। एक NAT उदाहरण थोड़ा सस्ता हो सकता है, लेकिन NAT गेटवे पूरी तरह से AWS द्वारा प्रबंधित किया जाता है, इसलिए इसका लाभ केवल NATing के लिए EC2 उदाहरण को बनाए रखने की आवश्यकता नहीं है।

हालाँकि, ऐसे उदाहरणों के लिए जिन्हें इंटरनेट उपलब्ध होना आवश्यक है, NAT गेटवे / इंस्टेंसेस वे नहीं हैं जिनकी आपको तलाश है। एक NAT इंटरनेट का उपयोग करने के लिए निजी उदाहरणों (एक सार्वजनिक आईपी के बिना) की अनुमति देगा, लेकिन दूसरे तरीके से नहीं। तो, EC2 उदाहरणों के लिए जो इंटरनेट पर उपलब्ध होना चाहिए, आपको एक सार्वजनिक आईपी आवंटित करने की आवश्यकता है। यदि आपको वास्तव में EC2 इंस्टेंसेस को निजी रखने की आवश्यकता है तो एक वर्कअराउंड है - आप अनुरोधों को प्रॉक्सी करने के लिए एक इलास्टिक लोड बैलेंसर का उपयोग कर सकते हैं।

इंटरनेट गेटवे

इंटरनेट गेटवे आपके VPC को इंटरनेट से कैसे जोड़ता है। आप VPC को बताने के लिए रूट टेबल के साथ एक इंटरनेट गेटवे का उपयोग करते हैं, जिससे इंटरनेट को इंटरनेट ट्रैफ़िक मिलता है।

VPC में सिर्फ एक नाम के रूप में एक इंटरनेट गेटवे दिखाई देता है। अमेज़ॅन गेटवे का प्रबंधन करता है और आपके पास वास्तव में ऐसा कुछ नहीं है (इसके अलावा या नहीं इसका उपयोग करने के लिए याद रखें; याद रखें कि आप पूरी तरह से खंडित सबनेट चाहते हैं जो इंटरनेट का उपयोग नहीं कर सकते हैं)।

एक सार्वजनिक सबनेट का अर्थ है एक सबनेट जो AWS के इंटरनेट गेटवे के माध्यम से इंटरनेट ट्रैफ़िक को रूट करता है। एक सार्वजनिक सबनेट के भीतर किसी भी उदाहरण के पास एक सार्वजनिक आईपी हो सकता है (जैसे एक EC2 उदाहरण "सहयोगी सार्वजनिक आईपी पते" सक्षम)।

एक निजी सबनेट का अर्थ है कि इंस्टेंस सार्वजनिक रूप से इंटरनेट से सुलभ नहीं हैं। उनके पास सार्वजनिक आईपी पता नहीं है। उदाहरण के लिए, आप उन्हें सीधे SSH के माध्यम से एक्सेस नहीं कर सकते। निजी सबनेट पर उदाहरण अभी भी स्वयं इंटरनेट का उपयोग कर सकते हैं (हालांकि एक नैट गेटवे का उपयोग करके)।


23
NAT बनाम इंटरनेट गेटवे के संदर्भ में सर्वश्रेष्ठ उत्तर।
तगर

बहुत बढ़िया जवाब। बस एक अनुवर्ती प्रश्न: जब एक सार्वजनिक सबनेट पर EC2 के उदाहरण में एक सार्वजनिक आईपी होता है, तो तार्किक रूप से यह इंटरनेट से इनबाउंड अनुरोध प्राप्त करने के लिए पर्याप्त है या इंटरनेट के लिए इनबाउंड अनुरोध करता है क्योंकि इसका आईपी निष्क्रिय और पहुंच योग्य है। तो इंटरनेट गेटवे यहां क्या अतिरिक्त काम करता है?
संदीप

@ संदीप EC2 उदाहरण के पास कोई वास्तविक सार्वजनिक आईपी नहीं है, लेकिन दृश्य के पीछे, इसे निजी आईपी पते पर मैप किया गया है। एक इंटरनेट गेटवे दो उद्देश्यों को पूरा करता है: इंटरनेट-रूट करने योग्य ट्रैफ़िक के लिए अपने VPC रूट तालिकाओं में एक लक्ष्य प्रदान करने के लिए, और सार्वजनिक IPv4 एड्रेसिस के लिए दिए गए इंस्टेंस के लिए नेटवर्क एड्रेस ट्रांसलेशन (NAT) करने के लिए
Omar Farque Anik

11

इंटरनेट गेटवे का उपयोग इंटरनेट से vpc कनेक्ट करने के लिए किया जाता है और NAT गेटवे का उपयोग निजी सबनेट को इंटरनेट से जोड़ने के लिए किया जाता है (जिसका अर्थ है कि निजी सबनेट उदाहरण के लिए ट्रैफ़िक आ रहा है जो NAT गेटवे के लिए आगे होगा)। आप NAT के लिए मार्ग तालिका में यातायात को आगे बढ़ाने की जरूरत है

रूट तालिका 0.0.0.0/0


उदाहरण के लिए धन्यवाद - मुझे एक बाँध से बाहर निकालने में मदद की!
क्रिस

इस पृष्ठ पर एक आरेख है: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html जो NAT गेटवे और IGW के उद्देश्य को स्पष्ट करता है। इंटरनेट एक्सेस प्राप्त करने में सक्षम होने के लिए दोनों को निजी सबनेट की आवश्यकता होती है
मारुथि
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.