Oracle VM VirtualBoxでは、仮想マシンを作成するとデフォルトでは1つの仮想PCIネットワークアダプタが有効になり、NATモードが選択されます。

通常では最大4つまでの仮想ネットワークアダプタを設定することが出来ますが、4つ以上の仮想ネットワークアダプタを設定する場合はVboxManageコマンドを使用します。

VirtualBoxのネットワーク設定の画面

ネットワークアダプタを有効化

チェックを付けることでこのネットワークアダプタを有効にすることができます。

割り当て

ネットワークアダプタのモードを設定します。
以下のモードが用意されています。

  • 未割り当て
    ネットワークカードはあるけど、ネットワークに接続できないモードです。
  • NAT
    デフォルトのモードです。
    NATモードではホストOSが使っているネットワークとは別の、VitualBoxの内部に用意されたネットワークがゲストOSのネットワークとして割り当てられます。
    VirtualBoxがホストOSとゲストOSの間に立ち、ルーターの役割を果たします。
    後述するポートフォワーディングの設定ができます。
  • NATネットワーク
    VirtualBox4.3で追加されたネットワークモードです。
    通常のNATではそれぞれの仮想マシンが独立したネットワークとなっていたために、NAT接続の仮想マシン同士は通信できませんでした。
    それに対しNATネットワークは1つのNATネットワークに複数の仮想マシンを接続することで、相互の通信がとれるNAT接続です。NATネットワークにした場合は接続するNATネットワークを選択します。
    このNATネットワークは環境設定の項目で複数作成することが可能です。
  • ブリッジ ネットワーク
    ゲストOSが直接ホストOSと同じネットワークに直接接続します。
    ネットワークからはホストマシンとは全く別のマシンが接続しているように見えます。
  • 内部ネットワーク
    ゲストOS同士だけで通信ができる閉じたネットワークです。
    外部との通信はできません。
  • ホストオンリー ネットワーク
    ゲストOSとホストOS間のみ通信ができる閉じたネットワークです。
    外部との通信はできません。
  • 汎用ドライバー
    UDPトンネルとVDEを使えるようにするモードです。
    ほとんどの人には関係ありませんし、この機能を使用するにはVirtualBoxをソースからコンパイルしてインストール必要があります。

表にすると以下のようになります。

ゲスト→ホスト ゲスト←ホスト ゲスト↔ゲスト ゲスト→ホストネットワーク ゲスト←ホストネットワーク
ホストオンリー × ×
インターナル × × × ×
ブリッジ
NAT ×
NATサービス

※ポートフォワードが必要

初心者の方はホストOSと同じように扱えるブリッジアダプターをおすすめします。

名前

ブリッジアダプタを選択している時には、ホストマシン上のどのネットワークアダプタを使うかを選択します。

NATネットワークを選択しているときには、環境設定で設定したネットワークを選択します。

アダプタータイプ

アダプタタイプには以下の6種類があります。

  • PCNet PCI II (Am79C970A)
  • PCNet FAST III (Am79C973)
  • Intel PRO/1000 MT Desktop (82540EM)
  • Intel PRO/1000 T Server (82543GC)
  • Intel PRO/1000 MT Server (82545EM)
  • 準仮想化ネットワーク (virtio-net)

デフォルトのPCNet FAST IIIはほとんどのゲストOSで追加のドライバ無しで使用できます。例外として、Windows Vista などの PCNet カード用のドライバが付属していない一部のゲストOSに対してはIntel PRO/1000ファミリーが選択されます。

Intel PRO/1000 MT DesktopはWindows Vista およびそれ以降のバージョンで動作します。
Intel PRO/1000 T Serverは追加のドライバーのインストールなしで Windows XP のゲストによって認識されます。
Intel PRO/1000 MT Serverは他のプラットフォームからの OVF インポートを容易にします。

VirtualBox3.1から、Windows/Linuxゲスト限定ですが、ネットワークアダプタに準仮想化ネットワーク(virtio-net)を選択できるようになりました。
他のアダプタの完全仮想化よりも、準仮想化の方がエミュレーションのオーバーヘッドが少なくなるため、ネットワークのパフォーマンスの向上が期待できます。
Linuxでは2.6.25以上のカーネルであればサポートしていますが、Windowsの場合はKVMプロジェクトのページからvirtioドライバをダウンロードしてインストールする必要があります。

また、Oracle VM VirtualBoxではJumbo Frameも限定的にサポートしています。
Intelアダプタータイプ使用している場合かつ、ブリッジネットワークのモードを使用しているときに使えます。

Intel以外のアダプタータイプを使用している場合、送受信方向のJumbo Frameパケットが静的にドロップされてしまうため、ゲストOSがパケットロスしているものとして予期しないアプリケーションの異常終了につながります。
そのためデフォルトではJumbo Frameは有効化していません。

プロミスキャスモード

ブリッジアダプ・内部ネットワーク・ホストオンリーアダプタを選択時に設定できます。

スイッチングではない所謂バカHubを使用している時に、自身のネットワークカードに到達する自分宛以外のパケットも受信するモードです。
他のホスト同士の通信の解析などで使用します。まぁ、つまり「傍受」です。

  • 拒否
    プロミスキャスモードを使用しません。
  • 許可したVM
    他のゲストマシンの通信のみ受信します。
  • 許可
    自身のネットワークカードに到達するすべての通信を受信します。

MACアドレス

ネットワークカードに設定するMACアドレスを指定します。
右側の緑のアイコンをクリックすると、ランダムに生成されたMACアドレスが表示されます。

ケーブル接続

VirtualBoxはネットワークケーブルの接続状態もエミュレートします。
チェックを付ければケーブルを接続した状態になり、チェックを外せばケーブルを抜いた状態になります。

これは仮想マシンが起動した状態でも操作可能です。

ポートフォワーディング

割り当てをNATにした場合に設定できます。

NATの場合ゲストマシンはVirtualBox内の仮想ルーターに接続されるため、ホストマシンが所属するネットワークとは通信を行うことができません。
そこでゲストマシンが接続する仮想ルーターにフォワーディング設定を行うことで、ゲストマシンからホストマシンのネットワーク、ホストマシンのネットワークからゲストマシン、のように通信を通すことができます。
このへんのNATとポートフォワーディングの仕組みについては各自ググッてください。

VirtualBoxのネットワーク設定-ポートフォワーディングの画面

設定は非常に簡単です。

まずはフォワーディングのルール名を設定し、プロトコル、ホストマシンのIP、ホストマシンのポート、ゲストマシンのIP、ゲストマシンのポートを設定するだけです。
以前はこのフォワーディングの設定をVboxmanageコマンドで行っていましたが、現在ではGUIで行えるようになりました。