November 03, 2008
VirtualBoxのネットワークについて
最近、このblogでVirtualBoxのことを書いていて、
何となくネットワークのことが気になっていたので、まとめてみた。
何となくネットワークのことが気になっていたので、まとめてみた。
まず、仮想マシンのNICに割り当てることの出来るネットワークの種類だが、
まぁ1.の未割り当ては論外なので、それ以外の3つを順に見ていこう。
2.のNAT(Network Address Tlansrarion)は、デフォの設定だけあって、
普通に単体でインターネットに繋ぐのは問題ない。
ヘルプ曰く、仮想マシンのNICの設定をDHCPにしている場合、
ゲートウェイが10.0.2.2で、DNSが10.0.2.3、アドレスは10.0.2.15になる。
ゲートウェイはホストOSとなるので、ゲストOSがホストOSのサービスを受けさせることも出来るし、これは自分では試していないが、ポートフォワードもできるようだ。
問題は複数のNAT設定の仮想マシンを同時に立ち上げたときなのだが、
僕は仮想マシン1が10.0.2.15、仮想マシン2に10.0.2.16といった具合にIPが振られることを期待したのだが、結果は2台とも10.0.2.15に。
ヘルプをよくよく読んでみると、NATでは、ICMPに制限がかかっていて、10.0.2.2と10.0.2.15以外には、pingを打っても反応しません、とか書いてある。
ただ、それと仮想マシン同士が同じネットワークに参加出来ないのは別問題な気もするが。
次に、3.のホストインターフェイスだ。
僕は基本的にはこれを普段は使っていて、自分のルータで組んだLANとWindows上で仮想NICをブリッジさせている。
やり方は、まず、「設定」→「ネットワーク」から、「新規ホストインターフェイスの追加」を選び、Windows側に仮想NICを作ったあと、仮想OSの割り当てを「ホストインターフェイス」にして、インストールしたホストインターフェイスを選択しておく。
次に、コントロールパネルからネットワーク接続を開いて、ローカルエリア接続とVirtualBoxのホストインターフェイスを同時に選択して、右クリックメニューから「ブリッジ接続」を選ぶ。
これで、仮想マシンをホストOSと同じネットワークに参加させることが出来る。
!----追記('08 12/21)----!
VirtualBoxのバージョン2.10以降では、ネットワークの設定から、「割り当て」を「ホストインターフェイス」にして、ウィンドウ下部のリストから、利用可能なホストインターフェイスを選ぶだけでよい。
!----追記ここまで----!
仮想OSを、ホストOSとは別のファイルサーバ等に繋ぎたいとき等は、これが便利。
最後に4.の内部ネットワークであるが、当然、「内部」ネットというだけあって、ゲストOSからは、インターネットはおろか、ホストOSにすら繋がらない。
接続が可能なのは、同じ名前の内部ネットを割り当てた仮想マシン同士だけである。
あと、DHCPをサポートしていないので、仮想マシンのIPは固定させる必要あり。
僕はVirtualBoxを複数のサーバ間のテスト環境として使うことがあるので、
今までは、それらを同じネットワークに参加させるのに、ホストインターフェイスを使っていたのだが、これだと、仮想マシンの台数分だけWindowsにも仮想NICをインストールしないといけない、等、多少手間だったのだが、
ホストOS以外の家のネットワーク機器と接続する必要がない場合、
仮想OSのNICを二枚用意して、一つをNAT、一つを内部ネットワークにすれば、一応、インターネットに繋がったセグメントを構成出来る、ということに気がついた。
勿論、NATだけで出来れば、それに越したことは無いのだが。
- 未割り当て
- NAT(default)
- ホストインターフェイス
- 内部ネットワーク
まぁ1.の未割り当ては論外なので、それ以外の3つを順に見ていこう。
2.のNAT(Network Address Tlansrarion)は、デフォの設定だけあって、
普通に単体でインターネットに繋ぐのは問題ない。
ヘルプ曰く、仮想マシンのNICの設定をDHCPにしている場合、
ゲートウェイが10.0.2.2で、DNSが10.0.2.3、アドレスは10.0.2.15になる。
ゲートウェイはホストOSとなるので、ゲストOSがホストOSのサービスを受けさせることも出来るし、これは自分では試していないが、ポートフォワードもできるようだ。
問題は複数のNAT設定の仮想マシンを同時に立ち上げたときなのだが、
僕は仮想マシン1が10.0.2.15、仮想マシン2に10.0.2.16といった具合にIPが振られることを期待したのだが、結果は2台とも10.0.2.15に。
ヘルプをよくよく読んでみると、NATでは、ICMPに制限がかかっていて、10.0.2.2と10.0.2.15以外には、pingを打っても反応しません、とか書いてある。
ただ、それと仮想マシン同士が同じネットワークに参加出来ないのは別問題な気もするが。
次に、3.のホストインターフェイスだ。
僕は基本的にはこれを普段は使っていて、自分のルータで組んだLANとWindows上で仮想NICをブリッジさせている。
やり方は、まず、「設定」→「ネットワーク」から、「新規ホストインターフェイスの追加」を選び、Windows側に仮想NICを作ったあと、仮想OSの割り当てを「ホストインターフェイス」にして、インストールしたホストインターフェイスを選択しておく。
次に、コントロールパネルからネットワーク接続を開いて、ローカルエリア接続とVirtualBoxのホストインターフェイスを同時に選択して、右クリックメニューから「ブリッジ接続」を選ぶ。
これで、仮想マシンをホストOSと同じネットワークに参加させることが出来る。
!----追記('08 12/21)----!
VirtualBoxのバージョン2.10以降では、ネットワークの設定から、「割り当て」を「ホストインターフェイス」にして、ウィンドウ下部のリストから、利用可能なホストインターフェイスを選ぶだけでよい。
!----追記ここまで----!
仮想OSを、ホストOSとは別のファイルサーバ等に繋ぎたいとき等は、これが便利。
最後に4.の内部ネットワークであるが、当然、「内部」ネットというだけあって、ゲストOSからは、インターネットはおろか、ホストOSにすら繋がらない。
接続が可能なのは、同じ名前の内部ネットを割り当てた仮想マシン同士だけである。
あと、DHCPをサポートしていないので、仮想マシンのIPは固定させる必要あり。
僕はVirtualBoxを複数のサーバ間のテスト環境として使うことがあるので、
今までは、それらを同じネットワークに参加させるのに、ホストインターフェイスを使っていたのだが、これだと、仮想マシンの台数分だけWindowsにも仮想NICをインストールしないといけない、等、多少手間だったのだが、
ホストOS以外の家のネットワーク機器と接続する必要がない場合、
仮想OSのNICを二枚用意して、一つをNAT、一つを内部ネットワークにすれば、一応、インターネットに繋がったセグメントを構成出来る、ということに気がついた。
勿論、NATだけで出来れば、それに越したことは無いのだが。