Vagrant: Powolne połączenie internetowe z gościem

23

Próbuję założyć włóczęgę. Hostem jest Ubuntu 12.10. Oto mój włóczęgowski plik:

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

Problem polega na tym, że mój dostęp do Internetu z włóczęgi jest okropny. Jest bardzo wolny. Myślę, że tabele routingu mogą być pomieszane. Oto dane wyjściowe z 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

Istnieją 2 trasy do domyślnego miejsca docelowego, chociaż na tej samej karcie sieciowej i do tej samej bramy. Ale może to powoduje problem. Przynajmniej tak myślałem, ale usunięcie pierwszej domyślnej trasy nie pomaga.

Potrzebuję sieci tylko do hosta, aby udział NFS działał. NAT jest używany do przekierowania portów, a ja dodałem sieć zmostkowaną, aby spróbować zapewnić temu gościowi dostęp do Internetu.

Czy ktoś ma pojęcie, co jest nie tak? DNS jest bardzo powolny do rozwiązania i wolno pobiera cokolwiek z Internetu.

Sarah
źródło

Odpowiedzi:

28

Używasz wersji 2 Vagrant config?

Sarah podała odpowiedź, która polega na użyciu translatora DNS hostów NAT, ponieważ jest on szybszy i pomoże przyspieszyć.

Jednak w wersji 2 błędnej konfiguracji, z której korzysta obecnie większość ludzi, musisz dodać następujące elementy w pliku „Vagrantfile”, co zmusi maszynę wirtualną do korzystania z DNS NAT'd:

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

Możesz stwierdzić, czy korzystasz z konfiguracji v2, jeśli masz następujące wiersze lub coś na górze Vagrantfile

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
Jujhar Singh
źródło
2
To powinna być właściwa odpowiedź
namiot Enrique Moreno,
Próbowałem zwiększyć swoją włóczęgowską sieć i zadziałało, ale miałem problemy z np. Ściąganiem obrazów dokerów z powodu zbyt dużej liczby wyszukiwań DNS. Dlatego musiałem usunąć tę linię, co v.customize ["modifyvm", :id, "--natdnsproxy1", "on"] oznacza, że ​​dodałem ją do mojego Vagrantfile v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] wyglądu. Wygląda na to, że resolver hosta z jakiegoś powodu zwiększa wydajność sieci, a serwer proxy DNS łamie niektóre narzędzia.
xh3b4sd
1
DZIĘKUJĘ CI! Mój vm zabierał NA ZAWSZE i ssh do - to zwykle po prostu limit czasu - po podłączeniu do Internetu / sieci. To naprawiło to.
UnsettlingTrend
21

Odpowiedź:

Dodaj następujące do błędnej konfiguracji:

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

Zobacz tutaj więcej: Vagrant / VirtualBox DNS 10.0.2.3 nie działa

Sarah
źródło
3
To prawie dla mnie naprawiło, tyle że nie było customizemetody config.vm. Zamiast tego w mojej sekcji `config.vm.provider: virtualbox do | vb |` dodałem: vb.customize [„modyfikvm”,: id, „--natdnshostresolver1”, „on”]
Ovid
1
Odpowiedź podana przez „sarah” dotyczy starej składni konfiguracji VagrantFile, a odpowiedź podana przez „Ovid” dotyczy nowej składni konfiguracji. Możesz stwierdzić, czy używasz nowszej składni, sprawdzając, czy plik konfiguracji zawiera Vagrant.configure(2)u góry (zwróć uwagę 2)
caseyamcl
Jestem na Fedorze 22 i ustawienie tego "off"było moim rozwiązaniem.
Christopher Markieta
1

Ustawienia NAT nie poprawiły mojej prędkości pobierania.

Musiałem użyć następującego ustawienia, aby uzyskać prawidłowe prędkości pobierania.

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end
hennr
źródło