CentOS 7 で、bind (named) 9.11 ソースインストール

この記事は約10分で読めます。

bind 9.11 9.12

bind (named)は、現在、
9.11系と、9.12系が主流です。9.9は、サポートが終わっています!

9.12系の方がバージョンが新しいですが、サポートの期限が、短いです。
9.11系は、ESV(Extended Support Version)とサポートの期間が長いです。
オーソドックスな機能を使い、長いサポートを利用するのであれば、
9.11系のほうがよいかと思います。

9.12系は、9.11系に対して、
・新機能
NSEC Aggressive use, Serve Stale, Response Policy Service Interface
・暗号化のアップデート
・パフォーマンスの向上
と、積極的な機能改善を行っているようです。
https://www.isc.org/blogs/bind-9-12-0-released/

bind 9.12のあとは、bind14/bind15が、登場するようです・・・

BIND Release Strategy Updated - Internet Systems Consortium

ここでは、「権威サーバー(権威DNSサーバー)(権威ネームサーバー)(コンテンツサーバー)」の構築方法を書きます。

「権威サーバー」と対局にあるのが、「キャッシュDNSサーバ」です。

yum install

# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

#yum install bind

でインストールを試みると、

9.9.4
を入れようとします。
セキュリティアップデートが頻繁に行われる bind(named)では、ソースインストールがいいかと思います。

そもそも、bind(named)を自分で管理するな。という考えも、ごもっともです(笑)。

bind (named) 9.11 ソースインストール

↑開発関係のファイル群を入れます。

↑ bind 9.11をダウンロードします。

↑ 2019/11/22 現在のバージョン、9.11.13 では・・・(2019/11/22 更新)

↑「–help」で、構築時のオプションを見ることができます。

と出てきます。

今回、「/usr/local/bind9/」に入れたいと思います。
バージョンを明確にするために、実際には、
/usr/local/bind-9.11.6/
に入れて、
/usr/local/bind-9.11.6/
から
/usr/local/bind9/
にシンボリックリンクを貼りたいと思います。

↑、Python の plyモジュールがない!とエラーになりました。

↑yum で、インストールします。

再度、configureを行います。

↑openssl のライブラリがない!とエラーになりました。

↑yum で、opnsslのライブラリを入れます。

再度、configureをします。

↑configureがうまくいきました。

↑インストールをします。

共通鍵の作成

と、
共通鍵が、/usr/local/bind-9.11.6/etc/rndc.key
に作成されます。
(↑ 2019/11/22 修正)

↑「rndc.conf」ファイルを作成します。
後半のキーは、共通鍵、「rndc.key」の内容をそのまま、貼り付けます。

↑rootのみ、読み込み可にします。

namedユーザに変更

bind (named)を起動するユーザを「named」にします。

named.confファイルの設定

named.conf設定

設定ファイルの中心である「named.conf」の設定をします。

↑(2019/11/22 修正)

「controls」のところの「keys」のところは、「rndc.conf」の内容と同じにします。
(上記の記述の通りで大丈夫です)

rootサーバー情報

「zone “.”」のところは、「ルートサーバー情報」のファイル名を指定します。

rootサーバーの情報を取得します。
このデータは、変わる場合があります。
ネット上で、話題になるので、アンテナを張っておくと情報が入ってくるかと思います。

https://www.internic.net/domain/named.root

localhostの正引き/逆引き設定

「zone “localhost” 」の「local.zone」ファイルは、

という内容で保存します。

逆引きである「zone “0.0.127.in-addr.arpa”」
のところは、

という内容で、「pri.0.0.127.in-addr.arpa」というファイル名で、保存をします。
(2019/11/22 補足)

↑ 追記 (2019/11/22)

起動ファイル関係

↑起動のオプションを設定します。

今回、「chroot」の機能を利用して、「/usr/local/bind9/」を「bind (named)」の起点とします。

 

↑サービスの起動ファイルです。
途中の「EnvironmentFile」で、「/etc/sysconfig/named 」のオプションを指定します。

「ExecStartPre」は、起動前のチェックです。「named.conf」の構文をチェックしてくれます。

bind (named) 起動

で、起動をします。

で、自動起動

↑無事、起動をしました。

/dev/randomのエラー (2019/05/05 追加)

↑randomファイルが無いよ。というエラーが出ていました。

/dev/randomファイルを作成します。

/usr/local/bind9/
が起点としています(chrootdirで指定している)ので、
実際のファイルパスは、
/usr/local/bind9/dev/random
となります。

↑無事、namedが起動してエラーも無くなりました。

参考サイト:
https://www.atmarkit.co.jp/ait/articles/0309/09/news001.html

bind バージョンアップ作業、パターン1

バージョンアップ前と、後のディレクトリを、違う場所にする場合。
慎重に行うパターン!パターン2は、簡単にバージョンアップができます。

最新版、9.11系のbindダウンロード

↑最新バージョンの、bind-9.11.6-P1 をダウンロードします。

bind 9.11 インストール

↑前バージョンは、
/usr/local/bind-9.11.6
にインストールしているので、
今回は、
/usr/local/bind-9.11.6-P1
にインストールします。

↑インストールをします。

bind9 データの移行

↑新しいnamed(bind)の方にデータをコピーして、ファイルの権限を「named」にします。

bind9 切り替え作業

↑新しいバージョンを、/usr/local/bind9/
にリンクさせます。

これで、最新バージョンが起動します。

なんらかのエラーが出ている場合、
/usr/local/bind9
のリンク先を元のバージョンに戻して、原因を探ります。

bind バージョンアップ作業 パターン2

バージョンアップ前と、後のディレクトリが、同じ場所の場合。
簡単にバージョンアップする場合。

↑最新版をダウンロードします。(2020/04/08現在)

↑元々「bind」の実態のあった、ディレクトリ「/usr/local/bind-9.11.13/」を指定します。

↑コンパイルをして、インストール、「bind」の再起動を行います。

ここで、「/var/log/messages」をみてチェックします。
問題がなければ、このまま運用。
もし、問題があれば、「前のバージョンのbindのソースディレクトリから「# make install」」を行い、バージョンを下げます。

DNSのfirewall設定(関連記事、2019/05/06 追加)

CentOS7 firewall 設定 / ConoHa VPS

参考書籍

max-cache-size の設定(2019/11/23 更新)

「/var/log/messages」のbind関係のメッセージで、

class=”st-css-no”class=”st-css-no”

というようなメッセージが出てくる時があります。
これは、キャッシュ用のメモリが90%に達したと・・・
キャッシュサイズは、デフォルトでは、無制限なので、メモリ節約のためにも、設定をします。
今回、

と、100Mに設定をしてみました。適正値がどのくらいかよくわからず・・・(汗)
さて、ついでに、

↑なども、「options」に設定をしておきます。

参考情報
http://www.tatsuyababa.com/NW-DNS/NW-200402-DNSQA06.pdf

タイトルとURLをコピーしました