VMwareの詳細

2002/04/21
ネットワーク構成

 仮想PCの真髄はその同時性にあると述べた。他のマルチブート手法が決してなしえない極めて重要な機能である。複数のPCが同時に存在する場合、当然そのPC同士の情報のやりとりはどうするのかという問題が起こる。もし各PC間の情報交換ができないのでは同時性の意味の多くが失われることになる。

 VMwareでは一応テキストデータならばクリップボードを通じてホストOS、及び各ゲストOS間で共有することができるが、やはり情報交換を本格的に行うにはネットワークにおいて他はないだろう。情報交換といっても、せっかく複数のPCが同時に存在しうるのだから、単なるファイル共有やデータ共有といった次元を超えて、ネットワークアプリケーションの検証や本格的なクライアント・サーバシステムの検証ができればどんなに便利だろう。

 VMwareが提供するネットワーク構成は極めて多彩で、その気になれば、またあなたの物理PCのCPU能力とハードディスク容量とメモリ容量が許せば、ひとつのPC上にIDC(インターネットデータセンター)を実現することすら可能なのだ。ここではVMwareの多彩なネットワーク構成について説明していきたいと思う。ここではホストOSはWindows XP Professionalで説明する。


 VMwareには下記の4つのタイプのネットワーク構成がある。

  1. ブリッジ構成
  2. ホストオンリー構成
  3. NAT構成
  4. カスタム構成

 一つ一つ説明していこう。

 まずブリッジ構成だが、これはネットワーク構成のデフォルトにもなっている最もオーソドックスで理解もし易いものだ。多くの方は既に家庭でもEthrenetのLANを組んでおられるだろう。また今はどこのオフィスもEthernet-LANがあるはずである。ブリッジはその物理的なEthrenetのLAN上に仮想PCを置くイメージになる。仮想PCをこの設定にする場合、以下のように新規仮想マシンウィザードの「ネットワーク接続方法の選択」ブリッジネットワーキングを使用を選択する。(デフォルトがこれになっている)

[ネットワーク接続方法の選択]

 EthernetのLAN上にPCを置く場合、当然そのPCにユニークなIPアドレスを割り振る訳だが、この構成の場合もやはり各仮想PCにLAN上でユニークなIPアドレスを振る。以下に実際の私の自宅LANの例で説明する。(アドレスは実際とは変えてある)

[ブリッジ構成例]

 我が家の家庭内LANはネットワークアドレス192.168.0.0/24になっていて、ADSLのブロードバンドルータ経由でインターネットに接続している。ルータのLAN側のアドレスが192.168.0.1となっていて、これがこのLAN上のPCのデフォルトゲートウェイ、及びDNSサーバとなる。また私は普段は使っていないがこれがDHCPサーバにもなる。

 他の物理PC上のOSと全く同様の設定を各仮想PCのゲストOSにも行う。もし私のLAN構成のようにDHCPサーバがあるなら、自動取得(DHCPやBOOTP)にしておけば、ゲストOSのネットワーク設定は何もしなくてもいい訳だ。私の場合、固定IPの方が性に合うのですべて手動で設定している。設定例は以下のようになる。

[ネットワーク情報(ブリッジ構成)]

  IPアドレス サブネットマスク ゲートウェイ DNSサーバ
物理PC1 192.168.0.2 255.255.255.0 192.168.0.1 192.168.0.1
物理PC2 192.168.0.3 255.255.255.0 192.168.0.1 192.168.0.1
仮想PC1 192.168.0.4 255.255.255.0 192.168.0.1 192.168.0.1
仮想PC2 192.168.0.5 255.255.255.0 192.168.0.1 192.168.0.1

 見てのとおり、物理PCと仮想PCで何ら変わりがない。これで各仮想PCからも物理PCと全く同様にインターネットアクセスが可能になる。勿論各PC間の通信も可能である。

 ただし、当然のことながら家庭内LANの場合もオフィスLANの場合も各仮想PC分のプライベートIPアドレスを用意、付与しなければならない。家庭内LANの場合、殆ど問題ないが、オフィスの場合、IPアドレスが足りない場合もあるだろうし、通常は勝手にIPアドレスを付与することができないだろう。ネットワーク管理者に申請して、割り当ててもらう必要がある場合が殆どだと思う。

 オフィスなどでプライベートIPアドレスが不足している場合や簡単にはIPアドレスを付与してもらえない場合などは次の「ホストオンリー構成」が便利だ。

 尚、各ネットワーク構成(ブリッジ構成、ホストオンリー構成、NAT構成、カスタム構成)は後から構成エディタで変更することができる。

