Vagabundo: conexión lenta a internet en invitado

23

Estoy tratando de configurar un vagabundo. El host es Ubuntu 12.10. Aquí está mi archivo vagabundo:

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

El problema es que mi acceso a Internet desde el vagabundo es terrible. Es muy lento. Creo que las tablas de enrutamiento podrían estar en mal estado. Aquí está la salida 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

Hay 2 rutas al destino predeterminado, aunque en la misma NIC y a la misma puerta de enlace. Pero quizás esto está causando un problema. Al menos eso es lo que pensé, pero eliminar la primera ruta predeterminada no ayuda.

Necesito una red solo de host para que el recurso compartido nfs funcione. NAT se utiliza para el reenvío de puertos, y he agregado la red puenteada para tratar de dar acceso a Internet a este invitado.

¿Alguien tiene alguna idea de lo que está mal? El DNS es muy lento para resolver, y es lento para descargar cualquier cosa de Internet.

sarah
fuente

Respuestas:

28

Ejecutando la versión 2 de la configuración de Vagrant?

Sarah proporcionó la respuesta que es utilizar el solucionador DNS de hosts NAT, ya que es más rápido y ayudará a acelerar las cosas.

Sin embargo, en la Versión 2 de la configuración vagabunda, que es lo que la mayoría de la gente está usando ahora, tendrá que agregar lo siguiente dentro de su 'Vagrantfile' que obligará a la VM a usar DNS NAT'd:

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

Puede saber si está utilizando la configuración v2 si tiene las siguientes líneas o algo en la parte superior de su Vagrantfile

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
Jujhar Singh
fuente
2
Esta debería ser la respuesta correcta
Tienda Enrique Moreno
Traté de impulsar mi red vagabunda y funcionó, pero tuve problemas con, por ejemplo, extraer imágenes de la ventana acoplable debido a demasiadas búsquedas de DNS. Por lo tanto, tuve que eliminar esta línea, lo que v.customize ["modifyvm", :id, "--natdnsproxy1", "on"] significa que acabo de agregar esto a mi Vagrantfile v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] Parece que el solucionador de host está aumentando el rendimiento de la red por algún motivo y el proxy DNS fractura algunas herramientas.
xh3b4sd
1
¡GRACIAS! Mi VM estaba tomando FOREVER para subir y entrar en ssh, por lo general, solo agotaba el tiempo de espera cuando estaba conectado a Internet / a la red. Esto lo solucionó.
UnsettlingTrend
21

Responder:

Agregue lo siguiente a la configuración vagabunda:

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

Vea aquí para más información: Vagrant / VirtualBox DNS 10.0.2.3 no funciona

sarah
fuente
3
Esto casi lo solucionó para mí, excepto que no había un customizemétodo config.vm. En cambio, en mi sección `config.vm.provider: virtualbox do | vb |`, agregué esto: vb.customize ["modifyvm",: id, "--natdnshostresolver1", "on"]
Ovidio
1
La respuesta proporcionada por 'sarah' es para la antigua sintaxis de configuración de VagrantFile, y la proporcionada por 'Ovid' es para la sintaxis de configuración más nueva. Puede saber si está utilizando la sintaxis más nueva al ver si su archivo de configuración incluye Vagrant.configure(2)en la parte superior (tenga en cuenta la 2)
caseyamcl
casi. esto funciona para mí github.com/mitchellh/vagrant/issues/1807#issuecomment-19132198 vagrant 1.4.3
choonkeat
Estoy en Fedora 22 y configurar esto "off"fue mi solución.
Christopher Markieta
1

La configuración de NAT no mejoró mi velocidad de descarga.

Tuve que usar la siguiente configuración para obtener las tasas de descarga adecuadas.

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