Raspbian: DHCP サーバーの構築 ISC DHCP
インストール
$ sudo apt-get install isc-dhcp-server
設定
ネットワークインターフェイスの設定
/etc/default/isc-dhcp-server ファイルの該当部分を修正。
INTERFACES="eth0"
基本設定
/etc/dhcp/dhcpd.conf ファイルを編集。
サブネット 192.168.1.0/24
リースする IP アドレスの範囲 192.168.1.100 ~ 199
リース期間 1日(最大7日)
ps4 に静的アドレス 192.168.1.80 を割り当て
の設定例は以下の通り。
ddns-update-style none;
option domain-name "local";
option domain-name-servers 192.168.1.1;default-lease-time 86400;
max-lease-time 604800;log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.199;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
}host ps4 {
hardware ethernet b0:05:94:xx:xx:xx;
fixed-address 192.168.1.80;
}
自動起動
$ sudo systemctl enable isc-dhcp-server
通常は上記で OK のはずだが、リブート後は起動に失敗する。サーバーの eth0 への IP アドレス割り当てより先に DHCP サーバーが起動しているのが原因。起動前に3秒待つように、起動スクリプトを修正すれば OK。
/etc/init.d/isc-dhcp-server ファイルの該当部分に sleep 3 を追加。
case "$1" in
start)
test_config
log_daemon_msg "Starting $DESC" "$NAME"
sleep 3
start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" \
--exec /usr/sbin/dhcpd -- \
-q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" $INTERFACES
sleep 2
ログ
リースログは /var/lib/dhcp/dhcpd.leases にテキスト形式で記録される。
lease 192.168.1.172 {
starts 4 2016/06/23 08:10:45;
ends 5 2016/06/24 08:10:45;
cltt 4 2016/06/23 08:10:45;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 08:00:23:xx:xx:xx;
client-hostname "premium-phone";
}