Vagrant: ligação lenta à Internet nos hóspedes

22

Estou tentando montar um vagabundo. Host é o Ubuntu 12.10. Aqui está o meu arquivo vagante:

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

O problema é que o meu acesso à internet de dentro do vagrant é terrível. É muito lento. Eu acho que as tabelas de roteamento podem estar confusas. Aqui está a saída 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

Existem duas rotas para o destino padrão, embora na mesma NIC e para o mesmo gateway. Mas talvez isso esteja causando um problema. Pelo menos foi o que pensei, mas excluir a primeira rota padrão não ajuda.

Eu preciso de rede somente de host para que o compartilhamento nfs funcione. O NAT é usado para o encaminhamento de porta e eu adicionei a rede de ponte para tentar dar a esse convidado acesso à Internet.

Alguém tem alguma idéia do que está errado? O DNS é muito lento para resolver e demora a baixar qualquer coisa da Internet.

    
por sarah 03.04.2013 / 23:18

3 respostas

21

Resposta:

Adicione o seguinte à configuração do vagrant:

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

Veja aqui para saber mais: Vagrant / VirtualBox DNS 10.0.2.3 não está funcionando

    
por 05.04.2013 / 21:18
27

Executando a versão 2 da configuração do Vagrant?

Sarah forneceu a resposta que é usar o resolvedor de DNS dos hosts NAT, pois é mais rápido e ajudará a acelerar as coisas.

No entanto, na versão 2 da configuração do vagrant, que é o que a maioria das pessoas está usando agora, você terá que adicionar o seguinte dentro do 'Vagrantfile' que forçará a VM a usar o DNS NAT:

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

Você pode dizer se está usando a configuração da v2 se tiver as seguintes linhas ou algo no topo do seu Vagrantfile

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    
por 14.05.2014 / 12:47
1

As configurações de NAT não melhoraram minha velocidade de download.

Eu tive que usar a seguinte configuração para obter taxas de download adequadas.

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end
    
por 01.06.2016 / 12:29