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
権限のない回答: の Addresses: に IP アドレスが表示されれば成功です。
- サーバー: PC が利用している DNS サーバ
- Address: 上記 DNS サーバの IP アドレス
- 名前: 対象のドメイン名
- Addresses: 対象ドメイン名に対する IP アドレス
nslookup コマンドによって、ドメイン名から IP アドレスを調べること (名前解決) ができました。
この仕組が DNS (ドメインネームシステム)です。
DNSサーバについて
先ほど PC からコマンドプロンプトを使って名前解決をしました。
では誰がその要求に対して応答しているのでしょうか。
それは DNS サーバです。
DNSクライアントについて
名前解決を要求する DNS クライアントのことをスタブリゾルバと呼びます。
スタブリゾルバは、再帰的に名前解決を要求します。
権威サーバについて
DNS クライアント (スタブリゾルバ) からの名前解決要求に対し、自身のデータベースにあるものだけを応答します。この DNS サーバのことを権威サーバ (コンテンツサーバとも呼ばれる) と呼びます。
対応データベースのことを、ゾーンファイルと呼びます
フルリゾルバについて
一方で、自身のデータベースにない名前解決要求については、どうなるんでしょうか。
それには、フルリゾルバ (キャッシュDNSサーバとも呼ばれる) が応答します。
DNS クライアント (スタブリゾルバ) から名前解決要求を受け取ったフルリゾルバは、名前解決が完結するまで、権威サーバに反復問い合わせを行います。
DNS サーバは大きく分けて2種類
権威 サーバ
自身が管理しているドメイン名と IP アドレスの対応データベースを持つ。
コンテンツサーバとも呼ばれる。
フルリゾルバ
DNS クライアントからの名前解決要求に対し、他の権威サーバに反復問い合わせをし、応答する。
フルリゾルバは、キャッシュDNSサーバとも呼ばれます。
それでは、フルリゾルバの動きをみていきましょう。
フルリゾルバの動き
フルリゾルバは、名前解決要求のドメイン名が自身のキャッシュに無かった場合、以下のように反復問い合わせを実施します。
- 最上位の権威 DNS サーバである DNS ルートサーバ
- トップレベルドメイン (TLD) を管理している権威サーバ
- セカンドレベルドメイン (2LD) を管理している権威サーバ
- サードレベルドメイン (3LD) を管理している権威サーバ (※必要な場合)
- 結果 (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サーバ
特定のドメイン名と IP アドレスの対応データベースを管理し、自身のデータベースにあるものだけを応答する DNS サーバ。
最後に
インターネット上には、無数の DNS サーバが存在し、DNS サーバ同士が互いに連携し合い名前解決を行っています。
これが DNS (Domain Name System: ドメインネームシステム) です。