7

Использование vagrant 1.7.2 на OSX (MacBook Pro), гости Ubuntu 14.04, VirtualBox 4.3.26. Mac подключен к миру через стандартный интерфейс WiFi.

Я хочу, чтобы ящики Vagrant использовали мостовую сеть в локальной сети в качестве основного (и единственного) интерфейса. Это необходимо для экспериментов с tcptraceroute, который не работает правильно через сеть NAT. В моем Vagrantfile сейчас есть:

Vagrant.configure(2) do |config|
  config.vm.provider "virtualbox"
  config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
  config.vm.box = 'ubuntu/trusty64'
end

И то, что я получаю внутри коробки Vagrant:

$ ip -o -4 a
1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
2: eth0    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0\       valid_lft forever preferred_lft forever
3: eth1    inet 172.16.69.16/24 brd 172.16.69.255 scope global eth1\       valid_lft forever preferred_lft forever

(172.16.69/24 - мой адрес в локальной сети). Если я вручную отключу eth0 и переключу маршрут по умолчанию на 172.16.69.1 тогда я смогу использовать VirtualBox так, как я хочу:

# ifdown eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/08:00:27:56:a8:46
Sending on   LPF/eth0/08:00:27:56:a8:46
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 10.0.2.2 port 67 (xid=0x69745103)
# route add -net default gw 172.16.69.1
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use    Iface
0.0.0.0         172.16.69.1     0.0.0.0         UG    0      0        0 eth1
172.16.69.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

И теперь tcptraceroute работает правильно.

У меня вопрос: как я могу настроить Vagrantfile, чтобы не использовать интерфейс eth0 как интерфейс NAT и просто использовать его как единый мостовой интерфейс?

Я попытался поиграться с config.vm.network "private_network" как частично объяснено в http://docs.vagrantup.com/v2/virtualbox/networking.html, но, насколько я понял, все, что он сделал, это добавление интерфейсов в коробку. , а не заменить стандартный интерфейс пользователя NAT на eth0 .

1 ответ1

7

Вы можете попробовать добавить adapter: 1 в конфиг. Хотя я все еще нахожу некоторые проблемы с этим. Посмотрим, поможет ли это вам откуда-то.

Пример:

config.vm.network "public_network", bridge: "Broadcom BCM5709C", adapter: "1", ip: "192.168.x.xx"

У вас все еще будет eth1, который является сетью только для хоста ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .