正引き、逆引き

BIND の設定は2種類、/etc/named.conf ファイルとDNSデータベースであるゾーンファイル
※ゾーンファイルの約束事として、FQDN の末尾には必ず「.」を記述することに注意
 もし「.」がない場合、末尾にドメイン名が自動的に補完される

そもそも FQDN (Fully Qualified Domain Name) とはなんぞ

FQDN とは、完全装飾ドメイン名。「www.example.com」のようにホスト名とドメイン名を組み合わせたもの。ホスト名はコンピューターにつけられた固有名。ドメイン名はホストが所属しているネットワーク上の区域を表す。

正引きゾーンファイル

ホスト名からIPアドレスを調べるためのデータベースファイル

$TTL

他のDNSサーバにキャッシュとして保存される期間を秒単位で指定
(86,400 = 1日), 1D(1日), 24H(24時間), 1440M(1440分)と言った記述も可能

SOAレコード

ゾーンの権威情報を記述

ドメイン名 IN SOA DNSサーバ名 管理者のメールアドレス

DNSサーバ名は FQDN で記述する。メールアドレスの「@」は「.」に置き換える

Serial

設定するゾーンファイルのシリアル値を記述する
他のDNSサーバはシリアル値が増加していることで、更新されたことを知る
基本的には更新年月日+二桁の数字で記述、1からの連番でも可能らしい

Refresh

スレーブDNSサーバがマスターDNSサーバに対して更新を試みる時間を記述する

Retry

他のDNSサーバから、設定するDNSサーバに対して更新を試みて失敗したとき、再試行するまでの待ち時間を記述する

Expire

他のDNSサーバから、設定するDNSサーバに接続できなかったとき、キャッシュを削除する期限を指定する

Negative TTL

他のDNSサーバから、設定するDNSサーバに問い合わせがあり、その結果「該当ホストなし」の場合、それをキャッシュさせる時間を記述

NSレコード

ゾーンのDNSサーバを記述する。スレーブDNSサーバがある場合、1行ごとに記述する。CNAMEレコードで定義した別名を使用してはならない

MXレコード

ゾーン内のメールサーバを記述する。ホスト名の前に優先度(ぷリファレンス値)を記述しなければならない。数値が小さいほど優先度が高くなる。CNAMEレコードで定義した別名を使用してはならない。

Aレコード

ホスト名とIPアドレスとの対応を記述

CNAMEレコード

ホストの別名を定義できる。別名を左側に、Aレコードで定義されているホスト名を右に記述する

逆引きゾーンファイル

IPアドレスからホスト名を調べるためのデータベースファイル

PTRレコード

Aレコードの逆で、IPアドレスとホスト名との対応を記述する。
DNSでの逆引き時、省略せずにIPアドレスを記述する場合

第4オクテット.第3オクテット.第2オクテット.第1オクテット.in-addr.arpa.
# IPアドレスが 192.168.0.1 の場合
1.0.168.192.in-addr.arpa.

ドメイン名の省略

ゾーンファイルでは、ドメイン名を省略することができる

  • 「@」

ゾーンファイル内で「@」を使った場合、 /etc/named.conf 内の「zone "~"」で定義されている部分が補完される。

zone "ここ" IN {
}

ゾーンファイル内での別の設定の仕方

$ORIGIN example.com.
  • 省略した場合、前のレコードに記述された内容が使われる
  • ホスト名の末尾に「.」を記述しない場合、ドメイン名が補完される
DNSラウンドロビン

1つのホストに複数のAレコードを設定できる。ホスト名が同じ場合、問い合わせが行われるたび順繰りにIPアドレスが返される。これをDNSラウンドロビンと呼ぶ。アクセス数の多いサーバに対する不可分散として有用らしい