パーソナルツール
現在の場所: ホーム サーバ設定 DHCP DHCP(dhclient)使用時に/etc/resolv.confを書換えない設定-FreeBSD編-

DHCP(dhclient)使用時に/etc/resolv.confを書換えない設定-FreeBSD編-

DHCP(dhclient)使用時に/etc/resolv.confを書換えない設定-FreeBSD編-

検証環境

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

以上です。