13
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ラズパイ(RaspberryPi3)をDHCPサーバーにしてみた

Last updated at Posted at 2018-06-07

RaspberryPi3をDHCPv4サーバーにしてみましたので、その手順を紹介したいと思います。

環境

本体 RaspberryPi3
OS Raspbian stretch lite 9.4
DHCP daemon isc-dhcp-server 4.3
配布アドレス 192.168.0.1~192.168.0.12
プレフィックス 28
ゲートウェイ 192.168.0.14
DNS 192.168.0.12-13

前提

静的アドレスは設定済みで、インターネットからパッケージのダウンロードができる状態であることやsudoを使用できることを想定し、ここではそれらには触れません。

構築しよう

デーモンのインストール

早速DHCPの構築に必要なデーモンのインストールをします。
今回使用するのは、isc-dhcp-serverです。

$ sudo apt-get -y install isc-dhcp-server

設定のコメントアウトとアンコメント

インストール直後のコンフィグファイルに例として書き込まれているもので、必要ないものをコメントアウトします。
コンフィグファイルは***/etc/dhcp/dhcpd.conf***です。

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

 ⇩コメントアウト

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

次に必要な設定をアンコメントします。

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative; // アンコメント

 ⇩アンコメント

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

配布アドレスの設定

それでは、配布するアドレスの設定をしていきましょう。
設定する際には、行末に必ずセミコロン;をつけるようにしましょう。つけ忘れ注意です。
完成形は以下のようになります。

subnet 192.168.0.0 netmask 255.255.255.240 {
 range 192.168.0.1 192.168.0.13;
 option routers 192.168.0.14;
 option domain-name-servers 192.168.0.12, 192.168.0.13;
 option broadcast-address 192.168.0.15;
 ignore declines;
}
パラメータ 説明
subnet ~ netmask 配布したいネットワークのネットワークアドレスの定義
range 配布するホストアドレスの範囲
option routers ゲートウェイのアドレス
option domain-name-servers DNSサーバのアドレス
option broadcast-address ブロードキャストアドレス
ignore declines DHCPDECLINEメッセージを無視する

この他にも、特定のホストのアドレスを固定したり、リース期間を変更したりするパラメータがあるので、いろいろ試してみてください。

インターフェースへ紐付け

/etc/default/isc-dhcp-serverファイルの最終行に配布を行うインターフェース名を書き込みます。
例として、インターフェース名はeth1とします。

INTERFACES = "eth1"

デーモンの起動

$ sudo systemctl start isc-dhcp-server.service
$ sudo systemctl enable isc-dhcp-server.service

確認

実際にアドレスが配布されたかを確認するには、/var/lib/dhcp/dhcpd.leasesの中身を確認しましょう。

$ cat /var/lib/dhcp/dhcpd.leases

lease 192.168.0.1 {
(省略)
}

ホストに割当が成功していれば、配布したアドレス、リース期間の情報、ホスト名などが出力されます。

参考

13
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?