आपकी लैब का VPN मार्ग एडाप्टर क्रम से तय नहीं होता
हाइपरवाइज़र में एडाप्टर 1 यह नहीं बताता कि गेस्ट कौन-सा मार्ग चुनेगा। हर हार्डवेयर बदलाव के बाद प्रीफ़िक्स, मीट्रिक और नीति नियमों की तुलना करें।
हाइपरवाइज़र की सूची में एडाप्टर 1 का पहले होना केवल प्रदर्शन क्रम है, और गेस्ट की रूटिंग तालिका उसे पढ़ती नहीं। मार्ग तय करते हैं प्रीफ़िक्स, मीट्रिक और दोनों से पहले लागू होने वाला कोई भी नीति नियम। इसलिए लैब VM में ब्रिज्ड एडाप्टर जोड़ने से दूसरा डिफ़ॉल्ट मार्ग बन सकता है, जबकि पुराना NAT इंटरफ़ेस अब भी मौजूद और दूसरे क्रमांक पर दिखता है। परिणाम ऐसा VM है जो कभी टनल का उपयोग करता है और कभी नहीं, और इसे समझाने वाला कोई कॉन्फ़िगरेशन बदलाव नहीं है।
तीन शर्तें मार्ग तय करती हैं
तीन शर्तें हैं कौन-सा प्रीफ़िक्स अधिक विशिष्ट है, प्रीफ़िक्स बराबर होने पर मीट्रिक क्या करते हैं, और हार्डवेयर बदलाव के बाद गेस्ट ने कौन-से नियम लागू किए। हर एक का उत्तर एक ही कमांड से मिलता है, और इनमें से कोई भी हाइपरवाइज़र के क्रमांकन से संबंधित नहीं है।
वही अंतिम बिंदु निर्णय है: अगर आप यह नहीं बता सकते कि VPN एंडपॉइंट के अपने पते के लिए कौन-सा प्रीफ़िक्स जीतता है, तो आपके पास रूटिंग नीति नहीं है, आपके पास ऐसी टोपोलॉजी है जो आज संयोग से काम करती है।
शर्त एक: कौन-सा प्रीफ़िक्स जीतता है
10.8.0.0/24 की ओर का मार्ग उसके भीतर के पते के लिए डिफ़ॉल्ट मार्ग को हरा देता है, मीट्रिक और एडाप्टर क्रम चाहे जो हों। इसीलिए विशिष्ट मार्ग स्थापित करने वाला VPN क्लाइंट कम मीट्रिक वाला दूसरा एडाप्टर आने पर भी काम करता रहता है: लागत पर विचार से पहले विशिष्टता जीतती है। आप जिस तालिका को उपयोग में मानते हैं उसे ip route show से, और किसी विशिष्ट गंतव्य के लिए कर्नेल वास्तव में क्या उत्तर देगा उसे ip route get 203.0.113.9 से जाँचें।
एंडपॉइंट का अपना पता ही सबसे महत्वपूर्ण परीक्षण है। अगर VPN सर्वर का पता हाल में जोड़े गए ब्रिज्ड एडाप्टर से हल होता है, तो टनल कभी बन ही न सके, या बने और फिर अपना ट्रांसपोर्ट मार्ग खो दे। टनल इंटरफ़ेस ही उत्तर है—ऐसा मानने के बजाय उसी पते को विशेष रूप से पूछें।
शर्त दो: मीट्रिक क्या करता है और क्या नहीं
इसकी भूमिका अधिकांश लोगों की अपेक्षा सँकरी है। मीट्रिक एक ही प्रीफ़िक्स के मार्गों के बीच बराबरी तोड़ते हैं; वे व्यापक मार्ग को अधिक विशिष्ट मार्ग पर जीतने नहीं देते। बराबरी में छोटी संख्या को प्राथमिकता मिलती है, और अलग-अलग ऑपरेटिंग सिस्टम विपरीत दिशाओं में गिनते हैं, इसलिए Linux और Windows के बीच नकल की गई सलाह अक्सर अपने ही विरुद्ध हो जाती है।
गेस्ट में ip route show हर मार्ग के आगे मीट्रिक छापता है, और Windows में Get-NetRoute एक InterfaceMetric तथा मार्ग मीट्रिक छापता है। दोनों पढ़ें, क्योंकि प्रभावी प्राथमिकता एक क्षेत्र नहीं बल्कि योग हो सकती है। अगर दो डिफ़ॉल्ट मार्ग हैं, तो यही निष्कर्ष है: गेस्ट के पास बाहर जाने के दो रास्ते हैं, और कौन जीतेगा यह ऐसी संख्याओं पर निर्भर है जिन्हें हार्डवेयर बदलाव बदल सकता है।
शर्त तीन: गेस्ट ने वास्तव में क्या लागू किया
कॉन्फ़िगरेशन और लागू स्थिति एक नहीं हैं। हर प्लेटफ़ॉर्म पर हार्डवेयर बदलावों के दौरान इंटरफ़ेस नाम स्थिर नहीं रहते, और नाम से मेल खाता कॉन्फ़िगरेशन अब किसी चीज़ पर लागू न हो।
इच्छित के बजाय लागू स्थिति जाँचें। ip -br link अब मौजूद इंटरफ़ेस दिखाता है, और NetworkManager वाले होस्ट पर nmcli connection show दिखाता है कि कौन-सी प्रोफ़ाइल किस डिवाइस से बँधी है। जो प्रोफ़ाइल बँध नहीं सकी वह इंटरफ़ेस को बिना एड्रेसिंग के चालू छोड़ देती है, जो रूटिंग समस्या जैसा दिखता है और नामकरण की समस्या है। पुनर्स्थापित स्नैपशॉट इसे और बिगाड़ते हैं, क्योंकि गेस्ट की सहेजी गई स्थिति ऐसी एडाप्टर पहचानों का संदर्भ दे सकती है जो नया हार्डवेयर अब प्रदान नहीं करता।
लैब टोपोलॉजी को पुनरुत्पादनीय रखें
इच्छित वर्चुअल नेटवर्क कनेक्शन गेस्ट कॉन्फ़िगरेशन के साथ सहेजें, ताकि भूमिका से एडाप्टर का मैपिंग सूची की स्थिति से अनुमान लगाने के बजाय लिखा हुआ हो।
नाम देने के लिए सामान्यतः चार भूमिकाएँ पर्याप्त हैं: निजी लिंक, प्रबंधन, बाहरी ट्रांसपोर्ट और टनल। हर एक को फ़ाइल में किसी विशिष्ट एडाप्टर और विशिष्ट गेस्ट इंटरफ़ेस से मैप होना चाहिए।
फिर हार्डवेयर बदलाव, रीस्टार्ट या पुनर्स्थापित स्नैपशॉट के बाद वास्तविक एप्लिकेशन का परीक्षण करें, और उस परीक्षण में VPN एंडपॉइंट तक का मार्ग भी शामिल करें। अगर गेटवे VM ही एकमात्र निकास होना चाहिए, तो जाँचें कि परीक्षण VM के पास अनजाने दूसरा डिफ़ॉल्ट मार्ग नहीं है, क्योंकि ब्रिज्ड एडाप्टर ठीक दूसरा डिफ़ॉल्ट जोड़ता है। हाइपरवाइज़र कंसोल से नहीं, गेस्ट से परीक्षण करें, क्योंकि कौन-सा इंटरफ़ेस कौन है इस पर दोनों असहमत हो सकते हैं।
VirtualBox नेटवर्किंग दस्तावेज़ एडाप्टर मोड और हर एक किससे जुड़ता है यह बताता है, और दूसरा जोड़ने से पहले पढ़ने योग्य भाग यही है। जो लैब हर भूमिका के लिए कौन-सा एडाप्टर सेवा देता है यह पहचानती है, वहाँ मार्ग परिवर्तन व्याख्यायोग्य होता है। जो लैब हाइपरवाइज़र के क्रमांकन पर निर्भर है, वहाँ हर बदलाव प्रयोग बन जाता है।