Solaris で BIND バージョンアップ
Solaris には BIND(DNS サーバソフトウェア named)が付属している(参照: man named)。 ここでは、BIND をソースからインストールし直す手順を示す。 BIND のセキュリティ修正は新しいバージョンで配布されるため、ISC が公開している現行の安定版を使う。
参考 Web ページ:
- BIND 9: https://www.isc.org/bind/
- ISC ダウンロードページ(現行版の確認とソースの取得): https://www.isc.org/download/
- ビルド手順の公式ドキュメント: https://bind9.readthedocs.io/en/stable/chapter10.html
パッケージを使う方法(Solaris 11)
Solaris 11 では、Oracle が提供する BIND パッケージを pkg コマンドで導入・更新できる。 ソースからビルドせずに済むため、こちらを先に検討する。
pkg install pkg:/service/network/dns/bind
pkg update pkg:/service/network/dns/bind
ソースからインストールする方法
事前に必要なもの
BIND 9.20 系のビルドには、次のソフトウェアが必要である。 Solaris 11 では pkg install で、Solaris 10 以前では pkgutil などで導入する。
- C11 に対応した C コンパイラ(gcc など)
- OpenSSL(1.0.2e 以降。1.1.1 以降を推奨)
- libuv(1.34.0 以降。1.40.0 以降を推奨。1.35.0 と 1.36.0 では動作しない)
- liburcu(Userspace RCU ライブラリ)
- perl
- pkg-config
ビルドとインストール
ISC ダウンロードページで現行の安定版の版番号を確認し、その版のソースを取得する。 下の例では 9.20.27 と書いているが、取得した版の番号に読み替える。 配布ファイルと同時に公開されている署名(.asc ファイル)で、ソースの真正性を検証しておく。
CC=gcc; export CC
# cc を使うときは CC=cc; export CC
rm -rf /tmp/bind
mkdir /tmp/bind
cd /tmp/bind
# bind-9.20.27.tar.xz を https://www.isc.org/download/ から取得して展開する
xz -dc bind-9.20.27.tar.xz | tar xf -
cd bind-9.20.27
./configure --with-openssl
# OpenSSL が標準以外の場所にあるときは --with-openssl=/usr/local/ssl のように指定する
make
make test
インストールの前に、稼働中の named を停止する。 Solaris 10 と Solaris 11 では、SMF のサービスとして停止・起動する。
svcadm disable dns/server
make install
svcadm enable dns/server
インストール先は既定で /usr/local である。変更するときは、./configure に --prefix オプションを付ける。 設定ファイルの場所は --sysconfdir オプションで指定する。
古い手順からの変更点
現在の BIND では、make depend は不要である。テストの実行は make tests ではなく make test である。 また、configure の --disable-ipv6 オプションと --enable-ipv6 オプションは廃止された。 IPv6 を使わないときは、named -4 で起動するか、named.conf に listen-on-v6 { none; }; を書く。