[構成エディタ]

 
 さて次のホストオンリー構成はホストPC、ホストOSの中で閉じたネットワークを実現する。構成イメージは以下のようになる。

[ホストオンリー構成例]

 この例ではホストOSの中に閉じた仮想プライベートネットワーク」(192.168.211.0/24)が存在する。ホストOSとゲストOS間、およびホストオンリー設定にしたゲストOS同士でのみ通信が可能だ。インターネットはおろか、物理LAN上の他のPCへの通信もできない(例外がある(後述))。

 これが返っていい場合も非常に多いはずだ。ホストPCから一切パケットも出ないから、外部のオフィスLANなどに何の影響も与えない(ただしOSによってはIPフォワードを無効にしておかないとリークするので気をつける必要がある)。また実はこの構成の場合、物理的なネットワークアダプタも必要ない。完全にスタンドアロンなPC上で仮想的なネットワークを構築できるのである。

 ここで物理的ネットワークアダプタが必要ないという話と関連し、上記の図を見てちょとネットワークに詳しい人なら、ホストOS上でこの仮想ネットワーク(192.168.211.0/24)のホストアドレス(例では192.168.211.1)はどこにふるのだろうと疑問に思ったはずだ。

 実はVMware WorkstationをホストOSにインストールするとデバイスとして2つの仮想Ethernetアダプタが同時にインストールされる。以下に私のPCのデバイスマネージャを示す。

[仮想Ethernetアダプタ]

 今回のホストオンリー構成用のVMware Virtual Ethernet Adapter (basic host-only support for VMnet1)と後述するNAT構成用のVMware Virtual Ethernet Adapter (Network Address Translation (NAT) for VMnet8)という2つの仮想Ethernetアダプタ(デバイス)がインストールされているのが見える。

 結局このホストOSの「VMware Virtual Ethernet Adapter (basic host-only support for VMnet1)」と各仮想PC上の仮想Ethernetアダプタとで通信を行う、すべてが仮想の完全無欠の仮想ネットワークが構築される訳だ。私のPCの例では実際に物理ネットワークデバイス(Realtek RTL8139)もあるが、これが無くても全く問題はない。この物理デバイスの機能は一切利用されてないからである。

 また、このデバイスの名前にもあるようにこの仮想Ethernetアダプタが所属するデフォルトのホストオンリー構成によって作られる仮想ネットワークVMnet1と呼ぶ。

 ところで上記のVMwareの仮想Ethernetアダプタはインストール時のデフォルトのTCP/IP設定はすべて自動取得(DHCP)になっているが、ipconfig /all」コマンドでこれらのアダプタのネットワーク設定を確認すると以下のように設定されている(アドレス自体は意図的に変えてある)。

[仮想Ethernetアダプタのネットワーク設定値]

C:\>ipconfig /all

Windows IP Configuration


Ethernet adapter ローカル エリア接続 2:

Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter (basic host-only support for VMnet1)
Physical Address. . . . . . . . . : 00-50-56-C0-00-01
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.211.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
DHCP Server . . . . . . . . . . . : 192.168.211.254
Lease Obtained. . . . . . . . . . : 2002年3月24日 10:36:02
Lease Expires . . . . . . . . . . : 2002年3月24日 11:06:02

Ethernet adapter ローカル エリア接続 3:

Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter (Network Address Translation (NAT) for VMnet8)
Physical Address. . . . . . . . . : 00-50-56-C0-00-08
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.206.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
DHCP Server . . . . . . . . . . . : 192.168.206.254
Lease Obtained. . . . . . . . . . : 2002年3月24日 10:36:02
Lease Expires . . . . . . . . . . : 2002年3月24日 11:06:02

 確かに私の自宅の環境はADSLなのでブロードバンドルータがあり、これがDHCPサーバにもなっているが、このようなアドレスを振るようには設定していない。実はVMware Workstationをインストールすると以下のようないくつかのサービスもインストールされる。

[VMwareのサービス]

