Vagrant: connexion Internet lente dans l'invité

23

J'essaie de créer un vagabond. L'hôte est Ubuntu 12.10. Voici mon dossier vagabond:

Vagrant::Config.run do |config|

    config.vm.share_folder("v-root", "/vagrant", ".", :nfs => true)
    config.vm.network :bridged, :bridge => "eth0"

    config.vm.define "restserver" do |chefs_config|

        chefs_config.vm.box = "precise64"
        chefs_config.vm.box_url = "http://files.vagrantup.com/precise64.box"
        chefs_config.vm.host_name = "restserver"
        chefs_config.vm.network :hostonly, "192.168.20.50"
        chefs_config.vm.forward_port 80, 8080

        config.vm.provision :chef_solo do |chef|

            chef.log_level = :debug

            chef.cookbooks_path = "cookbooks"
            chef.run_list.clear

            chef.add_recipe "apt"
            chef.add_recipe "base"
            chef.add_recipe "mongodb::default"
            chef.add_recipe "nginx"
        end
    end
end

Le problème est que mon accès Internet depuis le vagabond est terrible. C'est très lent. Je pense que les tables de routage pourraient être foirées. Voici la sortie de route -n:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
0.0.0.0         10.0.2.2        0.0.0.0         UG    100    0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2

Il existe 2 itinéraires vers la destination par défaut, bien que sur la même carte réseau et vers la même passerelle. Mais peut-être que cela cause un problème. C'est du moins ce que je pensais, mais supprimer la première route par défaut n'aide pas.

J'ai besoin d'un réseau hôte uniquement pour que le partage nfs fonctionne. NAT est utilisé pour la redirection de port, et j'ai ajouté le réseau ponté pour essayer de donner à cet invité l'accès à Internet.

Quelqu'un at-il une idée de ce qui ne va pas? Le DNS est très lent à résoudre et il est lent de télécharger quoi que ce soit à partir d'Internet.

Sarah
la source

Réponses:

28

Vous exécutez la version 2 de la configuration Vagrant?

Sarah a fourni la réponse qui consiste à utiliser le résolveur DNS des hôtes NAT car il est plus rapide et aidera à accélérer les choses.

Cependant, dans la version 2 de la configuration vagrant qui est ce que la plupart des gens utilisent maintenant, vous devrez ajouter les éléments suivants dans votre `` Vagrantfile '', ce qui forcera la machine virtuelle à utiliser DNS NAT:

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

Vous pouvez dire si vous utilisez la configuration v2 si vous avez les lignes suivantes ou quelque chose en haut de votre Vagrantfile

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
Jujhar Singh
la source
2
Cela devrait être la bonne réponse
Enrique Moreno Tent
J'ai essayé de renforcer mon réseau vagabond et cela a fonctionné, mais j'ai eu des problèmes, par exemple, en tirant des images de docker en raison de trop de recherches DNS. J'ai donc dû supprimer cette ligne v.customize ["modifyvm", :id, "--natdnsproxy1", "on"] signifie que je viens de l'ajouter à mon Vagrantfile v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] apparence. Le résolveur hôte augmente les performances du réseau pour une raison quelconque et le proxy DNS frags certains outils.
xh3b4sd
1
JE VOUS REMERCIE! Mon vm prenait FOREVER pour monter et ssh dans - il serait généralement juste un délai d'attente - lorsqu'il est connecté à Internet / au réseau. Cela l'a corrigé.
UnsettlingTrend
21

Répondre:

Ajoutez ce qui suit à la configuration vagabonde:

config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]

Voir ici pour plus: Vagrant / VirtualBox DNS 10.0.2.3 ne fonctionne pas

Sarah
la source
3
Cela m'a presque corrigé, sauf qu'il n'y avait pas de customizeméthode config.vm. Au lieu de cela, dans ma section `config.vm.provider: virtualbox do | vb |`, j'ai ajouté ceci: vb.customize ["modifyvm",: id, "--natdnshostresolver1", "on"]
Ovid
1
La réponse fournie par 'sarah' est pour l'ancienne syntaxe de configuration VagrantFile, et celle fournie par 'Ovid' est pour la syntaxe de configuration plus récente. Vous pouvez dire si vous utilisez la nouvelle syntaxe en voyant si votre fichier de configuration inclut Vagrant.configure(2)en haut (notez le 2)
caseyamcl
presque. cela fonctionne pour moi github.com/mitchellh/vagrant/issues/1807#issuecomment-19132198 vagrant 1.4.3
choonkeat
Je suis sur Fedora 22 et le régler "off"était ma solution.
Christopher Markieta
1

Les paramètres NAT n'ont pas amélioré ma vitesse de téléchargement.

J'ai dû utiliser le paramètre suivant pour obtenir des taux de téléchargement appropriés.

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end
hennr
la source