- VirtualBoxのネットワークの仕組み
- VirtualBoxを使用したネットワーク構成例
インフラエンジニアとして手元に置いておきたい一冊です!
VirtualBoxとは?
VirtualBoxは皆さんが使用しているPC上で、別のOSを実行するのに使う仮想環境(仮想マシン:Virtual Machine)を構築するためのオープンソースソフトウェアです。
OSSなので、もちろん完全無料で使用できます。
簡単に言うと、いまmacOSのPCを使っていても、Windowsを動かせますし、LinuxOSも動かすことがでます。
仮想マシンやVirtualBoxについての解説は検索したらいっぱい出てくるので、そちらを見てください。
分かりやすそうな記事を以下に貼っておきます。
VirtualBoxのネットワークとは
VirtualBox上で作成した仮想マシンに搭載されているOSをゲストOSと言います。
一方、自分自身が所有している実物のPCに搭載されているOSをホストOSといいます。
物理的なコンピュータ同士の通信は有線のケーブルを繋ぐか、無線での通信を行うことでネットワークを構築できます。
しかし、ゲストOS同士の通信やゲストOSとホストOSの通信は仮想的なネットワークを考えなくてはいけません。
実物のケーブルなどがないため、慣れない最初のうちはわけがわからなくなります。
そのため、以下にわかりやすく、VirtualBoxでのネットワーク構築を解説していきます。
ホストOSで仮想のNICを作成(ホストオンリーアダプタ)
まずはホストOS側で仮想的なNICを作成する方法を解説します。
通常のPCだと、無線のアダプターが1つ、ケーブルを繋ぐポートが1つぐらいあるはずです。
(最近のノートPCではケーブル用のポートがないのも多いです。)
仮に無線、有線のアダプターがあると仮定し、現在無線(Wi-Fi)でインターネット通信をしていると仮定しましょう。
この時の状況は以下の図の感じとなります。
実際にアダプターの状態を見るにはコマンドプロンプトなどで確認します。
Windowsを使用している人はコマンドプロンプトを開き、” ipconfig”と入力してみてください。
設定している人やNICが多い人は色々なアダプターが出てくるかと思います。
後述しますが、ゲストOS側で使用できるネットワークの種類にホストオンリーアダプターというものがあります。
これはホストOSがゲストOSとネットワークを構築するための仮想的なアダプターです。
いきなりゲストOS側でホストオンリーアダプターを設定しても通信できないため、最初にホストOS側でアダプターを作成しましょう。
①VirtualBoxを起動し、タブ左上の”ファイル” → “ホストネットワークマネージャ”を選択してください
②ホストネットワークマネージャのウィンドウが表示されます。
手動で設定すればIPアドレスを指定出来たり、DHCPサーバを有効にすることでゲストOSのIPアドレスは自動で決まります。
よって、ゲスト側のネットワークアダプターをホストオンリーアダプターにしない場合は、ホスト側の設定は不要となります。
ゲストOSのネットワークアダプター
ゲストOSで設定できるアダプターは以下の7つです。
- ホストオンリーアダプター
- NAT ※デフォルト設定はこれ
- NATネットワーク
- ブリッジアダプター
- 内部ネットワーク
- 汎用ドライバー
- Cloud Networks
※6. 7の解説は別の記事でします。
ゲストOSのアダプター設定方法は以下の方法で行います
①VirtualBoxマネージャ画面で設定したいゲストOSを右クリックし、”設定”を選択
②左タブから”ネットワーク”を選択し、”割り当て”から選択する
GUIではゲストOSのアダプターは4つまで追加することができます。
ホストオンリーアダプター
ホストオンリーアダプターの特徴はホストOSとゲストOSが仮想的なNICで接続されていることです。
ホストOSとゲストOS同士の通信や、ゲストOS同士の通信は仮想的なケーブルが繋がっていることから通信可能です。
ただ、インターネットに繋がるアダプターには繋がっていないため、ゲストOSはインターネットに接続できません。
まとめると以下の表の関係になります。
通信の可否 | ホストOS | ゲストOS | インターネット |
ホストOS | – | 〇 | 〇 |
ゲストOS | 〇 | 〇 | × |
ゲストOSがインターネット通信できるようにするには、次のNATを選択する必要があります。
NAT
NATは仮想マシンを作成したときにデフォルトで作成され、インターネット向けの通信が可能なアダプターです。
仮想マシンにそれぞれ仮想のルータが準備され、ルーターでNATされインターネットに出ていきます。
少し踏み込むと、DHCPで仮想マシンにIPを割り振ると、全ての仮想マシンのIPアドレスは10.0.2.15になり、ルータのIPは10.0.2.2となります。
ゲストOS間は繋がっていないので通信不可、ホストOSとゲストOS間の通信はポートフォワーディングを設定すると可能となります。
通信の可否 | ホストOS | ゲストOS | インターネット |
ホストOS | – | ポートフォワーディングの設定で〇 | 〇 |
ゲストOS | ポートフォワーディングの設定で〇 | × | 〇 |
NATネットワーク
NATネットワークは、上記のNAT+ゲストOS間の通信が可能なネットワークです。
ホストOSとゲストOS間はポートフォワーディングの設定が必要です。
仮想マシンのIPはそれぞれ、10.0.2.n/24が割り振られます。(仮想ルーターは10.0.2.2)
通信の可否 | ホストOS | ゲストOS | インターネット |
ホストOS | – | ポートフォワーディングの設定で〇 | 〇 |
ゲストOS | ポートフォワーディングの設定で〇 | 〇 | 〇 |
ブリッジアダプター
ホストOSの物理アダプターを使用して、ホストOSとゲストOSを接続します。
物理アダプターは実際に存在するアダプターであればすべて選択可能ですが、インターネット向け通信ができるアダプターを選択しないと、ゲストOSはインターネットに接続できません。
上記の図だとNATネットワークとの違いがよくわかりません。
そのため、下の図を見てみてください。
同じアクセスポイントに接続されたプリンターと別のPCが加わりました。
2台のPCやプリンターは同じネットワークにいるため、PCからプリンターに無線接続で印刷することもできます。
NATやNATネットワークでは仮想ルータでNATされてしまうため、ホストOSとゲストOSは同じネットワーク上には存在しませんでした。
しかし、ブリッジアダプターでは仮想スイッチを使用しているため、同じネットワークに接続することが可能です。
これにより、ゲストOSからプリンター通信することができ、印刷も可能です。
仮想マシンをサーバのように扱う場合、ブリッジアダプターの選択が良いでしょう。
通信の可否 | ホストOS | ゲストOS | インターネット |
ホストOS | – | 〇 | 〇 |
ゲストOS | 〇 | 〇 | 〇 |
内部ネットワーク
ホストOSとゲストOSは通信することができません。
またゲストOSはインターネット通信もすることができません。
ゲストOS間での通信しかできないため、VirtualBox内で完結させたい場合に使用します。
通信の可否 | ホストOS | ゲストOS | インターネット |
ホストOS | – | × | 〇 |
ゲストOS | × | 〇 | × |
使用例
ゲストOSのネットワークは種類がたくさんあり、最適なのを選ぶのは難しいです。
今回は1つの例として、WebサーバをVirtualBoxで立てる場合を考えましょ
Webサーバを立てる場合、DateBaseサーバ(DB)も必要になる場合がほとんどのため、DBサーバも立てます。
Webサーバは外部に公開する必要があり、DBサーバは外部からアクセスされないようにするのが一般的です。
そのため以下のように選択します。
- Webサーバにはブリッジアダプターを割り当て外部に公開
- Webサーバ、DBサーバともにホストOSからのアクセスはしたいため、ホストオンリーアダプターも割り当てます。これによりWebサーバとDBサーバの通信も可能
これにより、Webサーバが外部接続するアダプターとWebサーバが接続するアダプターが異なるため、外部からDBサーバは見えません。
まとめ
今回はVirtualBoxのネットワークについて解説しました。
ネットワークには以下の種類があります。
- ホストオンリーアダプター
- NAT ※デフォルト設定はこれ
- NATネットワーク
- ブリッジアダプター
- 内部ネットワーク
- 汎用ドライバー
- Cloud Networks
それぞれの動作については記事を見てみてください。
間違いなどありましたらコメントいただけると幸いです。
コメント