DHCPサーバーの構築(isc-dhcp)

1.はじめに

最初、DHCPサーバーにwide-DHCPを入れていましたが、ISC-DHCPの方が高機能だったので、差替えて見ました
やりたかったのはIEでプロキシの自動検出(WPAD)です。

2.インストール

まずインストールします
これまたパッケージでインストールしてしまいましょう!
# cd /usr/ports/net/isc-dhcp3-server
# make install clean
初めての場合はオプションを聞かれると思います
たぶんですが私の場合ONしているのが
DHCP_PARANOIA DHCP_JAIL DHCP_LDAP_SSL OPENSSL_BASE
ですが、最初の2つだけでいいと思います
SSLが付くのはopensslを入れておかないと駄目でしょう

3.設定

3−1.dhcpd.conf編集

設定ファイルのdhcpd.confを編集します
/usr/local/etc/dhcpd.conf
# dhcpd.conf
option domain-name "ドメイン名";
option domain-name-servers 192.168.0.1
# option domain-name-servers 192.168.0.1, 192.168.0.2; ←複数の場合

# リリース時間、単位は秒
default-lease-time 3100;
max-lease-time 604800;

# ここからがIEのプロキシ自動検出用(WPAD)
authoritative;
option wpad code 252 = string;

# ダイナミックDNSにも対応していますが私は使用しないのでnoneにしました
ddns-update-style none;

# LOGをlocal7にする、他に使用している場合は違う番号にしましょう
log-facility local7;

# ここからが細かい設定
# サブネットとネットマスクをひとまとめとして{でくくる
subnet 192.168.0.0 netmask 255.255.255.0 {
        # DHCPで割り当てる範囲を指定する
        range 192.168.0.3 192.168.200.254;
        # タイムサーバーが有る場合
        option ntp-servers 192.168.200.1;
        # DNSサーバー指定
        option domain-name-servers 192.168.0.1, 192.168.0.2;
        # デフォルトルーター
        option routers 192.168.200.1;
        # PROXY自動設定ファイルの有る場所を指定
        option wpad "http://192.168.200.1/proxy.pac";
        # サブネットマスク
        option subnet-mask 255.255.255.0;
        # ブロードキャスト
        option broadcast-address 192.168.200.255;
        # WINSサーバーが有る場合
        option netbios-name-servers 192.168.200.1;
        option netbios-dd-server 192.168.200.1;
        option netbios-node-type 8;
        # リリースタイム
        default-lease-time 72000;
        max-lease-time 2592000;
        # ここからMACアドレスに応じて固定でIPを割り当てる場合
        host マシン名 {
                # MACアドレス、大文字で入れました
                hardware ethernet XX:XX:XX:XX:XX:XX;
                # 固定IP
                fixed-address 192.168.0.3;
                # ホスト名を指定
                option host-name "マシン名";
                }
        host マシン名2 {
                 ・
                 ・
                 ・
                }
        }

あと、リリース情報を書き込むファイルを作成しておきます
# touch /var/db/dhcpd.leases

3−2.起動時に走らせる

/etc/rc.confに追記する
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="em0"
dhcpd_withumask="022"

記入後、手動でスタートさせるには
# /usr/local/etc/rc.d/isc-dhcpd start

3−3.ログファイル

このままですとmessagesにガンガンログが書き込まれてしまうので先程設定したlocal7でログを分けます

/etc/syslog.conf を編集する
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err;local7.none       /var/log/messages
   ・
   ・
   ・
local7.*        /var/log/dhcpd.log
messagesの所にlocal7をnoneして吐き出さないようにします
そして新たにdhcpd.logへlocal7を吐き出すようにすればOK
あとはsyslogdを再起動して下さい
# /usr/local/etc/rc.d/isc-dhcpd restart