VMWare Player上で動作するUbuntuのIPアドレスを固定化する

Updated:

なぜUbuntu(ゲストOS)のIPアドレスを固定したいの?

ノートPC(Windows 7 64bit)では、VMWare Player 3.1.6上でUbuntu 12.04LTSを動かしています。VMWare Plalerのネットワーク環境はNATモードにしています。

NATモードでは、ホストOS(Windows 7)の中に仮想ネットワークが作られ、ゲストOS(Ubuntu)はそのネットワークに接続されます。Ubuntuから外部にアクセスする際には、ホストOSがNATボックスとして機能します。

NATモードでは、UbuntuのIPアドレスは、DHCPによって付与されます。困ったことに、付与されるIPアドレスは、ブートしたり、サスペンドしたりするたびに、変わってしまうのです。

Ubuntuからインターネットにアクセスするだけなら、IPアドレスがころころ変わっても特に問題ありません。しかし、ホストOSからUbuntuにアクセスする場合には、IPアドレスが固定されていないと不便です。(例えば、テストのために、ゲストOSのブラウザから、Ubuntuのウェブサーバにアクセスする場合)

そこで、UbuntuのIPアドレスを固定するようにしてみました。

Ubuntu(ゲストOS)のIPアドレスを固定する方法

具体的には、ゲストOS(Ubuntu)のMACアドレスに対して固定のIPアドレスを与えるように、仮想ネットワークのDHCPサーバを設定してやります。

それでは、その手順を紹介しましょう。

Windows 7の場合、仮想ネットワークの設定は、次のファイルに記述されています。

C:ProgramData\VMware\vmnetdhcp.conf

このファイルに仮想ネットのDHCPサーバの設定が書いてあるので、ゲストOSのMACアドレスに対して固定のアドレスを付与するように設定を追加します。このファイルはテキストファイルなので、読めば設定内容がわかるでしょう。

ここでは、2つの仮想ネットVMnet1とVMnet8が定義されています。

  • VMnet1: Host-only modeで使用
  • VMnet8: NATモードで使用

NATモードを使うので、VMnet8に設定を追加することになります。VMnet8のオリジナルの設定は次のような内容になっているはずです。

# Virtual ethernet segment 8
# Added at 07/11/12 06:42:18
subnet 192.168.224.0 netmask 255.255.255.0 {
range 192.168.224.128 192.168.224.254;            # default allows up to 125 VM's
option broadcast-address 192.168.224.255;
option domain-name-servers 192.168.224.2;
option domain-name "localdomain";
option netbios-name-servers 192.168.224.2;
option routers 192.168.224.2;
default-lease-time 1800;
max-lease-time 7200;
}
host VMnet8 {
    hardware ethernet XX:XX:XX:XX:XX:XX;
    fixed-address 192.168.224.1;
    option domain-name-servers 0.0.0.0;
    option domain-name "";
    option routers 0.0.0.0;
}
# End

ざっと見ればわかりますが、VMnet8には、192.168.224.0/24というアドレスが割り当てられていています。rangeで始まる行が、DHCP用のアドレスプールの定義です。ここでは、192.168.224.128から192.168.224.254までがDHCP用アドレスプールになっています。

range 192.168.224.128 192.168.224.254;            # default allows up to 125 VM's

ゲストOS(Ubuntu)には、プールに含まれないIPアドレスを付けてやります。ここでは、192.168.224.101を使うことにしましょう。

設定ファイルに次のような設定を追加してください。これは、hardware ethernetで指定されたMACアドレスに対しては、常にfixed-addressで指定されたIPアドレスを与えるという意味です。

host VMnet8 {
    hardware ethernet YY:YY:YY:YY:YY:YY;
    fixed-address 192.168.224.101;
}

hardware addressという行の「YY:YY:YY:YY:YY:YY」という部分には、ゲストOS(Ubuntu)のMACアドレスを指定します。UbuntuのMACアドレスは、Ubuntuでifconfigコマンドを実行すると表示されるので、それを指定してください。fixed-addressには、Ubuntuに与える固定のIPアドレス、つまり192.168.224.101を指定します。

これで設定は完了です。

あとは、Windowsをリブートしてから、VMWare PlayerでUbuntuをブートすれば、UbuntuのIPアドレスは192.168.224.101に固定されるようになります。