レコード型 — A / AAAA / CNAME / MX / TXT / NS / SOA
レコード名を暗記するより、どの問いに答えるデータかで整理する。
レコード型は『どの問いに答えるか』で覚える
DNS レコードを覚えるときは、一覧を丸暗記するより、そのレコードがどの問いに答えるデータか で整理すると速いです。A は『IPv4 は何か』、MX は『メール配送先ホスト名は何か』、NS は『このゾーンを誰が配るか』です。
| 型 | 何を答えるか | 典型用途 | ひとこと |
|---|---|---|---|
| A | 名前に対応する IPv4 | Web / API / LB の向き先 | 最も基本の行き先 |
| AAAA | 名前に対応する IPv6 | IPv6 提供時 | A と並ぶことが多い |
| CNAME | 別名から本名へのエイリアス | SaaS 接続、LB の別名 | 同じ owner 名に他 RR を混在させない |
| MX | メール配送先ホスト名 | メール受信 | 値は IP ではなくホスト名 |
| TXT | 文字列データ | SPF、検証トークン、所有確認 | 意味はアプリ側が解釈する |
| NS | そのゾーンを配る権威サーバ名 | 委任、権威サーバ指定 | 行き先の案内板 |
| SOA | ゾーンの開始と管理情報 | serial やタイマーの基準 | そのゾーンの責任範囲を示す |
型名そのものより、『どんな問いに答えるか』で覚えると、管理画面でも zone file でも読みやすくなります。
小問 4-1 — 基本の型を用途で見分ける
A / AAAA / TXT を、用途から逆引きできるようにします。
Q17. api.example.com の IPv6 を返す型はどれですか。
AAAA レコードが名前に対応する IPv6 アドレスを返します。
Q18. ドメイン所有確認トークンや SPF 文字列の掲載先として最もよく使われる型はどれですか。
TXT は所有確認トークンや 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 があるとき、最も近い説明はどれですか。
CNAME はエイリアスです。api.example.com そのものが最終アドレスを持つ代わりに、service.vendor.net という本名側の名前解決へ委ねます。
Q20. 標準的な DNS の考え方では、同じ owner 名に CNAME と同居させてよいものはどれですか。
CNAME は『この owner 名は別名である』ことを示すので、同じ owner 名に A / MX / TXT など他の DNS レコードを混在させないのが基本です。HTTP 200 は DNS のレコード型ではなく HTTP ステータスコードであり、そもそも DNS の owner 名に置く対象ではないので、同居の議論の枠外です(『DNS レコードではないから同居を語る対象にならない』というメタ的な意味で正解になります)。
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 レコードの値として正しいものはどれですか。
MX の値はホスト名です。IP アドレスを直接書くのは初学者がよく陥る誤りで、実際は MX で得たホスト名についてさらに A / AAAA を引いて配送先 IP を得ます。
Q22. example.com MX 10 mail.example.com と mail.example.com A 203.0.113.20 があるとします。配送先 IP に辿るまでに、最低いくつの distinct owner 名を辿りますか。
最初に example.com の MX を見て mail.example.com を知り、次に mail.example.com の A / AAAA を引くので、owner 名としては 2 つを辿ります。
この章で持ち帰ること
- レコード型は 『どの問いに答えるか』 で覚える
- CNAME は別名であり、同じ owner 名に他 RR を混在させない
- MX は IP ではなくホスト名を返し、その先でさらに A / AAAA を引く