Após extensa pesquisa e experimentação, parece que o Vagrant estava atribuindo cada VM a um submask diferente, portanto, não sendo capazes de se conectarem uns aos outros. Na verdade, eles estavam todos em redes diferentes.
Acontece que você pode, no entanto, substituir isso. Para fazer isso, basta configurar a máscara de rede como mostrado abaixo.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.provision "chef_solo" do |chef|
chef.cookbooks_path = "provision/cookbooks"
chef.add_recipe "apt"
chef.add_recipe "python"
end
config.vm.provision :shell, :path => "provision/python-modules.py"
config.vm.define :server do |server|
server.vm.hostname = "server"
server.vm.network :private_network, ip: "172.28.128.2", :netmask => "255.255.0.0"
end
config.vm.define :client0 do |client0|
client0.vm.hostname = "client0"
client0.vm.network :private_network, type: :dhcp, :netmask => "255.255.0.0"
end
config.vm.define :client1 do |client1|
client1.vm.hostname = "client1"
client1.vm.network :private_network, type: :dhcp, :netmask => "255.255.0.0"
end
end
Neste momento, não tenho certeza se você pode substituir a máscara de rede de todos na configuração global, mantendo algumas VMs com DHCP e outras com IP estático. Vou experimentar com isso uma vez que estou de volta em uma máquina mais poderosa, então destruir e criar a VM cada vez é mais rápido.