Vagrant:我是否正确设置了三角形拓扑?

Vagrant: Am I setting up the triangle topology correctly?

我正在尝试使用 vagrant 建立一个三角形的三角形拓扑结构,如下所示:

  B
 / \
A---C

但需要确定我的设置是否正确。每个节点应该有两个网络接口,我在 运行 ifconfig 时看到,(显示 enp0s3 = vagrant default; enp0s8 = eth1 ; enp0s9 = eth2 ; lo = 本地环回)。

然而,当运行使用 link(A,C) 在 sudo ifdown 命令后中断从 A 到 C 的跟踪路由时,我仍然只看到 treceroute 输出单行显示C的IP,不显示B的IP。这就是让我想知道我的 vagrant 设置是否正确的原因。

我已尝试使用不同的网络掩码值,但仍然在 traceroute 上使用 link(A,C)=down 从 A 到 C 获得 1 跳。

我运行正在使用来自 ppa 包 (5.2.x) 和 vagrant 版本 2.2.x 的最新 Virtualbox。主机是 运行ning 18.04,VM 的来宾是 运行ning 16.04.

...
...
Vagrant.configure(2) do |config|
  ...
  ...
  config.vm.define "A" do |a|
    a.vm.network "private_network",
      ip: "192.168.18.3",
      netmask: "27",
      virtualbox__intnet: true
    a.vm.network "private_network",
      ip: "192.168.18.8",
      netmask: "29",
      virtualbox__intnet: true
    a.vm.provider :virtualbox do |vb|
      vb.customize ["modifyvm", :id, "--memory", "2024"]
      vb.customize ["modifyvm", :id, "--cpus", "1"]
    end
  end

  config.vm.define "B" do |b|
    b.vm.network "private_network",
      ip: "192.168.18.4",
      netmask: "27",
      virtualbox__intnet: true
    b.vm.network "private_network",
      ip: "192.168.18.5",
      netmask: "28",
      virtualbox__intnet: true
    b.vm.provider :virtualbox do |vb|
      vb.customize ["modifyvm", :id, "--memory", "2024"]
      vb.customize ["modifyvm", :id, "--cpus", "1"]
    end
  end

  config.vm.define "C" do |c|
    c.vm.network "private_network",
      ip: "192.168.18.6",
      netmask: "28",
      virtualbox__intnet: true
    c.vm.network "private_network",
      ip: "192.168.18.7",
      netmask: "29",
      virtualbox__intnet: true
    c.vm.provider :virtualbox do |vb|
      vb.customize ["modifyvm", :id, "--memory", "2024"]
      vb.customize ["modifyvm", :id, "--cpus", "1"]
    end
  end
end
...
...
virtualbox__intnet: true

这会将所有六个网络接口置于同一内部网络中。

要创建三个独立的子网,请按名称指定内部网络,例如:

virtualbox__intnet: "netAB"
virtualbox__intnet: "netBC"
virtualbox__intnet: "netCA"