「VMware 認証サービス」というサービスは何だかよく分からないのだが、VMwareの仮想DHCPサーバ機能(後でもいろいろな場面で登場する)を一手に司るVMware DHCP Serviceと、後述するNAT機能を司るVMware NAT Serviceがある。

 NATサービスの方は後述するとしてまず「VMware DHCP Service」だが、前述の「VMware Virtual Ethernet Adapter (basic host-only support for VMnet1)」や後述するカスタム VMnetなどの仮想Ethernetアダプタのネットワーク設定を行う他、ホストオンリー構成、カスタム構成上の仮想PCのネットワーク設定はすべてこのサービスが行う。前述のホストOS上の仮想Ethernetアダプタの他、デフォルトのホストオンリー構成上の仮想PCが所属する仮想ネットワークVMnet1こも「VMware DHCP Service」によってネットワーク構成などが制御される。

 ところでこの仮想ネットワークVMnet1のネットワークアドレスはどうなるのだろうか。これはVMware Workstationのインストール時にホストOSが物理的に存在するプライベートネットワークのネットワークアドレスと競合しない値が自動的に振られる。しかし物理側のプライベートネットワークアドレスは変わる可能性がある。その場合仮想ネットワークVMnet1のネットワークアドレスを変える必要があるが、もちろん変更可能である。

 VMware仮想DHCPサービスの設定は%Windowsシステム%\system32\vmnetdhcp.confというテキストファイル(仮想DHCP構成ファイル)に記述されている。以下にこの設定ファイルの内容を示す。

[vmwaredhcp.conf(仮想DHCP構成ファイル)の内容]
#
# Configuration file for VMware port of ISC 2.0 release running on
# Windows NT and Windows 2000.
#
# This file is generated by the VMware installation procedure; it
# is edited each time you add or delete a VMware host-only network
# adapter.
#
# We set domain-name-servers to make some clients happy
# (dhclient as configued in SuSE, TurboLinux, etc.).
# We also supply a domain name to make pump (Red Hat 6.x) happy.
#
allow unknown-clients;
default-lease-time 1800; # 30 minutes
max-lease-time 7200; # 2 hours

# Virtual ethernet segment 1
# Added at 12/22/01 18:16:08
subnet 192.168.211.0 netmask 255.255.255.0 {
        range 192.168.211.128 192.168.211.254;                  # up to 126 VM's
        option broadcast-address 192.168.211.255;
        option domain-name-servers 192.168.211.1;
        option domain-name "localdomain";
}
host VMnet1 {
        hardware ethernet 00:50:56:C0:00:01;
        fixed-address 192.168.211.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
}
# End

# Virtual ethernet segment 8
# Added at 12/22/01 18:16:16
subnet 192.168.206.0 netmask 255.255.255.0 {
        range 192.168.206.128 192.168.206.254;                # up to 126 VM's
        option broadcast-address 192.168.206.255;
        option domain-name-servers 192.168.206.2;
        option domain-name "localdomain";
        option routers 192.168.206.2;
}
host VMnet8 {
        hardware ethernet 00:50:56:C0:00:08;
        fixed-address 192.168.206.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
        option routers 0.0.0.0;
}
# End

 VMnet1用の設定と、前述し詳細は後述するNAT機能用の仮想ネットワークVMnet8についての記述も見える。各ネットワークごとの書式をもう少し細かく見ていこう。

[vmwaredhcp.confの内容]
# Virtual ethernet segment 1
# Added at 12/22/01 18:16:08
subnet 192.168.211.0 netmask 255.255.255.0 {
        range 192.168.211.128 192.168.211.254;                  # up to 126 VM's
        option broadcast-address 192.168.211.255;
        option domain-name-servers 192.168.211.1;
        option domain-name "localdomain";
}
host VMnet1 {
        hardware ethernet 00:50:56:C0:00:01;
        fixed-address 192.168.211.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
}
# End

 上段の赤い部分が主にDHCPの動作になり、下段の青い部分がこのネットワークの中心(ネットワーク上ではゲートウェイと)となるホストOSの仮想Ethernetアダプタの設定値が書かれる。何がどの値なのかはずばりその名の通りなので、特に説明するほどのことはないだろう。もしVMnet1のネットワークアドレスが物理ネットワークアドレスと競合してしまったとか、都合上変更したい場合はこの記述を変更した上、「VMware DHCP Service」をダウンアップする。

 このような仕組みになっているので、仮想PCも含めすべて自動取得にしておけば、何も難しいことは考えずにホストオンリー構成はできあがるが、ゲストOS側は手動設定にしたい場合もあるだろう。その場合はホストOS側で「ipconfig /all」コマンドを実行するか、仮想DHCP構成ファイルを見て、このアダプタのネットワークアドレスを確認した上で各ゲストOSに付与してほしい。以下のその例を示す。

