連載
» 2009年09月17日 00時00分 UPDATE

仮想PCで学ぶ「体当たり」Windowsシステム管理:第3回 仮想ネットワークの種類を知る (1/2)

仮想環境で利用できる仮想ネットワークの種類とその使い方について解説。Hyper-Vの仮想ネットワークも理解しよう。

[打越浩幸,デジタルアドバンテージ]
仮想PCで学ぶ「体当たり」Windowsシステム管理
Windows Server Insider


「仮想PCで学ぶ『体当たり』Windowsシステム管理」のインデックス

連載目次


 前回は仮想環境で使用する仮想ディスクの種類やその使い方などについて解説した。今回は仮想化ソフトウェアを使って仮想環境を用意する場合に必ず必要となる、仮想ネットワーク・インターフェイスについてみていこう。

 ホストとなるコンピュータには、通常は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つの選択肢が表示されている。

wi-vpcnetconfig01.gif Virtual PC 2007のネットワーク設定画面
Virtual PC 200x/Windows Virtual PCでは、仮想マシンごとに使用するネットワークの種類を直接選択する。Virtual ServerやHyper-Vでは、まず仮想インターフェイスを作成してから、それを選択する。
 (1)この仮想マシンで利用するネットワーク・インターフェイスの数。通常は1つだろう。
 (2)ここで選択する。外部仮想ネットワーク(物理ネットワーク)を設定するには、ホスト・コンピュータの物理ネットワーク・インターフェイス名(ここでは「Marvell Yukon……」)のメニューを選ぶ。

 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サーバ機能を持っていること、あらかじめ仮想的なネットワーク・インターフェイスを作成しておき、そこに接続するようになっている、という点が異なる。

wi-vsnetconfig01.gif Virtual Server 2005 R2のネットワーク設定画面
Virtual ServerやHyper-Vなど、大規模な仮想化環境をサポートした製品では、あらかじめ仮想的なネットワークを作成しておき、それを各仮想マシンに追加するという形で利用する。これにより仮想ネットワークの設定をまとめて変更、管理するのが容易になる。
 (1)物理的なネットワーク・インターフェイスにバインドされていない仮想ネットワーク・インターフェイスの例。ここでは分かりやすいように「内部ネットワーク」という名前にしている。Virtual Serverでは複数作成することができる。複数作成しておくと、仮想マシンをグループ分けして、それぞれに閉じたネットワークを構築できる。Virtual PCの内部ネットワークは1つしか存在しないので、すべてが相互に通信できるし、(ネットワーク的に)見えてしまう。
 (2)物理的なネットワーク・インターフェイスにバインドされている仮想ネットワーク・インターフェイスの例。ここでは分かりやすいように「外部ネットワーク(Broadcom NetXtreme Gigabit Ethernet)」という名前にしている(Broadcom……は実際のネットワーク・インターフェイスのアダプタ名)。

 以下順に、それぞれの仮想ネットワーク・インターフェイスについて、詳しく見ていこう。

内部仮想ネットワーク・インターフェイス

 これは、同じホストOS上で動作する、仮想マシン(ゲストOS)間同士でのみ通信可能なネットワークである。外部の物理ネットワークとは隔離された状態なので、ネットワーク的には閉じた安全な状態で仮想マシンを実行できる。ただし外部と通信できないので、ネットワークを利用しない用途か、仮想マシン間の通信だけで完結するような用途で利用する。またWindows 2000のように、デフォルトではファイアウォールを持っていないような古いゲストOSを利用する場合にも有用だろう。外部からの攻撃を一切受けることがないからだ。

