Vagrant 模拟网络环境

Vagrant 模拟网络环境

我想使用 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 的 eth0,并确保主机上的 vboxnet0 在主机上不可见。或者 vboxnet0 在主机上没有 IP,因此它只是充当路由器 1 和路由器 2 之间的桥梁?

答案1

您似乎在第一个块中打错了(将 router1 写成了 router2)。此外,Vagrant/VBox 定义了一个连接到 NAT 的默认 NIC。

您可以通过“:adapter”参数明确定义所引用的 NIC 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/)。

相关内容