[ネットワーク情報(ホストオンリー構成)]

  IPアドレス サブネットマスク ゲートウェイ DNSサーバ
物理PC1(実LAN側) 192.168.0.2 255.255.255.0 192.168.0.1 192.168.0.1
物理PC1(仮想LAN側) 192.168.211.1 255.255.255.0 - -
仮想PC1 192.168.211.2 255.255.255.0 - -
仮想PC2 192.168.211.2 255.255.255.0 - -

 仮想ネットワークからゲストOS(仮想PC)は出ないのでゲートウェイやDNSサーバの設定は必要ない。(設定するような使い方もある(後述))

 因みに仮想DHCP機能ではネットワークアドレスクラスCしか利用できない。それ以外のクラスにすると仮想DHCPサービスが起動しない。まあクラスCでも1ネットワークあたり253は仮想ホストを設定できるので、VMwareとしては十分過ぎる数だろうから問題ないね。しかしどうしてもクラスC以外のネットワークアドレスを使いたい場合は後述するようにDHCPを使わない全手動設定にしよう。
 

 尚、ホストオンリー構成による仮想プライベートネットワークはホストOS上に複数構築することが可能だ。その場合、さらに仮想Ethernetアダプタを別途インストールする必要がある。コントロールパネル「ハードウェアの追加」からVMware Virtual Ethernet Adapter (for VMnet*)をインストールする(具体的は手順は「仮想ネットワークアダプタの追加」を参照)。仮想ネットワークVMnetVMnet2からVMnet7まであって、都合6つの仮想ネットワークを追加できる。(尚、VMnet0はブリッジ構成用、VMnet1は前述したようにデフォルトのホストオンリー構成用、VMnet8はNAT構成用にそれぞれ予約されている。)

[追加した仮想Ethernetアダプタ]

 この場合、各仮想PC側の構成はネットワークタイプを「カスタム構成」でこの「VMnet*」を選択する。やはりインストール時に仮想ネットワークアドレスは自動決定され、VMware仮想DHCP構成ファイル(vmnetdhcp.conf)に記述される。

[仮想DHCP構成ファイルに追加されたVMnet2の設定]
# Virtual ethernet segment 2
# Added at 03/17/02 12:26:14
subnet 192.168.110.0 netmask 255.255.255.0 {
        range 192.168.110.128 192.168.110.254;                   # up to 126 VM's
        option broadcast-address 192.168.110.255;
        option domain-name-servers 192.168.110.1;
        option domain-name "localdomain";
}
host VMnet2 {
        hardware ethernet 00:50:56:C0:00:02;
        fixed-address 192.168.110.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
}
# End

 VMnet1同様に変更したい場合はこのファイルの記述を変更してサービスのダウンアップを行う。

 またこれまでホストオンリー構成は閉じたネットワークを構築すると述べてきたが、ホストOS上でProxy Serverを立ててこれを適切に設定すれば、外部との通信も可能になる。Proxy Serverに仮想Ethernetアダプタと物理Ethernetアダプタの仲立ちをさせる訳だ。また無線LANに接続する場合は通常後述するNAT構成で行うが、この構成でもProxy Serverを立てれば可能である。

 その他、Windows2000などのインターネット接続共有を利用してもホストオンリー構成のまま、ゲストOSからインターネットにアクセスすることができる。

 逆にホストOSがToken LingFDDIなどのEthernet以外のネットワークデータリンクの場合、むしろこの方法でないとこれらのネットワークと接続できない。

 ところで、ホストオンリー構成の仮想DHCPサーバの設定はあくまでDHCPのための設定に過ぎない。従ってその仮想ネットワーク上で統一さえ取れていれば、仮想DHCP設定を全く無視した設定を各仮想PCで手動設定をすることもできる。つまり例えば上記のVMnet2の場合、DHCPの設定はネットワークアドレスが192.168.110.0/24だが、VMnet2に設定した仮想PCをすべて手動で例えば192.168.220.0/24のアドレスにしてしまっても構わない。DNSアドレスなども自由に(ネットワーク構成として矛盾がない範囲で)設定可能だ。もっとも通常は何もDHCPの設定と違うものにする必要はないので、ネットワークアドレスを特定のものにしたいのであれば、仮想DHCP設定の方をそれに合わせればいいだろう。あくまでこういうこともできるという話である。

 ただし前述したように仮想DHCP機能ではクラスCのネットワークアドレスしか使えないので、どうしてもそれ以外のクラスを使いたい場合、このような全手動設定を行う必要がある。


 さて次のNAT(Network Address Translation)構成だが、これは主にホストPCがダイアルアップでインターネットに接続している場合などにそのダイアルアップアダプタを通じてゲストOSが外部インターネットと接続する場合などに有効だ。また無線LANに接続する場合もこの構成を使うのが普通である。以下に構成イメージを示す。

