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

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

DNSとは

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

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

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

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

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

Windows PC での方法です

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

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

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

フルサービスリゾルバについて

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

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

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

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

権威 DNS サーバ

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

フルサービスリゾルバ

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

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

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

フルサービスリゾルバの動き

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

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

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

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

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

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

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

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

6. フルサービスリゾルバは、2LD (3LD) 管理 DNS サーバに問い合わせる

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

8. フルサービスリゾルバは、DNS クライアント (スタブリゾルバ) に IP アドレスを返答する

画像クリックで拡大

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

まとめ

DNSクライアント

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

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

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

再帰的な名前解決要求とは
名前解決が完結するまで、名前解決を要求すること
簡単に言うと、ループのようなものです

フルサービスリゾルバ

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

フルサービスリゾルバは、DNS キャッシュサーバとも呼ばれる

権威DNSサーバ

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

権威 DNS サーバは、DNS コンテンツサーバとも呼ばれる

最後に

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

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

この記事を書いた人
TerraYuuki

ITインフラエンジニアのアウトプットブログ。仕事や資格勉強などを通じて得たIT技術やWindows Tips、ガジェットレビュー記事を主に書いています。

written by Terra Yuuki
PR
ネットワーク
てこエンジニアブログ