図解でわかるDNSシリーズ ~第3回:キャッシュサーバと権威サーバの役割~

ネットワーク

1_DNSとは何か(第1・2回の振り返り)

DNS(Domain Name System)とは、インターネット上の住所であるIPアドレスと、人間が覚えやすいドメイン名を結び付けてくれるシステムになります。私たちのPCは、Webサイトにアクセスする前にURL(ドメイン名)をDNSサーバに問い合わせることで、WebサイトのIPアドレスを取得し、通信を行っております。(第1回参照
また、DNSサーバは、ドメイン名とIPアドレスの紐づけだけではなく、メールサーバの情報など様々な値を返すことが出来ます。(第2回参照

PC が DNS サーバへ名前解決を依頼し、IP アドレスを取得して Web サイトへ接続するまでの基本的な DNS クエリの流れを示す図
図解1_DNSクエリの流れ

2_名前解決における全体像

これまでの記事では、DNSサーバに対して、DNSクエリ(=名前解決要求)を実施すれば、DNSサーバが値を返すと説明していましたが、実際には、いくつかの機器が存在した上で通信が成立しています。下記図は、全体像を示したものになります。

PC、DNSキャッシュサーバ、ルート・TLD・権威DNSサーバが登場し、再帰問い合わせと反復問い合わせの役割分担を示した名前解決の全体図
図解2_名前解決(キャッシュサーバと権威DNSサーバ、再帰問い合わせと反復問い合わせの役割)
バグ太郎
バグ太郎

なんか色々な機器が登場しますね・・・

∞-CPU
∞-CPU

それぞれ役割がありますので、一つ一つ丁寧に見ていきましょう

3_PCからDNSキャッシュサーバへの再帰問い合わせ

一般的に我々が使用しているPCは、いきなり名前情報を管理しているサーバにDNSクエリをしているわけではありません。多くは、 DNSキャッシュサーバと呼ばれる名前解決情報を一時的に保持しているサーバに問い合わせを投げ、キャッシュサーバが情報を持っていればキャッシュサーバが応答し、持っていなければキャッシュサーバが、名前情報を持っているサーバに更に問い合わせを投げます。

PC が DNSキャッシュサーバへ再帰問い合わせを行い、キャッシュの有無によって応答または追加問い合わせが行われる流れを示す図
図解3_PCからDNSキャッシュサーバへの再帰問い合わせ

3-1_キャッシュサーバ

キャッシュサーバは、よく使われるドメイン名とその答え(IPアドレス)を一時的に覚えておく「メモ帳」のようなサーバです。 あなたが同じサイトに何度もアクセスすると、毎回遠くのサーバに聞きに行かずにここから素早く答えを返します。保存時間はTTLという設定値で決まり、期限が切れると古い情報は捨てられます。

3-2_再帰問い合わせ

再帰問い合わせは、 あなたの代わりに「全部調べて答えて」と頼む方法です。PCはまずキャッシュサーバ(多くはプロバイダや公共DNS)に問い合わせをし、キャッシュサーバが情報を持っていなければ、キャッシュサーバが情報を持っているサーバに順に問い合わせて最終的なIPをまとめて返します。利用者は手間が少なく、速さと利便性が得られます

4_DNSキャッシュサーバから権威DNSサーバへの反復問い合わせ

上述のとおり、キャッシュサーバは名前解決情報を持っていない場合、名前解決情報を持っているサーバ(= 権威DNSサーバ)に順番に問い合わせ(=反復問い合わせ)、名前情報を入手します。

キャッシュサーバがルート、TLD、セカンドレベルドメインの権威DNSサーバへ順番に反復問い合わせし、最終的な名前情報を取得する流れを示す図
図解4_DNSキャッシュサーバから権威DNSサーバへの反復問い合わせ
バグ太郎
バグ太郎

権威DNSサーバに順番に問い合わせるっていうのがイマイチわかりません・・・名前情報を持っているサーバに1回問い合わせればそれで解決するのではないのですか?

∞-CPU
∞-CPU

そこを理解するには、 FQDNという概念と、各ドメインを管理している権威DNSサーバが分散されているということを理解する必要があります。

4-1_FQDN(ドメイン名+ホスト名)

FQDNは「完全修飾ドメイン名」の略で、ホスト名とドメイン名を合わせたフルの名前です(例:www.example.com)。ネット上でその機器やサービスを一意に指すため、どのサーバのどのサービスかを正確に指定でき、世界でただ一つの名前になります。FQDNの要素を詳細に分割するとホスト名+セカンドレベルドメイン+トップレベルドメイン+ルートドメインに分類できます。
この各要素について、「www.example.com.」を例に解説していきます。

4-1-1 ホスト名(www)

  • 家でいう「部屋の名前
  • サーバやサービスを区別するための名前
  • 例:
    • www → Web サーバ
    • mail → メールサーバ
    • api → API サーバ
  • 同じドメインの中で、どのサービスに行くかを示す役割

4-1-2 セカンドレベルドメイン(example)

  • 家でいう「建物の名前
  • 企業名・サービス名など、サイトの中心となる名前
  • “example.com” の example の部分
  • インターネット上でその組織を表すコアの名前

4-1-3 トップレベルドメイン(TLD)(com)

  • 家でいう「地域
  • 国や用途を示す大きな分類
  • 例:
    • com → 商用
    • jp → 日本
    • org → 組織
  • ここで大まかなカテゴリが決まる

4-1-4 ルートドメイン(最後の「.」)

  • 住所でいう「世界の入口
  • 普段は省略されるが、FQDN では必ず存在する
  • DNS の最上位階層を示す
  • 例:
    • www.example.com. ← 最後の「.」がルート

4-1-5 FQDNの各要素の整理表

FQDN要素住所の例え役割
ホスト名www部屋番号どのサービスか
セカンドレベルドメインexample建物名組織・サイト名
TLDcom地域大分類(国・用途)
ルート.世界の入口DNSの最上位

4-2_権威DNSサーバ

 権威サーバはそのドメインの「公式の辞書」を持つサーバです。ドメイン所有者が設定したAやMXレコードなどの正しい値を管理しており、最終的に「これが正しい」と答えられる唯一の存在です。DNSの変更を確実に確認したいときは、権威サーバに直接問い合わせるのが確実です。
 ここで重要なのは、この権威DNSサーバが先ほど説明した FQDNの各要素に対応して存在しているということです。ルートドメインならルートサーバが、TLDならTLDの権威サーバが、セカンドレベルドメインならセカンドドメインの権威DNSサーバが存在します。権威DNSサーバ 階層化することで、世界中の問い合わせに耐えることが出来るような仕組み( 負荷が分散される)を実現しています。

4-3_反復問い合わせ

反復問い合わせは、上記例で言うとキャッシュサーバ自分で段階を追って各権威DNSサーバに聞いていく方法です。各サーバは「次にどこへ聞けばよいか」を教えるだけで、最終回答はキャッシュサーバが集めます

5_まとめ

∞-CPU
∞-CPU

DNSでは「速さ」と「正確さ」を分担する仕組みがあります。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
①キャッシュサーバは速く答えるために結果を覚え
②権威サーバは公式の正しい情報を持ちます。

❶再帰問い合わせはキャッシュサーバに全部任せる方法
❷反復問い合わせは段階的にキャッシュサーバが権威DNSサーバに問い合わせ、情報を集める方法です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
運用では両者の違いを理解することが重要です。

(参考)よくある質問

Q1
キャッシュサーバと権威サーバは何が違うのですか?
A1

キャッシュサーバは、よく使う名前とIPアドレスを一時的に保存して、次の問い合わせを素早く返す「メモ帳」のようなサーバです。一方、権威サーバはそのドメインの“公式の答え”を持つサーバで、AレコードやMXレコードなどの正しい情報を管理しています。キャッシュサーバは速さを担当し、権威サーバは正確さを担当するという役割分担になっています。DNSの変更が反映されないときは、キャッシュが古いだけの可能性があるため、権威サーバに直接問い合わせると最新の情報を確認できます。

Q2
再帰問い合わせと反復問い合わせはどう使い分けられているのですか?
A2

再帰問い合わせは、PCがキャッシュサーバに「全部調べて答えて」とお願いする方式で、普段のWebアクセスはほとんどこれです。キャッシュサーバが必要に応じて権威DNSサーバへ問い合わせ、最終的な答えをまとめて返します。反復問い合わせは、キャッシュサーバがルート→TLD→セカンドレベル→ホスト名の順に「次はどこへ聞けばよいか」を教えてもらいながら進む方式で、DNSサーバ同士の通信や仕組みの理解・調査で使われます。再帰は利便性、反復は仕組み理解と正確性の確認に向いています。

Q3
なぜ権威DNSサーバは1つではなく階層に分かれているのですか?
A3

FQDN(例:www.example.com.)は「ホスト名 → セカンドレベルドメイン → TLD → ルート」という階層構造になっています。この階層ごとに権威DNSサーバが存在することで、世界中から大量の問い合わせが来ても負荷が分散され、インターネット全体が安定して動作します。例えば、ルートサーバは「.」の情報、TLDサーバは「.com」の情報、セカンドレベルの権威サーバは「example.com」の情報を持つというように役割が分かれています。これにより、DNSは高速で壊れにくい仕組みになっています。


コメント

タイトルとURLをコピーしました