(2014.7)
VMware Player上でLinuxを動かすだけなら, 解説ページがいくつもあってまったく難しくないが、NAT + 固定IPアドレスという組み合わせにしようとして少し嵌まった。
前提:
やりたいこと: ゲストOSからインターネットにアクセスし、ホストOSからゲストOSのサーバにアクセスできるようにする。
(2015.9) VMware Player 7 がバージョンアップして VMware Workstation 12 Player に名前が変わったが、以下の手順はそのまま使える。
仮想マシン設定での, ネットワーク接続の選択肢は、次のようになっている。
普通は, ネットワークアダプタのネットワーク接続を「ブリッジ」にすればOK.
ホストOSとゲストOSが同じLANセグメントになる。
ところが、ホストOS側のネットワークが切れていると, ゲストOSのネットワークも無効になってしまう。
今回はノートPCだったため,持ち運び時に, ゲストOSのネットワークが使えなくなってしまい、これではダメ。
VMware 設定で, ネットワーク接続を「NAT」にすると, ゲストOSがホストOSと別LANセグメントになる。1台のホストOS上で複数のゲストOSを立ち上げたときは, すべて同一のLANセグメントに入る。
Windows 8.1 (ホストOS) からは, VMnet1, VMnet8 アダプタが見える。NAT構成では, このうち VMnet8 が使われる。
Windowsのネットワークと共有センターで確認できる。「インターネットアクセスなし」になっているが、実際にはゲストOSからインターネットに接続できる。
VMnet8 のネットワーク接続の詳細を見てみよう。
一方, Linux (ゲストOS) では, DHCPを有効にしておけば、IPアドレスなどが自動設定され, インターネットにアクセスすることができる。
ここで今回, DHCPが有効だとインターネットにつながるが, 無効にするとつながらない, という状況に遭遇した。
勘違いしていたのは, Windows 8.1 (ホストOS) 側から見ると VMnet8のIPアドレスが192.168.241.1になっていたが, Linux側で指定するデフォルトゲートウェイはこのIPアドレスではない, ということ。
DHCPのときに, Linux側で, netstat -r または route -e (どちらも同じ) コマンドでルーティングテーブルを表示させる。
$ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default 192.168.241.2 0.0.0.0 UG 0 0 0 ens33 192.168.241.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
ゲートウェイが 192.168.241.2 になっていることが分かる。
あとは, nm-connection-editor
などで, 正しく設定してやればいい。これでOK. 手で設定するときは, /etc/sysconfig/network-scripts/ifcfg-enoXXXXXX
ファイルを編集する。DNSサーバは /etc/resolv.conf ファイル。
(2015.6.20)
VMware Player のバージョンアップに伴って VMnet8 のIPアドレスが変わることがある。ゲストOS 側の設定を変えて回るのは面倒なので、こういうときは VMnet8 のほうを変更する。
IPアドレスの変え方:
ホストOS側の NAT設定も変えなければならない。
NAT設定は, Windows 8.1 の場合, C:\ProgramData\VMware\vmnetnat.conf
ファイルに保存される。Windows 7 の場合は C:\Users\All Users\VMware\vmnetnat.conf
ファイル。
Web上には, vmnetcfg.exe
を不正に入手するのを勧めるページが多いが, わざわざ入手する必要はない。
次のようにすればよい (一部). こちらは~.2 にする。
# Windows NAT configuration file [host] # NAT gateway address ip = 192.168.241.2/24
ゲストOSでDHCPを使っている場合は、VMware Player の vmnetdhcp.conf
ファイルで、DHCPが払い出すIPアドレスも変更すること。
この場合、ファイルを変更するだけではダメで、加えてレジストリの次の値を変更する。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VMware, Inc.\VMnetLib\VMnetConfig\vmnet8
IPSubnetAddress = 192.168.241.0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VMnetDHCP\Parameters\VirtualEthernetSegments\8
HostIpAddress = 0x01f1a8c0 ... 下位から順に16進数にしたもの。192.168.241.1の意.