質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

0回答

489閲覧

VirtualBOX、Vagrant上で仮想ルータ&仮想マシンを作りたい

退会済みユーザー

退会済みユーザー

総合スコア0

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

1クリップ

投稿2018/08/21 05:48

VirtualBOX、Vagrant上で以下のような構成を作りたいと思います

CentOS6(ホストOS)
|
仮想ルータ(ゲストOS)
IP:10.12.1.251(対ホストOS用
IP:10.40.0.0(対仮想マシン用
|
+----------------+--------------+
|         |       |
仮想マシンA 仮想マシンB 仮想マシンC
(ゲストOS)(ゲストOS) (ゲストOS)
IP:10.41.0.0 IP:10.42.0.0 IP:10.43.0.0

・仮想マシン同士の通信はできなくてよい(できてもよい)
・各仮想ルータ、仮想マシンは静的にIPを振る

上記の条件から、仮想ルータには
・ホストOSとの通信用に「ホストオンリーアダプター」、
・仮想マシンとの通信用に「内部ネットワーク」
上記2個のNICが必要と想定しました。

が、Vagrantfileでのネットワーク設定をググってみたところ
「public_networkならゲストOS間・ホストOSとゲストOS間での通信が可能になる」
とあったので、
仮想ルータのVagrantfile設定を

Vagrant.configure(2) do |config|

config.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2298
config.vm.network "public_network"
end

としました。

この状態でまずは仮想ルータを「vagrant up」したところ下記のような問い合わせがあったので、

==> default: Clearing any previously set forwarded ports...

==> default: Clearing any previously set network interfaces...
==> default: Available bridged network interfaces:

  1. eth0
  2. eth1
  3. eth2
  4. eth3
  5. virbr0

==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
default: Which interface should the network bridge to?

よくわからなかったので、とりあえず1を選びました。
すると以下のように続き、正常終了しました。

==> default: Preparing network interfaces based on configuration...

default: Adapter 1: nat default: Adapter 2: bridged

==> default: Forwarding ports...
default: 22 (guest) => 2298 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2298
default: SSH username: vagrant
default: SSH auth method: private key

「vagrant ssh」でsshログインし、「ifconfig」でIPアドレスを確認しました。

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 10.12.1.251 netmask 255.0.0.0 broadcast 10.255.255.255 ether 08:00:27:d9:83:35 txqueuelen 1000 (Ethernet) RX packets 611 bytes 58713 (57.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 479 bytes 55924 (54.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

続いて、仮想マシンAのvagrantfileを以下のようにし、「vagrant up」が正常終了するところまで確認しました。

Vagrant.configure(2) do |config|

config.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2241
config.vm.network "private_network", ip: "10.41.0.0"
end

仮想マシンAは仮想ルータとだけ通信できればよいので、"private_network"でOKと思いました。

「vagrant ssh」でsshログインし、「ifconfig」でIPアドレスを確認しました。

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 10.41.0.0 netmask 255.0.0.0 broadcast 10.255.255.255 ether 08:00:27:d9:83:35 txqueuelen 1000 (Ethernet) RX packets 661 bytes 64498 (62.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 521 bytes 63361 (61.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ここで問題なのですが、
・ホストOSから仮想ルータへの「ping 10.12.1.251」で反応が帰ってきません。
タイムアウトやDestination Host Unreachableもない。
・仮想ルータから仮想マシンAへの「ping 10.41.0.0」でDestination Host Unreachableになってしまう。
・仮想マシンAから仮想ルータへの「ping 10.40.0.0」でDestination Host Unreachableになってしまう。

なにかVagrantfileに設定がたりないのでしょうか?あるいは間違っているのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fu7mu4

2018/09/09 08:53

Vagrantfileを公開できませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問