[NAT構成例]

 やはりVMware導入時にインストールされたNAT構成用の仮想Ethernetアダプタ(VMnet8)を利用する。ゲストOS側はホストオンリー構成同様に基本的に自動取得にしておいた方がいいだろう。やはりVMwareの仮想DHCPサーバが機能して、ゲストOSに適切なIPアドレスを付与する。設定は至って簡単で、仮想PCはネットワーク設定でNAT構成を選び、ゲストOS上のネットワーク設定を自動取得にしておくだけだ。これだけでゲストOSからホストOSのダイアルアップアダプタを通じてインターネットアクセスが可能になる。

 もし手動設定したい場合はやはりホストオンリー構成と同じようにホストOSで「ipconfig /all」コマンドか仮想DHCP構成ファイルで「VMware Virtual Ethernet Adapter (Network Address Translation (NAT) for VMnet8)」アダプタの情報を確認し、個々に設定する必要がある。以下に設定例を示す。

[ネットワーク情報(NAT構成)]

  IPアドレス サブネットマスク ゲートウェイ DNSサーバ
物理PC1 192.168.206.1 255.255.255.0 - -
仮想PC1 192.168.206.2 255.255.255.0 192.168.206.1 192.168.206.1
仮想PC2 192.168.206.2 255.255.255.0 192.168.206.1 192.168.206.1

 ホストオンリー構成と違って、仮想PC(ゲストOS)側はゲートウェイやDNSサーバをホストOSの当該仮想EthernetアダプタのIPアドレスを必ず指定する。

 NAT機能そのものはVMware Workstationのインストール時、前述した「VMware NAT Service」がインストールされ、それによって行われている。またNATの動作はやはり、vmnetnat.confファイルに記述されているので、これを変更することにより、動作を変更することができる。尚、この構成に基づく仮想プライベートネットワークはホストOS上にひとつしか作ることができない。

 またこの構成は主にホストOSから直接ダイアルアップしているような場合に有効であると述べたが、私の自宅の環境のようにADSLブロードバンドルータやISDNのダイアルアップルータを利用してインターネットアクセスしているような環境でも別に利用して構わない。

 この場合、ブリッジ構成と違って、一旦ホストOSを通じてインターネットアクセスする訳だが、ブロードバンドルータなどのNAT(正確にはNAPTまたはIPマスカレード)機能とVMwareのNAT機能の2重NAT構成になる。技術的にはブリッジ構成でも可能な構成なのだが、オフィスLANのようにブリッジ構成が組みにくい場合でもゲストOSからインターネットアクセスができるようになる訳である。まあパフォーマンス的にはブリッジ構成よりもちょっと落ちるが。


 最後のカスタム構成だが、これは基本的にはブリッジ構成またはホストオンリー構成のいずれかを特定の仮想ネットワークを選んでカスタマイズできるというものだ。ホストオンリー構成のところでも複数のホストオンリー構成を使いたい場合はカスタム設定を使うと説明した。カスタム設定を使えば、以下のようなネットワーク構成もホストOS上に実現することができる。(VMwareのヘルプにあった構成例と図を借用)

