वर्चुअलबॉक्स - अतिथि उबंटू DNS को खो देता है जब होस्ट वीपीएन से जुड़ता है


11

मैं eth0 के लिए डिफ़ॉल्ट NAT का उपयोग करके VirtualBox में Ubuntu अतिथि OS है।

घर से कार्यालय वीपीएन पर कार्यालय और घर पर ठीक काम करता है।

जब होस्ट ओएस (विंडोज 7) वीपीएन से जुड़ा होता है, तो DNS लुकअप वर्चुअलबॉक्स अतिथि के भीतर काम नहीं करता है। होस्ट पर DNS लुकअप ठीक हैं। वर्चुअलबॉक्स के भीतर, मैं सीधे वीपीएन और बाहर दोनों के भीतर आईपी को पिंग कर सकता हूं, इसलिए यह कनेक्टिविटी की समस्या नहीं है।

ऐसा लगता है कि उबंटू अतिथि लोकलहोस्ट का उपयोग DNS प्रविष्टि बिंदु के अनुसार, /etc/resolv.confऔर के अनुसार कर रहा है nslookup। तो ऐसा लगता है कि स्थानीय रूप से कुछ अन्य अंतर्निहित DNS को भेजा जा रहा है।

मैं इसका निवारण कैसे करूँ?


आप वीपीएन के लिए क्या उपयोग कर रहे हैं? क्या आपके पास उस मशीन पर वीपीएन सेटिंग्स तक पहुंच है जिसे ये मशीनें कनेक्ट कर रही हैं? आमतौर पर वीपीएन से जुड़ने वाली मशीनें वीपीएन डिवाइस से अपनी सेटिंग्स खींचती हैं।
जेमरिचा

होस्ट पर DNS लुकअप को स्पष्ट करने के लिए ठीक काम कर रहे हैं - यह केवल Virtualbox अतिथि है जो प्रभावित है।
18

जवाबों:


17

यह किसी कारण के लिए काम किया

C:\...\VirtualBox\VBoxManage modifyvm "VM name" --natdnshostresolver1 on

मुझे संदेह है कि जब वीपीएन सक्रिय होता है, तो होस्ट DNS लुकअप के लिए कुछ विशेष कर रहा है इसके अलावा केवल निर्दिष्ट DNS सर्वरों के लिए अनुरोध अग्रेषित कर रहा है जो कि वर्चुअलबॉक्स विंडोज कॉन्फ़िगरेशन से उठाया गया है।


1
तुमने दिन बचा लिया दोस्त।
कैंटगनेटिक

पूरी तरह से मेरे लिए काम किया!
हाई मिन्ह गुयेन

1

मेरे पास लुबंटू 16.04 (अन्य यूबुंटस में समान होना चाहिए) के साथ बहुत ही समान स्थिति थी, लेकिन इस फिक्स ने स्थिति में सुधार नहीं किया। कम से कम 16.04 के साथ, यह समस्या प्रतीत होती है कि NetworkManager स्थानीय DNS प्रॉक्सी (dnsmasq) का उपयोग करता है, और यह वीपीएन कनेक्शन के साथ अच्छा नहीं खेलता है, कम से कम डिफ़ॉल्ट कॉन्फ़िगरेशन में।

Det = dnsmasq in /etc/NetworkManager/NetworkManager.conf पर टिप्पणी करना / हटाना

[main]
plugins=ifupdown,keyfile,ofono
# dns=dnsmasq

संभवतः dnsmasq को कॉन्फ़िगर करने का एक तरीका है, लेकिन यह होस्ट (dns, इत्यादि) के बराबर पहुंच (मुझे) देता है, इसलिए मैंने जांच नहीं की है। YMMV।


1

TL; DR:

  • वीएम को रिबूट करना सुनिश्चित करें कि होस्ट की वीपीएन स्थिति (या तो कनेक्ट या डिस्कनेक्ट की गई है) इस बीच नहीं बदलती है;
  • वर्चुअलबॉक्स NAT इंजन DNS अनुरोधों को इंटरसेप्ट करता है और उन्हें होस्ट के रिसॉल्वर को अग्रेषित करता है, जो कि सूचना को क्वेरी करने और अतिथि को वापस करने के लिए होस्ट के DNS एपीआई का उपयोग करना है। आप इसे इसके द्वारा सेट करते हैं:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on


वीपीएन से जुड़े होस्ट में वीएम चलाने से वीपीएन स्थिति में बदलाव के कारण हर बार DNS समस्याएं हो सकती हैं। दो परिदृश्य हैं:

  1. वीपीएन एक वीपीएन-कनेक्टेड होस्ट में स्पॉन है और एक निश्चित बिंदु पर वीपीएन डिस्कनेक्ट करता है;
  2. वीएम एक गैर-वीपीएन-कनेक्टेड होस्ट में स्पॉन है और एक निश्चित बिंदु पर वीपीएन कनेक्ट होता है

