VirtualBox - ana bilgisayar VPN'ye bağlandığında konuk Ubuntu DNS'yi kaybediyor


11

EthBox için varsayılan NAT kullanarak VirtualBox Ubuntu konuk işletim sistemi var.

Evden ofiste VPN dışındayken ofiste ve evde iyi çalışır.

Ana bilgisayar işletim sistemi (Windows 7) VPN'ye bağlandığında, DNS aramaları Virtualbox misafirinde çalışmaz. DNS aramaları ana bilgisayarda iyi durumda. Virtualbox içinde, IP'lere doğrudan VPN'de ve dışarıda ping atabiliyorum, bu yüzden bir bağlantı sorunu değil.

Ubuntu konuk göre, DNS girişi noktası olarak localhost kullanıyor gibi görünüyor /etc/resolv.confve nslookup. Yerel olarak bir şey daha sonra altta yatan diğer DNS'ye gönderiliyor gibi görünüyor.

Bu sorunu nasıl giderebilirim?


VPN için ne kullanıyorsunuz? Bu makinelerin bağlandığı cihazdaki VPN ayarlarına erişiminiz var mı? Genellikle VPN'ye bağlanan makineler ayarlarını VPN aygıtından alır.
jmreicha

Ana bilgisayardaki DNS aramalarının iyi çalıştığını açıklığa kavuşturmak için - etkilenen yalnızca Virtualbox misafiridir.
wrschneider

Yanıtlar:


17

Bu bir nedenle işe yaradı

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

VPN etkinken, ana bilgisayarın VirtualBox'ın Windows yapılandırmasından aldığı belirtilen DNS sunucularına istekleri iletmenin yanı sıra DNS aramaları için özel bir şey yapmasından şüpheleniyorum.


1
Sen günü kurtardın ahbap.
CantGetANick

Benim için mükemmel çalıştı!
Hai Minh Nguyen

1

Lubuntu 16.04 ile çok benzer bir durum vardı (diğer Ubuntus'ta aynı olmalı), ancak bu düzeltme durumu iyileştirmedi. En azından 16.04 ile sorun, NetworkManager'ın yerel bir DNS proxy'si (dnsmasq) kullanması ve en azından varsayılan yapılandırmada VPN bağlantılarıyla iyi oynamaması gibi görünüyor.

/Etc/NetworkManager/NetworkManager.conf dosyasında dns = dnsmasq öğesini yorumlama / silme

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

Muhtemelen dnsmasq yapılandırmak için bir yol var ama bu (bana) ana bilgisayara (dns, vb.) Eşdeğer erişim sağlar, bu yüzden araştırmadım. YMMV.


1

TL; DR:

  • ana bilgisayarın VPN durumunun (bağlı veya bağlı değil) bu arada değişmediğinden emin olarak VM'yi yeniden başlatın;
  • VirtualBox NAT altyapısının DNS isteklerini yakalamasına ve bunları ana bilgisayarın çözümleyicisine iletmesine izin verin; bu, bilgileri sorgulamak ve konuklara geri göndermek için ana bilgisayarın DNS API'sını kullanmaktır. Bunu şu şekilde ayarlayabilirsiniz:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on


VPN'ye bağlı bir ana makinede VM çalıştırmak, VPN durumu her değiştiğinde DNS sorunlarına yol açabilir. İki senaryo vardır:

  1. VM, VPN bağlantılı bir ana bilgisayarda üretilir ve belirli bir noktada VPN bağlantısı kesilir;
  2. VM, VPN bağlantılı olmayan bir ana bilgisayarda üretilir ve belirli bir noktada VPN bağlanır

1) VPN bağlı -> VPN bağlantısı kesildi

Bu durumda VM muhtemelen VPN sağlayıcı ağının bir parçası olan bir DNS adresi almış olacaktır. Bu genellikle dahili bir özel IP adresi olacaktır. İçeriğini kontrol edin cat /etc/resolv.conf. Benim durumumda aşağıdakileri alıyorum:

nameserver 10.8.8.1 <--- Bu, VPN Sağlayıcı ağının içindedir

nameserver 192.168.178.1 <--- Bu benim ev ağ geçidim (yönlendirici)

Şimdi ana makinenin VPN bağlantısından bağlantısını kesin:

  • VM'lerde DNS yapılandırması değişmez -> VM hala ana bilgisayar VPN'ye bağlı olmadığından erişilemeyen IP 10.8.8.1 hedefine DNS istekleri gönderecektir.

Daha ayrıntılı olarak:

  • paket, VirtualBox NAT ağı tarafından tanımlanan def GW'ye gönderilir, kaynak NATTed (ana bilgisayar IP adresi ile) ve son olarak ana bilgisayarın ağ geçidinize yönlendirecek yönlendirme tablosu tarafından işlenir.
  • Ev ağ geçidinizde LAN tarafında (özel adresler) 10.8.8.1 için hiçbir giriş olmadığından ve WAN tarafında (genel adresler) özel bir adres olarak iletemediği için paket bırakılacaktır.

2) VPN bağlantısı kesildi -> VPN bağlantılı

Bu durumda, VM, VM başlatıldığında ana bilgisayar VPN'ye bağlı olmadığından VPN ağ sağlayıcısının bir parçası olan DNS adresini alamaz. İçeriğini kontrol edin cat /etc/resolv.conf. Benim durumumda aşağıdakileri alıyorum:

nameserver 192.168.178.1 <--- Bu benim ev ağ geçidim (yönlendirici)

Şimdi ana bilgisayarı VPN bağlantısına bağlayın:

  • VM'lerde DNS yapılandırması değişmez -> VM hala 192.168.178.1 hedef IP'sine DNS istekleri gönderecektir, bu da VM'den gelen DNS isteği şu anda ele alındığı için ulaşılamıyor (buna rağmen ping hala çalışıyor) paketleri 192.168.178.1'e (dahili ev ağ geçidi IP adresinize) erişilemeyen VPN ağına yönlendirecek VPN Dokunma arayüzü.

Daha ayrıntılı olarak:

  • paket, VirtualBox NAT ağı tarafından tanımlanan def GW'ye gönderilir, VPN IP arayüz adresini değiştirerek IP başlığını değiştirecek olan VPN Tap arayüzüne gönderilir. adresi 192.168.178.1 DNS adresi olarak kalır.
  • bu paket daha sonra kaynak olarak ana bilgisayar IP adresine sahip bir dış IP Üstbilgisine (bu btw daha sonra ev ağ geçidindeki kaynak NAT ile değiştirilecektir) ve VPN Sunucusuna hedef adres olarak dahil edilecektir.
  • paket VPN ağına ulaştığında, kesilir. Hedef IP adresi şimdi tekrar VPN Sağlayıcı Ağının erişmenin bir yolu olmadığı 192.168.178.1 DNS adresidir (bunun, DNS sunucusu için VPN ağ sağlayıcınız tarafından kullanılan IP adresiyle tam olarak aynı olması halinde).
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.