🐡

DNSについて学んでみた

2024/10/13に公開

はじめに


アマゾンリンク
実務ではDNS切り替えなどで、レンタルサーバの管理画面でAコードCNAMEレコードなどを触る機会がありましたが、実際のところなにがどう働いているのか理解できていませんでした。
今回は上記の本を読んで、整理するためにまとめさせてもらいました。

DNSとは

Domain Name System(ドメイン・ネーム・システム)の略で、ドメイン名とIPアドレスを結びつけるシステムです。
利用者(ブラウザ)からの要求に応じてドメイン名に対応するIPアドレスを探し出しすことを名前解決といいます。
※利用者のことをスタブルリゾルバーともいう

Webページが表示される流れ


(引用:https://domainname.jp/report/dns)

DNSサーバとは

ドメイン名をIPアドレスに変換する役割を担うサーバです。主に以下の4種類に分かれています。

  1. キャッシュDNSサーバ(フルリゾルバーともいう)
  2. ルートDNSサーバ
  3. TLD DNSサーバ
  4. ドメインのネームサーバ(権威ネームサーバー)

キャッシュDNSサーバ(フルリゾルバー)

  • 名前解決の実行
    スタブルリゾルバーから名前解決要求(DNSクエリを受ける)を受けたら、自分がそれまでに蓄えている情報(キャッシュ)があるかどうかを確認します。あれば、その情報をスタブルリゾルバーへ返し、なければ適切な権威サーバー群に問い合わせをします。
  • 名前解決の際に得られた情報を蓄える
    権威サーバー群から受け取った情報を一時的に保存(キャッシュ)します。これらを次回以降の名前解決に利用します。

ドメインについて


(引用:https://domainname.jp/report/dns
https://white-link.com/sem-plus/domain-name/
https://www.asobou.co.jp/blog/web/domain/

ドメインとホスト名について


(引用:https://www.kagoya.jp/howto/it-glossary/domain/fqdn/)
https://www.kagoya.jp/howto/it-glossary/domain/fqdn/

DNSのゾーンについて

DNSでは、ドメイン名に対応する形で管理範囲を階層化し、委任することで、管理を分散します。委任によって管理を任された範囲をゾーンと言います。
ゾーンの情報は権威サーバで保持され、その設定内容(ゾーンデータ)を、リソースレコード(DNSレコード)という形で表します。
リソースレコードには多くの種類があり、タイプによって区別されます。リソースレコードのタイプは、DNSに何の情報を設定するかによって使い分けます。

(引用:https://milestone-of-se.nesuke.com/l7protocol/dns/zone-transfer/)

DNSレコードの種類

リソースレコードはたくさんありますが、一部抜粋します。
詳しくはこちら

主にWEB制作担当者が気にするところは、NSレコード・Aレコード・AAAAレコード・CNAMEレコードくらいかと思います。

タイプ 内容
SOAレコード ゾーンの管理に関する基本的な情報
NSレコード 委任に関する情報
Aレコード ドメイン名に対するIPv4アドレス
AAAAレコード ドメイン名に対するIPv6アドレス
MXレコード メール送信に関する情報
CNAMEレコード ドメイン名に対する正式名
TXTレコード 任意の文字列
PTRレコード IPアドレスに対するドメイン名
HTTPSレコード HTTPサービスに関する情報

NSレコード

NSは「ネームサーバー」を指し、ネームサーバーレコードは、どのDNSサーバーがそのドメインの権威サーバーであるか(すなわち、どのサーバーに実際のDNSレコードがあるか)を示します。基本的にNSレコードは、どこに行けばドメインのIPアドレスを見つけられるかをインターネットに知らせるものです。

(引用:https://www.cloudflare.com/ja-jp/learning/dns/dns-records/dns-ns-record/)

example.com.   IN   NS   ns1.example-dns.com.
example.com.   IN   NS   ns2.example-dns.com.

Aレコード

A(Address)レコードは、ドメイン名をIPアドレス(IPv4)に置き換えるリソースレコードです。
IPv6の場合はAAAAレコード(quad=4倍)になります。

example.com.   IN   A   192.168.1.1

AレコードとNSレコードの違い

項目 Aレコード NSレコード
役割 ドメイン名をIPv4アドレスに対応させる ドメインを管理するネームサーバを指定
用途 Webサイトへのアクセス時に使用 ドメインのDNS情報をどのサーバで管理するか指定
レコード内容 ドメイン名とIPアドレスの対応関係 ドメイン名とネームサーバの対応関係
example.com → 192.168.1.1 example.com → ns1.example-dns.com

CNAMEレコード

CNAME(Canonical Name)は、ドメイン名の正式名を指定するためのリソースレコードで、ドメイン名に別名をつける手段として使われます。

//www.example.comをblog.example.comとして表示
blog.example.com.  IN   CNAME   www.example.com.

まとめ

実務ではあまり詳しく知らないまま設定していたところもあったので、今回本を読んでみて少しは理解できた気がします。
実務の中で使う機会があったら、また読んで理解を深めたいと思います。
DNSは奥が深い・・・。

Discussion