Vraag Vagrant / VirtualBox DNS 10.0.2.3 werkt niet


Ik heb een nieuwe installatie van Linux Mint Nadia (14). Ik volg de instructies op Vagrant Ermee beginnen maar zijn vastgelopen op de provisioning. Het lijkt erop dat de Vagrant-box geen verbinding naar buiten kan maken en dus kan ik niets installeren met Chef of Puppet.

In de basis Vagrant resolve.conf bevat nameserver 10.0.2.3. Maar met die set kan ik niet pingen us.archive.ubuntu.com.

Als ik het verander in 8.8.8.8 dan kan ik pingelen us.archive.ubuntu.com maar het blijft niet staan, en na een reboot gaat het terug naar 10.0.2.3 - zo mislukt de provisioning opnieuw.

Idealiter zou ik willen voor 10.0.2.3 om aan mijn setup te werken. Als dat niet lukt, wil ik graag een manier om permanent te veranderen resolv.conf zodat ik kan regelen.


68
2017-11-28 20:45


oorsprong


Ter informatie dat ik dit probleem net met de ubuntu/xenial64 doos, en het bleek te zijn een bug met de doos zelf. - Aidan Feldman
@AidanFeldman hetzelfde voor mij. Gewoon overgeschakeld naar bento/ubuntu-16.04 en DNS werkt prima zonder verdere oplossingen. - HenningCash


antwoorden:


U kunt dit probleem op twee manieren omzeilen, beide zijn dat in de handleiding VirtualBox:

DNS-proxy inschakelen in NAT-modus

De NAT-engine biedt standaard dezelfde DNS-servers aan de gast   die zijn geconfigureerd op de host. In sommige scenario's kan het zijn   wenselijk om de IP-adressen van de DNS-server van de gast te verbergen, bijvoorbeeld wanneer   deze informatie kan op de host veranderen door het verlopen van DHCP-lease.   In dit geval kunt u aangeven dat de NAT-engine moet fungeren als DNS-proxy   het volgende commando:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

De resolver van de host gebruiken als DNS-proxy in NAT-modus

Voor het oplossen van netwerknamen biedt de DHCP-server van de NAT-engine   een lijst met geregistreerde DNS-servers van de host. Als je om wat voor reden dan ook bent   moet deze DNS-serverlijst verbergen en de resolver van de host gebruiken   instellingen, waardoor de VirtualBox NAT-engine wordt gedwongen om DNS te onderscheppen   aanvragen en doorsturen naar de resolver van de host, gebruikt u het volgende   commando:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

Merk echter op dat deze instelling vergelijkbaar is met de DNS-proxy-modus   terwijl de proxy-modus DNS-aanvragen alleen doorstuurt naar de juiste   servers, de resolver-modus interpreteert de DNS-aanvragen en gebruikt de   host DNS-API om de informatie op te vragen en terug te sturen naar de gast.


74
2017-11-29 01:36



Dank je. "De resolver van de host gebruiken als een DNS-proxy in de NAT-modus" deed het goed. Het is alleen jammer dat ik dit voor elke Vagrant-installatie moet doen. - Rudolf Vavruch
Ik gebruik bijna altijd de overbrugde modus voor VM's, waardoor het probleem (en een hele reeks andere problemen) wordt geëlimineerd. - Michael Hampton♦
Heb net het probleem gehad met een upgrade naar 4.2.20, "Het gebruik van de resolver van de host als DNS-proxy in NAT-modus" heeft mij ook de slag gedaan. Dankje ! - edomaur


Opvolgen https://serverfault.com/a/453260/14832, als u een versie 2 Vagrantfile config-indeling gebruikt, degene die begint:

Vagrant.configure("2") do |config|

Dan wilt u dit misschien aan dat configuratiebestand toevoegen:

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

Als u de oude configuratie-indeling gebruikt, maar Vagrant 1.1+ gebruikt, kunt u dit toevoegen aan het einde van het bestand:

Vagrant.configure("2") do |config|
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end
end

63
2018-05-08 22:13



Dit aan mijn toevoegen Vagrantfile loste het probleem op waar ik niet kon rennen gem install... zonder domme DNS-fouten te krijgen :) Bedankt! - Nick