はじめに
resolv.confが書き換わる現象は、いくつか検索すると出てきますが、どれも今回の現象とHitしませんでした。
おおよそ出てくる情報は、
「NetworkManagerが原因です!」
「DHCPによって情報が書き換わる」
と言ったものでした。
####今回は、別ものです。
環境
CentOS6.5 (おそらくCentOS6.Xで発生します)
NetworkManager は停止!
DHCPも利用してません!
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=XX:XX:XX:XX:XX:XX
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=XXX.XXX.XXX.XXX
NETMASK=255.255.255.XXX
USERCTL=no
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
GATEWAY=XXX.XXX.XXX.XXX
現象
/etc/sysconfig/network-scripts/ifcfg-ethXX のパラメータを上記内容に修正。
以前は、上記のものにプラスしてこれらも入ってました。
DNS1=XXX.XXX.XXX.XXX
DNS2=XXX.XXX.XXX.XXX
DOMAIN=XX.jp
修正後 service network restart をしたところ、Internet通信ができない!!
名前解決ができてないのでDNSだと見当を付けて確認したところ、resolv.conf が・・・。
書き換わってる。。。。。
原因
NetworkManagerも停止して、BOOTPROTO=dhcp でないことから安心していましたが、原因は2つ。
- /etc/resolv.conf.save が存在していたこと
- PEERDNS=no を明示的に記載していなかったこと
上記2つの条件が重なることで今回の現象が発生していました。
対処策
/etc/resolv.conf.save を削除する。
or
PEERDNS=no を明示的に記載する。
2つの条件が重なることで、resolv.conf.save ⇒ resolv.conf への書き換えが実行されるため、
どちらか1つの条件をクリアすれば発動しません。