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:
- eth0
- eth1
- eth2
- eth3
- 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に設定がたりないのでしょうか?あるいは間違っているのでしょうか?
あなたの回答
tips
プレビュー