検証環境
OS:FreeBSD 6.2
FreeBSDでDHCP使用時に/etc/resolv.conf を書換えない方法
dhcpでip情報を設定していると、dhclientが勝手に/etc/resolv.confを書き換えてしまいます。
通常は問題ないと思いますが、何らかの理由で/etc/resolv.conf書き換えてほしくない場合の対処方法です。
設定変更
では、早速dhclientが/etc/resolv.confを書き換えないようにする設定を行って行きたいと思います。
FreeBSDのdhclient設定ファイルは/etc/dhclinet.confとなります。
dhclientは通常この設定ファイルをみて、dhcpサーバへどんな情報をリクエストするかを決めます。
デフォルトでは、特に何も設定されていないはずです。
※何も記述されていない場合はdhclientのデフォルト設定でサーバへリクエストを送信します。
初期状態dhclient.conf
# cat /etc/dhclient.conf
# $FreeBSD: src/etc/dhclient.conf,v 1.3 2001/10/27 03:14:37 rwatson Exp $
#
# This file is required by the ISC DHCP client.
# See ``man 5 dhclient.conf'' for details.
#
# In most cases an empty file is sufficient for most people as the
# defaults are usually fine.
#
私の環境ではこんな感じで、全てコメントとなっていました。
設定追加
念のためにdhclient.confのバックアップをとってから編集していきます。
# cd /etc
# cp -p dhclient.conf dhclient.conf_yyyymmdd
# vi dhclient.conf
追加設定
dhclient.confにDHCPサーバへリクエストする情報を明示的に記述することで、特定の情報のみを
DHCPサーバへリクエストするようにします。
デフォルト設定では、以下の情報をDHCPサーバにリクエストしています。
dhclientリクエストオプション デフォルト設定値
subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name
この中で、/etc/resolv.confを書き換えているの情報は「domain-name-servers」の情報なので、この情報を
DHCPサーバへリクエストしないように設定することで、/etc/resolv.confの書き換えをさせないようにすることが出来ます。
具体的には、/etc/dhclient.confに以下の情報を追加します。
request subnet-mask, broadcast-address, time-offset, routers, domain-name, host-name;
subnet-mask, broadcast-address, time-offset, routers, domain-name, host-name の情報のみDHCPサーバへ
リクエストを送信するようにします。
設定ファイル確認
設定が完了したファイルは以下のような感じになっているます。
# cat /etc/dhclient.conf
# $FreeBSD: src/etc/dhclient.conf,v 1.3 2001/10/27 03:14:37 rwatson Exp $
#
# This file is required by the ISC DHCP client.
# See ``man 5 dhclient.conf'' for details.
#
# In most cases an empty file is sufficient for most people as the
# defaults are usually fine.
#
request subnet-mask, broadcast-address, time-offset, routers, domain-name, host-name;
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
以上です。