パソコン実習室
DNSサーバ (bind-9.2) の設定
≪ previous next ≫

Y.ゾーンファイルの省略記法

 ゾーンファイルに記述する資源レコード名やドメイン名は FQDN が基本であるが、 すべてを記述せず省略した書式で表記することも可能である。
実際に運用されているネーム サーバーでは、省略形式で記述することが主流となっている。

▼ 資源レコード名はドメイン名と同等、あるいは [ホストのローカル名] + [ドメイン名] ともいえる。
   ドメイン名、ホスト名については、[ DNSの概要 U.2.ドメイン、ドメイン名、ホスト名 ] を参照。

省略の方法は以下の3通りある。

Y.1.起点名による補完

 構成ファイルの zone ステートメントで定義したドメイン名は、指定ゾーンファイル内において資源レコード名とドメイン名の起点名として認識される。
 起点名は、資源レコード名およびドメイン名の末尾がドット ( .) で終わっていない場合に、それを補完する目的で使われる。
※ 未完成な資源レコード名およびドメイン名の末尾に起点名を追加する。

例えば次のようなネットワークと DNS (named) 関連ファイルがあったとする。
ドメイン名project.ed.jp
ネーム サーバー ホスト (ドメイン) 名dns.project.ed.jp
DNS (named) 構成ファイルnamed.conf
正引きゾーンファイルproject.zone
逆引きゾーンファイルproject.rev
この時、資源レコード名は次のように省略できる。

Y.1.1.正引き A レコードの省略例

 構成ファイル (named.conf) の正引き用 zone ステートメントの記述は、概ね次のようになる。
zone "project.ed.jp" in {
        type master;
        file project.zone;
};
   ※ ゾーンファイル project.zone における起点名は、project.ed.jp. に定義される。

一方、ゾーンファイルに記述する A レコードは、正規な書式で表すと次のようになる。
( ネーム サーバーに関する部分 )
dns.project.ed.jp.     IN   A   10.2.3.234

この A レコードを、起点名を利用して記述すると次のように省略できる。
dns                     IN   A   10.2.3.234
   ※ 資源レコード名は、dns に起点名を付加した、dns.project.ed.jp. として認識される。


【 プロセスから見た省略記法 】
  named プロセスは、ゾーンファイルのレコードに書かれている資源レコード名およびドメイン名が FQDN ( 末尾が
 ドットの表記法 ) であることを前提とする。
  参照するレコードの資源レコード名およびドメイン名が FQDN ではない ( 末尾にドットが無い ) 場合、その名称の
 末尾に起点名を追加し、FQDN に補完してから処理を続行する。
 上記 A レコードの場合、省略された資源レコード名 [ dns ] の末尾に起点名 [ prject.ed.jp. ] を付加する補完が行わ
 れ、資源レコード名は [ dns.project.ne.jp. ] として再認識される。

【 レコード右辺のドメイン名 】
  NS レコードの右辺は、該当ネーム サーバーのドメイン名が記述される。 このドメイン名にも起点名を利用した
 省略が使える。
 例えば以下のような NS レコードは
 project.ed.jp.INNSdns.project.ed.jp.
 
次のように省略できる。
 project.ed.jp.INNSdns

※ ただしこの省略方法は、SOA レコードでは殆ど見かけない。 SOA レコードには使わないほうが賢明だろう。


Y.1.2.逆引き PTR レコードの省略例

 PTR レコードの場合も、正引き A レコードと同様で、構成ファイルの逆引き用 zone ステートメントの記述が
zone "3.2.10.in-addr.arpa" in {
        type master;
        file project.rev;
};
   ※ ゾーンファイル project.rev における起点名は、3.2.10.in-addr.arpa. に定義される。

となっていたとすれば、ゾーンファイルの PTR レコードは次のように省略可能である。
234.3.2.10.in-addr.arpa.   IN   PTR   dns.project.ed.jp.
 [ 省略 ]
234                        IN   PTR   dns.project.ed.jp.
   ※ 資源レコード名は、234 に起点名を付加した、234.3.2.10.in-addr.arpa. として認識される。


Y.1.3.FQDN 時の注意

 資源レコード名に FQDN を使うときは、最後のドットを忘れないように注意が必要である。  もちろん、省略することもできない。
最後のドットを忘れると、次のようなレコードは
dns.project.ed.jp     IN   A   10.2.3.234

資源レコード名が補完されることで
 dns.project.ed.jp.project.ed.jp.
 と解釈されてしまい、名前解決ができなくなる。


Y.2.@ 記号による省略法

 資源レコード名が起点名と同じである場合には、@ 記号で代用することができる。
主にゾーンファイルの SOA レコードで使われる。 次のようになる。
project.ed.jp.  IN SOA dns.project.ed.jp. master.project.ed.jp. (
1234; シリアル番号
・・・・;
1h ); ネガティブ キャッシュ TTL
 [ @ で代用 ]
@               IN SOA dns.project.ed.jp. master.project.ed.jp. (
1234; シリアル番号
・・・・;
1h ); ネガティブ キャッシュ TTL
   ※ @ の位置が起点名で置き換えられ、資源レコード名は project.ed.jp. として認識される。


Y.3.空白の資源レコード名

 資源レコード名が空白またはタブである場合には、直前の資源レコード名が適用される。
省略例を以下に示す。 起点名は project.ed.jp. とする。
@       IN SOA dns.project.ed.jp. master.project.ed.jp. (
;@
1234; シリアル番号
・・・・;
1h ); ネガティブ キャッシュ TTL
        IN NS dns ;A
        IN A  10.2.3.234 ;B
dns     IN A  10.2.3.234 ;C
www     IN A  10.2.3.99 ;D
        IN A  10.2.3.100 ;E

それぞれの資源レコード名等は次のように適用される。
  • @ @ 記号による代用
      @ の位置は起点名で置き換えられ、資源レコード名は project.ed.jp. に補完される。

  • A 空白の資源レコード名 & 起点名を利用する省略
      直前の資源レコード名 (補完後の SOA 資源レコード名 project.ed.jp.) が適用される。
      右辺のネーム サーバー名は、起点名を追加した dns.project.ed.jp. が適用される。

  • B 空白の資源レコード名
      直前の資源レコード名 (SOA から引き継いだ project.ed.jp.) が適用される。

  • C 起点名を利用した省略
      dns に起点名を追加した資源レコード名 ( dns.project.ed.jp. ) が適用される。

  • D 起点名を利用した省略
      www に起点名を追加した資源レコード名 ( www.project.ed.jp. ) が適用される。

  • E 空白の資源レコード名
      直前の資源レコード名 (起点名で補完された www.project.ed.jp.) が適用される。
       ※ 1つの名前に対して2つのアドレス レコードが存在する事もある。



≪ previous [[ DNSサーバ - bind-9.2 の設定 ]] next ≫