DHCP(dhclient)使用時に/etc/resolv.confを書き換えない設定
DHCPサーバからIP情報をもらっても、/etc/resolv.confを書き換えないようにする方法。
検証環境
OS:CentOS4.4
dhclient使用時の/etc/resolv.conf
dhcpサーバからクライアントとしてipアドレスをもらっていると、DHCPサーバが DNSサーバの情報を送信していると、dhclientが勝手に/etc/resolv.confを 書き換えてしまいます。通常は問題ないと思いますが何らかの理由で/etc/resolv.conf書き換えてほしくない 場合の対処方法です。
dhclient使用時
dhclientでip情報をDHCPサーバから取得している場合の/etc/resolv.confをcatで見てみます。
$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.85.2
dhclientが/etc/resolv.confを書き換えていることがわかると思います。
設定変更
では、早速dhclientが/etc/resolv.confを書き換えないようにする設定を 行って行きたいと思います。
現状のNICの設定ファイルは以下のような感じで、DHCPでIPアドレス情報もらうように
設定してあります。
※今回はeth0の場合を例としています。
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
設定追加
念のためにバックアップをとってから編集していきます。
※バックアップするときは、ファイル名に気をつけてください。
最初にifcfgとあるとそのファイルをNICの設定ファイルとして読みに行ってしまうので
ファイルの頭を日付にする等してください。
# cd /etc/sysconfig/network-script
# cp -p ifcfg-eth0 yyyymmdd_ifcfg-eth0
# vi ifcfg-eth0
設定事態はものすごく簡単で、NICの設定ファイルである
/etc/sysconfig/network-script/ifcfg-eth0に以下の一行を追加するだけです。
追加設定
PEERDNS=no
設定ファイル確認
設定が完了したファイルは以下のような感じになっているます。
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
PEERDNS=no
resolv.conf設定変更
NICの設定が終わったら、今度は/etc/resolv.confを編集します。
とりえず今回は以下のようにresolv.confを編集してみました。
$ cat /etc/resolv.conf
search server-memo.net
nameserver 127.0.0.1
動作確認
サーバの再起動を行って、再度DHCPからIP情報もらっても/etc/resolv.confが 書き換わらないことを確認します。
$ cat /etc/resolv.conf
search server-memo.net
nameserver 127.0.0.1
おまけ
ちなみにPEERDNS=noをはずしてサーバをリブートすると こんな感じで書き換わり、最初に確認したとおりにとなりました。
$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.85.2
以上です。

