FreeBSD10.3: BIND 9.11.0-P3 unexpected error

パッケージを更新したり、何か次のステップへ進もうとすると、次から次へと、エラーやメッセージが出て来ます。勘弁してくれ〜。

先ほど、BINDに脆弱性が見つかり(当サイトには関係ありませんでしたが)とりあえず更新しておきました。起動コマンドにはエラーが出ていなかったので、更新完了!ありがとさん!って思っていたのですが、あとから、/var/log/message をチェックしてみたら・・・・・

Feb  9 20:13:21 tokyo named[13325]: ----------------------------------------------------
Feb  9 20:13:21 tokyo named[13325]: BIND 9 is maintained by Internet Systems Consortium,
Feb  9 20:13:21 tokyo named[13325]: Inc. (ISC), a non-profit 501(c)(3) public-benefit 
Feb  9 20:13:21 tokyo named[13325]: corporation.  Support and training for BIND 9 are 
Feb  9 20:13:21 tokyo named[13325]: available at https://www.isc.org/support
Feb  9 20:13:21 tokyo named[13325]: ----------------------------------------------------
Feb  9 20:13:21 tokyo named[13325]: socket.c:5681: unexpected error:
Feb  9 20:13:21 tokyo named[13325]: setsockopt(21, TCP_FASTOPEN) failed with Protocol not available
Feb  9 20:13:21 tokyo named[13325]: socket.c:5681: unexpected error:
Feb  9 20:13:21 tokyo named[13325]: setsockopt(22, TCP_FASTOPEN) failed with Protocol not available
Feb  9 20:13:21 tokyo named[13325]: socket.c:5681: unexpected error:
Feb  9 20:13:21 tokyo named[13325]: setsockopt(23, TCP_FASTOPEN) failed with Protocol not available
Feb  9 20:13:21 tokyo named[13325]: socket.c:5681: unexpected error:
Feb  9 20:13:21 tokyo named[13325]: setsockopt(24, TCP_FASTOPEN) failed with Protocol not available
Feb  9 20:13:21 tokyo named[13325]: command channel listening on 127.0.0.1#953

と、メッセージが書き込まれていました。
今回のBIND脆弱性で気づきましたけど、このメッセージは、サーバー置き換え時から記録されており、BIND911 使用開始時からずーっと named 起動時に発生していたことに今気が付きました。

これだけエラーがはっきり残っていると、検索は簡単。

https://forums.freebsd.org/threads/59367/

に答えというか回避策がありました。

まず、FreeBSD10.3 と BIND 9.10系では発生しません。

BIND 9.11 の原因と言うよりも、FreeBSD OS側のと設定の食い違いが発生している感じです。
TCP_FASTOPEN というモードがあるようなのですが、これは FreeBSD 10.3-RELEASE-p11 のカーネルには入っていません。そのため、カーネルに

options TCP_RFC7413

を加えた後、カーネルをリビルドしてインストール。

その後で、/etc/sysctl.conf に、

net.inet.tcp.fastopen.enabled=1

を追加する。これで回避できるということのようです。
GENERICカーネルのリビルド自体は簡単なのですが、カーネルをカスタマイズすると、freebsd-update コマンドを使う時に不都合が生じる場合があります(メジャーアップデートを行う時は確実にトラブる)ので、あまりやりたくない。

さて、どうしたものか。エラーは出ているものの、named は正常に動作しているようです。そりゃそうだ。パケットの大半は、TCPじゃなくUDPですからねぇ。

named 側の設定で TCP_FASTOPEN というモードを停止できないの?

コメントを残す