1) वीपीएन-कनेक्टेड -> वीपीएन-डिस्कनेक्ट किया गया

इस स्थिति में VM को संभवतः एक DNS पता प्राप्त होगा जो कि वीपीएन प्रदाता नेटवर्क का हिस्सा है। यह आमतौर पर एक आंतरिक निजी आईपी पता होगा। की सामग्री की जाँच करें cat /etc/resolv.conf। मेरे मामले में मुझे निम्नलिखित मिले:

nameserver 10.8.8.1 <--- यह वीपीएन प्रदाता नेटवर्क के लिए आंतरिक है

nameserver 192.168.178.1 <--- यह मेरा घर-द्वार (राउटर) है

अब वीपीएन कनेक्शन से होस्ट को डिस्कनेक्ट करें:

  • VMs में DNS कॉन्फ़िगरेशन परिवर्तित नहीं होता है -> VM अभी भी IP 10.8.8.1 को गंतव्य के लिए DNS अनुरोध भेज रहा है, जिसे होस्ट के रूप में नहीं पहुँचा जा सकता है क्योंकि वीपीएन से अधिक जुड़ा नहीं है

अधिक जानकारी में:

  • पैकेट को VirtualBox NAT नेटवर्क, परिभाषित NATTed (होस्ट IP पते के साथ) द्वारा परिभाषित GW को भेजा जाएगा, और अंत में होस्ट की रूटिंग टेबल द्वारा नियंत्रित किया जाएगा जो इसे आपके होम-गेटवे पर अग्रेषित करेगा।
  • यहां पैकेट को गिरा दिया जाएगा क्योंकि आपके होम गेटवे की LAN साइड (निजी पते) में 10.8.8.1 के लिए कोई प्रविष्टि नहीं है और इसे WAN की ओर (सार्वजनिक पते) पर निजी पते के रूप में अग्रेषित नहीं किया जा सकता है।

2) वीपीएन-डिस्कनेक्ट -> वीपीएन-कनेक्टेड

इस मामले में वीएम को वीपीएन नेटवर्क प्रदाता का हिस्सा डीएनएस पता प्राप्त नहीं होगा क्योंकि वीएम शुरू होने के बाद होस्ट वीपीएन से जुड़ा नहीं था। की सामग्री की जाँच करें cat /etc/resolv.conf। मेरे मामले में मुझे निम्नलिखित मिले:

nameserver 192.168.178.1 <--- यह मेरा घर-द्वार (राउटर) है

अब होस्ट को वीपीएन कनेक्शन से कनेक्ट करें:

  • VMs में DNS कॉन्फ़िगरेशन परिवर्तित नहीं होता है -> VM अभी भी DNS अनुरोधों को IP 192.168.178.1 पर भेज रहा है, जिस तक नहीं पहुँचा जा सकता है (पिंग यह अभी भी काम करता है) क्योंकि अब VM से DNS अनुरोध को नियंत्रित किया जा रहा है वीपीएन टैप इंटरफ़ेस जो पैकेट को वीपीएन नेटवर्क पर अग्रेषित करेगा जहां 192.168.178.1 (आपका आंतरिक होम-गेटवे आईपी पता) तक नहीं पहुंचा जा सकता है।

अधिक जानकारी में:

  • पैकेट को वीपीएन टैप इंटरफेस द्वारा भेजे गए डेफ जीडब्ल्यू को वीपीएन टैप इंटरफेस पर भेजे गए डीएफ को भेजा जाएगा, जो वीपीएन नेटवर्क द्वारा होस्ट को सौंपे गए आईपी पते के साथ वीएम आईपी स्रोत पते की जगह आईपी हेडर को संशोधित करेगा। पता DNS पता 192.168.178.1 रहता है।
  • यह पैकेट तब एक बाहरी IP हैडर में एनकैप्सुलेट होने वाला है, जिसमें होस्ट IP एड्रेस सोर्स के रूप में होगा (जो कि btw बाद में होम-गेटवे पर स्रोत NAT द्वारा बदल दिया जाएगा) और वीपीएन सर्वर डेस्टिनेशन एड्रेस के रूप में होगा।
  • जब पैकेट वीपीएन नेटवर्क पर पहुंचता है, तो यह विघटित हो जाता है। गंतव्य IP पता अब DNS पते 192.168.178.1 पर फिर से है कि वीपीएन प्रदाता नेटवर्क तक पहुंचने का कोई रास्ता नहीं है (जब तक कि असाधारण शंका न हो जहां यह वही आईपी पता है जो आपके DNS सर्वर के लिए आपके वीपीएन नेटवर्क प्रदाता द्वारा उपयोग किया जाता है)।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.