ジーン吉本の自宅サーバーを、Windows Server 2012から、Windows Server 2012 R2にアップグレードしました。で、想像以上に色々問題がでました。
実は、ジーン吉本の自宅サーバーって、Hyper-Vが動いているんですよ。で、Hyper-Vの仮想ホストに、CentOS 6.4がいるんですね。ちなみに、CentOS 6.4ってHyper-V統合サービスがついているので、インストール時にHyper-Vってのを選べば、ちゃんとHyper-Vに対応できます。
ところが、Windows Server 2012 R2にアップグレードした後、CentOS 6.4がネットワークにつながらない。
「あれー、なぜだろう???」
と思って、ifconfigコマンドを打ってみると・・・
eth0インターフェイスが表示されません。つまり、NICを認識していないのと同じ状態なわけで、これじゃネットワークにつながるはずはありません。
「変だなー、Windows Server 2012 R2にアップグレードする前は、ちゃんとつながっていたのに…」
念のために、設定を確認します。
設定を変えたわけではないので、特に問題なし。しかし、ここにWindowsとLinuxの差があったりするんです。Hyper-Vの仮想ホストの設定を確認すると…
「あれ!? MACアドレスが動的割り当てになってるじゃん!」
そうなんです。Linuxってネットワークの設定ファイル(/etc/sysconfig/network-scripts/ifcfg-eth0)のHWADDRに、NICのMACアドレスを指定するのですよ。で、このMACアドレスでNICを識別するんです。そうしないと、もしNICが2枚以上あったとき、どの設定ファイルがどのNICの設定だかわからなくなってしまうんです。
なので、Linuxを使うときは、Hyper-Vの設定を変更して、MACアドレスを静的に割り当てるんです。しかし、Windows Server 2012 R2にアップグレードした結果、見事に動的割り当てに戻ってました。(ひどいなー)
更に、CentOS 6.4をシャットダウンして、Hyper-Vの設定を確認すると…
仮想スイッチにネットワークアダプタが接続されてないってかぁ!?
ここで、ようやく思い出しました。Windows Server 2012から、Windows Server 2012 R2にアップグレードしたとき、Hyper-Vの仮想マシンの設定だけはうまく引き継げなかったので、Windows Server 2012 R2にアップグレードした後、仮想マシンを作り直したのでした。ここで、CentOSに静的MACアドレスを設定するのを忘れていたというわけです。(ちなみに、デフォルトは動的割り当て)
だとすると、方法は簡単。MACアドレスを静的に割り当てればいいんです。
ここで、CentOSを起動して、ifconfigで確認してみると…
eth0インターフェイスが見えて、無事ネットワークにつながったのでした。仮想ホストを作り直したときや、LinuxをHyper-Vの仮想ホストにインストールしたときに(特に、インストール後、再起動したらネットワークにつながらなかった場合、これが原因の場合が考えられる)盲点になりやすいので、注意が必要です。
よろしかったら、Udemyへもお越しくださいませ。LPICレベル1とITパスポートの講座+問題集を提供中です。