2012年4月19日木曜日

VMWare Fusion3 のネットワーク

VMWare Fusion はなんでだかしらないけど、Windows上のVMWare Workstation にあるネットワーク周りの設定ができない。Workstationでは、たとえば、NATのインターフェイスを追加して、別のネットワークを、なんてことも簡単にできるのだが、VMWare Fusionではできない。

DHCPのないNATネットワークが欲しくて、どうにかできないかと思って検索したら こんなページを見つけた。直接設定ファイルをいじってインターフェイスを追加する。さらに、VMXファイルを直接編集してネットワークインターフェイスを切り替えるという面倒くささ。

DHCP のないNATの追加

作業は、/Library/Application Support/VMware Fusion/で行う。

まずVMWareのサービスを止める。

> sudo ./boot.sh --stop

vmnet7 ディレクトリの作成

デフォルトでは vmnet1, vmnet8 というディレクトリがある。それぞれホストオンリーとNATに対応している。 新たにNATを作る場合にはvmnet8をテンプレートにすればいい。まず、vmnet8ディレクトリをコピー。
> sudo cp -r vmnet8 vmnet7
で、vmnet7/nat.confを編集。ネットワークアドレスは重ならないように、device名も適当に。
[host]
ip = 192.168.2.2
netmask = 255.255.255.0
device = /dev/vmnet7
vmnet7/nat.mac もいじる。ユニークであればいいので、下の方を適当に変えればいいはず。

networking ファイルの修正

answer VNET_7_DHCP no 
answer VNET_7_HOSTONLY_NETMASK 255.255.255.0
answer VNET_7_HOSTONLY_SUBNET 192.168.2.0
answer VNET_7_NAT yes
answer VNET_7_VIRTUAL_ADAPTER yes
こんなふうに追記。DHCP no としているのでDHCP がたたない。subnetのネットワークは、nat.confと整合するように注意。 VMWareのサービスを再起動して終了
> sudo ./boot.sh --start

VM側の設定

これもGUIからはできない。テキストエディタでVMXファイルを編集。デフォルトのNAT(vmnet8)だったものをvmnet7にするには、
ethernet0.connectionType = "nat"
となっているのを、下のように書きなおす。
ethernet0.connectionType = "custom"
ethernet0.vnet = "vmnet7"

結果

このとおりにやってみて、vmnet7というDHCPのないネットワークを作り、VMから参照させるところまではうまくいったのだが、どうもNATがうまく機能してくれない。ホストオンリーになってしまっている。まあ、いいか。。 と思ったら動いているようだ。。。いつのまに。