Closed6

おうちインフラの DHCP サーバーが不通になった件の作業ログ

koyashirokoyashiro

R86Sセットアップの続き。

事象

7/20 22時頃、宅内 DHCP サーバーから応答(DHCP Offer)が帰らなくなり、IP アドレスを固定していないすべてのデバイスで IPv4 アドレスの割り振りができなくなった。

IPv6 アドレスについては RA で設定させていたため、問題は発生しなかった。
(IPv6 シングルスタックの状態になった)

事象発生時の構成

systemd-networkd で DHCP サーバーを稼働させていた。

/etc/systemd/network/br0.network
[Network]
DHCPServer=yes

[DHCPServer]
PoolOffset=192
PoolSize=63
EmitDNS=yes
DNS=_server_address
koyashiro@r86s:~$ sudo lsof -i:67
COMMAND    PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd-n 4881 systemd-network   26u  IPv4  39851      0t0  UDP *:bootps
koyashirokoyashiro

systemd-newtorkd の DHCP サーバーを停止

すぐに原因が解明できそうになかったため、別の DHCP サーバー実装に移行することとした。

systemd-networkd の DHCP サーバーを停止する。

/etc/systemd/network/br0.network
[Network]
- DHCPServer=yes

- [DHCPServer]
- PoolOffset=192
- PoolSize=63
- EmitDNS=yes
- DNS=_server_address
sudo systemctl restart systemd-networkd.service

67番ポートが開放された。

koyashiro@r86s:~$ sudo vim /etc/systemd/network/br0.network
koyashirokoyashiro

代替 DHCP サーバー kea のインストール

DHCP サーバー kea をインストール。

sudo apt install kea

サービスはデフォルトで有効になっていた。

koyashiro@r86s:~$ systemctl status kea-dhcp4-server.service
● kea-dhcp4-server.service - Kea IPv4 DHCP daemon
     Loaded: loaded (/lib/systemd/system/kea-dhcp4-server.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-07-20 23:34:27 JST; 8min ago
       Docs: man:kea-dhcp4(8)
   Main PID: 4666 (kea-dhcp4)
      Tasks: 5 (limit: 18871)
     Memory: 3.2M
        CPU: 37ms
     CGroup: /system.slice/kea-dhcp4-server.service
             └─4666 /usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4.conf

まだ67番ポートは掴んでいない。

koyashiro@r86s:~$ sudo lsof -i:67
koyashirokoyashiro

kea の設定

kea の設定ファイルを書く。

/etc/kea/kea-dhcp4.conf
{
    "Dhcp4": {
        "renew-timer": 900,
        "rebind-timer": 1800,
        "valid-lifetime": 3600,
        "interfaces-config": {
            "interfaces": [ "br0/192.168.0.1" ],
            "dhcp-socket-type": "raw"
        },
        "subnet4": [
            {
                "id": 1,
                "subnet": "192.168.0.0/24",
                "pools": [ { "pool": "192.168.0.192 - 192.168.0.254" } ],
                "option-data": [
                    {
                        "name": "routers",
                        "data": "192.168.0.1"
                    },
                    {
                        "name": "domain-name-servers",
                        "data": "192.168.0.1"
                    },
                    {
                        "name": "domain-name",
                        "data": "example.com"
                    }
                ]
            }
        ]
    }
}

kea を再起動。

sudo systemctl restart kea-dhcp4-server.service
koyashirokoyashiro

systemd-networkd の DHCP サーバーが正常に動作しなくなった原因は不明。

このスクラップは2024/09/02にクローズされました