Проблема: Каждый компьютер в той же сети должен иметь возможность транслировать все элементы, включая себя.Многоадресная рассылка с `socat` в Vagrant & VirtualBox Env
Это попытка получить многоадресную рассылку с socat
с виртуальными машинами, созданными в Vagrant. & VirtualBox Envrionment. Кажется, здесь все по-другому работает, поэтому я сначала попытался посмотреть, как многоадресная рассылка работает на физических машинах.
У меня есть 3 физических машины с установленным на них сервером ubuntu 12.04 и названы как pc0
, pc1
и pc2
.
На каждой машине я бегу: socat STDIO UDP-DATAGRAM:224.0.0.1:2200,bind=:2200
... и когда я напечатал hi from pc0
из pc0
, он транслировался в себе и другие 2 машины, и это то, что я хотел (а я надеюсь, что это как групповой должен работать):
[email protected]:~$ socat STDIO UDP-DATAGRAM:224.0.0.1:2200,bind=:2200
hi from pc0
hi from pc0
[email protected]:~$ socat STDIO UDP-DATAGRAM:224.0.0.1:2200,bind=:2200
hi from pc0
[email protected]:~$ socat STDIO UDP-DATAGRAM:224.0.0.1:2200,bind=:2200
hi from pc0
Я использую IP 224.0.0.1
, как это используется по умолчанию для многоадресной передачи на каждой машине.
Далее я попытался реализовать тот же материал с 3 виртуальными машинами, vb0
, vb1
и vb2
. Github repo - here.
Теперь я пытался вещать из vb0
:
[email protected]:~$ socat STDIO UDP-DATAGRAM:224.0.0.1:2200,bind=:2200
hello from vb0
hello from vb0
... и не транслирует другим членам (как в случае физических машин выше), за исключением самого себя.
Кажется, есть дополнительные настройки должны быть сделаны перед иметь эту работу ...
Vagrantfile
:
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu-12.04-x64"
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.provider "virtualbox" do |vb|
vb.cpus = "2"
vb.memory = "4096"
end
config.vm.provision "chef_apply" do |chef|
chef.recipe = File.read("recipe.rb")
end
config.vm.define "vb0" do |vb0|
vb0.vm.hostname = "vb0"
vb0.vm.network "private_network", ip: "10.20.30.100"
end
config.vm.define "vb1" do |vb1|
vb1.vm.hostname = "vb1"
vb1.vm.network "private_network", ip: "10.20.30.101"
end
config.vm.define "vb2" do |vb2|
vb2.vm.hostname = "vb2"
vb2.vm.network "private_network", ip: "10.20.30.102"
end
end
ли вы выяснить, почему команда IP маршрут был нужен? –