ウェブエンジニア問題集
第4.2章

DNS・ドメイン・ネームサーバー — 名前解決の仕組み

6
この章の目次開く

DNSは、example.com のような人間向けの名前を、通信に必要なIPアドレスへ変換する仕組みです。

ドメイン設定でつまずく原因の多くは、ドメイン、DNSレコード、ネームサーバー、レジストラ、DNSホスティング を同じものとして扱ってしまうことです。この章では、それぞれの役割を分けて整理します。

学習者学習者

ドメインを買ったサービスと、DNSレコードを設定する画面が違うことがあります。ネームサーバーって何をしているんですか?

ドメインとDNSは別物

ドメインexample.com のような名前です。
DNS は、その名前をIPアドレスなどの情報へ変換する仕組みです。

用語役割
ドメイン人間が扱いやすい名前
レジストラドメインを取得・更新する事業者
DNSホスティングDNSレコードを管理するサービス
ネームサーバーそのドメインのDNS情報を答えるサーバー
DNSレコードA, CNAME, MX などの具体的な設定

ドメインを取得しただけでは、どのサーバーへ向けるかは決まりません。ドメインに対してDNSレコードを設定して、初めてWebサーバーやメールサーバーへ向きます。

名前解決の流れ

www.example.com のIPアドレスを調べるとき、DNSは階層構造をたどります。

ここで重要なのが 再帰DNSリゾルバ権威DNS の違いです。

種類役割
再帰DNSリゾルバクライアントの代わりにDNS階層をたどって答えを探すISPのDNS、Google Public DNS、Cloudflare DNS
権威DNSそのドメインの正式なDNSレコードを持つRoute 53、Cloudflare DNS、レジストラ付属DNS

ネームサーバーとは

ネームサーバーは、このドメインのDNSレコードはどのDNSサーバーに聞けばよいか を示します。

例えば、レジストラの管理画面で次のように設定します。

example.com のネームサーバー:
ns1.example-dns.com
ns2.example-dns.com

これは「example.com のAレコードやMXレコードを知りたければ、このネームサーバーに聞いてください」という委任です。

よく使うDNSレコード

レコード役割
Aホスト名をIPv4アドレスへ向けるexample.com → 203.0.113.10
AAAAホスト名をIPv6アドレスへ向けるexample.com → 2001:db8::1
CNAME別のホスト名の別名にするwww → example.com
NS権威ネームサーバーを示すns1.example-dns.com
MXメール配送先を示すmail.example.com
TXT任意のテキスト情報を置くSPF, DKIM, 所有確認

Webサイト公開で最もよく使うのは A、AAAA、CNAME です。メールやドメイン所有確認では MX、TXT がよく出てきます。

DNSレコードを調べる
ドメイン設定で困ったら、まず dig コマンドで現在の状態を確認する

AレコードとCNAMEの使い分け

Aレコード は名前をIPアドレスに直接向けます。

example.com A 203.0.113.10

CNAME は名前を別の名前に向けます。

www.example.com CNAME example.com

クラウドサービスやCDNでは「このCNAMEを設定してください」と案内されることがよくあります。サービス側でIPアドレスが変わっても、利用者側のCNAMEは変えずに済むためです。

TTLとDNSキャッシュ

DNSレコードには TTL (Time to Live) というキャッシュの有効期限があります。

example.com A 203.0.113.10 TTL 3600

これは「この結果を3600秒キャッシュしてよい」という意味です。TTLが長いとDNS問い合わせが減って効率的ですが、サーバー移行時には古いIPが残りやすくなります。

digとnslookupで確認する

DNSの確認には dignslookup を使います。

# Aレコードを見る
dig example.com A
 
# ネームサーバーを見る
dig example.com NS
 
# 特定のDNSサーバーへ問い合わせる
dig @8.8.8.8 example.com A
 
# nslookupでも確認できる
nslookup example.com
bash

「自分のPCでは古いIP、別のDNSでは新しいIP」という場合は、DNSキャッシュやTTLが関係している可能性があります。

ちゃんと使うためのポイント

  • ドメインは名前、DNSは名前を情報へ変換する仕組み
  • ネームサーバーは「そのドメインの正式なDNS設定を持つサーバー」
  • 再帰DNSは利用者側、権威DNSはドメイン管理側の役割
  • A/AAAAはIPへ、CNAMEは別名へ、MXはメールへ、TXTは検証情報などへ使う
  • DNS変更がすぐ反映されない主因はTTLとキャッシュ

次の章では、IPの上で通信の届け方を決める TCP/UDPとポート を扱います。

CS基礎クイズに挑戦するこの章で学んだCS基礎の知識を、4択クイズでアウトプットして定着させよう