RaspberryPi4BでDHCPサーバーをセットアップ

RaspberryPi4_1

OSイメージの書き込み

RaspberryPi Imagerを使います。

RaspberryPi Imagerで書き込みOption設定

これまでRaspberryPi OSをセットアップする際はインストール時のオプション無しで行っていましたが、今回はネットワーク設定、ユーザー設定オプションを行ってから書き込みました。
設定した項目は、ホスト名、Wifiネットワーク、ユーザー名です。Wifiはインターネット接続出来るように設定しておきます。

「設定を編集する」を選択

ホスト名、Wifiネットワーク、ユーザー名の各項目を設定する

アプリ側でも警告してくれるが、誤ったデバイスに書き込まないように注意する。

有線ネットワークとDHCPサーバーの設定

有線ネットワークで別PCと接続し、SSH通信できるように設定します。接続の際にDHCPサーバー機能を持たすことで接続しやすくしておきます。

有線ネットワークの設定

ラズパイにとりあえず画面とキーボード、マウス、LANケーブルを接続して、GUIから有線ネットワークの設定を行います。
完了した後、念のためrebootします。

画面右上のアイコンから"Edit Connection"を選択

"Wired connection1"をダブルクリック

Methodを"Manual"に変更、"Address","Netmask"を設定して"Save"を選択

Vimのインストール

デフォルトでインストールされているVimが非常に使いにくかったので、変更しておきます。ターミナルを開いて以下コマンドを入力。

sudo apt-get --purge remove vim-common vim-tiny
sudo apt-get install vim

isc-dhcp-serverのインストール

sudo apt install isc-dhcp-server

isc-dhcp-serverの設定

dhcpサーバーとして動作させるために2つの設定が必要です。一つ目は"dhcp.conf"です。

sudo vim /etc/dhcp/dhcpd.conf

vimで設定ファイルの一部を下記のように変更します。ポイントはアドレスのリース期間変更とリース範囲の設定です。下記例ではリース期間を86400秒(1日)としています。

...
default-lease-time 86400;
max-lease-time 604800;

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
#ddns-update-style none;

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

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
#log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

subnet 192.168.101.0 netmask 255.255.255.0 {
        option broadcast-address    192.168.101.255;
        option subnet-mask          255.255.255.0;
        option routers              192.168.101.1;
        range                       192.168.101.2 192.168.101.254;
}
...

対象のネットワークを登録するために、下記コマンドで設定ファイルをvimで開きます。

sudo vim /etc/default/isc-dhcp-server

以下のように変更することで、有線LANを登録します。

...
INTERFACESv4="eth0"
INTERFACESv6=""

サービスの起動コマンドでエラーが出ないか確認します。

sudo systemctl start isc-dhcp-server

ミスがなければ、これで正常に起動するはずです。

ネットワークとサービスの自動起動設定

まずはdhcpdを自動起動します。

sudo systemctl enable isc-dhcp-server

次にネットワークの自動接続設定を"nmtui"から行います。この設定は別に不要かもしれません。

sudo nmtui

"Edit a connection"を選択

"Wired connection1"を選択して、"Edit"を選ぶ。

"Require IPv4 addressing for this connection"と"Automatically Connect"をチェック(スペースでチェックorアンチェックを切替可能)

以上で設定完了です。

sshdの設定変更と有効化

クライアントPCからSSH接続できるように設定変更します。

sshd_configの書き換え

vimでsshd_configを開きます。

sudo vim /etc/ssh/sshd_config

パスワードログインの有効化とrootログイン禁止設定を行います。デフォルトファイルから下記パラーメータを探して書き換えます。

...
PermitRootLogin no
...
PasswordAuthentication yes
...

sshdの起動と自動起動登録

他のOSではsshd.serviceとなっていることが多いですが、RaspberryPiOSの場合は"ssh.socket"となるところに注意です。

sudo systemctl start ssh.socket
sudo systemctl enable ssh.socket

以上でクライアントPCから接続できれば設定完了です。

つまづいたところ

記事に残していませんが、ファイルサーバーとして使用しているAlmaLinux上にDHCPサーバー機能を追加したことがあり、短時間ですんなり出来ていたので、今回も悩まず出来るだろうと思っていたのですが、見事につまずきました。

下記2点、解決に時間がかかったところがあるので残しておきます。

dhcpd.confの設定だけでは動かない

説明では"/etc/default/isc-dhcp-server"というファイルを編集して、対象のネットワークを設定しています。この作業が必要なことがわからず、時間がかかりました。これを行わずにデーモンを起動しようとしても、パラメーターエラーのような形で落ちてしまいます。

ラズパイのネットワーク設定ミス

GUIから有線ネットワークを設定する際、"Method"の項目を"Auto"から"Manual"に変更し忘れて進めていました。このままでも問題なくクライアントPCからのSSH通信を接続できますが、1分程度で切断されます。初歩的なミスですが、原因を見つけるまでに1時間以上かかりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

11 − nine =