🚀

AレコードやCNAMEレコードがよくわからんので調べた

に公開

はじめに

DNS周りを触ったことがなかったのですが、とりあえず触ってみようと思い調べる中で違いや役割が全くわかっていなかったのでメモします。

DNSレコードとは

まず自分はDNSレコードの実態をよくわかっていなかったのですが
DNSレコードはざっくりいうとドメインとIPアドレスのマッピング情報を記録しているものでありDNSサーバーに保存されています。

このDNSレコードにはさまざまな種類のDNSレコードがあり、その中にAレコードやCNAMEレコードがあります。

Aレコードとは

Aレコードはドメイン名をIPアドレスに変換するDNSレコードです。
このAレコードをもとに問い合わせされたドメインのIPアドレスをクライアントへ返却します。

クライアントの問い合わせがあってからAレコードが返却されるまでの流れをシーケンス図にすると以下のようになります。

image.png

再帰リゾルバ

  • クライアントからのリクエストをもとに各DNSサーバーへ問い合わせをして情報を収集して最終的にクライアントへ答えを返す

ISP

  • インターネットサービスプロバイダーでDNSサーバーを提供している事業者

ルートDNSサーバー

  • 名前解決の起点となっており、まずここに問い合わせが走る
  • 後述するトップレベルドメインDNSサーバーのIPアドレスを返す

トップレベルドメインDNSサーバー

  • ルートDNSサーバーから案内があった後に
  • 最上位のトップレベルドメイン(.comや.jpなど)を管理しているDNSサーバー

権威DNSサーバー

  • 特定のドメインの正式なDNSの情報を持つDNSサーバー

CNAMEレコードとは

CNAMEレコードとは正規のドメインとは別のドメインをマッピングしたDNSレコードとなります。(要するにエイリアスのような感じ)

例えばexample.comをwww.example.comでも表示されるようにしたい場合にはwww.example.com→example.comのCNAMEレコードを参照して名前解決をする形になります。

実際に見てみる

digを使ってDNSサーバーに問い合わせしてドメイン名やIPアドレスを取得してみようと思います。

試しにwikipediaのドメインに対してCNAMEとAレコードを取得してみたいと思います。

dig +short www.wikipedia.org A

結果は

dyna.wikimedia.org.
103.102.166.224

CNAMEレコードでdyna.wikimedia.orgが返却され、このドメインをもとにIPアドレス103.102.166.224が返却されていますね。

dig +short dyna.wikimedia.org.

を実行すると

103.102.166.224

が返ってきて、AレコードからIPアドレスが取得できていることが確認できました!

Discussion