仮想化ソフトウェアによって差異がありそうだし、なにが正しいのか不明だけど、とりあえず確認できたことを記録しておく。以下は、VMWare Fusionで確認。
参考
- ネットワーク設定 | VirtualBox Mania
- [Vagrant] Vagrant で複数のVM を立ち上げて、お互いに通信できるようにするには [VirtualBox] - Qiita
- Vagrantのネットワーク周りのあれこれ | Septeni Engineers' Blog | セプテーニ エンジニアブログ
NAT
-
ゲスト -> インターネット
のアクセスは可能 - ゲスト間の相互通信は不可
-
ホストからゲスト
は通常は不可- ポートフォワーディングを設定すれば可能
-
ゲストからホスト
は不可と思っていたけど、可能だった- 仮想化ソフトウェアがルーターの役割になり、ゲストとホストは同じ仮想ネットワークに所属するためみたい
ホストオンリー
-
ゲスト -> インターネット
のアクセスは不可 - ゲスト間の相互通信は可能
-
ホストからゲスト
は未確認 -
ゲストからホスト
は可能と思っていたけど、不可だった
ブリッジ
- ホストと同一のネットワークに参加する
- なので、相互通信は通常のネットワークと同じように行う
以下、メモ
Vmwareの場合、vmnetという仮想NICが追加されており、vmnet1がホストオンリー用、vmnet8がNAT用として働く。
VirtualBoxの場合はvboxnetという名前で仮想NICがある。
例えば、HOSTマシンでifconfigを実行して以下になると、
vboxnet0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00
vboxnet1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:01
inet 192.168.33.1 netmask 0xffffff00 broadcast 192.168.33.255
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:01
inet 172.16.127.1 netmask 0xffffff00 broadcast 172.16.127.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:08
inet 172.16.238.1 netmask 0xffffff00 broadcast 172.16.238.255
NATのインタフェースを持ったVMからは172.16.238.1でホストにアクセスできた。