SOAレコードについて

DNSにはさまざまなレコードがありますが、いまいちSOAレコードだけ理解できない……
というわけで整理してみました。

SOAレコードとは

DNSのゾーンファイルのリソースレコードタイプの1つ。
ゾーン情報を定義するために使用されるレコード。
また、セカンダリDNSサーバがゾーン情報をどう扱うか指定するためにも使用されます。

SOAレコードの例と各項目の説明

今回は例としてgoogle.comのSOAレコードを見てみます。

Linuxで以下のコマンドを実行。
dig google.com soa +multiline
取得したSOAレコードを以下に示します。

1行目:ホスト名(mname)&管理者メールアドレス(rname)
ゾーンファイルを持っているネームサーバ(あるいはプライマリDNSサーバ)のホスト名と、そのドメインを管理している管理者のメールアドレスです。
いずれもFQDNで記述します。
今回の例では、ns1.google.com がホスト名、
dns-admin.google.com が管理者メールアドレスです。
ちなみにメールアドレスの表記は「@」の代わりに、「.」を使用します(リソースレコード内では、@はドメイン自身を指すため)。

2行目:シリアル番号(serial)
ゾーンファイルが更新されたかどうか確認するために使用される値。
その目的ゆえに、ファイルが変更されるたびに更新されます。
値は更新前より必ず大きくなければなりません。
セカンダリDNSサーバは、更新間隔ごとにプライマリDNSサーバのシリアル番号を確認し、値が大きくなっていれば更新されたと判断し、ゾーン転送を行います。

3行目:問い合わせ間隔(refresh)
セカンダリDNSサーバが、プライマリDNSサーバに更新を問い合わせるまでの秒数。
今回の例では、 900 ÷ 60 = 15 分 でかっこ内に記載の通り。

4行目:再試行間隔(retry)
セカンダリDNSサーバがプライマリDNSサーバにアクセスできなかった場合、何秒後に再接続を試みるかを指定する値。
今回の例では、 900 ÷ 60 = 15 分 でかっこ内に記載の通り。

5行目:ゾーン情報を破棄するまでの時間(expire)
セカンダリDNSサーバがプライマリDNSサーバにアクセスできなかった場合、セカンダリDNSサーバで現在保持している情報を何秒後に破棄するかという値。
裏を返すと、何秒間セカンダリDNSサーバはそのゾーン情報を使用して良いかということを表す値でもあります。
今回の例では、 1800 ÷ 60 = 30 分 でかっこ内に記載の通り。

6行目:ネガティブキャッシュの保持時間(minimum)
ネガティブキャッシュとは、存在しないドメイン名に関するキャッシュのこと。
この項目はキャッシュサーバの挙動に関するもので、キャッシュサーバが、「そのドメインは存在しない」という情報を何秒保持するかという値です。
今回の例では、 60 ÷ 60 = 1 分 でかっこ内に記載の通り。

参考

@IT:DNS Tips:SOAレコードには何が記述されている?

・中島能和 「LPICレベル2 Version4.5対応」 翔泳社 2021年 初版 第4刷

コメント

タイトルとURLをコピーしました