合同会社小村ソフト
第 4 章

レコード型 — A / AAAA / CNAME / MX / TXT / NS / SOA

レコード名を暗記するより、どの問いに答えるデータかで整理する。

レコード型は『どの問いに答えるか』で覚える

DNS レコードを覚えるときは、一覧を丸暗記するより、そのレコードがどの問いに答えるデータか で整理すると速いです。A は『IPv4 は何か』、MX は『メール配送先ホスト名は何か』、NS は『このゾーンを誰が配るか』です。

何を答えるか典型用途ひとこと
A名前に対応する IPv4Web / API / LB の向き先最も基本の行き先
AAAA名前に対応する IPv6IPv6 提供時A と並ぶことが多い
CNAME別名から本名へのエイリアスSaaS 接続、LB の別名同じ owner 名に他 RR を混在させない
MXメール配送先ホスト名メール受信値は IP ではなくホスト名
TXT文字列データSPF、検証トークン、所有確認意味はアプリ側が解釈する
NSそのゾーンを配る権威サーバ名委任、権威サーバ指定行き先の案内板
SOAゾーンの開始と管理情報serial やタイマーの基準そのゾーンの責任範囲を示す
A、AAAA、CNAME、MX、TXT、NS、SOA の役割を並べた図

型名そのものより、『どんな問いに答えるか』で覚えると、管理画面でも zone file でも読みやすくなります。

小問 4-1 — 基本の型を用途で見分ける

A / AAAA / TXT を、用途から逆引きできるようにします。

Q17. api.example.com の IPv6 を返す型はどれですか。

Q18. ドメイン所有確認トークンや SPF 文字列の掲載先として最もよく使われる型はどれですか。

zone file を 1 本読んでみる

設定画面の背後では、おおむね次のような情報を表現しています。

$ORIGIN example.com.
@       3600 IN SOA ns1.example.com. hostmaster.example.com. (
                2026041801 3600 600 1209600 300 )
        3600 IN NS    ns1.example.com.
        3600 IN NS    ns2.example.com.
www      300 IN A     203.0.113.10
www      300 IN AAAA  2001:db8::10
api      300 IN CNAME service.vendor.net.
@       3600 IN MX    10 mail.example.com.
mail     300 IN A     203.0.113.20
txt-demo 300 IN TXT   "verify=abc123"

zone file の読み方ガイド:

  • $ORIGIN example.com. — このファイル内で省略形の名前を補うときの基準ドメインを宣言します。以下の www は内部的に www.example.com. として扱われます。
  • @$ORIGIN のエイリアスです。この例では example.com. 自身(ゾーンの apex)を指します。
  • 末尾のドット(. — その名前が FQDN(完全修飾ドメイン名)であることを示します。たとえば ns1.example.com. は最後にドットがあるので絶対名で、ns1(ドットなし)は $ORIGIN が補われて ns1.example.com. になります。末尾ドットの有無で意味が変わるので、zone file では特に注意が必要です。

この例では、www は本名として A / AAAA を持ち、api は外部のロードバランサ名へ CNAME で向いています。MX はメール配送先として mail.example.com を示し、その先でさらに A / AAAA を引きます。

小問 4-2 — CNAME の意味と同居制約を読み解く

別名なのか、本名なのかを区別し、CNAME 特有の制約を確認します。

Q19. api.example.com CNAME service.vendor.net があるとき、最も近い説明はどれですか。

Q20. 標準的な DNS の考え方では、同じ owner 名に CNAME と同居させてよいものはどれですか。

CNAME と zone apex でつまずきやすい点

CNAME は『この名前は別名である』ことを表します。したがって同じ owner 名に A / MX / TXT など別のデータを混ぜると、この名前は本名なのか別名なのか が曖昧になります。

実務では「zone apex に CNAME を置きたい」という要望がよく出ますが、apex には SOA と NS が必要です。つまり標準的な DNS の plain CNAME と衝突します。そのため、一部の DNS プロバイダは ALIAS / ANAME など独自機能で近い体験を提供します。

メールの確認は 2 段階です。 example.com MX の値は IP ではなく配送先ホスト名です。MX → 配送先ホストの A / AAAA という順で追ってください。

小問 4-3 — MX の値と 2 段階解決を読み解く

MX が返すのはホスト名であり、その先で A / AAAA を引く 2 段階解決を確認します。

Q21. MX レコードの値として正しいものはどれですか。

Q22. example.com MX 10 mail.example.commail.example.com A 203.0.113.20 があるとします。配送先 IP に辿るまでに、最低いくつの distinct owner 名を辿りますか。

この章で持ち帰ること

  • レコード型は 『どの問いに答えるか』 で覚える
  • CNAME は別名であり、同じ owner 名に他 RR を混在させない
  • MX は IP ではなくホスト名を返し、その先でさらに A / AAAA を引く