現在はPR-S300NEにDHCPサーバー兼DNSサーバーをやらせていましたが、この機器はDHCP IPを配るのが少々遅く、Ubuntu Serverのインストール時とかRaspberry Pi 2で動かしたCentOS 7で期待した時間までにIPアドレスがもらえなくてちょっと問題になっていました。ちなみに無線LANはブリッジモードで動かしています。なので無線LANにDHCPサーバーを任せることもできません。
そこでRaspberry PiでDHCPサーバーを構築しようと思います。現在dnsmasqでDNSサーバーが動いている状態なので、dnsmasqにDHCPの設定を仕込むのでも良いのですが、今回はISC DHCP serverをセットアップします。
ちなみにRaspbianのバージョンは8です。
pi@raspi:~ $ cat /etc/issue Raspbian GNU/Linux 8 \n \l
インストールするにはapt-getコマンドを使うだけです。簡単
$ sudo -i # apt-get update # apt-get install isc-dhcp-server
Debian 8ベースのRaspbianは、Debian 8と同様Systemdに移行しています。アプリケーションサーバーをインストールするとインストールの過程でサービスを自動起動しますが、isc-dhcp-serverはエラーを出して起動に失敗します。 エラーの内容は「systemctl status -l isc-dhcp-server」コマンドで確認できます。
Apr 02 19:03:37 raspberrypi dhcpd[8743]: No subnet declaration for eth0 (192.168.1.10). Apr 02 19:03:37 raspberrypi dhcpd[8743]: ** Ignoring requests on eth0. If this is not what Apr 02 19:03:37 raspberrypi dhcpd[8743]: you want, please write a subnet declaration Apr 02 19:03:37 raspberrypi dhcpd[8743]: in your dhcpd.conf file for the network segment Apr 02 19:03:39 raspberrypi isc-dhcp-server[8735]: Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. ... failed!
「subnetの指定が書かれていないからdhcpd.confにかけ」というエラーのようです。デフォルトの設定ファイルは多くがコメントアウトされているので失敗しても仕方ないですね。設定ファイルは「/etc/dhcp/dhcpd.conf」なので、このファイルにDHCPのsubnetを設定します。設定方法は以前ブログに書いています。
DHCPサーバーの設定を書き換えた後、再起動します。無事にDHCPサーバーが動きました。
# systemctl restart isc-dhcp-server # systemctl status isc-dhcp-server|grep Active Active: active (running) since Sat 2016-04-02 19:09:09 JST; 16s ago
念のため次のようにDHCPサーバーを自動起動する設定を行っておきます。
# systemctl enable isc-dhcp-server
ものの5分程度で構築完了しました。IPアドレスの配布が以前よりもずっと速くなり、快適になりました。