ネットワーク

A・MX・TXTレコードの違いを初心者向けに解説

DNSで使われるA・MX・TXTレコードについて、Webサイトやメール設定における役割、記述内容、確認時の違いを初心者向けに整理します。

この記事でわかること

  • Aレコードはドメイン名をIPv4アドレスに対応付ける。
  • MXレコードはメールの配送先と優先順位を示す。
  • TXTレコードは任意の文字列を登録し、ドメイン所有確認やメール認証などに利用される。
  • レコードの種類だけでなく、名前・値・TTL・優先度などの項目も確認する。

DNSレコードとは何か

DNSは、ドメイン名に対応する情報を管理し、利用者やサービスが必要な宛先を参照できるようにする仕組みです。DNSレコードは、名前に対してIPアドレス、メールサーバー名、文字列などを登録する単位です。たとえば、Webサイトへのアクセス先とメールの配送先は別の情報なので、同じドメインでもAレコードとMXレコードを使い分けます。レコードは種類、名前、TTL、種類ごとの値などで構成されます。

A・MX・TXTレコードの違いを一覧で比較する

レコード種別主な用途値の例利用される場面優先度
Aホスト名をIPv4アドレスへ対応付ける192.0.2.10Webサイトやサーバーへの接続なし
MXメールの配送先を指定するmail.example.invalid.メール受信設定あり。数値が小さい方を優先
TXT文字列を登録するv=spf1 …所有権確認、SPF、DKIMなどなし
A・MX・TXTレコードの主な違い

A・MX・TXTは代替関係ではありません。Webサイト、メール配送、ドメイン認証など、目的に応じて同じドメインへ併用します。DNSの標準仕様では、Aはホストアドレス、MXはメール交換先、TXTはテキスト文字列として定義されています。RFC 1035

Aレコード:ドメイン名をIPv4アドレスへ対応付ける

Aレコードは、ドメイン名やサブドメインをIPv4アドレスへ対応付けます。Webサーバーの接続先を指定する場合などに利用します。設定値はDNSサービスや利用環境に合わせて指定してください。

TEXT
名前: www
種類: A
値: 192.0.2.10
TTL: 300

# 期待される意味:
# www.<対象ドメイン> を、例示用のIPv4アドレスへ対応付ける。

IPv6アドレスを登録する場合は、AレコードではなくAAAAレコードを使います。サービスによってはAレコードではなく、提供元が指定するCNAMEや専用レコードを設定する場合もあるため、公式手順を確認してください。AAAAレコードの仕様(RFC 3596)

MXレコード:メールの配送先を指定する

MXレコードは、対象ドメイン宛てのメールを受け取るメールサーバーのホスト名を示します。値には通常、IPアドレスではなくメールサーバー名を設定します。

TEXT
名前: @
種類: MX
優先度: 10
値: mail.example.invalid.
TTL: 300

# 期待される意味:
# <対象ドメイン> 宛てのメールを、指定したメールサーバーへ配送する。

複数のMXレコードを登録する場合は、優先度の数値で候補を区別します。一般的には数値が小さい配送先が優先されます。MXの値に指定したホスト名は、メール配送のためにAまたはAAAAレコードなどで名前解決できる状態が必要になります。

TXTレコード:文字列を登録して認証や確認に使う

TXTレコードは、DNSへ文字列を登録するために使います。ドメイン所有権の確認、SPFによる送信元認証、DKIMの公開鍵情報などが代表的な用途です。SPFはTXTレコードとして公開され、DKIMもDNS上のTXTレコードから公開鍵を取得します。SPFの仕様(RFC 7208)DKIMの仕様(RFC 6376)

TEXT
名前: @
種類: TXT
値: "service-verification=example-token"
TTL: 300

# 期待される意味:
# 指定した文字列を、対象ドメインの確認情報として公開する。

サービスから提示されたTXT文字列は、引用符、空白、分割表示の扱いを含めて指定どおりに登録します。TXTレコードを登録しただけでメール認証が完了するとは限らず、送信側サービスや受信側の検証条件も関係します。

設定時に確認する項目と切り分けの進め方

  1. 対象の名前、レコード種別、値、TTLを確認する。MXの場合は優先度も確認する。
  2. Webサイトが表示されない場合は、AまたはAAAAレコードを確認する。
  3. メールを受信できない場合は、MXレコードと、指定先ホストの名前解決を確認する。
  4. ドメイン認証に失敗する場合は、サービスが指定したTXTレコードの名前と値を確認する。
  5. DNS変更後はTTLやキャッシュの影響で、参照結果がすぐに変わらない場合がある。
BASH
# 実行結果はDNS環境や問い合わせ先によって異なります
 dig example.invalid A
 dig example.invalid MX
 dig example.invalid TXT

# Windows環境では、次のように確認できます
 nslookup -type=MX example.invalid

TTLはDNSリゾルバーがレコードをキャッシュする期間を示します。そのため、権威DNSで変更を確認できても、利用者側の参照結果がしばらく古いままになることがあります。確認時は、利用しているDNSサービスの管理画面と、digやnslookupなどの問い合わせ結果を分けて確認すると切り分けやすくなります。

参考