Vagrant: правильно ли я настраиваю топологию треугольника? - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь настроить топологию треугольник-треугольник с помощью vagrant следующим образом:

  B
 / \
A---C

Но нужно убедиться, что мои настройки верны. Предполагается, что каждый узел имеет два сетевых интерфейса, которые я вижу, когда запускаю ifconfig, (показывает enp0s3 = vagrant default; enp0s8 = eth1; enp0s9 = eth2; lo = локальная петля).

Тем не менее, при выполнении трассировки маршрута от A до C с разрывом связи (A, C) после команды sudo ifdown, я все еще вижу, что вывод treceroute показывает только IP C в одной строке и не показывает IP B,Это то, что заставило меня задуматься, правильна ли моя конфигурация vagrant.

Я пробовал с различными значениями маски сети, но все равно получаю 1 переход на traceroute от A до C с link(A,C)=down.

Я использую последнюю версию Virtualbox, выходящую из пакета ppa (5.2.x) и версии vagrant 2.2.x. Хост работает 18.04, а гости для виртуальных машин - 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
...
...

1 Ответ

0 голосов
/ 12 октября 2019
virtualbox__intnet: true

Это позволяет разместить все шесть сетевых интерфейсов в одной внутренней сети.

Чтобы создать три отдельные подсети, укажите имя внутренней сети, например:

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