[ネットワーク構成(カスタム構成)]

 仮想マシン1外部ネットワーク内部ネットワークにまたがっていて、それぞれを隔てるファイアウォールとなっている。仮想マシン2は外部ネットワークとひとつのファイアウォールだけで隔てられている内部ネットワーク、いわゆるDMZ(DeMiliterized Zone、非武装地帯)内に存在している。Webサーバは普通、DMZに置かれるよね。仮想マシン3はこのDMZとさらに奥の内部ネットワークに跨っていて、やはりこれらを隔てるファイアウォールとなっている。仮想マシン4は2段のファイアウォールで守られた、安全で完全な内部ネットワークにいる。最も基本的で一般的な企業ネットワークと言えるだろう。

 さて具体的に上記構成を作る方法を説明していこう。

 まず順に仮想マシン1から設定してみる。まずはデフォルトのネットワークカードの設定は「ブリッジ構成(VMnet0)」を選ぶ。次にこの仮想マシン1にもう一枚ネットワークカードを挿す。それは次のように行う。「構成エディタ」を起動し、「ハードウェア」タブから「追加(A)..」ボタンをクリックする。

[ハードウェアの追加(構成エディタ)]

 するとハードウェア追加ウィザードが始まるから、「ハードウェアの種類」リストからネットワーク アダプタを選択して、「次へ(N) >」ボタンをクリックする。

[ハードウェアタイプの選択]

 次に「ネットワークタイプ」カスタム:仮想ネットワークの指定(C)を選択し、コンボボックスからVMnet2を選んで「完了」。

[ネットワークタイプの選択]

 NICの追加は以上だ。後はゲストOSをインストールする。OSの種類は何でもいいだろう。各NICを一旦自動取得(DHCPまたはBOOTP)にしておこう。尚、NICの追加はゲストOSインストール後でも構わない。

 やはりNICが2枚ある仮想マシン3も同様の手順でNICを追加するが、こちらはデフォルトNIC、及び追加NICをそれぞれ、VMnet2VMnet3で構成させる。

 NICが1枚しかない仮想マシン2仮想マシン4はそれぞれデフォルトNICはVMnet2VMnet3で構成させる。

 いずれもゲストOS上のネットワーク設定は「ipconfig /all」コマンドや仮想DHCP構成ファイルなどでネットワークアドレスを確認してその設定を行うか、独自のネットワークアドレスにしたいなら、前述のように仮想DHCPサーバ設定を変更して、その設定に合わせて固定設定に変更しよう。勿論その仮想マシンの役割やその上で稼動されるアプリケーションによっては自動取得のままでもいいだろう。

 例えば、仮想マシン4の場合、クライアントPCだから通常は自動取得のままでもあまり不都合はないだろう。しかし仮想マシン1と仮想マシン3はこのノードの役割がファイアウォールだから、固定でないとまずいだよね。また仮想マシン2もWebサーバを立てている以上、固定でないとまずいだろう。もっとも仮想マシン4もここに内部メールサーバを置くなら、固定にしておく必要がある。

 またルーティングの関係で、ゲートウェイやDNSサーバ、ブロードキャストアドレスなども個々に適切に設定する必要があるだろう。まあここまでくれば物理ネットワークと何ら変わらない作業になるので、ここで私が説明することではないね。

 後はそれぞれのゲストOS上で、しかるべきソフトウェアを稼動させる。ファイアウォールノードでは各種ファイアウォールソフトをインストールし、セキュリティポリシーに従ってパケットフィルタリングのルール設定などを行うのだろう。Proxyサーバを立ててもいいだろうね。内部ネットワークにはプライベートアドレスを振るだろうから、ファイアウォールにはNAT機能もつける必要がある。


 ところでこのような環境を作っていったい何が面白いのだろうか。通常はファイアウォールソフトや各種ネットワークソフトの検証に便利だろう。また実構成のシミュレーションテストなどにも有効かもしれない。従ってあまり個人で使う構成ではないと思う。もっともVMware自体があまり個人ユースをターゲットにしているとは思えないが。しかしこのVMwareのマニュアルに書かれているカスタム構成例はカスタム構成の本領を発揮していない。実はこのカスタム構成はもっとおもしろいことができるのである。

 私は先ほどカスタム構成は、仮想ネットワークに対してブリッジ構成またはホストオンリー構成のいずれかでカスタマイズできると述べたが、この構成例では追加した仮想ネットワーク(VMnet2とVMnet3)はいずれもホストオンリー構成になっている。もう一度ネットワーク構成図を見てみよう。

