仮想環境で利用できる仮想ネットワークの種類とその使い方について解説。Hyper-Vの仮想ネットワークも理解しよう。
前回は仮想環境で使用する仮想ディスクの種類やその使い方などについて解説した。今回は仮想化ソフトウェアを使って仮想環境を用意する場合に必ず必要となる、仮想ネットワーク・インターフェイスについてみていこう。
ホストとなるコンピュータには、通常は1つの物理的なネットワーク・インターフェイス(ネットワーク・アダプタ)しかついていない。しかし仮想化ソフトウェアはその1つのネットワーク・インターフェイスを多数の仮想マシン間で共有して利用するために、論理的なネットワーク・インターフェイスを作り(以下仮想ネットワーク・インターフェイスと呼ぶ)、それを仮想マシンごとに割り当てている。
現実のネットワークの接続形態にはさまざまな方法があるが、仮想ネットワーク・インターフェイスでも同様にさまざまなバリエーションが考えられる。とはいえ、仮想のネットワーク・インターフェイスのほかに仮想(スイッチング)ハブとか仮想ケーブル、仮想ルータなどといった仮想ネットワーク機器も管理しないといけないのでは、簡単に仮想マシンを使うというわけにはいかない。そこで仮想化ソフトウェアでは、その目的に応じて簡単にネットワークを構成できるように、「内部」や「外部」、「プライベート」といった種類のネットワーク・インターフェイスを用意している。ユーザーはネットワーク・インターフェイスを選ぶだけで、閉じた安全なネットワークを構築したり、外部(ほかのコンピュータ)からもアクセスできるようにしたりできる。
今回はこの仮想ネットワーク・インターフェイスの種類とその機能について解説する。
仮想環境のネットワーク機能として、まずVirtual PC(Virtual PC 2004/2007)やWindows Virtual PC(Windows 7のWindows XP Modeで利用している仮想化実行環境。Virtual PCの後継)、Virtual Server 2005(Virtual Server 2005 R2も含む)の仮想ネットワーク・インターフェイスについて取り上げる。これらの仮想化ソフトウェアで利用可能なネットワークの形態としては、次のようなものがある。
動作モード | 意味 |
---|---|
(未接続) | ネットワーク・インターフェイスなしの状態。通信が不要な仮想マシンで使用する |
内部仮想ネットワーク(ローカルのみ) | 仮想マシン同士間での通信のみが許可されるネットワーク・インターフェイス。ホストOSや外部(インターネットなど)へはアクセスできない。なおVirtual PC/Windows Virtual PCの場合はIPアドレスを割り当てるDHCPサーバ機能がないので、IPアドレスを固定的に割り当てるか、デフォルトのAPIPAアドレスを利用する。Virtual Serverの場合はDHCPサーバ・オプションを有効にして、IPアドレスを自動的に割り当てることができる |
外部仮想ネットワーク(物理ネットワーク) | 外部(インターネットなど)へアクセス可能なネットワーク・インターフェイス。ホスト・コンピュータに装着した物理ネットワーク・インターフェイスと同様に、外部との通信ができる。IPアドレスはホスト・コンピュータと同様に、外部のDHCPサーバを使って割り当てられる |
共有ネットワーク(NAT) | 仮想マシンから外部へ、NAT(アドレス変換)を使ってアクセスする場合に利用する。これはVirtual PCでのみ利用可能な機能であり、Virtual Serverでは利用できない |
Virtual PC 200x/Windows Virtual PC/Virtual Server 2005の仮想ネットワーク・インターフェイスの種類 ネットワークが接続されている範囲(ドメイン)などを元にして、いくつかの仮想ネットワーク・インターフェイスが用意されている。なおここでいう「内部」とは、ネットワーク・パケットが直接届かないホスト・コンピュータの中(仮想マシンも含む)、外部とはホスト・コンピュータのネットワーク・インターフェイスよりも外(イーサネットケーブルの先)の事を指す。「外部(インターネット)」となっているが、実際にはホスト・コンピュータが接続されているLANやその先にあるインターネットなどを含む。それぞれの詳細は後述する。 |
実際の設定画面で見ると、次のようになっている。次の画面はVirtual PC 2007の仮想マシンの設定画面例である。ネットワーク・インターフェイスごとに4つの選択肢が表示されている。
Virtual PC 200x/Windows Virtual PCではこのように、仮想マシンの設定画面で接続する先のネットワークの種類を直接選択する。Virtual ServerやHyper-Vのように、あらかじめ仮想的なネットワーク・インターフェイスを作っておき、それに接続するという形式にはなっていない。そのため、利用できる内部仮想ネットワークも1つに限られる。
次の画面はVirtual Server 2005 R2のネットワーク・インターフェイスの設定画面である。Virtual PC 2007と違い、内部のみで閉じているネットワーク・インターフェイスと(画面中の「内部ネットワーク」)、外部との通信が可能なネットワーク・インターフェイス(画面中の「外部ネットワーク」)の2種類しかない。だが、MACアドレスを手動で設定できること(Virtual PC 200x/Windows Virtual PCではMACアドレスは常に自動的に割り当てられ、固定することはできない)、DHCPサーバ機能を持っていること、あらかじめ仮想的なネットワーク・インターフェイスを作成しておき、そこに接続するようになっている、という点が異なる。
以下順に、それぞれの仮想ネットワーク・インターフェイスについて、詳しく見ていこう。
これは、同じホストOS上で動作する、仮想マシン(ゲストOS)間同士でのみ通信可能なネットワークである。外部の物理ネットワークとは隔離された状態なので、ネットワーク的には閉じた安全な状態で仮想マシンを実行できる。ただし外部と通信できないので、ネットワークを利用しない用途か、仮想マシン間の通信だけで完結するような用途で利用する。またWindows 2000のように、デフォルトではファイアウォールを持っていないような古いゲストOSを利用する場合にも有用だろう。外部からの攻撃を一切受けることがないからだ。
このネットワーク・インターフェイスを使う場合は、各仮想マシンに割り当てるIPアドレスをどうするかを決めておく必要がある。ネットワークを使わない用途なら問題ないが、仮想マシン同士で通信する場合はあらかじめIPアドレスを割り当てておかないと、お互いに通信できないからだ。
Windows OSにおけるIPアドレスの割り当ては、通常はDHCPによる自動割り当てを利用する。だがVirtual PC 200x/Windows Virtual PCの内部仮想ネットワークではDHCPサービスが利用できないため、各インターフェイスがいくらDHCP要求を送信しても、IPアドレスの割り当てを受けることができない。そのため仮想マシンを起動後、しばらくすると(数分すると)、DHCPによる要求をあきらめ、「APIPA (Automatic Private IP Addressing)」と呼ばれる、特別なIPアドレス(リンク・ローカル・アドレス)を自動的に割り当てる。以下はその確認例である。コマンド・プロンプトを起動して、ipconfigコマンドを実行すると、割り当てられたIPアドレス情報が分かる。
※仮想マシン上でコマンド・プロンプトを開き、次のコマンドを実行する
C:\>ipconfig /all…IPアドレスの割り当てを確認する
Windows IP Configuration
Host Name . . . . . . . . . . . : vpcwinxpsp3xxx
Primary Dns Suffix . . . . . . :
Node Type . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . : No
WINS Proxy Enabled. . . . . . . : No
Ethernet adapter ローカル エリア接続:
Connection-specific DNS Suffix :
Description . . . . . . . . . . : Intel 21140-Based PCI Fast Ethernet Adapter (Generic)
Physical Address. . . . . . . . : 00-03-FF-91-5C-12
Dhcp Enabled. . . . . . . . . . : Yes
Autoconfiguration Enabled . . . : Yes
Autoconfiguration IP Address. . : 169.254.134.38 …IPアドレス
Subnet Mask . . . . . . . . . . : 255.255.0.0 …ネットマスク
Default Gateway . . . . . . . . : …ゲートウェイなし
C:\>
APIPAによって割り当てられたIPアドレスは「169.254.0.0/16(169.254.0.0〜169.254.255.255)」の範囲の任意のものになる。またデフォルト・ゲートウェイが空欄になっていることにも注意していただきたい。つまり、ルータを越えて外部へルーティングされることはない、ということである。同一のネットワーク上に存在する仮想マシン同士は通信できるが、それ以外のコンピュータとは通信できない。必要ならばお互いのIPアドレスを調べ、直接IPアドレスを指定するなどして通信すればよい。
なお仮想マシン上でServer OSを実行し、DHCPサービスを稼働させれば、ほかの仮想マシンにDHCPサービスを提供することができるので、必要ならば利用すればよいだろう。また、仮想マシンに内部仮想ネットワーク・インターフェイスと外部仮想ネットワーク・インターフェイスの2つを追加し、それらの間でNAT(アドレス変換)やICS(インターネット接続の共有)を行えば、内部仮想ネットワークから外部ネットワークへアクセスできるようになる。
■Virtual Server 2005のDHCPサーバ機能
Virtual Server 2005では機能が拡張され、仮想ネットワーク・インターフェイスごとにDHCPサーバ機能を利用できる。割り当てるIPアドレスの範囲やリース時間などは次の画面で設定できる。
これはホスト・コンピュータに装備された実際の物理的なネットワーク・インターフェイスにマッピングされる仮想ネットワーク・インターフェイスである。各仮想マシンのネットワーク・インターフェイスが直接外部のネットワーク(ホスト・コンピュータが接続されているネットワーク)に接続されているのと同じ状態になる。そのため、実際のネットワークとほとんど同じことが可能になる。ただしそのために、セキュリティ対策には注意する必要がある。たとえホスト・コンピュータ側にファイアウォールやウイルス対策ソフトウェアなどを導入していても、各仮想マシンの通信は一切保護されることはない(仮想マシンあてのパケットは、何もフィルタリングされずに、仮想マシンに渡されるからだ)。
各仮想マシンで利用するIPアドレスは、デフォルトでは外部ネットワーク上のDHCPサーバから取得することになる(もちろん各仮想マシンを固定IPアドレスで運用することも可能)。そのため正しくIPアドレスの割り当てが受けられるように、あらかじめDHCPサーバを設定しておく必要がある。基本的には仮想マシンごとに固有のMACアドレスを持つため、仮想マシンの数だけ新しいIPアドレスが必要になる。必要ならDHCPサーバの管理者と相談して、十分な数のIPアドレス・プールを用意するなどの対策が必要になるだろう。
これはVirtual PC 200x/Windows Virtual PCでのみ利用可能なネットワーク・インターフェイスのオプションである。仮想マシンからNAT(ネットワーク・アドレス変換)機構を通して外部(インターネットなど)へアクセスする。NATとは、IPマスカレードなどともいう、プライベートIPアドレスからグローバルIPアドレスへの変換機能である。Windows XPのICS(インターネット接続の共有)や、家庭用ブロードバンド・ルータなどが備えている、1つのグローバルIPアドレスで多数のクライアント・コンピュータをインターネットに接続する機能などとほぼ同じである。
この共有ネットワーク・インターフェイスを使った場合の、仮想マシンにおけるIPアドレスの割り当て状況を次に示す。
C:\>ipconfig /all …IPアドレスの割り当てを確認する
Windows IP Configuration
Host Name . . . . . . . . . . . . : vpcwinxpsp3yyy
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : example.com
Ethernet adapter ローカル エリア接続:
Connection-specific DNS Suffix : example.com
Description . . . . . . . . . . : Intel 21140-Based PCI Fast Ethernet
Adapter (Generic)
Physical Address. . . . . . . . : 00-03-FF-91-5C-12
Dhcp Enabled. . . . . . . . . . : Yes
Autoconfiguration Enabled . . . : Yes
IP Address. . . . . . . . . . . : 192.168.131.68 …IPアドレス
Subnet Mask . . . . . . . . . . : 255.255.255.0 …ネットマスク
Default Gateway . . . . . . . . : 192.168.131.254 …ゲートウェイ
DHCP Server . . . . . . . . . . : 192.168.131.254 …DHCPサーバ
DNS Servers . . . . . . . . . . : 192.168.11.4 …外部DNS1
192.168.11.8 …外部DNS2
Lease Obtained. . . . . . . . . : 2009年9月15日 10:04:03
Lease Expires . . . . . . . . . : 2026年9月20日 4:52:34
C:\>
これを見ると分かるように、割り当てられるIPアドレスは192.168.131.0/24のうちの任意の1つ、ゲートウェイ・アドレスは192.168.131.254となっている。DNSサーバやドメイン名などはホスト・コンピュータの設定がそのまま引き継がれるので、DNSサーバへアクセスする場合はアドレス変換されてからアクセスされることになる。なお通常のNAT機能と違い、この共有ネットワーク・インターフェイスを利用する仮想マシンはお互いに通信することはできない(内部仮想ネットワーク・インターフェイスの場合はお互いに通信できるが、このNAT環境では仮想マシン同士が隔離されている)。また受信用のポート・マッピングの指定などもできないので、用途としては、仮想マシンから外部(インターネットなど)へのアクセス専用となる。
この共有ネットワーク・インターフェイスを使う場合、ゲストOSでは、通常はDHCPによる自動的なIPアドレスの割り当てを利用する。だが場合によっては固定的なIPアドレスを使いたいこともあるだろう(例:Active DirectoryやDNSサーバなどをインストールする場合)。このようなケースでは、割り当てるIPアドレスに注意していただきたい。192.168.131.0/24のうち、どのアドレスでも利用できるかというと、そうではないからだ。手元で試した限りでは以下のような設定でないと、外部へアクセスできなかった(TIPS「Virtual PC 2007の共有NATネットワークで利用可能なアドレス範囲に注意」も参照)。
項目 | 内容 |
---|---|
IPアドレスの範囲 | 192.168.131.64〜192.168.131.191(128個分) |
ネットマスク | 255.255.255.0 |
ゲートウェイ | 192.168.131.254 |
DNS/WINSサーバ | デフォルトではホストOSのネットワーク・インターフェイスの値がDHCPでそのまま引き継がれる。ホストOSのものと同じものを設定しておけばよいだろう |
Virtual PC 2007/Windows Virtual PCの共有NATネットワークで利用可能なIPアドレス・パラメータ DHCPで割り当てられたIPアドレスを使わず、固定的なIPを割り当てて利用してもよい。その場合は、この範囲内のIPアドレスにすること(これはDHCPで割り当てられる範囲と同じものだと思われる)。これ以外のIPアドレスを利用するとNATによるアドレス変換が機能せず、外部へアクセスできない。なお、外部からゲストOSへアクセスすること(いわゆるポート・マッピングなどを使ったインバウンドのアクセス)はもともと不可能であるし、仮想マシン間での通信も不可能である。また、複数の仮想マシンで同じIPアドレスを使った場合の挙動は不明だが、NATなどが正常に機能しなくなると思われるので、重複しないようして割り当てていただきたい。 |
【2010/02/05】Virtual PC 200xおよびWindows Virtual PCのNAT共有ネットワークで利用可能なIPアドレス範囲の情報を追加しました。
Copyright© Digital Advantage Corp. All Rights Reserved.