VMware Fusion 8 でネットワークを追加する
はじめに
2015/11/16 に VMware Photon Controller がオープンソースとして公開されました。
ソースコードだけではなく、手元の VMware Fusion/Workstation で試すことが出来る Devbox も提供されています。
ところが、試すにしてもアドレスが 192.168.209.0/24 決め打ちのアドレス体系のため、手元の Fusion/Workstation の vmnet8 の設定を変更する必要があります。Workstation であれば、vmnet8 のネットワークアドレスを変更するといった UI が提供されているのですが、VMware Fusion にはありません。本エントリーでは、グレーながらもそれを可能にする方法を整理します。
VMware Fusion のネットワーク
VMware Fusion が起動すると、vmnet0 や vmnet8 といったインターフェースが生成され、それぞれ IP アドレスが振られます。そして vmnet8 では NAPT と DHCP サービスが提供されます。NAPT と DHCP サービスの設定は以下のファイルで行われています。
- /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf
- /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf
ここで、いくつか疑問が出てきます。
- vmnet[1-7] はどうやったら設定できるのか?
- DNS サーバーはないのか?
次にそれぞれを確認していきます。
vmnet[1-7] はどうやったら設定できるのか?
dhcpd.conf/nat.conf のフォルダを見れば答えがありますが、/Library/Preferences/VMware\ Fusion/ 配下に各 vmnet のフォルダを作成して、それぞれの vmnet の DHCP/NAT サービスの設定を行います。では、地力で mkdir して vi で編集すれば良いのかというと、そうではありません。
Fusion でネットワークの設定は /Library/Preferences/VMware\ Fusion/networking に集約されています。この networking ファイルの内容を元にして vmnet-cli –configure で各 vmnet の設定ファイルを生成していきます。vmnet[1-7] については networking ファイルに VNET_${INDEX} の設定行があると自動的に生成されるようになります。
なお、dhcpd.conf に関しては、
####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
というコメント行の下に追加の設定を行えば vmnet-cli –configure した後もその設定が残ります。私は MAC アドレスに対して固定で IP を割り当てたい場合に使っています。
DNS サーバーはないのか?
ありません。
Gateway のアドレスが DNS として指定されますが、これは DNS の UDP パケットをキャプチャして、ホストに設定されている DNS サーバーに転送しているだけになります。Fusion 独自に DNS サーバーを建てているわけではないため、各種 DNS の調整を行いたい場合は、Fusion の DNS モドキの機能を当てにせず、地力で DNS サーバーを建てる必要があります。特に DHCP と DNS を連動させて Dynamic DNS な環境を用意したい場合には、vmnet では DHCP を無効にし、地力で DHCP/DNS を構築する事になります。
コマンド
vmnet-cli、vmnet-cfgcli の2つのコマンドを利用することになります。以下の例では、DHCP/NAT が有効な vmnet7 を新しく作成しています。
$ PATH="/Applications/VMware Fusion.app/Contents/Library:$PATH"
$ sudo vmnet-cfgcli vnetcfgadd VNET_7_DHCP yes
$ sudo vmnet-cfgcli vnetcfgadd VNET_7_HOSTONLY_NETMASK 255.255.255.0
$ sudo vmnet-cfgcli vnetcfgadd VNET_7_HOSTONLY_SUBNET 192.168.209.0
$ sudo vmnet-cfgcli vnetcfgadd VNET_7_VIRTUAL_ADAPTER yes
$ sudo vmnet-cfgcli vnetcfgadd VNET_7_NAT yes
$ sudo vmnet-cli confiure
$ sudo vmnet-cli stop
$ sudo vmnet-cli start$
VMNET ではなく VNET なことに注意。M はありません。また、地力 DHCP/DNS を建てる場合には、次のようにしてみるのもよいでしょう。
他にパラメーターはないのかな〜 という人は、以下のコマンドを叩いて ゲヘゲヘ してください。
$ strings "/Applications/VMware Fusion.app/Contents/Library/vmnet-cli" | grep ^DHCP_
DHCP_PARAM_DOMAIN_NAME
DHCP_PARAM_NETBIOS
DHCP_CFG_HASH
DHCP_PARAM_LEASE_START_IP
DHCP_PARAM_LEASE_END_IP
DHCP_PARAM_DEFAULT_LEASE_TIME
DHCP_PARAM_MAX_LEASE_TIME
DHCP_PARAM_BROADCAST_ADDR
DHCP_PARAM_DNS_ADDR
DHCP_PARAM_ROUTERS
DHCP_PARAM_SUB_DEFAULT_LEASE_TIME
DHCP_PARAM_SUB_MAX_LEASE_TIME
DHCP_PROGRAM
$ strings "/Applications/VMware Fusion.app/Contents/Library/vmnet-cli" | grep ^NAT_
NAT_PARAM_INT_GATEWAY_IPSUBNETMASK
NAT_PARAM_ALLOW_ANY_OUI
NAT_PARAM_DEVICE
NAT_PARAM_NOT_SUPPORTED
NAT_PARAM_NAT6_PREFIX
NAT_PARAM_GATEWAY_IP
NAT_PARAM_CONFIG_PORT
NAT_PARAM_ACTIVE_FTP
NAT_PARAM_UDP_TIMEOUT
NAT_PARAM_NAT6
NAT_PROGRAM
関連情報
- Modifying the DHCP settings of vmnet1 and vmnet8 in Fusion
- Fusion で vmnet1 および vmnet8 の DHCP 設定を変更する (2077073)
- Understanding networking types in VMware Fusion (1022264)
- VMware Fusion におけるネットワーク タイプについて (2079941)
まとめ
- VMware Fusion には vmnet[1-7] を設定する UI はない
- vmnet-cli、vmnet-cfgcli を sudo で実行する
- vmnet の追加、DHCP、NAT の設定はすべて /Library/Preferences/VMware\ Fusion/networking にある
- 転んでも泣かない