Vagrant / VirtualBox DNS 10.0.2.3 non funziona


78

Sto eseguendo una nuova installazione di Linux Mint Nadia (14). Sto seguendo le istruzioni su Vagrant Getting Started ma mi sono bloccato sul Provisioning . Sembra che la scatola di Vagrant non possa connettersi all'esterno e quindi non posso installare nulla utilizzando Chef o Puppet.

Nel Vagrant di base resolve.confcontiene nameserver 10.0.2.3. Ma con quel set non posso fare il ping us.archive.ubuntu.com.

Se lo cambio in 8.8.8.8allora posso eseguire il ping us.archive.ubuntu.comma non rimane impostato e dopo un riavvio torna a 10.0.2.3- quindi il provisioning non riesce di nuovo.

Idealmente, vorrei 10.0.2.3lavorare sulla mia configurazione. In mancanza, vorrei un modo per cambiare in resolv.confmodo permanente in modo da poter eseguire il provisioning.


2
Cordiali saluti, ho appena riscontrato questo stesso problema con la ubuntu/xenial64scatola, e si è rivelato essere un bug con la scatola stessa .
Aidan Feldman,

@AidanFeldman stesso per me. Sono appena passato a bento/ubuntu-16.04e DNS funziona bene senza ulteriori correzioni.
HenningCash,

Risposte:


84

Puoi aggirare questo problema in due modi, entrambi presenti nel manuale di VirtualBox :

Abilitazione del proxy DNS in modalità NAT

Il motore NAT per impostazione predefinita offre gli stessi server DNS al guest configurati sull'host. In alcuni scenari, può essere desiderabile nascondere gli IP del server DNS dal guest, ad esempio quando queste informazioni possono cambiare sull'host a causa della scadenza dei lease DHCP. In questo caso, è possibile indicare al motore NAT di agire come proxy DNS utilizzando il comando seguente:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

Utilizzo del resolver dell'host come proxy DNS in modalità NAT

Per la risoluzione dei nomi di rete, il server DHCP del motore NAT offre un elenco di server DNS registrati dell'host. Se per qualche motivo è necessario nascondere questo elenco di server DNS e utilizzare le impostazioni del resolver dell'host, forzando in tal modo il motore NAT VirtualBox a intercettare le richieste DNS e inoltrarle al resolver dell'host, utilizzare il comando seguente:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

Si noti che questa impostazione è simile alla modalità proxy DNS, tuttavia mentre la modalità proxy inoltra solo le richieste DNS ai server appropriati, la modalità risolutore interpreterà le richieste DNS e utilizzerà l'API DNS dell'host per interrogare le informazioni e restituirle al guest .


1
Grazie. "L'uso del resolver dell'host come proxy DNS in modalità NAT" ha funzionato. È un peccato che devo farlo per ogni installazione di Vagrant.
Rudolf Vavruch,

1
Uso quasi sempre la modalità bridge per le macchine virtuali, che elimina il problema (e tutta una serie di altri problemi).
Michael Hampton

3
Ho appena avuto il problema con un aggiornamento al 4.2.20, "L'uso del risolutore dell'host come proxy DNS in modalità NAT" ha funzionato anche per me. Grazie !
Edomaur,

73

In seguito su https://serverfault.com/a/453260/14832 , se si utilizza un formato di configurazione Vagrantfile versione 2, quello che inizia:

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

Quindi potresti voler aggiungere questo a quel file di configurazione:

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

Se stai usando il vecchio formato di configurazione, ma stai usando Vagrant 1.1+, puoi aggiungerlo alla fine del file:

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

2
Aggiungendo questo al mio Vagrantfilerisolto il problema per cui non avrei potuto eseguire gem install...senza ottenere stupidi errori DNS :) Grazie!
Nick,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.