Я хочу использовать vagrant для моделирования живой настройки сети в целях отладки.

Точнее говоря, я хочу, чтобы сеть виртуальных машин была похожа на следующую:

---> 10.1.1.58/30 eth0  router1 eth1 x.x.x.130 (private network)
  |                                              |
  | bridge                                       | bridge
  |                                              |
---> 10.1.1.62/30 eth0  router2 eth1 x.x.x.131 (private network)

Мой Vagrantfile в настоящее время содержит:

Vagrant.configure(2) do |config|
  config.vm.box = "precise64"

  config.vm.define :router1 do |router1|
    router1.vm.hostname = "router1"
    router2.vm.network :public_network
    router1.vm.network :private_network, ip: "x.x.x.130"
  end

  config.vm.define :router2 do |router2|
    router2.vm.hostname = "router2"
    router2.vm.network :public_network
    router2.vm.network :private_network, ip: "x.x.x.131"
  end
end

Тем не менее, vagrant up производит 2 виртуальные машины с 3 сетевыми адаптерами в каждой. eth0 - это своего рода сеть NAT. Eth1, который подключен к локальной сети (что я и хочу). И eth2, у которого есть ip, как я хочу.

Как удалить NAT'd eth0 и убедиться, что на хосте vboxnet0 не виден с хоста. Или vboxnet0 не имеет IP-адреса на хосте, поэтому он действует только как мост между маршрутизаторами 1 и 2?

1 ответ1

1

Кажется, у вас есть опечатка в 1-м блоке (router2 вместо router1). Кроме того, Vagrant/VBox определяет сетевой адаптер по умолчанию, подключенный к NAT.

Вы можете явно указать, на какой сетевой адаптер вы ссылаетесь, с помощью параметра ":adapter" config.vm.network "private_network", type: "dhcp", adapter: 1 or config.vm.network :public_network, auto_config: true, adapter: 1

Вы также можете использовать другой подход, как здесь (http://www.jedi.be/blog/2011/11/04/vagrant-virtualbox-hostonly-pxe-vlans/).

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