4と5のリビジョン間の差分
2018-10-08 22:50:50時点のリビジョン4
サイズ: 4981
コメント:
2018-10-09 00:55:22時点のリビジョン5
サイズ: 6410
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 28: 行 28:
 * この手の設定を調べてみるとあまり「レプリケーション」っては出ない。
 * じゃあ何かというと「セカンダリDNSサーバー」「ゾーン転送」辺り
 * この手の設定を調べてみるとあまり「レプリケーション」って「言葉」は出ない。
 * じゃあ何かというと「セカンダリDNSサーバー」「ゾーン転送」。
行 51: 行 51:
--- /usr/local/etc/namedb/named.conf.sample 2018-09-13 22:12:15.847935000 +0900
+++ /usr/local/etc/namedb/named.conf 2018-09-13 22:46:26.048986000 +0900
@@ -16,15 +16,20 @@
--- /usr/local/etc/namedb/named.conf.orig 2018-09-25 03:54:24.724317000 +0900
+++ /usr/local/etc/namedb/named.conf 2018-10-09 00:36:27.390945000 +0900
@@ -8,6 +8,22 @@
 // simple mistakes, you can break connectivity for affected parties,
 // or cause huge amounts of useless Internet traffic.

+include "/usr/local/etc/namedb/rndc.key";
+include "/usr/local/etc/namedb/ns1-rndc.key";
+include "/usr/local/etc/namedb/ns2-rndc.key";
+
+controls {
+ inet * port * allow {
+ 127.0.0.1; ::1;
+ ns1.example.jpのIPアドレス;
+ ns2.example.jpのIPアドレス;
+ } keys {
+ rndc-key;
+ ns1-rndc-key;
+ ns2-rndc-key;
+ };
+};
+
 options {
        // All file and path names are relative to the chroot directory,
        // if any, and should be fully qualified.
@@ -16,15 +32,22 @@
行 61: 行 84:
+
+ allow-new-zones yes;
行 82: 行 107:
 * DNSSEC設定/運用、ログ出力設定、ビュー設定、アクセス制御といった機能については説明しない。  * DNSSEC設定/運用、ログ出力設定、ビュー設定といった機能については説明しない。

※カタログゾーン運用のための設定

 * 「allow-new-zones yes;」を設定する。
 * スレーブDNSサーバーからのRNDCを許可するためのアクセス制御を設定する(たぶん、まだ未確認)。
 * このアクセス制御は、TSIGキーとIPアドレスの組み合わせとして許可することができないため、TSIGキーの配布は運用でカバーすること。
 * 一応バインド(inet ~ port ~)する単位で制御することは可能だが、IPアドレスはともかくポート番号まで変えると運用が面倒なので、ここではしない。

DNSのレプリケーション設定と運用

検証環境

  • 以下のソフトウェアの利用を前提に検証を実施した。いずれも現時点で最新のリリースに基づいて検証しているが、ある程度古い環境、より新しい環境でも問題無いと思われる。
    • OS: FreeBSD 11.2-R
    • DNSコンテンツサーバー: BIND9 9.13.3
  • 上記以外の環境では、以下の点に相違が発生する。当該環境に応じて読み替えたし。
    • インストール方法
    • インストールされるディレクトリ
  • 逆に以下の点は参考にできる。
    • 設定パラメータとその意味
    • 運用事例

検証内容

  • DNSコンテンツサーバーの構築。以下の3台のDNSサーバーを構築する。
    • マスターDNSサーバー ns0.example.jp
    • スレーブDNSサーバー ns1.example.jp
    • スレーブDNSサーバー ns2.example.jp
  • 構成に当り、以下の機能を使用してゾーン転送(レプリケーション)を行う。
    • AFXR/IFXRによるゾーン転送。
    • TSIGキーによるマスター/スレーブの認証。
    • カタログゾーン機能による、スレーブDNSサーバーの設定フリー(たぶん)。
    • カタログゾーン機能はBIND9 9.11移行の機能であるため、それ未満のサーバー上では運用できない(残念)。
    • 他の実装については今時点不明。現在ドラフト状態にあり、RFCに移行するかどうかと関わってくると思われる。

レプリケーションについて

  • この手の設定を調べてみるとあまり「レプリケーション」って「言葉」は出ない。
  • じゃあ何かというと「セカンダリDNSサーバー」「ゾーン転送」。
  • 言わんとすることわかるけど、レプリケーションじゃないかなぁということで、ここではそれで統一。
  • マスター・スレイブ、プライマリ・セカンダリ、権威サーバー・コンテンツサーバー、キャッシュサーバー・フルリゾルバ、色々と表現あるけど、適度な使い分けで。。

マスターDNSコンテンツサーバーの基本設定

  • DNSサーバーとして ports/dns/bind913 をインストールする。

  • ここでは特にカスタムする要素は無いので、デフォルトのままとする。
  • 説明のため、稼働に必要な最低限の設定とする。

/etc/rc.conf

以下の設定を追加する。

named_enable="YES"
named_chrootdir="/var/named"
altlog_proglist="named"

※altlog_proglist が既に設定済みの場合、「 named」を追加する。

/usr/local/etc/namedb/named.conf

行番号表示/非表示切替
   1 --- /usr/local/etc/namedb/named.conf.orig       2018-09-25 03:54:24.724317000 +0900
   2 +++ /usr/local/etc/namedb/named.conf    2018-10-09 00:36:27.390945000 +0900
   3 @@ -8,6 +8,22 @@
   4  // simple mistakes, you can break connectivity for affected parties,
   5  // or cause huge amounts of useless Internet traffic.
   6 
   7 +include "/usr/local/etc/namedb/rndc.key";
   8 +include "/usr/local/etc/namedb/ns1-rndc.key";
   9 +include "/usr/local/etc/namedb/ns2-rndc.key";
  10 +
  11 +controls {
  12 +       inet * port * allow {
  13 +               127.0.0.1; ::1;
  14 +               ns1.example.jpのIPアドレス;
  15 +               ns2.example.jpのIPアドレス;
  16 +       } keys {
  17 +               rndc-key;
  18 +               ns1-rndc-key;
  19 +               ns2-rndc-key;
  20 +       };
  21 +};
  22 +
  23  options {
  24         // All file and path names are relative to the chroot directory,
  25         // if any, and should be fully qualified.
  26 @@ -16,15 +32,22 @@
  27         dump-file       "/var/dump/named_dump.db";
  28         statistics-file "/var/stats/named.stats";
  29 
  30 +       recursion       no;
  31 +       allow-query       { any; };
  32 +       allow-recursion   { none; };
  33 +       allow-query-cache { none; };
  34 +
  35 +       allow-new-zones yes;
  36 +
  37  // If named is being used only as a local resolver, this is a safe default.
  38  // For named to be accessible to the network, comment this option, specify
  39  // the proper IP address, or delete this option.
  40 -       listen-on       { 127.0.0.1; };
  41 +       listen-on       { any; };
  42 
  43  // If you have IPv6 enabled on this system, uncomment this option for
  44  // use as a local resolver.  To give access to the network, specify
  45  // an IPv6 address, or the keyword "any".
  46 -//     listen-on-v6    { ::1; };
  47 +       listen-on-v6    { any; };
  48 
  49  // These zones are already covered by the empty zones listed below.
  50  // If you remove the related empty zones below, comment these lines out.
  • DNSコンテンツサーバーとして、以下の設定を行うものとする。
    • IPv4/IPv6問わず、全てのクエリを受け付ける。
    • 再帰問い合わせには答えないものとする。
    • よって本設定が行われているゾーン情報のみクエリに対して答える(ルートゾーンを含む)。
  • DNSSEC設定/運用、ログ出力設定、ビュー設定といった機能については説明しない。

※カタログゾーン運用のための設定

  • 「allow-new-zones yes;」を設定する。
  • スレーブDNSサーバーからのRNDCを許可するためのアクセス制御を設定する(たぶん、まだ未確認)。
  • このアクセス制御は、TSIGキーとIPアドレスの組み合わせとして許可することができないため、TSIGキーの配布は運用でカバーすること。
  • 一応バインド(inet ~ port ~)する単位で制御することは可能だが、IPアドレスはともかくポート番号まで変えると運用が面倒なので、ここではしない。

参考文献

bind9/DNSのレプリケーション設定と運用 (最終更新日時 2019-05-08 19:35:18 更新者 NorikatsuShigemura)