dhcp3-serverの設定

投稿者: | 2010年8月8日
Pocket

対象サーバについて

製品名 OpenBlockS 600
OS(kernel ver) Debian lenny(2.6.29)
CPU 600MHz(AMCC PowerPC 405EX)
メモリ 1GB(DDR2 SDRAM)
ストレージ 8GB(Compact Flash)

dhcp3-serverのインストール

# aptitude install dhcp3-server
The following NEW packages will be installed:
  dhcp3-server
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 353kB of archives. After unpacking 831kB will be used.

・・・
Starting DHCP server: dhcpd3check syslog for diagnostics. failed!
 failed!
invoke-rc.d: initscript dhcp3-server, action "start" failed.

・・・

→まだ未設定のため起動に失敗しています。

起動確認

# /etc/init.d/dhcp3-server start
Starting DHCP server: dhcpd3check syslog for diagnostics. failed!
 failed!

→まだ未設定のため起動に失敗しています。

ListenするIFの指定

編集するファイル名:/etc/default/dhcp3-server

# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/dhcp3-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

→DHCPを動かすIFを指定します。

設定ファイルの作成

編集するファイル名:/etc/dhcp3/dhcpd.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.2 192.168.0.254;
        option routers 192.168.0.1;
        option broadcast-address 192.168.0.255;
        option domain-name-servers [DNSサーバのアドレス];
        option subnet-mask 255.255.255.0;
        default-lease-time 86400;
        max-lease-time 172800;
        host PC1 {
                hardware ethernet XX:XX:XX:XX:XX:XX;
                fixed-address 192.168.0.13;
        }
}
log-facility local7;

再度、起動確認

# /etc/init.d/dhcp3-server restart
Stopping DHCP server: dhcpd3 failed!
Starting DHCP server: dhcpd3.

→今度は正常に起動

設定ファイルでhost指定したPC1でipconfig /renewしたところ192.168.0.13が払い出されたのですが、/var/lib/dhcp3/dhcpd.leasesは空のままでした。

他のPCからアクセスしたところ、以下のように書き込まれました。

# less /var/lib/dhcp3/dhcpd.leases

# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.1.1

lease 192.168.0.2 {
  starts 1 2009/10/12 14:54:45;
  ends 2 2009/10/13 14:54:45;
  tstp 2 2009/10/13 14:54:45;
  cltt 1 2009/10/12 14:54:45;
  binding state active;
  next binding state free;
  hardware ethernet YY:YY:YY:YY:YY:YY;
  uid "\001\000@\320t\373\202";
  client-hostname "XYZ";
}

動的IP払い出しの場合はログ出力されますが、固定IP払い出しの場合はログに書き込まれないようです。

syslogの確認

# tail /var/log/syslog

Oct 18 02:39:41 www dhcpd: WARNING: Host declarations are global.  They are not limited to the scope you declared them in.
Oct 18 02:39:44 www dhcpd: WARNING: Host declarations are global.  They are not limited to the scope you declared them in.
Oct 18 02:39:44 www dhcpd: WARNING: Host declarations are global.  They are not limited to the scope you declared them in.

→WARNINGが出力されています。hostをglobalで定義する必要があるようです。

設定ファイルの再修正

編集するファイル:/etc/dhcp3/dhcpd.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.2 192.168.0.254;
        option routers 192.168.0.1;
        option broadcast-address 192.168.0.255;
        option domain-name-servers [DNSサーバのアドレス];
        option subnet-mask 255.255.255.0;
        default-lease-time 86400;
        max-lease-time 172800;
}
host PC1 {
        hardware ethernet XX:XX:XX:XX:XX:XX;
        fixed-address 192.168.0.13;
}
log-facility local7;

サービス再起動してログを確認します。

# /etc/init.d/dhcp3-server restart
Stopping DHCP server: dhcpd3 failed!
Starting DHCP server: dhcpd3.

# tail /var/log/syslog
Oct 19 00:46:02 www dhcpd: If this DHCP server is authoritative for that subnet,
Oct 19 00:46:02 www dhcpd: please write an `authoritative;' directive either in the
Oct 19 00:46:02 www dhcpd: subnet declaration or in some scope that encloses the
Oct 19 00:46:02 www dhcpd: subnet declaration - for example, write it at the top
Oct 19 00:46:02 www dhcpd: of the dhcpd.conf file.
Oct 19 00:46:05 www dhcpd: DHCPINFORM from 192.168.0.6 via eth0: not authoritative for subnet 192.168.0.0

→syslogのWARNINGは消えましたがまだコメントが出ています。

このサイトに説明が記載されていました。

DHCP サーバがネットワーク管理者ではない人間によって設定され、よってこのレベルの権威を持たせたくない場合には、設定ファイルの適切なスコープに “not authoritative” という文を入れておくと良いでしょう。 通常は、 not authoritative をファイルのトップレベルに書いておけば十分です。しかし、あるネットワークに対しては権威を持たせ、別のネットワークに対しては持たせないように DHCP サーバを設定したい場合には、ネットワークセグメント単位で authority を宣言するほうが良いでしょう。

凝った使い方は想定していないので、起動時に上記ログが出ないよう、ファイルの先頭に「not authoritative」を追加します。

設定ファイルの再々修正(正式な記述)

編集したファイル:/etc/dhcp3/dhcpd.conf

not authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.2 192.168.0.254;
        option routers 192.168.0.1;
        option broadcast-address 192.168.0.255;
        option domain-name-servers [DNSサーバのアドレス];
        option subnet-mask 255.255.255.0;
        default-lease-time 86400;
        max-lease-time 172800;
}

host PC1 {
        hardware ethernet XX:XX:XX:XX:XX:XX;
        fixed-address 192.168.0.13;
}

log-facility local7;
Pocket

コメントを残す

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