無料でスキルアップ、年収アップを目指す人のためのお役立ちサイトです。独立・開業・フリーランスを目指す方もぜひ

Hyper-Vアップグレード後にCentOSがネットワークにつながらない

2013/09/25

キューティー吉本の自宅サーバーを、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コマンドを打ってみると・・・

Windows Server 2012R2にアップグレード後 ifconfigにeth0がない

eth0インターフェイスが表示されません。つまり、NICを認識していないのと同じ状態なわけで、これじゃネットワークにつながるはずはありません。

「変だなー、Windows Server 2012 R2にアップグレードする前は、ちゃんとつながっていたのに…」
念のために、設定を確認します。

/etc/sysconfig/network-scripts/ifcfg-eth0の中身

設定を変えたわけではないので、特に問題なし。しかし、ここにWindowsとLinuxの差があったりするんです。Hyper-Vの仮想ホストの設定を確認すると…

Windows Server 2012R2にアップグレード後 MACアドレスが動的になってます

「あれ!? 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 2012R2にアップグレード後 NICが仮想スイッチにつながってません

仮想スイッチにネットワークアダプタが接続されてないってかぁ!?

ここで、ようやく思い出しました。Windows Server 2012から、Windows Server 2012 R2にアップグレードしたとき、Hyper-Vの仮想マシンの設定だけはうまく引き継げなかったので、Windows Server 2012 R2にアップグレードした後、仮想マシンを作り直したのでした。ここで、CentOSに静的MACアドレスを設定するのを忘れていたというわけです。(ちなみに、デフォルトは動的割り当て)

だとすると、方法は簡単。MACアドレスを静的に割り当てればいいんです。

MACアドレスを静的に設定し直します HWADDRと同じ値を設定すること

ここで、CentOSを起動して、ifconfigで確認してみると…

CentOSを起動し直すと、直りました

eth0インターフェイスが見えて、無事ネットワークにつながったのでした。仮想ホストを作り直したときや、LinuxをHyper-Vの仮想ホストにインストールしたときに(特に、インストール後、再起動したらネットワークにつながらなかった場合、これが原因の場合が考えられる)盲点になりやすいので、注意が必要です。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください