DNSのSOAレコードとは?
ゾーン転送による負荷分散
2023年1月6日
著者: Ahona Rudra
翻訳: 高峯 涼夏
この記事はPowerDMARCのブログ記事 What is a DNS SOA Record? の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
アクティブなWebサイトの正確な数は変化し続けていますが、平均すると1分間に175の新しいWebサイトが作成されています。
つまり、1日に252,000もの新しいWebサイトが誕生しているということです。
言うまでもなく、ユーザはWebサイトのURLを入力しなければ、目的のページにたどり着けません。
ここから、DNSのSOAレコードの役割が始まるのです。
DNSレコードとは何か、その種類については、以前すでに説明しました。
この記事では、DNSのSOAレコードとは何かを知ることができます。
その重要性、構造、手順などを知るために、最後まで読み進めてください。
DNSのSOAレコードとは?
SOAレコードまたはStart of Authorityレコードは、管理者のメールアドレス、サーバ更新のチェック間隔、ドメインの更新履歴など、重要な情報を含むDNSレコードの一種です。
各DNSにSOAレコードを設定することは、IETF(Internet and Engineering Task Force)の標準に沿うために重要です。
DNSのSOAレコードは、プライマリサーバからセカンダリサーバに送信する際に、ゾーン転送を成功させるために必要です。
一般的なDNSのSOAレコードには何が含まれるか?
標準的なDNSのSOAレコードは、次のような内容を含んでいます。
- ドメインのプライマリネームサーバ
- ドメインの責任者の連絡先
- すべての更新を記録するためのタイムスタンプ
- ゾーン更新の残り秒数
- 失敗した更新を破棄するための残り秒数
- ゾーンに権限がないとラベルを付けるまでの上限秒数
- (失敗などの)ネガティブな結果のTTL(Time-To-Live)。TTLはパケットまたはデータが生存する時間のこと
なぜSOAレコードが必要なのか?
DNS SOAレコードは、お客様のゾーンに関する詳細を保持します。
DNSネームサーバは通常複数台で構成され、データベースは内部ゾーン転送を使用して同期されます。
SOAレコードのないゾーンは、IETFのプロトコルに準拠しておらず、ゾーン転送は不可能です。
したがって、ITを駆使する企業経営者は、DNSのSOAレコードとは何かを知っておく必要があります。
DNSにおけるゾーン転送とは?
SOAレコードの仕組みを理解するためには、DNSにおけるゾーン転送とは何かを知っておく必要があります。
ゾーン転送とは、プライマリーサーバ上の任意のゾーンの内容を、DNSサーバ間で複製するプロセスです。
これにより、複数のサーバで情報を編集する必要がなくなります。
つまり、メインサーバで情報を編集し、他のサーバにコピーすることで、時間と手間を省くことができます。
SOAレコードはどのように機能するのか?
DNSは、階層構造に従って動作する分散型システムです。
したがって、ネームサーバは、すべてのゾーンファイルを管理することで、特定のゾーンに特化したサーバに対して情報を提供します。
これらは、すべてのDNSレコードに関する詳細を含む単純なテキストファイルです。
これらのレコードは、正しいサーバが責任を負うことを要求されたか否かなど、問題の数に関する情報を提示します。
DNSのSOAレコードは、サーバ群の要求をデバイス間で分散させるために必要です。
これにより、特定のサーバに負荷がかかりすぎてシステム障害が発生することを防ぐことができます。
ゾーン転送は、関係するすべてのサーバでゾーンファイルが有効であるために、定期的に実行されなければなりません。
しかし、スレーブ(階層の下位に位置するサーバ)はマスターサーバ(特定のドメインで権威あるマップを維持する単一ホスト)と同時に行われる必要があります。
これは、ゾーン転送がどのように実行され、規制されるべきかを指示するものです。
このように、DNS SOAレコードはあらゆる種類の情報を受け取ります。
SOAレコードの構造
DNSのSOAレコードが何であるかが分かったところで、その構造について少し説明します。
すでに述べたように、DNS SOAレコードは、特定のDNSゾーンまたはドメインに関連する重要な情報を持っています。
このレコードは、サーバやブラウザが容易に理解できるように、整理された方法で並んでいます。
以下は、標準的なSOAレコードの構成に含まれるものです。
serial(シリアルナンバー)
これはゾーンファイルの改訂番号であり、ファイルが変更されるたびに変化します。
この値は、行われた変更がすべてのDNSサーバに行き渡るように設定されるべきです。
ほとんどのシステムで、この処理は自動的に行われます。
primary name server(MNAME・プライマリネームサーバ)
その名の通り、ゾーンのプライマリDNSサーバです。
無効なプライマリネームサーバを入力すると、デフォルトの状態に戻ります。
responsible mail addr(RNAME・DNS管理者メールアドレス)
特定のDNSやゾーンファイルを管理する責任者のメールアドレスです。
間違ったメールアドレスを入力すると、デフォルトのメールアドレスに戻ります。
refresh(更新間隔)
更新間隔は、セカンダリサーバがプライマリDNSのSOAレコードに更新を問い合わせるまでの時間(秒)です。
更新間隔は、1200秒から43,200秒の間で変化します。
retry(再試行率)
再試行率は、失敗したゾーン転送を再試行する前にセカンダリサーバが待機する時間(秒)です。
一般に、更新間隔は再試行率よりも大きく、デフォルトは1,800秒です。
しかし、180秒から2,419,200秒の間で変化させることができます。
expire(有効期限)
これは、セカンダリサーバがゾーン転送を完了しようとする時間(秒)です。
ゾーン転送が完了する前にこの時間が経過すると、そのゾーンファイルも期限切れになります。
セカンダリサーバはデータが古いと認識し、問い合わせに応答しなくなります。
デフォルトの有効期限は1,209,600秒です。
default TTL(デフォルトTTL)
TTLとはTime-to-Liveの略で、パケットやデータが生存している期間のことです。
他のサーバはこの値を使って、キャッシュにデータを保存しておく期間を知ることができます。
デフォルト値は、3,600秒または1時間です。
SOAレコードの確認
特別なツールやWebサービスを使用して、WebサイトのDNS SOAレコードを確認することができます。
(訳注:例えば、PowerDMARCのPowerToolboxからもチェック可能です)
関連するドメインを入力するだけで、次のページに「A」レコードが表示されます。
該当するフィールドで「SOA」を選択すると、レコードを確認することができます。
パブリックDNSは、DNSとのさらなる効率的な接続を確立することも可能です。
しかし、限られたリソースのみがこれを提供できます。
DNSで受信した情報は発信元から移動し、そしてセキュリティプロトコルは理論上コントロールできません。
このタイプのSOAレコードチェックのリクエストは、「質問と回答」形式で行われます。
マスターサーバ、管理者のメールアドレス、更新間隔などを求めることができます。
PowerDMARCに登録すると、SOAレコード検索ツールを使ってSOAレコードを確認することができます。
このプロセスは瞬時にして正確であり、結果はレコードのエラーをハイライトするため、問題のトラブルシューティングをより迅速に行うことができます。
まとめ
DNS SOAレコードは、管理者のメールアドレス、サーバ更新のチェック間隔、ドメインの更新履歴などの機密情報を含んでいます。
これらのレコードは、ゾーン転送(すべてのセカンダリDNSサーバ間で任意のゾーンのコンテンツをコピーする処理)を支援します。
これは、手動でコンテンツを複製する時間と労力を省きます。
SOAレコードは、混雑や故障を避けるために、さまざまなサーバ間で要求を分散させます。
情報テクノロジー主導のビジネスは、SPFおよびDKIMプロトコルに基づいて動作するDMARCポリシーに準拠する必要があります。
DMARCレコードをDNSに公開し、受信者のメールボックスに、設定されたポリシーに従ってメールを処理する方法を指示する必要があります。
PowerDMARCを使用すると、DMARCに関連するいくつかの問題について理解することができます。
まずは無料トライアルをお試しください。