Red Hat Training

A Red Hat training course is available for RHEL 8

4.6.2. BIND プライマリーサーバーでの正引きゾーンの設定

正引きゾーンは、名前を IP アドレスやその他の情報にマップします。たとえば、ドメイン example.com を担当している場合は、BIND で転送ゾーンを設定して、www.example.com などの名前を解決できます。

前提条件

  • BIND は、たとえばキャッシングネームサーバーとしてすでに設定されています。
  • named または named-chroot サービスが実行しています。

手順

  1. /etc/named.conf ファイルにゾーン定義を追加します。

    zone "example.com" {
        type master;
        file "example.com.zone";
        allow-query { any; };
        allow-transfer { none; };
    };

    これらの設定により、次が定義されます。

    • このサーバーは、example.com ゾーンのプライマリーサーバー (type master) です。
    • /var/named/example.com.zone ファイルはゾーンファイルです。この例のように相対パスを設定すると、このパスは、options ステートメントの directory に設定したディレクトリーからの相対パスになります。
    • どのホストもこのゾーンにクエリーを実行できます。または、IP 範囲または BIND アクセス制御リスト (ACL) のニックネームを指定して、アクセスを制限します。
    • どのホストもゾーンを転送できません。ゾーン転送を許可するのは、セカンダリーサーバーをセットアップする際に限られ、セカンダリーサーバーの IP アドレスに対してのみ許可します。
  2. /etc/named.conf ファイルの構文を確認します。

    # named-checkconf

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

  3. たとえば、次の内容で /var/named/example.com.zone ファイルを作成します。

    $TTL 8h
    @ IN SOA ns1.example.com. hostmaster.example.com. (
                              2022070601 ; serial number
                              1d         ; refresh period
                              3h         ; retry period
                              3d         ; expire time
                              3h )       ; minimum TTL
    
                      IN NS   ns1.example.com.
                      IN MX   10 mail.example.com.
    
    www               IN A    192.0.2.30
    www               IN AAAA 2001:db8:1::30
    ns1               IN A    192.0.2.1
    ns1               IN AAAA 2001:db8:1::1
    mail              IN A    192.0.2.20
    mail              IN AAAA 2001:db8:1::20

    このゾーンファイル:

    • リソースレコードの既定の有効期限 (TTL) 値を 8 時間に設定します。時間の h などの時間接尾辞がない場合、BIND は値を秒として解釈します。
    • ゾーンに関する詳細を含む、必要な SOA リソースレコードが含まれています。
    • このゾーンの権威 DNS サーバーとして ns1.example.com を設定します。ゾーンを機能させるには、少なくとも 1 つのネームサーバー (NS) レコードが必要です。ただし、RFC 1912 に準拠するには、少なくとも 2 つのネームサーバーが必要です。
    • example.com ドメインのメールエクスチェンジャー (MX) として mail.example.com を設定します。ホスト名の前の数値は、レコードの優先度です。値が小さいエントリーほど優先度が高くなります。
    • www.example.commail.example.com、および ns1.example.com の IPv4 アドレスおよび IPv6 アドレスを設定します。
  4. named グループだけがそれを読み取ることができるように、ゾーンファイルに安全なアクセス許可を設定します。

    # chown root:named /var/named/example.com.zone
    # chmod 640 /var/named/example.com.zone
  5. /var/named/example.com.zone ファイルの構文を確認します。

    # named-checkzone example.com /var/named/example.com.zone
    zone example.com/IN: loaded serial 2022070601
    OK
  6. BIND をリロードします。

    # systemctl reload named

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

検証

  • example.com ゾーンからさまざまなレコードをクエリーし、出力がゾーンファイルで設定したレコードと一致することを確認します。

    # dig +short @localhost AAAA www.example.com
    2001:db8:1::30
    
    # dig +short @localhost NS example.com
    ns1.example.com.
    
    # dig +short @localhost A ns1.example.com
    192.0.2.1

    この例では、BIND が同じホストで実行し、localhost インターフェイスでクエリーに応答することを前提としています。