VPN चालू, VM पहुँच से बाहर? रास्ता शायद कभी समस्या था ही नहीं
आपने टनल को होस्ट-ओनली नेटवर्क के गेस्ट को छिपाने का दोष दिया। आम तौर पर रास्ता स्थानीय ही रहता है, और क्लाइंट फ़िल्टर या लिसनर पता उसे रोकता है।
VPN कनेक्ट कीजिए, और एक मिनट पहले जवाब देने वाली डेवलपमेंट VM अचानक चुप हो जाती है। स्पष्ट कहानी खुद लिखी जाती है: टनल ने रास्ता पकड़ लिया, होस्ट अब गेस्ट ट्रैफ़िक कॉर्पोरेट नेटवर्क में भेज रहा है, और समाधान है स्टैटिक रूट जोड़ना या अडैप्टर को ब्रिज मोड में बदलना। वह कहानी कभी-कभी सच होती है। पर यह आम कारण नहीं है, और उसके आधार पर पहले कार्रवाई करना आम तौर पर कुछ और तोड़ देता है।
होस्ट-ओनली नेटवर्किंग होस्ट के स्वामित्व वाला और उसके गेस्ट के साथ साझा किया गया एक सॉफ़्टवेयर नेटवर्क है, जो किसी भी भौतिक कनेक्शन से अलग है। VPN क्लाइंट के अपने इंटरफ़ेस में कुछ भी उस नेटवर्क को नहीं बदलता, इसलिए उसे छूने से पहले पता लगाइए कि चार परतों में से कौन सी वाकई विफल हुई।
रास्ता आम तौर पर अब भी स्थानीय रहता है
रूटिंग तालिका के पहले पन्ने के बजाय कर्नेल से पूछिए। लिनक्स में ip route get 192.168.56.10 वह सटीक रास्ता, इंटरफ़ेस और स्रोत पता बताता है जो इस्तेमाल होगा, जो डिफ़ॉल्ट रूट पढ़कर अनुमान लगाने से अलग जवाब है। अगर आउटपुट होस्ट-ओनली इंटरफ़ेस का नाम लेता है, तो टनल उस रास्ते में बिल्कुल शामिल नहीं है।
दो चीज़ें वाकई उसे तोड़ सकती हैं, और दोनों VPN नहीं बल्कि पता संबंधी समस्याएँ हैं। होस्ट-ओनली प्रीफ़िक्स से ओवरलैप करने वाला दूरस्थ सबनेट अधिक विशिष्ट रूट को जीतने देता है, और कम मीट्रिक के साथ चौड़ा रूट स्थापित करने वाला VPN क्लाइंट प्रीफ़िक्स खींच सकता है। दोनों एक ही कमांड में दिखते हैं: आउटपुट में नामित इंटरफ़ेस टनल होगा, और सुधार उसी व्यक्ति का काम है जिसके पास वह पता योजना है।
रास्ता चुनना और पैकेट स्वीकार करना अलग निर्णय हैं
यह वह हिस्सा है जो मानसिक मॉडल आम तौर पर छोड़ देता है। पूरी तरह स्थानीय रास्ते के साथ भी VPN क्लाइंट पैकेट अस्वीकार कर सकता है। कई क्लाइंट स्थानीय नेटवर्क एक्सेस नीति लागू करते हैं जो तय करती है कि टनल के बाहर कौन-से गंतव्य अनुमत हैं, और जुड़ा हुआ सबनेट वह सूची अपने आप नहीं बदलता।
इसलिए विफलता ऐप्लिकेशन की ओर से रूटिंग समस्या जैसी ही दिखती है, और क्लाइंट की ओर से बिल्कुल अलग। अगर ip route get सही इंटरफ़ेस का नाम लेता है और कनेक्शन फिर भी समय समाप्त होता है, तो रूट संपादित करना बंद कीजिए और इसके बजाय क्लाइंट का प्रलेखित स्थानीय-एक्सेस व्यवहार पढ़िए। कुछ क्लाइंट स्थानीय सबनेट के लिए अनुमति सूची देते हैं, कुछ टनल न होने वाली हर चीज़ ब्लॉक करते हैं, और कुछ केवल तब ब्लॉक करते हैं जब किल स्विच सक्रिय हो।
यह अंतर मायने रखता है क्योंकि सुधार एक-दूसरे की जगह नहीं ले सकते। रूट जोड़कर फ़िल्टर संतुष्ट नहीं होता, और एक गेस्ट तक पहुँचने के लिए फ़िल्टर बंद करना लक्षण के इशारे से कहीं बड़ा निर्णय है।
गेस्ट के पास ना कहने के तीन तरीके हैं
इंटरनेट ब्राउज़ कर सकने वाला गेस्ट उस सेवा के बारे में कुछ साबित नहीं करता जो आप चाहते हैं। लिसनर गेस्ट के अंदर 127.0.0.1 से बंधा हो सकता है, और उस स्थिति में रास्ता कितना भी अच्छा हो, होस्ट से कोई अनुरोध नहीं पहुँच सकता। गेस्ट में ss -ltn से जाँचिए और केवल पोर्ट नहीं, स्थानीय पता वाला कॉलम देखिए।
इसके बाद गेस्ट का अपना फ़ायरवॉल है। प्रतिबंधात्मक डिफ़ॉल्ट वाली डेवलपमेंट इमेज होस्ट के पैकेट स्वीकार करके उन्हें सेवा की सीमा पर गिरा सकती है, जिससे ऐसा समय-समाप्ति बनता है जो रूटिंग ब्लैक होल जैसा ही दिखता है। अंत में सेवा का अपना कॉन्फ़िगरेशन है: किसी विशिष्ट होस्टनाम से बँधा वेब ऐप, या क्लाइंट पतों की अनुमति सूची, हर पैकेट पहुँचने पर भी होस्ट-ओनली सबनेट से आए अनुरोध को अस्वीकार करेगा।
VM का नेटवर्क मोड बदलने के बारे में सोचने से पहले इन तीनों से गुज़रिए। हर एक गेस्ट के जुड़ाव को फिर से बनाने से छोटा बदलाव है, और हर एक का स्पष्ट परीक्षण है।
ब्रिज वास्तव में क्या है, और उसकी क़ीमत क्या है
अडैप्टर को ब्रिज मोड में बदलना होस्ट-ओनली रास्ते की मरम्मत नहीं है। यह गेस्ट को दूसरे नेटवर्क पर, आम तौर पर भौतिक LAN पर रखने का निर्णय है, जहाँ वह वहाँ रहने वाली हर चीज़ के लिए दृश्यमान हो जाता है। यह ठीक वही हो सकता है जो आप चाहते हैं। पर मूल कॉन्फ़िगरेशन जो कर रहा था वह यह नहीं है।
इसका उपयोग तब कीजिए जब गेस्ट को वाकई उस LAN पर समकक्ष होना हो और जोखिम स्वीकृत हो। इसका उपयोग इसलिए न कीजिए कि एक सेवा ने जवाब देना बंद कर दिया है, क्योंकि बदलाव गेस्ट को उस अलगाव से बाहर निकाल सकता है जिसने उसके विरुद्ध डेवलपमेंट को सुरक्षित बनाया था।
किसी भी स्वीकृत सुधार के बाद निश्चित क्रम में परीक्षण कीजिए: होस्ट से गेस्ट को नया अनुरोध, टनल के ज़रिए आवश्यक कॉर्पोरेट संसाधन, और टनल बंद होने पर इच्छित अस्वीकृत व्यवहार। अगर अंतिम अब लागू नहीं होता, तो सुधार समस्या से आगे बढ़ गया है।
VirtualBox का होस्ट-ओनली नेटवर्किंग वाला खंड होस्ट की ओर के सॉफ़्टवेयर इंटरफ़ेस और ब्रिज जुड़ाव से उसके अंतर का वर्णन करता है, और दोनों मोड को विनिमेय मानने से पहले यही वह संदर्भ है जो पढ़ने योग्य है।