होस्ट के VPN से जुड़ने के बाद VirtualBox गेस्ट का DNS टूट जाता है
गेस्ट का अपना रिज़ॉल्वर है और NAT DNS का जवाब दो तरह से दे सकता है। अडैप्टर मोड, रिज़ॉल्वर पथ, होस्ट रिज़ॉल्वर मोड और VPN रीकनेक्ट पर चार जाँचें।
VPN जुड़ते ही Windows होस्ट पर एक आंतरिक ऐप्लिकेशन रिज़ॉल्व हो जाता है, और VirtualBox NAT के पीछे मौजूद Ubuntu गेस्ट उसे अभी भी नहीं ढूँढ पाता। गेस्ट का अपना रिज़ॉल्वर है, और NAT अडैप्टर DNS को एक से अधिक तरीके से संभाल सकता है। गेस्ट के रिज़ॉल्वर को सार्वजनिक सर्वर से बदलने पर सामान्य वेबसाइटें काम करती हैं और निजी नाम विफल होते हैं, जो समस्या को हल करने के बजाय उसे कहीं और खिसका देता है। चारों जाँचें क्रम से करें और पहली असफल जाँच पर रुकें।
पुष्टि करें कि आप किस अडैप्टर मोड को डीबग कर रहे हैं
सिर्फ़ सादा NAT मोड वाला अडैप्टर ही इस लेख में बताए अनुसार व्यवहार करता है। ब्रिज अडैप्टर अपनी पहचान के साथ भौतिक नेटवर्क पर बैठता है, NAT नेटवर्क अपनी DHCP और DNS सेटिंग्स वाला नामित वर्चुअल स्विच है, और गेस्ट के अंदर का VPN क्लाइंट पूरी तरह दूसरा रिज़ॉल्वर जोड़ देता है। आगे पढ़ने से पहले मोड की पुष्टि करें, क्योंकि इनमें से हर स्थिति में मरम्मत अलग है।
एक VM अलग-अलग मोड में दो अडैप्टर रख सकता है, और प्रभावित अडैप्टर हमेशा पहला नहीं होता।
यह भी पुष्टि करें कि होस्ट नाम को रिज़ॉल्व करता है या नहीं। टनल चालू रखते हुए होस्ट पर वही ऐप्लिकेशन खोलें, और वही पूर्ण नाम इस्तेमाल करें जो गेस्ट इस्तेमाल करेगा। अगर होस्ट भी विफल हो, तो गेस्ट का दोष नहीं है और वर्चुअल नेटवर्किंग में कोई भी बदलाव इसे ठीक नहीं करेगा।
गेस्ट के रिज़ॉल्वर से होकर एक नाम का पीछा करें
एक आंतरिक नाम और एक सार्वजनिक नियंत्रण नाम चुनें, फिर दोनों को दोनों जगह जाँचें। जो सार्वजनिक नाम रिज़ॉल्व होता है जबकि निजी नाम नहीं होता, वह गड़बड़ी को सामान्य नाम रिज़ॉल्विंग के बजाय निजी पथ पर बताता है। सिर्फ़ निजी नाम जाँचने से आप टूटे रिज़ॉल्वर और टूटे रूट में फ़र्क़ नहीं कर पाएँगे।
गेस्ट के अंदर देखें कि रिज़ॉल्वर वास्तव में किसके लिए कॉन्फ़िगर है। systemd-resolved चलाने वाले Ubuntu गेस्ट में प्रति-लिंक स्थिति उन सर्वरों को दिखाती है जो आए, और resolv.conf फ़ाइल में सिर्फ़ एक स्टब पता हो सकता है, जो सही है, संदिग्ध नहीं। हाथ से संपादित फ़ाइल या अलग एन्क्रिप्टेड-DNS क्लाइंट लुकअप को पूरी तरह कहीं और भेज सकते हैं। बदलने से पहले जो मिले उसे लिख लें।
resolvectl status
resolvectl query app.internal.exampleयहाँ रिज़ॉल्विंग को पहुँच से अलग करें। सेवा अगम्य रहते हुए आने वाला पता DNS नहीं, रूटिंग या नीति का प्रश्न है।
उस अडैप्टर पर होस्ट रिज़ॉल्वर मोड आज़माएँ
VirtualBox के NAT DNS विकल्प अलग-अलग तंत्र बताते हैं, और यह अंतर तब मायने रखता है जब होस्ट का अपना रिज़ॉल्वर टनल के साथ बदलता है। DNS प्रॉक्सी गेस्ट के अनुरोध उन सर्वरों तक भेजता है जो उसे दिए गए थे। होस्ट रिज़ॉल्वर मोड अनुरोधों को रोकता है और होस्ट की DNS API कॉल करता है, और यही वह मोड है जो VPN क्लाइंट द्वारा फिर से कॉन्फ़िगर किए गए Windows रिज़ॉल्वर का अनुसरण करता है।
गलत तंत्र चालू करें तो कमांड फिर भी सफल होगा जबकि व्यवहार नहीं बदलेगा, जो दोपहर गँवाने का एक भ्रमित करने वाला तरीका है।
VBoxManage modifyvm "work-ubuntu" --natdnshostresolver1 onVM की मौजूदा सेटिंग्स लिख लें, उसे बंद करें और उस अडैप्टर को लक्षित करें जिसकी पुष्टि आपने पहले की थी। विकल्प का अंतिम अंक स्थिरांक नहीं बल्कि अडैप्टर नंबर है, इसलिए जिस VM का प्रभावित अडैप्टर दूसरा है उस पर इसे लागू करना एक शांत निष्क्रिय क्रिया है। गेस्ट शुरू करें और देखें कि उसे वास्तव में कौन-सा रिज़ॉल्वर कॉन्फ़िगरेशन मिला, क्योंकि गेस्ट में हाथ से किया गया सेटिंग NAT परत जो कुछ भी देती है उस पर भारी पड़ता है। याद रखें कि होस्ट रिज़ॉल्वर मोड यह भी मानता है कि होस्ट का अपना DNS पथ ही वह है जिसे आप साझा करना चाहते थे।
VPN रीकनेक्ट के दौरान वही परीक्षण दोहराएँ
गेस्ट में दोनों लुकअप दोहराएँ, फिर असली ऐप्लिकेशन खोलें और उसे प्रमाणपत्र खुद सत्यापित करने दें। सिर्फ़ पते पर आधारित परीक्षण नाम रिज़ॉल्विंग अलग करने के लिए उपयोगी है और काम करती TLS सत्र के बराबर नहीं है, इसलिए ping पर रुकें नहीं। फिर मंज़ूर विंडो में होस्ट टनल डिस्कनेक्ट और फिर कनेक्ट करें और एक बार और दोहराएँ। जो व्यवहार सिर्फ़ बूट के बाद पहले कनेक्शन पर टिकता है वह रिपोर्ट करने योग्य जीवनचक्र समस्या है, दूसरे रिज़ॉल्वर से पीछा करने वाला DNS रहस्य नहीं।
सार्वजनिक रिज़ॉल्विंग के काम करने से यह साबित नहीं होता कि निजी क्वेरी वही पथ पर रहीं जिसकी आपकी नीति माँग करती है।
जब होस्ट रिज़ॉल्वर मोड कुछ नहीं बदलता, तो दर्ज कॉन्फ़िगरेशन वापस रखें और चार अवलोकन बनाए रखें: होस्ट ने क्या लौटाया, गेस्ट ने क्या लौटाया, अडैप्टर मोड और रिज़ॉल्वर की स्थिति। अगम्य आंतरिक सर्वर, हाइपरवाइज़र ट्रैफ़िक को बाहर रखने वाला फ़िल्टर और गेस्ट की ओर का ओवरराइड हर एक को अलग सुधार चाहिए। अडैप्टर को ब्रिज में बदलना नेटवर्क डिज़ाइन बदलता है और वह DNS रीसेट नहीं है।