[ネットワーク構成(カスタム構成)]

 この図だと仮想ネットワークVMnet2とVMnet3はいずれもホストOS内で閉じたホストオンリーネットワークであるが、これらのカスタム仮想ネットワークはブリッジ構成にすることもできる。

 例えばVMnet3をブリッジ構成にして、このホストマシンにもうひとつの実イーサネットアダプタを挿し、そこにブリッジする。その2つ目の実イーサネットアダプタを社内の本物の内部プライベートネットワークに接続する。VMnet0に接続する元々あった実イーサネットアダプタには実際に本物の外部のネットワークを接続すれば、全く本物のファイアウォールシステムとなるのである。本来なら複数のルータやマシンで構成する必要のあるDMZのある堅牢なファイアウォールシステムをたったひとつのPCで実現できる訳である。

 実際ネットワールドなどはこの点を最も大きなVMwareの売りとして営業している。にも関わらずVMware Workstationのマニュアルにはきちんと書いていないということは、企業にはVMware Serverを売りたいからだろうか。

 具体的にカスタム仮想ネットワークをブリッジ構成にする方法を示そう。

 メイン画面の「設定(S)」プルダウンメニュー -> 仮想ネットワークの管理...をクリックする。

 以下のような「仮想ネットワーク構成」ダイアログが表示される。

[仮想ネットワーク構成ダイアログ]

 「ブリッジ割り当て」タブで各仮想ネットワークに実イーサネットアダプタを割り当てる。設定はたったこれだけである。これだけで企業内ネットワークを外部アタックから守るばりばりのファイルウォールが作れるのだからすごい!

 


ストレージデバイス

 VMwareではストレージデイバスについても柔軟な使い方ができる。ハードディスク、CD-ROM、フロッピーディスクなどに分けてみてみよう。

 まずハードディスクだが、デフォルトではホストOS上の特定のファイル仮想ハードディスクドライブのイメージとして使う。通常はこの仮想ハードディスクドライブをイメージファイルとして使う設定にしておくのがいいだろう。各ゲストOSやホストOSとの競合が起こらないので安全である。

 仮想ハードディスクドライブとして、イメージファイルを使わないでホストOS上の物理ディスク、または物理パーティションを直接使う設定にすることもできる。こうすると、一見ホストOSとデータ交換ができるようになると考えがちだが、実はあまりデータ交換には便利な方法ではない。

 たとえばホストOSの物理パーティションを使ったゲストOSを起動した後、そのパーティションにファイルをコピーしてもゲストOSからは見えない。ゲストOSを再起動しないとそのデータが見れない。データ交換はやはりネットワークを利用した方が便利だろう。

 またこの方法は複数のOSから同時に同じデータを扱うことになるため非常に危険だ。普通のOSはネットワークを介さないで直接データを複数のOSから操作するということを想定して作られていないため、思わぬトラブルの元になる。従ってパワーユーザしかこの設定を使うべきでないとマニュアルには記述されている。またゲストOSでハードディスクの物理パーティションを利用する場合は基本的にホストOSからはそのパーティションを見えないようにしておく必要がある。

 ということは結局データ交換には全く利用できないことになる。これでは物理ハードディスクを利用するメリットなどあるのだろうか。実はこれは既に物理的なマルチブートを行っていた人がホストOS以外のOSを仮想PC上で起動するための手法として用意されたものなのである。

 つまり、たとえばあなたが既にWindowsXP、Windows2000、Windows98のそれぞれを別基本領域にインストールしてマルチブートをしていたとしよう。ここでWindowsXPをホストOSとしてVMware Workstationをインストールした場合、きっとゲストOSとしてやはりWindows2000などを構築するだろう。もはや物理的なマルチOS環境は必要ないと考えるかもしれない。しかしWindows2000やWindows98はこのまま残しておき、これらを仮想PC上から起動できたら便利だと思うだろう。

 これを実現するために用意されたのが、仮想ハードディスクに物理パーティションを利用する機能なのである。本当はここでこれを実現するための方法について詳細に説明したかったのだが、実は私の環境でどうしてもうまくいかなかったので詳細の説明はやめることにする。

 この手法は物理パーティション上に存在するあるOSを、物理起動も仮想起動もできるようにするためのもので、そのためにいろいろなことをやる必要がある。私もなんとか両方の起動を可能にしたのだが、残念ながら仮想起動すると次に物理起動しなくなるという現象がおき、どうしてもシューティングできない。

 このあたりが解決したら、解説を試みたいと思う。

 



inserted by FC2 system