DNSの仕組みについて解説してみた

プロモーションを含みます
プロモーションを含みます
PR

DNSとは

DNS とは、Domain Name System (ドメインネームシステム) の略で、「ドメイン名」と「IP アドレス」を管理し、ドメイン名を IP アドレスに変換できるようにしたシステムのことです。

www.example.comドメイン名  216.108.XX.YY

「ドメイン名」から「IP アドレス」を調べることを名前解決といいます。

DNS の理解を深めるために、名前解決を実際にやってみましょう。

名前解決を実際にやってみる

1.「コマンドプロンプト」を起動します。

コマンドプロンプト画面
コマンドプロンプト起動方法その①

スタートメニューから「コマンドプロンプト」を検索し実行

コマンドプロンプト起動方法その②

[ Win ] + [ R ] キーを押下
「ファイル名を指定して実行」で cmd と入力し [ Enter ] キーを押下

ファイル名を指定して実行の画面

2.下記コマンドをコマンドプロンプトへコピペし、Enter キーを押下。

nslookup www.example.com

nslookup の後ろは、好きなドメイン名でOK

権限のない回答:Addresses: に IP アドレスが表示されれば成功です。

画像クリックで拡大
  • サーバー: PC が利用している DNS サーバ
  • Address: 上記 DNS サーバの IP アドレス
  • 名前: 対象のドメイン名
  • Addresses: 対象ドメイン名に対する IP アドレス

Addresses:
IP アドレスの長い方が IPv6 アドレス
IP アドレスの短い方が IPv4 アドレス

権限のない回答:
権威 DNS サーバからの回答ではないことを表しています。
(※権威 DNS サーバについては後述)

nslookup コマンドによって、ドメイン名から IP アドレスを調べること (名前解決) ができました。

この仕組が DNS (ドメインネームシステム)です。

DNSサーバについて

先ほど PC からコマンドプロンプトを使って名前解決をしました。
では誰がその要求に対して応答しているのでしょうか。

それは DNS サーバです。

DNSクライアントについて

名前解決を要求する DNS クライアントのことをスタブリゾルバと呼びます。

スタブリゾルバは、再帰的に名前解決を要求します。

スタブリゾルバの意味
スタブは「根っこ」や「切り株」を意味します。
リゾルバは「解決してほしい人」を意味します。

再帰的な名前解決要求とは
名前解決が完結するまで、名前解決を要求することです。
簡単にいうとループのようなものですが、永続ループではなく、答えが見つかったらそこで終了します。

権威サーバについて

DNS クライアント (スタブリゾルバ) からの名前解決要求に対し、自身のデータベースにあるものだけを応答します。この DNS サーバのことを権威サーバ (コンテンツサーバとも呼ばれる) と呼びます。

権威サーバは特定のドメイン名IP アドレスの対応データベースを管理しています。

対応データベースのことを、ゾーンファイルと呼びます

フルリゾルバについて

一方で、自身のデータベースにない名前解決要求については、どうなるんでしょうか。

それには、フルリゾルバ (キャッシュDNSサーバとも呼ばれる) が応答します。

DNS クライアント (スタブリゾルバ) から名前解決要求を受け取ったフルリゾルバは、名前解決が完結するまで、権威サーバに反復問い合わせを行います。

DNS サーバは大きく分けて2種類

権威 サーバ

自身が管理しているドメイン名と IP アドレスの対応データベースを持つ。

コンテンツサーバとも呼ばれる。

フルリゾルバ

DNS クライアントからの名前解決要求に対し、他の権威サーバに反復問い合わせをし、応答する。

フルリゾルバは、キャッシュDNSサーバとも呼ばれます。

権威サーバが、フルリゾルバの役割を兼務している場合もあります。

それでは、フルリゾルバの動きをみていきましょう。

フルリゾルバの動き

フルリゾルバは、名前解決要求のドメイン名が自身のキャッシュに無かった場合、以下のように反復問い合わせを実施します。

  1. 最上位の権威 DNS サーバである DNS ルートサーバ
  2. トップレベルドメイン (TLD) を管理している権威サーバ
  3. セカンドレベルドメイン (2LD) を管理している権威サーバ
  4. サードレベルドメイン (3LD) を管理している権威サーバ (※必要な場合)
  5. 結果 (IP アドレス) をクライアントに返す。

DNS は階層構造になっているため、このような反復問い合わせが必須となります。

1. DNS クライアントは、フルリゾルバに名前解決を要求する

2. フルリゾルバは、DNS ルートサーバに問い合わせる

3. DNS ルートサーバから、TLD 管理サーバを案内される

4. フルリゾルバは、TLD 管理サーバに問い合わせる

5. TLD 管理サーバから、2LD 管理サーバを案内される

6. フルリゾルバは、2LD 管理サーバに問い合わせる

7. 2LD 管理サーバから IP アドレスの返答が来る

8. フルリゾルバは、DNS クライアントに IP アドレスを返答する

画像クリックで拡大

このように DNS クライアントは再起問い合わせを行い、そしてフルリゾルバは DNS ルートサーバから順に反復問い合わせを行い、ドメイン名に対する IP アドレスが分かったところで結果を DNS クライアントに返します。

まとめ

DNSクライアント

DNS サーバに対し、再帰的に名前解決を要求するクライアント。

DNS クライアントは、スタブリゾルバと呼ばれます。

スタブリゾルバの意味
スタブは「根っこ」や「切り株」を意味します。
リゾルバは「解決してほしい人」を意味します。

再帰的な名前解決要求とは
名前解決が完結するまで、名前解決を要求すること。
簡単にいうとループのようなものですが、永続ループではなく、答えが見つかったらそこで終了します。

フルリゾルバ

権威 DNS サーバに反復問い合わせを行い、結果を返す DNS サーバ。

フルリゾルバは、キャッシュDNSサーバとも呼ばれます。

権威DNSサーバ

特定のドメイン名IP アドレスの対応データベースを管理し、自身のデータベースにあるものだけを応答する DNS サーバ。

権威サーバは、コンテンツサーバとも呼ばれます。

最後に

インターネット上には、無数の DNS サーバが存在し、DNS サーバ同士が互いに連携し合い名前解決を行っています。

これが DNS (Domain Name System: ドメインネームシステム) です。