DNSにはさまざまなレコードがありますが、いまいちSOAレコードだけ理解できない……
というわけで整理してみました。
SOAレコードとは
DNSのゾーンファイルのリソースレコードタイプの1つ。
ゾーン情報を定義するために使用されるレコード。
また、セカンダリDNSサーバがゾーン情報をどう扱うか指定するためにも使用されます。
SOAレコードの例と各項目の説明
今回は例としてgoogle.comのSOAレコードを見てみます。
Linuxで以下のコマンドを実行。dig google.com soa +multiline
取得したSOAレコードを以下に示します。
1 2 3 4 5 6 7 8 |
google.com. 27 IN SOA ns1.google.com. dns-admin.google.com. ( 508865432 ; serial 900 ; refresh (15 minutes) 900 ; retry (15 minutes) 1800 ; expire (30 minutes) 60 ; minimum (1 minute) ) |
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 分 でかっこ内に記載の通り。
参考
・中島能和 「LPICレベル2 Version4.5対応」 翔泳社 2021年 初版 第4刷
コメント