「DHCP」サーバの構築
「isc-dhcp-server」のインストール
まずは、「isc-dhcp-server」をインストールします。
sudo apt install -y isc-dhcp-server
「インターフェース」の指定
NICが2つあった時などでもちゃんと動作できるように、
事前にDHCPサーバを動作させるインターフェースを指定します。
「isc-dhcp-server」ファイルを開きます。
sudo nano /etc/default/isc-dhcp-server
今回は、「eth0」とします。
INTERFACESv4="eth0"
「dhcpd.conf」の編集
「dhcpd.conf」ファイルを編集して、DHCPリースのレンジや、デフォルトゲートウェイ、DNSを指定します。
sudo nano /etc/dhcp/dhcpd.conf
以下の記述を追加。
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.101 192.168.0.200;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.254;
}
ドメイン名とDNSを指定。
# option definitions common to all supported networks...
option domain-name "raspberrypi.local";
option domain-name-servers 192.168.0.254;
以下のコメントを外す。
authoritative;
変更が完了したら、ファイルを保存します。
サービス再起動
変更を加えたので、サービスを再起動します。
sudo systemctl restart isc-dhcp-server
ステータスの確認
一度、現在のステータスをチェックします。「active」になっていればOKです。
sudo systemctl status isc-dhcp-server
サービスの常時有効化
ラズパイが再起動しても、自動でサービスが起動するように「enable」しておきます。
sudo systemctl enable isc-dhcp-server
ログ出力先の変更
ログの出力先を変更。
sudo nano /etc/rsyslog.conf
# 末尾に追記
#dhcp_log
:syslogtag, contains, "dhcpd" /var/log/dhcpd.log
& stop
「DNSサーバ」の構築
「dnsmasq」をインストール
「dnsmasq」をインストールします。
apt -y install dnsmasq
「dnsmasq.conf」ファイルを編集
「dnsmasq.conf」ファイルを編集します。
以下のコマンドでファイルを開きます。
sudo nano /etc/dnsmasq.conf
開いたら、以下の内容を修正します。
# 19行目:コメント解除 (ドメイン名の無いクエリは上位サーバーに問い合わせない)
domain-needed
# 21行目:コメント解除 (プライベート IP の逆引き要求は上位サーバーに問い合わせない)
bogus-priv
# 53行目:コメント解除 ([resolv.conf] に記述のサーバーに上から順に問い合わせる)
strict-order
# 135行目:コメント解除 (ホスト名に自動的にドメイン名を付加する)
expand-hosts
# 145行目:追記 (ドメイン名を定義)
domain=raspberrypi.local
「systemd-resolved」との競合を回避
「systemd-resolved」との競合を回避するために、以下のコマンドを実行します。
sudo ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf
サービス再起動
設定の反映をさせるために、「dnsmasq」と「systemd-resolved」のサービスを再起動します。
sudo systemctl restart dnsmasq systemd-resolved
「hosts」ファイルの編集
「hosts」ファイルを編集して、ホスト名のエントリを追加します。
以下のコマンドで「hosts」ファイルを開き、
sudo nano /etc/hosts
OS自身のIPアドレスと、ホスト名を追加します。
# 設定するエントリを追記
192.168.0.254 raspberrypi.local raspberrypi
サービス再起動
今度は「dnsmasq」のみサービスを再起動します。
sudo systemctl restart dnsmasq
DNSを変更
DNSサーバを立てたので、稼働させているOS自体のDNS参照先を変更します。
sudo nano /etc/netplan/99-manual_config.yaml
# 名前解決の参照先を自身に変更
nameservers:
addresses: [192.168.0.254]
サービスの常時有効化
最後に、「dnsmasq」サービスを常時有効化させます。
sudo systemctl enable dnsmasq
以上で、DHCPサーバの構築は完了です!
NICにLANケーブルを接続して、PCにIPアドレスが割り当てられるかチェックしてください。