DNS - トラブルシュート - No buffer space available


 クラウディア


1. 概要
2. 状況
3. 対処
4. 参考サイト

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」くんを参考にさせていただきました。

AbemaTV 無料体験