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台分余分に動かす必要があります。とはいえ、これもこれで構成パターンの一つとしてアリではなかろうかと。