96 votes

Comment faire en sorte que les VM de VirtualBox utilisent le DNS de l'hôte ?

J'utilise VirtualBox pour mes VMs. La configuration du réseau de mon bureau est sans fil, c'est-à-dire que je me connecte au réseau WiFi de mon entreprise, qui dispose d'un DNS local pour résoudre les noms locaux (tels que quelque chose.mycompany.com allant à 123.45.67.89). Lorsque je crée une nouvelle VM, elle peut se connecter à l'Internet extérieur en héritant de la connexion de l'hôte, mais elle ne résout pas les noms locaux à l'aide du DNS local. Je dois donc aller dans /etc/hosts sur la VM et faire manuellement une entrée après avoir résolu le nom sur l'hôte, ce qui est ennuyeux.

Existe-t-il un moyen de faire en sorte que VirtualBox connecte automatiquement l'invité au DNS de l'hôte afin que je n'aie pas à effectuer cette étape manuelle ? Mon hôte est OSX Mountain Lion les VMs sont généralement Ubuntu mais je doute que cela ait de l'importance.

130voto

Josiah Points 1892

Pour activer Mode Proxy DNS utilisant le résolveur de l'hôte , exécutez la commande suivante :

VBoxManage modifyvm "_<VMname>_" --natdnshostresolver1 on

Par conséquent, les requêtes DNS du système d'exploitation invité seront interceptées et résolues à l'aide de l'API DNS de l'hôte, plutôt que de faire en sorte que le système d'exploitation invité se connecte à des serveurs DNS externes, comme c'est le cas avec l'application --natdnsproxy1 on .

Vous pouvez obtenir le nom de la VM en exécutant VBoxManage list runningvms .

8voto

Michel Samia Points 181

Pour moi, cela m'a aidé d'ajouter un autre adaptateur avec l'adaptateur hôte seulement tout en gardant le premier (mode NAT) là aussi.

[ screenshot1

7voto

Bob Points 101

Il s'agit d'un des premiers résultats de Google, je voulais donc clarifier les choses pour les autres. La solution de Josiah a fonctionné pour moi avec l'ajout de la ligne :

hosts: files dns à /etc/nsswitch.conf

Comme d'autres l'ont souligné, la solution originale ne fonctionne pas au-dessus d'Ubuntu 16.04. Ma VM invitée est Ubuntu 16.04.

Référence Création d'un serveur Linux

6voto

Prahlad Yeri Points 917

Oui, c'est possible. Il existe de nombreux modes disponibles dans VirtualBox pour établir un réseau entre l'invité et l'hôte. Plutôt que d'utiliser le mode NAT (qui est le mode par défaut), vous pouvez utiliser le mode pont dans lequel votre machine invitée peut être traitée comme une entité entièrement séparée sur votre réseau. Ainsi, non seulement votre hôte, mais toute autre machine (comme votre serveur DNS) verra votre invité comme une machine distincte.

Une fois que vous avez configuré le mode bridge, il suffit d'aller dans votre invité ubuntu et de lui faire utiliser le nom ou l'ip du serveur DNS de votre entreprise. Lisez ce tutoriel pour plus d'informations : http://prahladyeri.wordpress.com/2012/08/02/how-to-setup-a-virtual-lan-on-your-machine-using-oracle-virtualbox/

2voto

J'ai également remarqué que ma connexion VPN interfère avec la connexion internet de vagrant.

Grâce à ce stackexchange, j'ai pu résoudre le problème en intégrant dans mon fichier Vagrant les éléments suivants

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

Et j'ai évité l'ennui d'avoir à fermer la boîte pour la modifier via la ligne de commande, puis la reprovisionner.

export PATH=$PATH:/c/Program\ Files/Oracle/VirtualBox/
VBoxManage list runningvms
export vbox=`VBoxManage list runningvms | cut -d '"' -f 2`
VBoxManage controlvm $vbox poweroff
VBoxManage modifyvm $vbox --natdnshostresolver1 on
vagrant.exe up --provision

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X