2026/1/2(金)
SOTA朝活
7MHzでは、EFHWよりももらうレポートが良くないのですが、ひっきりなしに呼ばれます。
備忘録:自作オーディオ、自作アンプ、自宅サーバ、電子工作、自転車、無線(JQ7CPP) etc,etc...
DHCPはルーターの機能を使っていたが、なぜか固定IPを指定してもDHCPで新しいIPが配布されてしまうという不具合があった。
そのため、ルータのDHCPはとめてopenmedeavaultサーバでDHCPを配布することにした。
debian bullsyeベースのopenmediavolt
sudo ss -tulpn | grep :53
で現在Port53がどこで捕まっているか確認。
127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=278636,fd=17))
出力をみると上記項目があり、systemd-resolveがPort53をつかんでいることがわかった。
dnsmasqをインストールして起動すると
dnsmasq: failed to bind DHCP/DNS server socket: Address already in use
のようなメッセージがでる。
これが、過去に dnsmasqをインストールしてもうまく動かなかった原因。
今回は、ここをどう解決していくか分かったので、やってみることにした。
dnsmasq を使うなら Stub Listener を無効化しないといけない。
さてこのStub Listenerなのだが、何をしているしろものかというと
systemd-resolved の DNS Stub Listener(スタブリスナー) は、
ローカルの 127.0.0.53:53 で簡易DNSサーバとして待ち受ける機能です。
ということで、dnsmasq を入れるとまる被りする機能。
sudo vi /etc/systemd/resolved.conf
DNSStubListener=no
コメントではデフォルトでyesなのでnoにしてコメントを外す。
sudo systemctl restart systemd-resolved
にてsystemd-resolvedを再起動。
/etc/resolv.conf の symlink を解除
sudo mv /etc/resolv.conf /etc/resolv.conf.org
sudo sh -c 'echo "nameserver 127.0.0.1" > /etc/resolv.conf'
sudo apt install dnsmasq
これだけでさくっと導入できる。
設定は /etc/dnsmasq.conf だが、最近の流儀だとconf.dの中に設定ファイルを置くのが流行っぽい。しかしながら、自分は以前と同じやり方で、dnsmasq.more.conf を有効にした。
これは、設定ファイルの中の該当部分のコメントアウトを外して行う。
# Include another lot of configuration options.
conf-file=/etc/dnsmasq.more.conf
#conf-dir=/etc/dnsmasq.d
# .local は mDNS に任せる
domain-needed #
bogus-priv
localise-queries
dhcp-range=192.168.0.100,192.168.0.150,12h
dhcp-option=3,192.168.0.254
resolv-file=/etc/resolv.dnsmasq
dhcp-host=00:24:2c:01:33:77,192.168.0.3
address=/pi4.local/192.168.0.3
nameserver 1.1.1.1nameserver 8.8.8.8
nameserver 9.9.9.9
dnsmasqの再起動
sudo systemctl restart dnsmasq
DHCPをどこからもらっているかを確認するコマンドライン
cat /var/lib/dhcp/dhclient.leases | grep dhcp-server-identifier
これで、設定したIPからDHCPがリースされていればOK