VirtualBoxでローカル開発環境を構築する際のネットワーク設定
Oracle VM VirtualBoxでローカルマシンに開発環境を構築する際のネットワーク周りの設定。
以下の要件を満たすような設定とした。
-
- GuestOSは外部ネットワーク(インターネット)にアクセスできる
- GuestOSへのアクセスは、基本的にHostOS以外は遮断する
- HostOSからGuestOSへのアクセスは、常に決まったIPアドレスを使用する
上記要件を満たすために、「ホストオンリーアダプタ」と「NAT」ネットワーク構成を組み合せた。
-
- ホストオンリー: HostOSからのアクセス
- NAT: 外部ネットワーク(インターネット)へのアクセス
GuestOSのインタフェースは、eth0にホストオンリー、eth1にNATを割り当てた。
VirtualBoxの設定
対象のGuestOSのネットワーク設定にて、アダプタ1と2を有効化し、それぞれ「ホストオンリーアダプタ」と「NAT」を割り当てる。
「ホストオンリーアダプタ」には「vboxnet0」を指定する。
アダプタタイプは好きなものを使用。
GuestOSの設定
GuestOSには、Debian GNU/Linux Lennyを使用した。
-
- /etc/network/interface
# The loopback network interface auto lo iface lo inet loopback # The primary network interface (VirtualBox Host-Only-Network interface) auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.56.101 netmask 255.255.255.0 # The secondary network interface (VirtualBox NAT interface) auto eth1 allow-hotplug eth1 iface eth1 inet dhcp
eth0をDHCPとしてしまうと、HostOSからGuestOSへのアクセスに使用するIPアドレスが、毎回違ってしまうので固定にする。
ルーティングテーブルは、以下のようになる。
$ netstat -rn カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ MSS Window irtt インタフェース 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth1
あとは、GuestOSに必要な開発環境を構築するだけです。
仮想化ソフトウェアを使うと、柔軟なネットワーク構成が可能であること、開発やテストの際に普段使用するHostOS側には影響がない、スナップショットなどで環境の復元が容易など、理想的な開発環境が構築できると思います。