DNS TXTレコードとは?

TXTレコードにより、ドメイン管理者はDNSサーバーにメモを残すことができます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • TXTレコードの目的を理解する
  • TXTレコードの主な用途を説明する
  • TXTレコードがメールのスパム防止にどのように役立つかを説明する

記事のリンクをコピーする

DNS TXTレコードとは?

DNSの「テキスト」(TXT)レコードは、ドメインの管理者が、Domain Name System(DNS)にテキストを登録するためのものです。テキストは、引用符で囲んだ1つまたは複数の文字列の形式で格納されます。TXTレコードは元々、人間が読めるメモのための場所として作られました。しかし現在では、機械で処理するためのデータをTXTレコードに登録することも可能です。1つのドメインが複数のTXTレコードを持つことができます。

TXTレコードの例:

example.com レコードのタイプ: 値: TTL
@ TXT 「これは素晴らしいドメインです!
間違いなくスパムではありません。」
32600

現在、DNSのTXTレコードの最も重要な2つの用途は、電子メールのスパム防止とドメイン所有者の確認ですが、元々TXTレコードはこれらの用途のために設計されたものではありません。

サインアップ
すべてのCloudflareプランに含まれる無料SSL

TXTレコードにはどのようなデータが入るか?

元のRFCには、TXTレコードの「値」フィールドに「テキスト形式の文字列」が入ることだけが示されています。これには、管理者が自分のドメインに関連付ける任意のテキストを入力できます。

DNSサーバーの多くは、TXTレコードの大きさや保存できる文字数に制限を設けているため、管理者はTXTレコードに大量のデータを使用することはできません。

文字列は255バイトに制限されていますが、アプリケーションは文字列の違いを気にせず、複数の文字列を単一の文字列として扱い、単に文字列をつなぎ合わせます。

TXTレコードにデータを格納するための「正式な」フォーマットは?

1993年、インターネット技術特別調査委員会(IETF)は、TXTレコードの「値」フィールドに属性とそれに対応する値を格納するためのフォーマットを定義しました。このフォーマットは、属性と値を引用符(")で囲み、等号(=)で区切った、以下のようなものでした。

"attribute=value"

RFC 1464(このフォーマットを定義した1993年の文書)には、以下のような例が書かれています。

host.widgets.com レコードのタイプ: 値:
@ TXT "printer=lpr5"

sam.widgets.com レコードのタイプ: 値:
@ TXT "好きな飲み物=オレンジジュース"

この定義は実験的なものであり、実際にはあまり採用されていません。DNS管理者の中には、独自のフォーマットでTXTレコードを利用している人もいます。TXTレコードは、後述する特定の用途のために、特定の方法でフォーマットされることもあります。例えば、DMARCポリシーを適用する場合、規格化された方法でフォーマットされなければなりません。

ただし、TXTレコードは依然としてその内容を引用符 ("") で囲んで格納します。

レポート
DNSインフラストラクチャの保護

TXTレコードはスパムメールの防止にどのように役立つか?

スパマーは、メールの送信元ドメインを偽装したり、偽造したりすることがよくあります。TXTレコードの使用は、数あるさまざまな電子メール認証方式の主要素の一つで、メッセージが信頼できる送信元からのものであるかどうかをメールサーバーが判断するのに役立ちます。

一般的な電子メール認証方式には、Domainkeys Identified Mail(DKIM)、Sender Policy Framework(SPF)、Domain-based Message Authentication, Reporting & Conformance(DMARC)などがあります。ドメイン管理者は、これらのレコードを設定することで、スパマーが自分のドメインになりすますことをより困難にし、その試みを追跡することができます。

SPFレコード:SPF TXTレコードには、ドメインからメールメッセージを送信することを許可されているすべてのサーバーを列挙します。

DKIMレコード:DKIMは、公開鍵と秘密鍵のペアを使用して各電子メールにデジタル署名することで機能します。これにより、電子メールの送信元が実際にそのドメインであることを確認することができます。公開鍵は、ドメインに関連付けられたTXTレコードとしてホストされます。(公開鍵暗号化方式の詳細についてご覧ください)。

DMARCレコード:DMARC TXTレコードは、ドメインのSPFおよびDKIMポリシーを参照します。タイトルは _dmarc.example.com. として、「example.com」の部分を実際のドメイン名に置き換えて保存します。レコードの「値」は、ドメインのDMARCポリシーです(これについての作成のガイドはこちらをご覧ください )。

TXTレコードはドメインの所有権の確認にどのように役立つか?

当初、ドメイン所有者の検証はTXTレコードの機能ではありませんでしたが、このアプローチは一部のウェブマスターツールやクラウドプロバイダーで採用されています。

管理者は、特定の情報を含んだ新しいTXTレコードをアップロードするか、現在のTXTレコードを編集することで、そのドメインの管理者であることを証明することができます。ツールやクラウドプロバイダーは、そのTXTレコードをチェックして要求通りに変更されていることを確認できます。これは、送られてきたリンクをユーザーが開いてクリックすることで電子メールアドレスを確認し、そのアドレスの所有者であることを証明する行為と似ています。

DNSレコードの種類についてはこちらをご覧ください。