Solaris で BIND バージョンアップ

Solaris には BIND(DNS サーバソフトウェア named)が付属している(参照: man named)。 ここでは、BIND をソースからインストールし直す手順を示す。 BIND のセキュリティ修正は新しいバージョンで配布されるため、ISC が公開している現行の安定版を使う。

参考 Web ページ:

パッケージを使う方法(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 などで導入する。

ビルドとインストール

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; }; を書く。