2.6. BIND DNS サーバー間のゾーン転送の設定


ゾーンのコピーを保持しているすべての DNS サーバーが最新のデータを持つようにするには、BIND DNS サーバー間でゾーン転送を設定します。

前提条件

  • あなたは管理権限特権を持っています。
  • 将来のプライマリーサーバーでは、ゾーン転送を設定するゾーンが設定されている。
  • 将来のセカンダリーサーバーでは、BIND がすでにキャッシュネームサーバーとして設定されています。
  • 両方のサーバーで、named サービスまたは named-chroot サービスが実行している。

手順

  1. 既存のプライマリーサーバーで、以下を行います。

    1. 共有キーを生成し、/etc/named.conf ファイルに追加します。

      # tsig-keygen example-transfer-key | tee -a /etc/named.conf
      key "__example-transfer-key__" {
              algorithm hmac-sha256;
              secret "__q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ=__";
      };

      出力は /etc/named.conf ファイルに追記されます。

      この出力は後ほどセカンダリーサーバーでも必要になります。

    2. allow-transfer ステートメントで、/etc/named.conf ファイル内のゾーンを設定し、転送にキーを要求するようにします。

      zone "example.com" {
          ...
          allow-transfer { key example-transfer-key; };
      };

      ゾーンを転送するには、サーバーが example-transfer-key ステートメントで指定されたキーを持っている必要があることを定義します。ただし、allow-transfer ステートメントでは、BIND アクセス制御リスト (ACL) のニックネームを使用できます。

    3. セカンダリーサーバーの IP アドレスを表示するようにゾーンを設定します。

      zone "example.com" {
          ...
          also-notify { 192.0.2.2; 2001:db8:1::2; };
      };

      デフォルトでは、ゾーンを更新した後、BIND はそのゾーンにネームサーバー (NS) レコードを持つすべてのネームサーバーに通知します。セカンダリーサーバーの NS レコードをゾーンに追加する予定がない場合でも、BIND がこのサーバーに通知するように設定できます。そのために、このセカンダリーサーバーの IP アドレスを含む also-notify ステートメントをゾーンに追加します。

    4. /etc/named.conf ファイルの構文を確認します。

      # named-checkconf

      コマンドが出力を表示しない場合は、構文に間違いがありません。

    5. BIND をリロードします。

      # systemctl reload named

      change-root 環境で BIND を実行する場合は、systemctl reload named-chroot コマンドを使用してサービスをリロードします。

  2. 将来のセカンダリーサーバーで、以下を行います。

    1. 共有キーブロックを /etc/named.conf に追加します (プライマリーサーバーと同じファイルです)。

      key "example-transfer-key" {
              algorithm hmac-sha256;
              secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ=";
      };
      1. セカンダリーゾーンの定義を /etc/named.conf ファイルに追加します。

        zone "example.com" {
            type slave;
            file "slaves/example.com.zone";
            allow-query { any; };
            allow-transfer { none; };
            masters {
              192.0.2.1 key example-transfer-key;
              2001:db8:1::1 key example-transfer-key;
            };
        };
        • このサーバーは、example.com ゾーンのセカンダリーサーバー (type slave) です。
        • /var/named/slaves/example.com.zone ファイルはゾーンファイルです。この例のように相対パスを設定すると、このパスは、options ステートメントの directory に設定したディレクトリーからの相対パスになります。このサーバーがセカンダリーであるゾーンファイルをプライマリーサーバーから分離するには、それを /var/named/slaves/ ディレクトリーなどに保存します。
        • どのホストもこのゾーンにクエリーを実行できます。ただし、アクセスを制限するために、IP アドレス範囲や ACL ニックネームを指定することもできます。
        • このサーバーからゾーンを転送できるホストはありません。
        • このゾーンのプライマリーサーバーの IP アドレスは 192.0.2.1 および 2001:db8:1::2 です。ただし、ACL のニックネームを指定することは可能です。このセカンダリーサーバーは、example-transfer-key という名前のキーを使用して、プライマリーサーバーに対する認証を行います。
    2. /etc/named.conf ファイルの構文を確認します。

      # named-checkconf
    3. BIND をリロードします。

      # systemctl reload named

      change-root 環境で BIND を実行する場合は、systemctl reload named-chroot コマンドを使用してサービスをリロードします。

  3. オプション: プライマリーサーバーのゾーンファイルに、新しいセカンダリーサーバーの NS レコードを追加します。

検証

  • セカンダリーサーバーで次の手順を実行します。

    • named サービスの systemd ジャーナルエントリーを表示します。

      # journalctl -u named
      ...
      Jul 06 15:08:51 ns2.example.com named[2024]: zone example.com/IN: Transfer started.
      Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: connected using 192.0.2.2#45803
      Jul 06 15:08:51 ns2.example.com named[2024]: zone example.com/IN: transferred serial 2022070101
      Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: Transfer status: success
      Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: Transfer completed: 1 messages, 29 records, 2002 bytes, 0.003 secs (667333 bytes/sec)

      change-root 環境で BIND を実行する場合は、journalctl -u named-chroot コマンドを使用してジャーナルエントリーを表示します。

    • BIND がゾーンファイルを作成したことを確認します。

      # ls -l /var/named/slaves/
      total 4
      -rw-r--r--. 1 named named 2736 Jul  6 15:08 example.com.zone

      デフォルトでは、セカンダリーサーバーはゾーンファイルを未修正のバイナリー形式で保存することに注意してください。

    • セカンダリーサーバーから転送されたゾーンのレコードをクエリーします。

      # dig +short @192.0.2.2 AAAA www.example.com
      2001:db8:1::30

      この例では、この手順で設定したセカンダリーサーバーが IP アドレス 192.0.2.2 でリッスンしていると想定しています。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る