2.3. BIND プライマリーサーバーでの逆引きゾーンの設定
IP アドレスを名前にマッピングするには、BIND プライマリーサーバーに逆引きゾーンを設定できます。たとえば、192.0.2.0/24 という IP アドレス範囲がある場合、BIND で逆引きゾーンを設定することで、この範囲の IP アドレスをホスト名に解決できます。
特定のネットワークの classful IP アドレスに対して逆引きゾーンを作成する場合は、ゾーン名も同様に命名してください。たとえば、クラス C ネットワーク 192.0.2.0/24 の場合は、ゾーンの名前が 2.0.192.in-addr.arpa です。192.0.2.0/28 など、異なるネットワークサイズの逆引きゾーンを作成する場合は、ゾーンの名前が 28-2.0.192.in-addr.arpa です。
前提条件
- BIND をキャッシュネームサーバーとして設定済みである。
-
namedまたはnamed-chrootサービスが実行されている。 - 管理者権限がある。
手順
/etc/named.confファイルにゾーン定義を追加します。zone "2.0.192.in-addr.arpa" { type master; file "2.0.192.in-addr.arpa.zone"; allow-query { any; }; allow-transfer { none; }; };これらの設定により、次が定義されます。
-
このサーバーは、逆引きゾーン
2.0.192.in-addr.arpaのプライマリーサーバー (type master) です。 -
/var/named/2.0.192.in-addr.arpa.zoneファイルはゾーンファイルです。この例のように相対パスを設定すると、このパスは、optionsステートメントのdirectoryに設定したディレクトリーからの相対パスになります。 - どのホストもこのゾーンにクエリーを実行できます。ただし、IP アドレス範囲や BIND アクセス制御リスト (ACL) のニックネームを指定することで、アクセスを制限することができます。
- どのホストもゾーンを転送できません。ゾーン転送を許可するのは、セカンダリーサーバーをセットアップする際に限られ、セカンダリーサーバーの IP アドレスに対してのみ許可します。
-
このサーバーは、逆引きゾーン
/etc/named.confファイルの構文を確認します。# named-checkconfコマンドが出力を表示しない場合は、構文に間違いがありません。
たとえば、次の内容で
/var/named/2.0.192.in-addr.arpa.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. 1 IN PTR ns1.example.com. 30 IN PTR www.example.com.このゾーンファイル:
-
リソースレコードのデフォルトの有効期限 (TTL) 値を 8 時間に設定します。時間の
hなどの時間接尾辞がない場合、BIND は値を秒として解釈します。 - 必要な Start of Authority (SOA) リソースレコードが含まれており、ゾーンに関する詳細が記載されています。
-
ns1.example.comをこの逆引きゾーンの権威 DNS サーバーとして設定します。ゾーンを機能させるには、少なくとも 1 つのネームサーバー (NS) レコードが必要です。ただし、RFC 1912 に準拠するには、少なくとも 2 つのネームサーバーが必要です。 -
192.0.2.1および192.0.2.30アドレスのポインター (PTR) レコードを設定します。
-
リソースレコードのデフォルトの有効期限 (TTL) 値を 8 時間に設定します。時間の
namedグループのみがそれを読み取ることができるように、ゾーンファイルに安全なアクセス許可を設定します。# chown root:named /var/named/2.0.192.in-addr.arpa.zone # chmod 640 /var/named/2.0.192.in-addr.arpa.zone/var/named/2.0.192.in-addr.arpa.zoneファイルの構文を確認します。# named-checkzone 2.0.192.in-addr.arpa /var/named/2.0.192.in-addr.arpa.zonezone __2.0.192.in-addr.arpa/IN__: loaded serial __2022070601__ OKBIND をリロードします。
# systemctl reload namedchange-root 環境で BIND を実行する場合は、
systemctl reload named-chrootコマンドを使用してサービスをリロードします。
検証
逆引きゾーンからさまざまなレコードをクエリーし、出力がゾーンファイルで設定したレコードと一致することを確認します。
# dig +short @localhost -x 192.0.2.1ns1.example.com# dig +short @localhost -x 192.0.2.30www.example.comこの例では、BIND が同じホスト上で稼働しており、
localhostインターフェイスでクエリーに応答することを前提としています。