VMware Serverにおけるネットワーク
VMware Serverを導入して以来、サーバーに無茶をさせてみたり、管理用クライアントにアホみたいなことをさせていますが、今回は真面目なVMware Serverのお話です。nabeさんのVMware playerにethernetを占有させるの記事の補足として読んで頂ければよいと思われます。
VMware Serverの仮想ネットワーク
VMware Serverのインストール時にVMnet0,1,8の構成を行います。このVMnetとはVMware Server内の仮想化レイヤーで構成される仮想スイッチのことを表します。Bridgeを構成すればVMnet0が、NATを構成すればVMnet8が、ホストOSのみの通信であればVMnet1が構成されます。このあたりはWorkstation/Player共に共通と思われます。
このVMnat*の構成は以下のように言い換えることができます
- VMnet0(Bridge)
- 仮想化レイヤーに構成された仮想スイッチ(L2)に選択した(物理)ネットワークカードから仮想LANケーブルを接続
- VMnet1(HostOnly)
- 仮想化レイヤーに構成された仮想スイッチ(L2)とホストに構成された仮想NIC間を仮想LANケーブルで接続
- VMnet8(NAT)
- 仮想化レイヤーに構成された仮想NATルーター(L3スイッチ)に(物理)ネットワークカードから仮想LANケーブルを接続
図にするとこんな感じです (デフォルト構成の場合)
仮想マシンのネットワーク設定
仮想マシンのネットワークカード設定では、上記で構成されたどの仮想スイッチに仮想LANケーブルを接続するかということを設定します。例えば単純に外部のネットワークに出ていきたいのであればVMnet8の仮想NATルーターへの接続を構成します。
仮想マシンに物理NICを占有させる@Debian
私がVMware Serverをインストールしているマシンでは物理NICを2つ搭載しています。VMware Server以外の用途としてファイルサーバーとして利用していますので、サーバーでは主にGbEのNICを利用しており、オンボードで搭載されている100MbEのNICは利用していません。今回はこの空いている100MbEを仮想マシンに構成させる場合の設定です。
- eth0: オンボードの100Mbps NIC
- eth1: Debian(ホストOS)で利用するためのGbE
まず、ネットワークカード自身が有効になっていませんのでeth0を有効化します。
一時的な設定
# ifconfig eth0 up
毎回有効にするためには/etc/network/interfacesを設定します
# for eth0 auto eth0 iface eth0 inet manual up ifconfig eth0 up
確認はifconfigで行います。eth0が今回VMwareに占有させたNICです。
# ifconfig eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:81854256 errors:0 dropped:0 overruns:0 frame:0 TX packets:53462454 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2390389428 (2.2 GiB) TX bytes:4271269678 (3.9 GiB) eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx: inet addr:192.168.xxx.xxx Bcast:192.168.xxx.255 Mask:255.255.255.0 inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1 RX packets:52366512 errors:0 dropped:0 overruns:0 frame:0 TX packets:85352659 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:297241411 (283.4 MiB) TX bytes:1872957313 (1.7 GiB) Interrupt:209
このようにDebian側からはIPアドレスを持っていませんので通信することはできません。
次にvmware-config.plでVMnet2を構成します。ゲストOSをホストOSと同じサブネットに属させたいのであればBridgeの構成を、ゲストOSを異なるサブネットに属させたいのであればNAT構成にします。今回はBridge構成でVMnet2を構成しました。
このような構成の場合、Debian側ではNICを有効にしているだけでIPその他は未構成ですので、このNICを用いて通信できません。一方、仮想マシン側からはこのNICを用いてしか仮想マシン外部(Debian含め)に出ることができません。
図にするとこんな感じ。
応用: 仮想NIC/スイッチを用いたDMZ環境の構築
VMware Serverを利用すれば1つの物理マシンと2つの物理NICを用いてDMZ環境の構築を行うことが出来ます。
仮想環境におけるシステム要件は下記の通り。
- VMware Server(物理マシン)の要件
- 物理NICを2つ持つ
- 片方のNICはLANに接続
- 片方のNICはWANに接続 (仮想マシンに占有)
- 仮想マシン要件
- 仮想マシンを2つ構築する必要があります
- 1つ目の仮想マシンは仮想NICを2つ持ち、ファイアウォール・ルーターとして動作
- 2つ目の仮想マシンは外部公開サービスを動作させます
- 仮想マシンを2つ構築する必要があります
- 仮想スイッチ要件
- 2つの仮想スイッチを構築します
- WAN側物理NICとのBridge
- 内部通信用スイッチ
- 2つの仮想スイッチを構築します
図にするとこんな感じになります
このような構成にした場合、内部(LAN)のネットワークから切り離され(ホストOSであるDebianからも)、外部(WAN)のネットワークからも直接参照することはできないので非常に安全に外部公開サーバを1台の物理マシンで構築することができます。