2007/04/17(火)VMware player に ethernet を占有させる
LANカードを1枚余計にさして、ホストマシンでは使用せずに VMware 上の仮想マシンに占有させるために格闘してみました。
VMWare のネットワークの仕組
VMware3.0 の Network の設定方法というサイトにネットワークの仕組が書かれています。要するに、VMware内のネットワークはすべて仮想的なネットワークであるVMnetを経由して外部に接続されます。VMnet1やVMnet8などは、仮想的なネットワークの個別の名前です。そういう名前の「HUBがある」と思えば分かりやすいかもしれません。
VMnet0 | ブリッジ用のネットワーク |
VMnet1 | hostonlyホストオンリー用(仮想マシンとホスト間のみで通信できるネットワーク) |
VMnet8 | natネットワーク用(仮想マシンから、ホストをNATとして外部に通信) |
この他、VMnet2~VMnet7は自由に使うことができます。自由というのがくせもので、きちんと設定してあげる必要があります。ホストOS(VMwareが動くOS)上の物理イーサネットをどのVMnet*に割り当てるかは設定ツールが存在します。
Windows ならば c:\program files\vmware\vmware player\vmnetcfg.exe(vmplayerの場合)、Linux ならば vmware-config.pl というスクリプトがあります。この設定は重要です。例えば、VMnet2 に特定のインターフェイスカードをブリッジとして割り付けます。
vmxファイルの設定
続いて、仮想マシン上の ethernet を、特定の VMnet に結びつけます。vmx を次のように設定します。ethernet1 を特定インターフェイスに割り付けます。
ethernet0.present = "true" ethernet0.connectionType = "bridged" ethernet1.present = "true" ethernet1.connectionType = "custom" ethernet1.vnet = "VMnet2"
ゲストOS(VMware上のOS)がLinuxならば、eth0 が通常の bridge共有、eth1 が占有インターフェイス(Bridge扱い)となります。
ホスト側がWindowsのときの設定
VMwareのホストに占有させたいネットワークカードのプロパティを開き、VMware brigde 以外のプロトコルのチェックを外します。これで占有になりますが、このままではネットワークの接続検出に失敗することがあるようなので、その場合は TCP/IP と適当な IP だけ設定しておきましょう。