VirtualBoxのネットワーク設定がよく分からなかったので実際に実験したメモ。
実験日 : 2014-01-13 Host : Win7SP1 VirtualBox : 4.3.6
| 名称 | 外部 <- Guest | Guest <-> Guest | Guest <- Host |
| NAT | OK | NG | NG(要ポートフォワーディング) |
| NAT Networks(NATネットワーク) | OK(?) | OK | NG(要ポートフォワーディング) |
| Host-only networking(ホストオンリーアダプター) | NG | OK | OK |
| Inetrnal networking(内部ネットワーク) | NG | OK | NG |
実験時に遭遇したトラブル(いずれも原因不明で、未解決):
Host側(Win7)
イーサネット アダプター VirtualBox Host-Only Network:
接続固有の DNS サフィックス . . . :
説明. . . . . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
物理アドレス. . . . . . . . . . . : 08-00-27-00-EC-FB
DHCP 有効 . . . . . . . . . . . . : いいえ
自動構成有効. . . . . . . . . . . : はい
リンクローカル IPv6 アドレス. . . . : fe80::d84:62c8:29f7:2c64%25(優先)
IPv4 アドレス . . . . . . . . . . : 192.168.56.1(優先)
サブネット マスク . . . . . . . . : 255.255.255.0
デフォルト ゲートウェイ . . . . . :
DHCPv6 IAID . . . . . . . . . . . : 419954727
DHCPv6 クライアント DUID. . . . . . . . : 00-01-00-01-17-D7-6E-11-94-DB-C9-3A-8A-E4
DNS サーバー. . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS over TCP/IP . . . . . . . : 有効
Guest1(CentOS6):
eth0 Link encap:Ethernet HWaddr 08:00:27:01:26:50
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe01:2650/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:58 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12175 (11.8 KiB) TX bytes:8864 (8.6 KiB)
Guest2(CentOS6):
eth0 Link encap:Ethernet HWaddr 08:00:27:1B:8A:69
inet addr:192.168.56.102 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe1b:8a69/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:50 errors:0 dropped:0 overruns:0 frame:0
TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7631 (7.4 KiB) TX bytes:7735 (7.5 KiB)
NAT/NAT Networks/Host-onlyの組み合わせで皆さん、それぞれ苦労されているようです。
"NAT Networks"はexperimentalというだけ有り、まだ安定してないかも。
GuestOS単体で完結するような環境構築であれば、そのGuestにNATとHost-onlyの2つのアダプタを設定するだけで問題ないだろう。
Webサーバ <> DBサーバ構成など2台以上のGuestが相互に通信できるようにする場合も、それぞれにNATとHost-onlyの2つを設定する方式でも良いが、やや設定が冗長であるし、実運用環境とネットワーク設定が異なりそれによる諸問題が発生する可能性もある。
その場合は、個人的には以下のような構成の方がシンプルで、実運用環境にも近くなると考えます。Guest1, Guest2のdefault gatewayはGuest3のHost-onlyアダプタになるように設定し、Guest3側はルータとして、Host-onlyに入ってきたoutboundをNAT側のアダプタにルーティングします。
[Guest1]
Host-only <--------+
|
[Guest2] |
Host-only <--------+--------> [Host]
|
[Guest3(router)] |
Host-only <--------+
NAT ------------------> Internet
デメリットとしては、Host-onlyアダプタについて、DHCPではなく静的に色々設定する必要があります。また、1台分余分に動かす必要があります。とはいえ、これもこれで構成パターンの一つとしてアリではなかろうかと。