ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

Raspberry PiでDHCPサーバーを構築

現在はPR-S300NEにDHCPサーバー兼DNSサーバーをやらせていましたが、この機器はDHCP IPを配るのが少々遅く、Ubuntu Serverのインストール時とかRaspberry Pi 2で動かしたCentOS 7で期待した時間までにIPアドレスがもらえなくてちょっと問題になっていました。ちなみに無線LANはブリッジモードで動かしています。なので無線LANDHCPサーバーを任せることもできません。

そこで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を設定します。設定方法は以前ブログに書いた内容を書きました。

ytooyama.hatenadiary.jp

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アドレスの配布が以前よりもずっと速くなり、快適になりました。