「ホストへのルートがありません」: Vagrant VM 間のネットワークを理解する

「ホストへのルートがありません」: Vagrant VM 間のネットワークを理解する

2つのVMをネットワークで接続したいので、次のVagrantfileを作成しました。

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.define :alpha do |alpha|
    alpha.vm.box = "centos-6.4"
    alpha.vm.network :private_network, ip: "192.168.50.2"

    alpha.vm.provision "shell", inline: "yum install -y nc"
  end

  config.vm.define :beta do |beta|
    beta.vm.box = "centos-6.4"
    beta.vm.network :private_network, ip: "192.168.50.10"
    beta.vm.provision "shell", inline: "yum install -y nc"
  end
end

最初はうまくいっていると思ったのですが、

vagrant ssh アルファ

その後

192.168.50.10にpingする

または

192.168.50.10 のSSH接続

どちらもうまくいきます。しかし、実際にはのみこれら 2 つの操作は機能します。ベータ版をポート 3000 で listen させて接続しようとすると、次の操作は実行できません。

$ ssh -p3000 192.168.50.10
ssh: connect to host 192.168.50.10 port 3000: No route to host

どうすればそれができるのか全て2 つの VM 間でトラフィックを通過できますか?

プロバイダーとしてVirtualBox 4.2.18、Vagrant 1.3.3を使用しています。

編集:さらに実験してみると、CentOS on VirtualBoxだけでこれを再現でき、ベースボックスをUbuntuのものに変更すると、ないこの問題が発生しています (Vagrantfile に他の変更はありません)。これは、VirtualBox 上の CentOS でのネットワークの問題ですか?

答え1

結局、これはベース ボックスの iptables が邪魔をしているだけだったことがわかりました。これをオフにすると (service iptables stopファイアウォールを一時的に無効にするため)、2 台のマシン間でルーティングできるようになりました。

関連情報