クラウド、レンタルサーバ、SEO、WPなどのレシピを!

サーバーレシピ

CentOS7 サーバーインフラ

CentOS 7 で、bind (named) 9.11 ソースインストール 2019年版(2019/11/22修正)

更新日:

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が、登場するようです・・・

https://www.isc.org/blogs/bind-release-strategy-updated/

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 バージョンアップ作業 (2019/05/05/ 追加)

最新版、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
のリンク先を元のバージョンに戻して、原因を探ります。

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

CentOS7 firewall 設定 / ConoHa VPS

参考書籍

DNSがよくわかる教科書

-CentOS7, サーバーインフラ

Copyright© サーバーレシピ , 2019 All Rights Reserved.