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:
- VM, VPN bağlantılı bir ana bilgisayarda üretilir ve belirli bir noktada VPN bağlantısı kesilir;
- 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).