余剰になった Raspberry Pi 3B+ で、DHCP,DNS サーバー を構築した時のメモ
条件
項目 | 値 |
---|---|
SBC | Raspberry Pi 3B+ |
OS | Raspberry Pi OS lite (64-bit bookworm ) |
ネットワーク | 有線LAN 固定IP |
実施日 | 2025/02/26 |
$ ssh pi.local
OS のアップデート
$ sudo apt update
$ sudo apt -y upgrade
DHCPサーバーなので、IPアドレスを固定とする。
自アドレス | 192.168.1.2/24 |
gateway | 192.168.1.1 |
DNS | 192.168.1.2,8.8.8.8 |
IPv6 | 停止 |
ドメイン | home |
$ nmcli connection show
$ sudo nmcli connection modify "Wired connection 1" ipv4.addresses 192.168.1.2/24
$ sudo nmcli connection modify "Wired connection 1" ipv4.gateway 192.168.1.1
$ sudo nmcli connection modify "Wired connection 1" ipv4.dns 192.168.1.2,8.8.8.8
$ sudo nmcli connection modify "Wired connection 1" ipv4.dns-search home
$ sudo nmcli connection modify "Wired connection 1" ipv4.method manual
$ sudo nmcli connection modify "Wired connection 1" ipv6.method disabled
$ sudo nmcli connection up "Wired connection 1"
mail の設定 (smtpサーバーに投げるだけ)
$ sudo apt install -y msmtp-mta msmtp
の後 ~/.msmtprc を適宜設定
ntp(chrony) の設定
$ sudo apt -y install chrony
の後 /etc/chrony/chrony.conf を適宜設定
$ sudo systemctl restart chrony
$ sleep 10 ; chronyc sources
ロケールの設定
$ sudo raspi-config
1. 5 Localisation Options
1. L1 Locale Configure language and regional settings
で ja_JP.UTF-8
に設定する。
DNSサーバー(unbound) のインストール (設定は後述)
$ sudo apt -y install bind9-host unbound
$ sudo systemctl stop unbound
DHCPサーバー(udhcpd) のインストール (設定は後述)
$ sudo apt -y install udhcpd
$ sudo systemctl stop udhcpd
/boot/firmware/config.txt を修正する
#dtparam=audio=on # コメントアウト
#camera_auto_detect=1 # コメントアウト
#dtoverlay=vc4-kms-v3d # コメントアウト
#max_framebuffers=2 # コメントアウト
#disable_overscan=1 # コメントアウト
dtoverlay=disable-bt # 追記
dtoverlay=disable-wifi # 追記
IPv6 の停止の為に /boot/firmware/cmdline.txt に ipv6.disable=1
を追加
console=serial0,115200 console=tty1 root=PARTUUID=ca2c7784-02 rootfstype=ext4 ipv6.disable=1 fsck.repair=yes rootwait
/etc/modprobe.d/raspi-blacklist.conf に下記を設定
blacklist bcm2835_codec
blacklist bcm2835_v4l2
blacklist bcm2835_isp
blacklist snd_bcm2835
blacklist drm
blacklist dm_mod
blacklist ipv6
スワップを使用しない
sudo apt remove -y dphys-swapfile
/tmp等 を RAMディスク に変更 /etc/fstab に追記
tmpfs /tmp tmpfs defaults,size=64m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0
/etc/unbound/unbound.conf に設定 下記は設定例
server:
verbosity: 1
interface: 0.0.0.0
interface: 127.0.0.1
access-control: 192.168.0.0/16 allow
access-control: 127.0.0.0/8 allow
do-ip6: no
local-zone: "home." static
local-data: "gw.home. IN A 192.168.1.1"
local-data: "dhcpd.home. IN A 192.168.1.2"
local-data: "dns.home. IN A 192.168.1.2"
local-data: "book.home. IN A 192.168.1.2"
local-data: "raspi.home. IN A 192.168.1.2"
local-data: "ubuntu.home. IN A 192.168.1.3"
forward-zone:
name: "."
forward-addr: 8.8.8.8
forward-addr: 8.8.4.4
remote-control:
$ sudo systemctl restart unbound
配布アドレス | 192.168.1.233 -> 252 |
gateway | 192.168.1.1 |
DNS | 192.168.1.2,8.8.8.8 |
ドメイン | home |
/etc/udhcpd.conf に設定
start 192.168.1.233
end 192.168.1.252
interface eth0
max_leases 20
option subnet 255.255.255.0
option domain home
option lease 864000
opt dns 192.168.1.2, 8.8.8.8
opt router 192.168.1.1
/etc/default/udhcpd を編集して no -> yes にしてから
$ sudo systemctl restart udhcpd