Pandora Pocket

IT系と日常系の備忘録。三日坊主。

一般家庭ならDHCP機能はルーターが受け持ってくれるので、DHCPサーバーなんて立てる必要がないです。

が、一般の家庭じゃない我が家としましては、DHCPサーバーもルーターとは別に管理したいな、と。
NURO光のルーター(F660A)だと、固定アドレス割り当てがやりにくくて・・・。

今回は以前SoftEtherをインストールしたRaspberryPiに構築することにしました。

IPアドレスの固定

DHCPサーバーにする端末がDHCPでのIPアドレス取得だと卵が先か鶏が先かのごとくややこしいことになるので固定する。
これはSoftEtherを使うなどして既に設定している場合は不要。

コマンド: sudo nano /etc/dhcpcd.conf

最終行あたりに下記を追加。設定はお好みで。

interface eth0
static ip_address=192.168.0.xx/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

DHCPサーバーのインストール

今回利用するDHCPサーバーは有名どころの isc-dhcp-server

コマンド: sudo apt install isc-dhcp-server

コマンド一発でインストールできるのはWindowsユーザーとしてはうらやましい。
インストールして起動したときにエラーメッセージが出るかもしれませんがとりあえず放置。

Configファイルの修正

コマンド: sudo nano /etc/dhcp/dhcpd.conf

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

上記はコメントアウト。

#authoritative;

上記はコメント解除。

ここまではみな同じ。

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.100 192.168.0.254;
  default-lease-time 600;
  max-lease-time 7200;
  option routers 192.168.0.1;
  option domain-name "local";
  option domain-name-servers 192.168.0.1, 8.8.8.8, 8.8.4.4;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.0.255;
}

これはお好みの設定で。
私の場合、192.168.0.2~192.168.0.99までは固定アドレス用としたかったので、レンジを192.168.0.100からとしました。

また、固定アドレスを設定する場合は下記のように記載。

host AmazonEchoDot{
 hardware ethernet fc:65:de:36:b9:e8;
 fixed-address 192.168.0.31;
}

ネットワークインターフェースの指定

コマンド:sudo nano /etc/default/isc-dhcp-server

INTERFACESv4=""
INTERFACESv6=""

IPv4なら INTERFACESv4、IPv6ならINTERFACESv6にネットワークインターフェースを指定します。
通常は eth0 を指定しますが、私の場合SoftEtherによるVPNを構築した都合、br0を指定しました。
ここは ifconfigで要確認。

起動用ファイルの修正

IPアドレスが割り当たる前にDHCPサーバーが起動するとエラーになるとか。
というわけで起動ファイルにスリープを突っ込んで、起動タイミングをずらします。

コマンド: sudo nano /etc/init.d/isc-dhcp-server

start_daemon()関数のstart-stop-daemonが呼ばれる前、もしくはcase式の start)の次の行あたりに、
sleep 3
という形で3秒程度スリープを入れておきます。

ルーター側DHCP機能無効化

同じネットワーク内に二つもDHCPサーバーが存在すると障害のもとになるのでさくっと無効化しておきましょう。

起動確認

コマンド:sudo systemctl restart isc-dhcp-server.service

設定に誤りがなければエラーメッセージが出ることなく再起動されるはず。
誤りがあった場合は journalctl -xe で詳細なメッセージを確認し、修正しましょう。

うまくDHCP機能が動いているかどうかは /var/lib/dhcp/dhcpd.leases のファイルを確認しましょう。

RaspberryPi起動時の自動起動

多分標準で設定されてると思うんですが念のため。

コマンド:sudo systemctl enable isc-dhcp-server.service

これを実行したらRaspberryPiをリブートし、正常に動いているか確認。

参考サイト

なんでもできるRaspberry PiでDHCPサーバーを構築します。 DHCPサーバとは、インターネットなどのネットワークに一時的に接続するコンピュータに、IPアドレスなど必要な情報を自動的に発行するサーバ。ネットワーク設定を手動で行わ
[はてなブックマークで表示]