💤

DNSレコードタイプ、これだけは押さえておこう!

2024/12/17に公開2

(タイトルは自戒も込めてます)

今回、この記事を書こうと思ったのは、以下の記事を読み、「なんだかDNSまわりの知識があやふやだなぁ」と思ったのと、よくこんがらがるDNSのレコードタイプについて記事として外部メモリ的に保存しておこうと思ったのがきっかけです。では早速書いていきたいと思います。
(今回取り上げる各種レコードタイプに関しては、Azureでインフラ構築する際によく見かけるレコードタイプについてフォーカスしておりますことご了承ください)

https://zenn.dev/skmkzyk/articles/vnet-dns-security-policy
https://qiita.com/aktsmm/items/2f0cceaca3235b260b39
https://zenn.dev/mrt/articles/8b81dc63125660

はじめに

DNS(Domain Name System)は、インターネット上でドメイン名をIPアドレスに変換する仕組みとして知られています。Web開発者やインフラエンジニアであれば、DNSまわりの基本知識は避けて通れません。そこで本記事では、特に頻出度が高く、実務でよく目にする代表的な8種類のDNSレコードタイプを整理してみました。これらを理解しておけば、ドメイン設定やトラブルシューティングの際にスムーズに対応できるはずです。

1. Aレコード (Address Record)

概要
Aレコードは、ドメイン名をIPv4アドレスへ紐づけるための基本的なレコードです。ブラウザが「example.com」にアクセスする際、このAレコードを参照して「93.184.216.34」のようなIPアドレスを取得します。

ポイント

  • 人間には覚えやすいドメイン名を、機械が理解できるIPアドレスに変換する役割
  • Webサーバーを変更する際は、このAレコードを新しいサーバーのIPv4アドレスに書き換えて反映します

2. CNAMEレコード (Canonical Name Record)

概要
CNAMEレコードは、あるドメイン名を別のドメイン名のエイリアス(別名)として定義します。
たとえば、www.example.comexample.comにCNAMEで紐づけることで、example.comのAレコード変更だけでwww.example.comも追随させることができます。

ポイント

  • 複数のドメインを1つの実体ドメインに集約
  • サブドメイン管理が楽になる
  • CNAMEは最終的にAレコード(やAAAAレコード)など、本来の実体アドレスを参照することで解決されます

3. AAAAレコード

概要
AAAAレコードは、AレコードのIPv6版です。IPv6アドレス(2001:0db8::1のような形式)とドメイン名を対応付けます。

ポイント

  • IPv6対応が進む現在、将来的に重要度が増すレコード
  • IPv6対応サーバーやネットワーク機器を利用している場合に必須

4. PTRレコード (Pointer Record)

概要
PTRレコードはIPアドレスからドメイン名を逆引き(リバースルックアップ)するためのレコードです。メールサーバーや一部のセキュリティ対策で、送信元IPが正当なドメインと対応しているかを確認する際に使用されます。

ポイント

  • 逆引き専用(IP → ドメイン名)
  • メール配送の信頼性向上や不正アクセス検知などで活躍

5. MXレコード (Mail Exchange Record)

概要
MXレコードはメールの配送先サーバーを指定します。たとえば、example.com宛のメールがどのサーバー(mail.example.comなど)に配送されるべきかをDNSで指示します。

ポイント

  • 優先度を設定できる(数値が小さいほど優先度が高い)
  • 複数のMXレコードでフェイルオーバー構成が可能

6. NSレコード (Name Server Record)

概要
NSレコードは、そのドメインを管理する権威DNSサーバーを指定します。「このドメインに関する詳細は、このNSサーバーに問い合わせてください」という指示を与える役割です。

ポイント

  • 上位のDNSから権威サーバーへの委任関係を示す
  • ドメインを移管した際は、このNSレコードを変更して権威サーバーの切り替えを行う

7. SRVレコード (Service Record)

概要
SRVレコードは特定のサービス(例:VoIP、XMPP、LDAP)用にホスト名やポート番号を指定します。
_sip._tcp.example.com のような形式で、どのホストのどのポートでサービスが稼働しているかをクライアントに通知します。

ポイント

  • 汎用的なサービスディスカバリ用のレコード
  • AレコードやAAAAレコード、CNAMEレコードなどと組み合わせて使用

8. TXTレコード (Text Record)

概要
TXTレコードはDNSにテキスト情報を格納できるレコードです。SPF(Sender Policy Framework)やDKIM、DMARCなどのメール認証情報を保持するのに用いられ、またGoogle Search Consoleの所有権確認などでも利用されます。

ポイント

  • 人が読めるテキストをDNSに格納できる
  • セキュリティや認証用途が多い

まとめ

DNSはウェブサイトやオンラインサービスを支える重要な基盤技術であり、A、CNAME、AAAA、PTR、MX、NS、SRV、TXTといった代表的なレコードを理解することで、ドメイン管理やメールサーバー構築、サービスディスカバリ、セキュリティ設定などがスムーズになります。これらを把握しておくことは、インフラやバックエンドに携わるエンジニアにとって欠かせない基礎知識と言えるでしょう。

キーポイント

  • A/AAAA:ドメイン名をIPアドレス(IPv4/IPv6)へ紐付け
  • CNAME:別名でドメインを指定
  • PTR:逆引き(IPからドメインへ)
  • MX:メール受信サーバー指定
  • NS:ドメインを管理するDNSサーバー指定
  • SRV:サービスごとのホスト、ポート割当
  • TXT:テキスト情報格納(SPF/DKIMなど認証用途)

より詳細な設定例や応用的な利用法について興味が湧いたら、DNS専門書籍で深堀りしてみると良いでしょう。

また、以下のサイトも網羅的にまとまっておりさらに深堀りしたいときなどに非常に参考になるので紹介させていただきます!
https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml

【免責事項】
本記事の情報は執筆時点(2024年12月17日)のものです。本記事は、公開されている情報に基づいて作成されていますが、誤りが含まれている可能性もあります。内容の正確性については、読者ご自身の責任で判断をお願いいたします。また、本記事の内容は一般的な情報提供を目的としており、網羅的な知見や専門的なアドバイスとしては意図していません。適切な専門家にご相談ください。

Discussion

rakiraki

DNSレコードの話をするなら SOA を書かないと。。。

Naoki MatsumotoNaoki Matsumoto

コメントありがとうございます!
おっしゃるとおり、SOA(Start of Authority)レコードは権威DNSサーバーがゾーン情報の起点やシリアル番号、リフレッシュ間隔などを定義する非常に重要なレコードですね。今回はAzureでのインフラ構築をする際によく見かける(これは記事冒頭にコメントを受けて追記いたしました)、あくまで代表的な8種類のレコードにフォーカスして紹介したため、SOAには触れませんでしたが余力があれば記事追記など対応したいと思います。フィードバックありがとうございます!