2017/05/23(火)権威DNS ― SOA レコードの記述方法
2017/10/12 22:15
SOA とは Start Of Authority を略したもので、
よく「権威の開始」を意味すると説明されます。
このあたりが、日本語での感覚と英語圏での感覚が合わなくてピンとこないのですが、要するにここでいう「権威の開始」というのは、「ゾーン情報を管理する権限を持っているこ とを明示する」ということになります。
SOAレコードは、BIND の設定ファイルに従うと、下記のような書式になります:
@ IN SOA ns.example.jp. postmaster.example.jp. ( 17052301 ; Serial-No. 3600 ; Refresh 900 ; Retry 604800 ; Expire 1800 ; Minimum )以下、「マスターDNS」「スレーブDNS」「権威サーバ」等の用語は理解しているものとして記述していきます。これらの意味は1つ前の記事に全て記してあります。
ひとつひとつのパラメータを理解しているようでよく解かっていないのではないかなと。
SOA レコードは実に7つのパラメータで成り立っています。
個々に示してみます:
MNAME [ns.example.jp.]
・マスターDNSのホスト名。
・「完全修飾」という書式で通常、最後にもドットを付ける。
・CNAME レコードのホスト名は指定不可。IPアドレス自体も指定不可。
RNAME [postmaster.example.jp.]
・連絡先の電子メールアドレス。
・「完全修飾」という書式で通常、最後にもドットを付ける。
・DNSの動作上使われることはないが、管理者同士の連絡先として使われることがある。
・記述の際、@ マークは . に置き換える。
SERIAL [17052301]
・ゾーンシリアル番号。符号なし 32bit長整数で保持される。
・ゾーン内容を更新したら、必ずこの番号を+1以上更新する。
・0以上ならどのような値でも構わないのだが、更新日(作成日)を示す YYYYMMDDnn 或いは YYMMDDnn の形式が多い。
・4294967295 の状態で+1すると 0 になるが、こういう場合の正常な動作は基本的に考慮されていないことに留意。
→ この場合は、スレーブDNSを一旦停止し、該当ゾーンを含む保持データそのものを削除してから、スレーブDNSを再起動するしかありません。 SERIAL を前回より小さい番号にした場合も同様の対処です。
○ 以下3つはスレーブDNSの挙動を指定:
REFRESH [3600] 〔単位:秒〕
・当該ゾーン情報をリフレッシュする間隔。
・スレーブDNSは、マスターDNSからのゾーン転送処理を受け入れたあと、ここで指定した時間経過すると、マスターDNSへゾーン情報更新問合わせを行い、シリアル番号 が更新されていたら適宜更新処理を行う挙動になる。
RETRY [900] 〔単位:秒〕
・リフレッシュがマスターDNSや回線障害など原因で上手く行かなかった場合、リトライを試みる間隔。
・従って、REFRESH で指定する値よりも小さな値でないと意味がなく、通常は、REFRESH の整数分の1の値とする。(この例では4分の1)
EXPIRE [604800] 〔単位:秒〕
・ゾーン情報のリフレッシュができない状態が続いた場合、スレーブDNSにて、ゾーン情報を最後にリフレッシュが成功してから保持を可能とする時間を示す。
・従って、REFRESH の整数倍で無いと意味がなく、2週間から4週間が適切とされている。(この例では7日=1週間)
○最後の1つはキャッシュDNSの挙動を指定:
MINIMAM [1800] 〔単位:秒〕
・このパラメータは Negative cache TTL とも呼ばれる。
・各レコードのデフォルトキャッシュ保持時間を指定する。
・値が小さいほど臨機応変に権威サーバにおける保持情報に追従できるが、DNSの負荷が上がるため、60 ~ 3600 の間で適宜指定されるのが実態である。
・また、レコードに存在しない情報の問い合わせを受けた場合、'NXDOMAIN' (情報なし)という回答をするが、キャッシュDNSは「情報なし」もここで指定した時間だけ保持する挙動になる。
以上、参考にどうぞ。
ダイナミックDNSを運用している場合、MINIMAM は 60 を指定するのが通例の設定のようです。ホストの増減が多い環境では MINIMAM は 600、比較的変化が少ない環境では 1800 や 3600 という設定が多いようです。