1. 概要
発生は、2025年9月22日。
前のバージョンがわかりませんが、「unbound」を 1.24 へアップグレードした際の話です。
2. 状況
アップグレード後、再起動しましたら。
service unbound restart
Waiting for PIDS: 1603.
Obtaining a trust anchor...
Starting unbound.
[1758494062] unbound[8261:0] warning: setsockopt(..., SO_SNDBUF, ...) was not granted: No buffer space available
[1758494062] unbound[8261:0] warning: so-sndbuf 4194304 was not granted. Got 9216. To fix: start with root permissions(linux) or sysctl bigger net.core.wmem_max(linux) or kern.ipc.maxsockbuf(bsd) values. or set so-sndbuf: 0 (use system value).
[1758494062] unbound[8261:0] warning: setsockopt(..., SO_SNDBUF, ...) was not granted: No buffer space available
[1758494062] unbound[8261:0] warning: so-sndbuf 4194304 was not granted. Got 9216. To fix: start with root permissions(linux) or sysctl bigger net.core.wmem_max(linux) or kern.ipc.maxsockbuf(bsd) values. or set so-sndbuf: 0 (use system value).
初めて見る、「warning」のような気がします。
3. 対処
「ChatGPT」くんに相談しましたら。
これは unbound がソケット送信バッファサイズ (SO_SNDBUF) を大きくしようとしたけれど、カーネル側の制限で確保できなかった という警告です。
ログの意味を整理すると
・unbound は so-sndbuf: 4194304 (約 4MB) を要求した
・しかし実際に割り当てられたのは 9216 バイト(9KB)だけ
・FreeBSD 側の kern.ipc.maxsockbuf などの上限に引っかかったため
ちゅうことです。
まず、現在のサイズを見てみますと。
(以下、「root」ユーザ権限で)
sysctl kern.ipc.maxsockbuf
sysctl net.inet.udp.maxdgram
sysctl net.inet.udp.recvspace
その結果。
kern.ipc.maxsockbuf: 2097152
net.inet.udp.maxdgram: 9216
net.inet.udp.recvspace: 42080
「ChatGPT」くんは、「sysctl net.inet.udp.sendspace」という値も確認するようにとのことでしたが。
この値は、現在はないようです。
一時的に、カーネルの制限を変えるには。
sysctl kern.ipc.maxsockbuf=16777216
kern.ipc.maxsockbuf: 2097152 -> 16777216
これで、「unbound」を再起動します。
service unbound restart
Stopping unbound.
Waiting for PIDS: 74026.
Obtaining a trust anchor...
Starting unbound.
今度は、「warning」は表示されませんでした。
再起動時にもカーネルの値をキープするために。
vi /etc/sysctl.conf
末尾に下記の行を加えます。
kern.ipc.maxsockbuf=16777216
先ほどの値を再度確認します。
sysctl kern.ipc.maxsockbuf
sysctl net.inet.udp.maxdgram
sysctl net.inet.udp.recvspace
その結果。
kern.ipc.maxsockbuf: 16777216
net.inet.udp.maxdgram: 9216
net.inet.udp.recvspace: 42080
まぁ、設定したところしか、変わってぇへんわな。
とりあえず、一件落着。
4. 参考サイト
本ページは、「ChatGPT」くんを参考にさせていただきました。