VMware Fusion 5の仮想マシンでIPを固定する

ネットワークの基本的な知識がないので、いつもネット上の知識を鵜呑みにしてその場凌ぎで生きています…

現状

  • Macbookに入れたVMware Fusion 5の仮想マシン(CentOS6)を開発用サーバーにしている
  • 普段は家で開発してるけど、たまに外出先でもしたい
  • でも外だとIPが変わってしまって、sshのconfigやhostsの書き換えが面倒(やってられん)

※以下に記載のIPは全てワタシの環境です。適宜読み替え願います!

今までVMwareのネットワーク設定を「ブリッジされたネットワーキング(自動検出)」にしてました。これだと、家のルーターにMacbook(192.168.24.53)と仮想マシン(192.168.24.60)が同じようにぶら下がった状態です。この状態で、仮想マシンのIPを192.168.24.60に固定して開発するのも、自宅にいる分には何の問題もありません。

…が、外出すると家のルーターは存在しません。192.168.24.***アドレスシリーズではなくなります。hostsも書きなおさなくてはなりません。面倒でやってられない!

なので、その時々のネットワークにぶら下げる形ではなく、Macから直接アクセスできる形でIPを固定しようと思ったのが今回の敬意です。例のように、ネット上の知識の力です。

VMware Fusion のゲスト(仮想)マシンのIPアドレスの固定化

設定手順

  1. VMware Fusionでネットワーク設定を「Macを共有」に
  2. 仮想マシンに割り振るIPを固定化する
  3. 仮想マシン側のIPアドレス設定を固定

VMware Fusionでネットワーク設定を「Macを共有」に

VMware Fusionで対象の仮想マシンの設定画面から、ネットワークアダプタ設定を開いて「Macを共有」にチェック。その際、下にある「詳細オプション」に書いてあるMACアドレスをコピーする。後で必要になります。

仮想マシンに割り振るIPを固定化する

ネットワーク設定の変更を有効にするために仮想マシンのOSを再起動(※多分必要)します。Mac側のターミナルで「ifconfig」コマンドを実行すると、「vmnet8」という「Macを共有」用のゲートウェイが確認できると思います。そこで、vmnet8に仮想マシンのIPを固定化して払い出す設定をします。

vi /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf

恐らく下記のような記述があるはず。

subnet 192.168.123.0 netmask 255.255.255.0 {
    range 192.168.123.128 192.168.123.254;
    option broadcast-address 192.168.123.255;
    option domain-name-servers 192.168.123.2;
    option domain-name localdomain;
    default-lease-time 1800;                # default is 30 minutes
    max-lease-time 7200;                    # default is 2 hours
    option netbios-name-servers 192.168.123.2;
    option routers 192.168.123.2;
}

このファイルの末尾に下記のような記述を追加します。ホスト名(vmnet8-centos)は、わかりやすい名前をつけておけばOKのはず。hardware ethernetは最初にコピーしておいた仮想マシンのMacアドレス、fixed-addressが払い出したいIPアドレスとなります。このMacアドレスの仮想マシンには、このIPを払い出すよーっていうことですね。ここで注意なのは、上で「range」に記載の通り「192.168.123.128〜192.168.123.254」は動的な払い出しに使用されるので、「192.168.123.3〜127」の間で割り振るのが良いでしょう。

host vmnet8-centos {
    hardware ethernet 00:0C:29:FC:1D:CA;
    fixed-address 192.168.123.100;
}

VMware Fusionの設定変更のため、VMwareを再起動してから(※仮想マシンではなく!)、仮想マシンを起動してifconfigコマンドを実行します。eth0のIPアドレスが上で設定したもの(192.168.123.100)になっていれば、正しくIPアドレスが払い出されていることでしょう。

仮想マシン側のIPアドレス設定を固定

ここまででも、Macから192.168.123.100のサーバーなり何なりにアクセス出来るようになっているはずです。自分の場合は、IP設定がブリッジ接続だった時のままになっていたため、phpでDNS接続エラーが発生してしまいました。

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=192.168.123.100
NETMASK=255.255.255.0
GATEWAY=192.168.123.2

上記のようにIPADDRは今回設定したIPアドレス、GATEWAYはdhcpd.confに記載されていたdomain-name-serversのアドレスを指定しました。ここが古かったために、ドメイン解決できないといって怒られたんですね。あっ、設定を変更したら念のため(必須?)仮想マシンのOSを再起動しましょう。

まとめ

以上で設定は完了です。試しにMacのWi-Fiを無効にしてネットワークから切断しても、ちゃんと仮想マシンに繋がる!これでいつでも開発できます…うぅ。

上で設定した内容もざっくりは分かるんですが、知識がどれもこれも中途半端なのですね。ちゃんと勉強しなきゃと思いながら、なんやかんや今日に至ります。よくない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です