Vagrant / VirtualBox DNS 10.0.2.3 ne fonctionne pas

78

Je lance une nouvelle installation de Linux Mint Nadia (14). Je suis les instructions sur Vagrant Getting Started mais je suis resté bloqué sur le provisioning . Il semble que la boîte Vagrant ne puisse pas se connecter à l'extérieur et je ne peux donc rien installer avec Chef ou Puppet.

Dans le vagabond de base resolve.confcontient nameserver 10.0.2.3. Mais avec cet ensemble, je ne peux pas cingler us.archive.ubuntu.com.

Si je le modifie, 8.8.8.8alors je peux faire un ping us.archive.ubuntu.commais il ne reste pas configuré, et après un redémarrage, il redevient 10.0.2.3- de sorte que le provisioning échoue à nouveau.

Idéalement, j'aimerais 10.0.2.3travailler sur ma configuration. Faute de quoi, j'aimerais un moyen de changer de resolv.conffaçon permanente afin de pouvoir effectuer le provisionnement.

Rudolf Vavruch
la source
2
FYI que je viens de frapper ce même problème avec la ubuntu/xenial64boîte, et il s’est avéré être un bug avec la boîte elle-même .
Aidan Feldman
@AidanFeldman même pour moi. Il suffit de passer à bento/ubuntu-16.04et le DNS fonctionne correctement sans autre correction.
HenningCash

Réponses:

84

Vous pouvez contourner ce problème de deux manières, qui figurent toutes deux dans le manuel de VirtualBox :

Activation du proxy DNS en mode NAT

Le moteur NAT offre par défaut les mêmes serveurs DNS à l'invité que ceux configurés sur l'hôte. Dans certains scénarios, il peut être souhaitable de masquer les adresses IP du serveur DNS de l'invité, par exemple lorsque ces informations peuvent changer sur l'hôte en raison de l'expiration des baux DHCP. Dans ce cas, vous pouvez indiquer au moteur NAT d'agir en tant que proxy DNS à l'aide de la commande suivante:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

Utilisation du résolveur de l'hôte en tant que proxy DNS en mode NAT

Pour résoudre les noms de réseau, le serveur DHCP du moteur NAT propose une liste des serveurs DNS enregistrés de l'hôte. Si, pour une raison quelconque, vous devez masquer cette liste de serveurs DNS et utiliser les paramètres de résolveur de l'hôte, obligeant ainsi le moteur NAT de VirtualBox à intercepter les requêtes DNS et à les transmettre au résolveur de l'hôte, utilisez la commande suivante:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

Notez que ce paramètre est similaire au mode proxy DNS. Toutefois, alors que le mode proxy transfère uniquement les demandes DNS aux serveurs appropriés, le mode de résolution interprète les demandes DNS et utilise l'API DNS de l'hôte pour interroger les informations et les renvoyer à l'invité. .

Michael Hampton
la source
1
Je vous remercie. "Utiliser le résolveur de l'hôte en tant que proxy DNS en mode NAT" a fait l'affaire. C'est juste dommage que je doive faire cela pour chaque installation Vagrant.
Rudolf Vavruch
1
J'utilise presque toujours le mode ponté pour les ordinateurs virtuels, ce qui élimine le problème (et une foule d'autres problèmes).
Michael Hampton
3
Le problème avec une mise à niveau vers la version 4.2.20, "Utiliser le résolveur de l'hôte en tant que proxy DNS en mode NAT" a également été décisif. Merci !
Edomaur
73

Suite sur https://serverfault.com/a/453260/14832 , si vous utilisez un format de configuration Vagrantfile version 2, celui qui commence:

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

Ensuite, vous voudrez peut-être ajouter ceci à ce fichier de configuration:

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

Si vous utilisez l'ancien format de configuration, mais que vous utilisez Vagrant 1.1+, vous pouvez l'ajouter à la fin du fichier:

Vagrant.configure("2") do |config|
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end
end
JonTheNiceGuy
la source
2
Ajouter ceci à mon Vagrantfileproblème résolu: je ne pouvais pas courir gem install...sans obtenir d'erreurs DNS stupides :) Merci!
Nick