EC2 का Elastic IP इंस्टेंस का निजी VPN पता नहीं है
गेस्ट कभी Elastic IP नहीं देखता। अनुवाद कहाँ होता है, यह ट्रैक करें, फिर वह पता चुनें जो उस मार्ग का है जिसकी आपको वास्तव में आवश्यकता है।
इंस्टेंस का एक निजी पता है, Elastic IP उससे जुड़ा है, और उस सार्वजनिक /32 के लिए एक रूट VPN में जोड़ा जाता है इस आशा में कि दोनों एक ही चीज़ बन जाएँगे। वे नहीं बनते। Elastic IP एक अनुवाद है जो गेस्ट के बाहर, इंटरनेट गेटवे द्वारा, उस ट्रैफ़िक पर किया जाता है जो इंटरनेट मार्ग लेता है। गेस्ट का ऑपरेटिंग सिस्टम उस पते को कभी किसी इंटरफ़ेस पर कॉन्फ़िगर नहीं देखता। इसे टनल इंटरफ़ेस में जोड़ने से अपस्ट्रीम अनुवाद दोहराया नहीं जाता और उसी मशीन के लिए दूसरी, विरोधाभासी पहचान बन जाती है।
दो पते, एक इंस्टेंस
इंस्टेंस का नेटवर्क इंटरफ़ेस VPC के भीतर एक निजी पता रखता है, और वही पता है जिसे गेस्ट जानता है। Elastic IP उसी इंटरफ़ेस से जुड़ा है लेकिन मैपिंग के सार्वजनिक पक्ष पर रहता है।
इंटरनेट के ज़रिए इंस्टेंस तक पहुँचने वाली हर चीज़ निजी पते पर अनुवादित होकर आती है। इंस्टेंस इंटरनेट पर जो भी भेजता है वह Elastic IP को स्रोत बनाकर निकलता है, फिर उसी अनुवाद के कारण।
गेस्ट के भीतर एक पता मौजूद है। बाहर दो हैं। यही असमानता इस क्षेत्र की अधिकांश उलझन समझाती है। गेस्ट यह कॉन्फ़िगर नहीं कर सकता कि गेटवे क्या अनुवाद करता है। यह केवल उस पते पर उत्तर दे सकता है जो वास्तव में उसके पास है।
इंटरनेट गेटवे वास्तव में क्या करता है
AWS का इंटरनेट गेटवे दस्तावेज़ इस व्यवस्था का वर्णन करता है: इंस्टेंस अपने निजी IPv4 पते से अवगत है, और गेटवे इंटरनेट मार्ग पर ट्रैफ़िक के लिए संगत सार्वजनिक IPv4 या Elastic IP अनुवाद प्रदान करता है।
यह नेटवर्क पता अनुवाद है, उपनाम नहीं। मैपिंग गेटवे बनाए रखता है, यह संबद्धता से बंधी है और केवल उन पैकेटों पर लागू होती है जो इससे गुज़रते हैं। संबद्धता हटा दें और सार्वजनिक पहचान गायब हो जाती है बिना गेस्ट को कुछ पता चले।
इसलिए सार्वजनिक /32 पर संबोधित निजी VPN पैकेट को गेस्ट के स्थानीय पते पर जाने वाले निजी पैकेट के रूप में पुनर्व्याख्या नहीं किया जाता। पैकेट उस मार्ग का अनुसरण करता है जिससे वह मेल खाता है, जो उसे इंटरनेट गेटवे पर भेजता है, और गेटवे का व्यवहार इस पर निर्भर करता है कि मार्ग दोनों दिशाओं में अनुमत है या नहीं।
टनल इंटरफ़ेस की चाल क्यों विफल होती है
Elastic IP को टनल इंटरफ़ेस पर असाइन करना गेस्ट से कहता है कि सार्वजनिक पते को स्थानीय माने। अब दो चीज़ें एक ही पते का दावा करती हैं: इंटरनेट मार्ग पर गेटवे का अनुवाद और टनल के भीतर का स्थानीय इंटरफ़ेस। वापसी ट्रैफ़िक के पास इस बारे में कोई सुसंगत उत्तर नहीं है कि कौन लागू होता है।
जब यह काम करता दिखता है तब भी, डिज़ाइन ने असली सवाल छिपा दिया है। क्लाइंट या तो टनल के ज़रिए निजी पते तक पहुँचते हैं या इंटरनेट के ज़रिए सार्वजनिक एंडपॉइंट तक, और दोनों मार्गों के सुरक्षा समूह, लॉगिंग और विफलता के तरीके अलग हैं।
पता कभी समस्या नहीं था। मार्ग का चयन था।
तीन लक्ष्य, तीन डिज़ाइन
यदि लक्ष्य सार्वजनिक VPN एंडपॉइंट है, तो Elastic IP सही साधन है: दूरस्थ सहकर्मी इंटरनेट के ज़रिए इससे जुड़ते हैं और एन्क्रिप्टेड ट्रांसपोर्ट इंस्टेंस पर समाप्त होता है। फिर आंतरिक एप्लिकेशन ट्रैफ़िक निजी पता उपयोग करता है।
यदि लक्ष्य एप्लिकेशन तक निजी पहुँच है, तो गंतव्य निजी पता या उस पर रिज़ॉल्व होने वाला निजी DNS नाम है, और VPN रूट, सुरक्षा समूह तथा वापसी मार्ग सभी को सहमत होना चाहिए। Elastic IP उस डिज़ाइन में बिल्कुल नहीं आता।
यदि लक्ष्य VPN उपयोगकर्ताओं के लिए स्थिर सार्वजनिक एग्रेस पहचान है, तो वह एग्रेस पक्ष पर NAT डिज़ाइन है, क्लाइंट की टनल पर पता नहीं। एक जैसे सुनने वाले तीन लक्ष्य तीन अलग आरेख बनाते हैं, और उनमें से केवल एक में Elastic IP को नई जगह रखना शामिल है।
अपने चुने हुए मार्ग को सत्यापित करें
निजी पहुँच के लिए पुष्टि करें कि VPN रूट निजी प्रीफ़िक्स को कवर करता है, VPC रूट तालिका ट्रैफ़िक को टनल पर वापस भेजती है, सुरक्षा समूह क्लाइंट के स्रोत को अनुमति देता है और क्लाइंट का अपना फ़ायरवॉल उत्तर को अनुमति देता है। फिर ping के बजाय एक वास्तविक अनुरोध का परीक्षण करें।
सार्वजनिक पहुँच के लिए क्लाइंट का इंटरनेट एग्रेस, सार्वजनिक प्रवेश का रूटिंग और उसकी सुरक्षा नीति सत्यापित करें। VPN क्लाइंट टनल के ज़रिए सार्वजनिक एंडपॉइंट तक पहुँच सकता है या नहीं, यह टनल के एग्रेस और फ़ायरवॉल नियमों पर निर्भर है, Elastic IP संबद्धता पर नहीं।
यदि सार्वजनिक होस्टनाम को दोनों ओर से काम करना है, तो ऐसा DNS डिज़ाइन उपयोग करें जो VPN क्लाइंट के लिए निजी पते से और बाकी सभी के लिए सार्वजनिक पते से उत्तर दे, और प्रमाणपत्र को पते के बजाय नाम के लिए वैध रखें। कार्य क्रम: लक्ष्य का नाम दें, उससे जुड़ा पता चुनें, फिर मार्ग, नीति और एक अनुरोध सत्यापित करें।