2017年1月19日木曜日

FreeBSD 11でpkgからインストールしたbind911-9.11.0P2_1がうまく動かない

2017年1月18日の18時頃の時点でFreeBSD 11でpkgからインストールしたbind911-9.11.0P2_1がうまく動かないように思えます。設定をして実行すると以下のようなエラーになってしまします。
Jan 18 17:53:34 … named[…]: running as: named -c /usr/local/etc/namedb/named.conf
Jan 18 17:53:34 … named[…]: ----------------------------------------------------
Jan 18 17:53:34 … named[…]: BIND 9 is maintained by Internet Systems Consortium,  
Jan 18 17:53:34 … named[…]: Inc. (ISC), a non-profit 501(c)(3) public-benefit     
Jan 18 17:53:34 … named[…]: corporation.  Support and training for BIND 9 are     
Jan 18 17:53:34 … named[…]: available at https://www.isc.org/support              
Jan 18 17:53:34 … named[…]: ----------------------------------------------------  
Jan 18 17:53:34 … named[…]: socket.c:5681: unexpected error:                      
Jan 18 17:53:34 … named[…]: setsockopt(21, TCP_FASTOPEN) failed with Protocol not a

vailable
Jan 18 17:53:34 … named[…]: socket.c:5681: unexpected error:
Jan 18 17:53:34 … named[…]: setsockopt(22, TCP_FASTOPEN) failed with Protocol not a
vailable
そこで、設定ファイルはそのままにしてbind910-9.10.4P5_1をpkgからインストールしてみると動きます。

検索エンジンで探してみると以下のようなWWWページが見つかります。
bind911 socket error
https://forums.freebsd.org/threads/59348/

TCP_FASTOPEN
https://forums.freebsd.org/threads/59367/
原因はbind911がTCP_FASTOPENオプションを使うようになったが、デフォルトのカーネルの構成には入っていないことが原因のようです。

回避するには以下にようにするようです。

Added 'options TCP_RFC7413' to custom kernel config and added 'net.inet.tcp.fastopen.enabled=1' to /etc/sysctl.conf no errors anymore from bind911.
TCP_RFC7413オプションを加えてカーネルをコンパイルし、sysctlでこれを有効にするようです。できればGENERICカーネルで動かしたいので、しばらくbind910を使うつもりです。