Vagrant: Langsame Internetverbindung im Gast

23

Ich versuche einen Landstreicher zu gründen. Host ist Ubuntu 12.10. Hier ist meine vagabundierende Akte:

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

Das Problem ist, dass mein Internetzugang innerhalb des Vagabunden schrecklich ist. Es ist sehr langsam. Ich denke, die Routing-Tabellen könnten durcheinander sein. Hier ist die Ausgabe von 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

Es gibt zwei Routen zum Standardziel, die sich jedoch auf derselben Netzwerkkarte und zum selben Gateway befinden. Aber vielleicht verursacht dies ein Problem. Zumindest dachte ich das, aber das Löschen der ersten Standardroute hilft nicht.

Ich brauche nur Host-Netzwerk, damit die NFS-Freigabe funktioniert. NAT wird für die Portweiterleitung verwendet, und ich habe das Bridged-Netzwerk hinzugefügt, um diesem Gast den Zugang zum Internet zu ermöglichen.

Hat jemand eine Ahnung, was los ist? DNS löst sich nur sehr langsam auf und lädt nur langsam Daten aus dem Internet herunter.

Sarah
quelle

Antworten:

28

Laufen Version 2 der Vagrant-Konfiguration?

Sarah hat die Antwort geliefert, die darin besteht, den DNS-Resolver des NAT-Hosts zu verwenden, da dieser schneller ist und die Dinge beschleunigt.

In Version 2 der Vagrant-Konfiguration, die die meisten Benutzer derzeit verwenden, müssen Sie jedoch Folgendes in Ihre 'Vagrant-Datei' einfügen, wodurch die VM gezwungen wird, NAT-DNS zu verwenden:

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

Sie können feststellen, ob Sie v2 config verwenden, wenn Sie die folgenden Zeilen oder etwas im oberen Bereich haben Vagrantfile

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
Jujhar Singh
quelle
2
Dies sollte die richtige Antwort sein
Enrique Moreno Tent
Ich habe versucht, mein vagabundierendes Netzwerk zu vergrößern, und es hat funktioniert, aber ich hatte Probleme, z. B. Docker-Images aufgrund zu vieler DNS-Lookups zu ziehen. Daher musste ich diese Zeile entfernen, was v.customize ["modifyvm", :id, "--natdnsproxy1", "on"] bedeutet, dass ich dies meiner Ansicht nach hinzugefügt habe. Vagrantfile v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] Der Host-Resolver steigert aus irgendeinem Grund die Netzwerkleistung und der DNS-Proxy beeinträchtigt einige Tools.
xh3b4sd
1
DANKE DIR! Mein vm nahm für immer auf und ssh in - es würde in der Regel nur Timeout - wenn mit dem Internet / dem Netzwerk verbunden. Das hat es behoben.
UnsettlingTrend
21

Antworten:

Fügen Sie der vagabundierenden Konfiguration Folgendes hinzu:

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

Weitere Informationen finden Sie hier: Vagrant / VirtualBox DNS 10.0.2.3 funktioniert nicht

Sarah
quelle
3
Das hat es für mich beinahe behoben, außer dass es keine customizeMethode dafür gab config.vm. Stattdessen habe ich in meinem Abschnitt config.vm.provider: virtualbox do | vb | Folgendes hinzugefügt: vb.customize ["modifyvm",: id, "--natdnshostresolver1", "on"]
Ovid,
1
Die Antwort von 'sarah' bezieht sich auf die alte VagrantFile-Konfigurationssyntax und die Antwort von 'Ovid' auf die neuere Konfigurationssyntax. Sie können feststellen , ob Sie die neuere Syntax verwenden , indem zu sehen , wenn Sie die Konfigurationsdatei enthält Vagrant.configure(2)an der Spitze (beachten Sie die 2)
caseyamcl
fast. das funktioniert bei mir github.com/mitchellh/vagrant/issues/1807#issuecomment-19132198 vagrant 1.4.3
choonkeat
Ich bin auf Fedora 22 und dies "off"war meine Lösung.
Christopher Markieta
1

Die NAT-Einstellungen haben meine Download-Geschwindigkeit nicht verbessert.

Ich musste die folgende Einstellung verwenden, um die richtigen Download-Raten zu erhalten.

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