next up previous contents
Next: 5.3.1.2 逆引きのゾーン情報 Up: 5.3.1 conf ファイル (BIND8,9) Previous: 5.3.1 conf ファイル (BIND8,9)

5.3.1.1 ゾーン情報

s01.wakhok.ac.jp ドメインのゾーン情報ファイルの例を掲げる。

; s01.zone の例
$TTL  86400
@    IN    SOA  dns.s01.wakhok.ac.jp. admin.s01.wakhok.ac.jp.  (
     2004080201    ;  Serial
     10800         ;  Refresh after 3 hours
     3600          ;  Retry after 1 hours
     604800        ;  Expire after 1week
     86400 )       ;  Minimum TTL of 1day
             IN    NS         dns.s01.wakhok.ac.jp.
localhost    IN    A          127.0.0.1
localhost    IN    AAAA       ::1
dns          IN    A          10.16.129.1
dns          IN    AAAA       2001:2f8:43:1000::0153
s01          IN    AAAA       2001:2f8:43:1000:290:27ff:feba:6fc9
www          IN    AAAA       2001:2f8:43:1000::0180

ゾーンの情報ファイルのれぞれのエントリは DNS資源レコードと呼ばれる。資源レコード(RR)には本来順序はないが、 通常 SOAレコード、NSレコード、その他のホストに関するレコードの 順に書かれる(これは省略などの関係で守った方が良いであろう)。

各レコードは空白(スペース、タブ)によってフィールドに分けられる。 情報ファイルにおいては、フィールドの位置は固定であり、従って、 行頭に空白があるかないか(第一フィールドを省略したと見なす)は 決定的に重要である点に注意しなければならない。

コメントは;で始まり、行末までである。

各レコードは次のようなフィールドからなるが、第一フィールドが $ で始まるときはディレクティブと呼ぶ指令で、資源レコード とは異なる。

名前 . @ ドメイン名 空白
TTL 数値、空白
クラス IN
資源レコードのタイプ SOA NS A PTR CNAME MX など
レコードの情報  

更に、レコードは行単位で記述されるが、行末が ( で終っている場合には 続く行は継続行とみなされ、 ) が出現するまで継続される。

  1. $TTL
    全てのレコードはTTL(time-to-live)を持ち得るが、明示的に指定されて いない場合は、この $TTL で指定した値がデフォルトとして 利用される。$TTL文がない場合には、SOAの最小値が使用されるが、 警告がでるようになる。なお、ここで言う TTL は、全てのネームサーバ で該当レコードがどれだけの時間キャッシュしておいて良いかを示すもの で、この値が短ければ、自サイトのDNSレコードの変更は素早く他のサイト に反映されるが当然CPU資源はその分消費される。

  2. SOAレコード
    SOAはStart Of Authority の略で、そのゾーンに関するもっとも信頼出来る 情報源であることを示し、必ず一つのエントリが各ゾーンファイルに対して 必要である。例のSOAレコードでは、( )で囲むことによって、 レコードを複数行に拡張しているが、何もなければ通常一行が一レコード に対応する。第一フィールドの @はカレントオリジン(起点名)の省略で、 例では conf ファイルで指定したこのゾーンのドメイン名 s01.wakhok.ac.jp. のことである。第4フィールドはこのデータを作成したホストマシン名であり、 第5フィールドは最初の .@ に変更すると、通常 DNSマスターのメイルアドレスとなる。ここまで、FQDNが絶対名で(つまり、末尾に .がついた形で)書かれていることに気づいただろう。DNSでは、 FQDNで書く場合には必ず絶対名で書かねばならないからであり、理由は後述 する。

    括弧 (( ))で囲まれた値のうち、Serialはnamedが読み込み記憶する データに対して付けられるシリアル番号であり、もし、ゾーンファイルを修正して それらを実行中のnamedに反映させたい場合には必ずシリアルを変更した上で、 kill -HUPをnamedに送らなければならない。 シリアルが変更されていない 場合には、そのゾーン情報には変更がないと見なされ、データの再初期化が 行われないからである。また、シリアルは整数として処理されており、 修正を行った場合には以前よりも大きな値になるようにしなければならない。 同時に、桁は10桁までしか使えないので注意しよう。 その他の値は、ここでは詳しくは触れない。

  3. NSレコード
    NSレコードはネームサーバに関する情報である。この例では、第一フィールドが 空白であることに注意して欲しい。これは省略記法で、空白である場合には、 直前のレコードの名前が適用される。今の場合には、直前のレコードは、SOA レコードであるので、@ (つまり起点名 - s01.wakhok.ac.jp.)が使われる。 第4フィールドはネームサーバのFQDNである(ここでも絶対名が使われている 点に注意)。この名前は後のホスト情報のレコードで解決されている。 また、ネームサーバは複数を指定することができ、例のように順に列挙すれば その順にアクセスされる。

  4. Aレコード
    AレコードはIPv4のホスト情報に関係するものであり、実際のIPv4アドレスはここに記述 する。ここで、第一フィールドに単なる一語のホスト名を使っている点に注意 しよう。ゾーン情報では絶対名(末尾に.がつかない)を 使ってない場合には、自動的にカレントオリジン(起点名)が自動的に 補われるようになっている。先に、絶対名を強調したのはこのためであった。 実際に、もしここで第一フィールドに dns.s01.wakhok.ac.jpと 書いてしまうと、 dns.s01.wakhok.ac.jp.s01.wakhok.ac.jp.と解釈されるのである。 また、あるFQDNな名前に対してAレコードが複数あってはならないが、Aレコードと 次のAAAAレコードは区別が違うので、これには反しない。

  5. AAAAレコード
    AレコードはIPv6のホスト情報に関係するものであり、IPv6アドレスを 間違えないように記述しなければならない。省略記法も許される。 通常は、ifconfig などの出力結果をカット&ペーストしよう。(普通、 X-Window では左ボタンを押したまま範囲を指定し、ペーストしたい場所で 中ボタンを押すとカット&ペーストが出来る。)

  6. CNAMEレコード
    別名を定義するレコードである。第4フィールドのホスト名はAレコードや AAAAで解決できなければならない。注意するのは、CNAME ではAレコードと AAAAレコードの区別がない点にある。



Noriyo Kanayama