CentOS6.5でインターフェースエラー修正

CentOS6.5において、networkサービスが起動中に、

Bringing up interface eth0: Determining if ip address 172.16.x.x is already in use for device eth0.

というエラーが吐かれ、ifconfigで確認しても、アドレスが割り当てられない事象が発生します。

初心者にとってはすんげぇめんどくさいので、メモをとっておきます。

IPアドレスが割り当てられない理由

今回、VMwareで仮想サーバを作成し、新規テンプレートを作成後、新規仮想マシンへデブロイしました。
その際、macアドレスが違い、arpがうまくいかなくなるという事象のようです。

テンプレートを作成する際になぜかifcfg-eth0のファイルないのARPCHECK=noが無くなっちゃうみたいです。
また、テンプレートを作成する前に元になる仮想マシンMACアドレスを事前にフィルターすることもおすすめします。

設定を修正する手順

デプロイ後の新仮想サーバはアドレスが同じなので、以下ファイルでアドレスを変更します。
MACアドレスはデプロイ前に事前にフィルターをしておきます。

また、”ARPCHECK=no”も事前に追記しておきましょう。
サーバー起動時にうまくいかないことがあります。

cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ENGINE=Ethernet
UUID=4b6d90ba-9d1c-4ce5-9bb7-7fb49e7a9e8a
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=172.16.1.11		#アドレスがコピー元のアドレスと被るので変更する
PREFIX=24
GATEWAY=172.16.1.251
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
NAME="System eth0"
#HWADDR=00:50:56:89:35:7b	#事前に網掛け
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_PEERDNS=no
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=yes
ARPCHECK=no			#設定を入れておく

また、テンプレートで新しく作成された仮想マシンはMACアドレスがコピー元のMACアドレスを受け継いでいるので以下で修正をしておきます。

]$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:50:56:89:35:7B			#新仮想マシンのMACアドレス
          inet addr:172.16.1.11  Bcast:172.16.1.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe89:357b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2634167 errors:0 dropped:0 overruns:0 frame:0
          TX packets:954004 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:158230652 (150.9 MiB)  TX bytes:55845440 (53.2 MiB)

eth0のmacアドレスが、eth1と変わっている可能性がある為、以下のファイルの修正をします。

cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:89:35:77", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" #ここを網掛け

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:89:35:7b", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"  #eth1→eth0に変更

service network restartでは設定が反映いされない為、サーバー自体を再起動を実施します。

shutdown -r now

これで、設定が反映されます。

お疲れでやんした。

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!