wi-fig01.gif 内部仮想ネットワーク・インターフェイス
左の紫色のネットワーク・インターフェイス・カードはホスト・コンピュータに装着されている実際の物理的なカード、右側の緑色のものは仮想マシンにアタッチされている仮想ネットワーク・インターフェイス・カード。内部仮想ネットワーク・インターフェイスを利用すると、ホスト・コンピュータの内部にのみ存在する仮想的な内部ネットワークに接続される。このネットワークは外部とは隔離されており、通信することはできない。ホストOSとも通信できない。ただし同じ内部仮想ネットワークに接続されている仮想マシン同士は通信できる。Virtual Serverでは複数の内部仮想ネットワーク・インターフェイスを作成して、仮想マシンをグループ化できる。

 このネットワーク・インターフェイスを使う場合は、各仮想マシンに割り当てる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アドレスの範囲やリース時間などは次の画面で設定できる。

wi-vsnetconfig02.gif Virtual Server 2005 R2のDHCPサーバ機能の設定画面
Virtual Server 2005では、ネットワーク・インターフェイスごとに独自のDHCPサーバを利用できる。内部仮想ネットワーク・インターフェイスにはローカルIPアドレスをDHCPで割り当てるようにしておくとよい。
 (1)これをオンにするとDHCPサーバが有効になる。各仮想ネットワーク・インターフェイスごとにDHCPサービスを提供できる。
 (2)ネットワーク・アドレス。
 (3)ネットマスク。
 (4)DHCPによる割り当てるIPアドレスの範囲。
 (5)リース時間。

外部仮想ネットワーク・インターフェイス

 これはホスト・コンピュータに装備された実際の物理的なネットワーク・インターフェイスにマッピングされる仮想ネットワーク・インターフェイスである。各仮想マシンのネットワーク・インターフェイスが直接外部のネットワーク(ホスト・コンピュータが接続されているネットワーク)に接続されているのと同じ状態になる。そのため、実際のネットワークとほとんど同じことが可能になる。ただしそのために、セキュリティ対策には注意する必要がある。たとえホスト・コンピュータ側にファイアウォールやウイルス対策ソフトウェアなどを導入していても、各仮想マシンの通信は一切保護されることはない(仮想マシンあてのパケットは、何もフィルタリングされずに、仮想マシンに渡されるからだ)。

wi-fig02.gif 外部仮想ネットワーク・インターフェイス
外部仮想ネットワーク・インターフェイスを利用すると、まるで外部の物理的なネットワークに接続されているのとほぼ同じ状態になり、外部(インターネット)と通信することができる。便利だが、その分セキュリティには注意する必要がある。

 各仮想マシンで利用するIPアドレスは、デフォルトでは外部ネットワーク上のDHCPサーバから取得することになる(もちろん各仮想マシンを固定IPアドレスで運用することも可能)。そのため正しくIPアドレスの割り当てが受けられるように、あらかじめDHCPサーバを設定しておく必要がある。基本的には仮想マシンごとに固有のMACアドレスを持つため、仮想マシンの数だけ新しいIPアドレスが必要になる。必要ならDHCPサーバの管理者と相談して、十分な数のIPアドレス・プールを用意するなどの対策が必要になるだろう。

共有ネットワーク・インターフェイス(NAT)

 これはVirtual PC 200x/Windows Virtual PCでのみ利用可能なネットワーク・インターフェイスのオプションである。仮想マシンからNAT(ネットワーク・アドレス変換)機構を通して外部(インターネットなど)へアクセスする。NATとは、IPマスカレードなどともいう、プライベートIPアドレスからグローバルIPアドレスへの変換機能である。Windows XPのICS(インターネット接続の共有)や、家庭用ブロードバンド・ルータなどが備えている、1つのグローバルIPアドレスで多数のクライアント・コンピュータをインターネットに接続する機能などとほぼ同じである。

wi-fig03.gif 共有ネットワーク・インターフェイス(NAT)
共有ネットワーク・インターフェイスを利用すると、仮想マシンからの通信はNAT機構によってアドレス変換され、外部ネットワークへ送信される。外部から見ると、ホスト・コンピュータからの通信のように見えるが、内部では複数の異なる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アドレス範囲の情報を追加しました。



       1|2 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。