【DNSの機能(名前解決の動作)について】
このHPはDNSの機能(名前解決の動作)についてまとめたものです。
1-1 DNSの動作について
サーバー、端末、各種デバイスで動作する各種のプログラムは、ネットワークを介してアクセスしようすとする対象がドメイン名で指定されていたら、まずそのドメイン名をIPアドレスに変換し、その後に、そのIPアドレスを指定して、対象と通信を始める。この変換の際にDNSが使用される。
また、DNSには「名前解決」と「ゾーン転送」という2つの仕組みを提供している。
この2つは役割や機能、使用しているレイヤー4プロトコル等、あらゆる点で大きな違いがある。
■名前解決
IPアドレスとドメイン名を相互に変換する処理のことを「名前解決」という。
DNSによる名前解決は、「スタブリゾルバ(DNSクライアント)」、「キャッシュサーバー(フルサービスリゾゾルバ)」、「権威サーバー」が相互に連携しあうことによって成り立っている。
◆名前解決の手順
では具体的にどのように名前解決がされるのか、ブラウザから「www.yahoo.co.jp」へアクセスしたときの名前解決の手順を見てみる

@ユーザーがWebブラウザで、「https://www.yahoo.co.jp」と入力する。ブラウザはスタブリゾルバに「www.yahoo.co.jp」のドメイン名を渡してIPアドレスを要求する。
Aブラウザから名前解決の指示を受け取ったスタブリゾルバは、その指示をキャッシュサーバーに送り、名前解決をリクエストする。
Bキャッシュサーバーは、自身が持つゾーン情報から、「www.yahoo.co.jp」のIPアドレスを検索するが、該当する情報がないため、まず「ルートDNS」へ、「www.yahoo.co.jp」のトップレベルドメインである「jp」ドメインを管理するDNSサーバーを問い合わせる。
ルートDNSサーバーのゾーン情報には、「com」,「net」,「jp」等の下位層(セカンドレベルドメイン)の情報が登録されている。
ルートDNSサーバーは下位のDNSサーバーのIPアドレスを返信する。
C「jp」ドメインを管理するDNSの情報を問い合わせられたルートDNSサーバーは、キャッシュサーバーに対し、「jp」ドメインを管理するDNSサーバーの情報を返答する。
D「jp」ドメインを管理するDNSサーバーの情報を、ルートDNSサーバーより返答されたキャッシュサーバーは、次に問い合わせられた「jp」ドメインを管理するDNSサーバーへ、「www.yahoo.co.jp」のセカンドレベルドメインである「co.jp」ドメインを管理するDNSサーバーを問い合わせる。
E「co.jp」ドメインを管理するDNSサーバーを問い合わせられた「jp」ドメインを管理するDNSサーバーは、キャッシュサーバーに対し、「co.jp」ドメインを管理するDNSサーバーの情報を返答する。
F「co.jp」ドメインを管理するDNSの情報を管理するDNSサーバーの情報を「jp」ドメインを管理するDNSサーバーより返答されたキャッシュサーバーは、次にその「co.jp」ドメインを管理するDNSサーバーへ、「www.yahoo.co.jp」ドメインを管理するDNSサーバーを問い合わせる。
G「yahoo.co.jp」ドメインを管理するDNSを問い合わせられた「co.jp」ドメインを管理するDNSサーバーは、キャッシュサーバーに対し、「yahoo.co.jp」ドメインを管理するDNSサーバーの情報を返答する。
H「yahoo.co.jp」ドメインを管理するDNSサーバーの情報を「co.jp」ドメインを管理するDNSサーバーより返答されたキャッシュサーバーは、次にその「yahoo.co.jp」ドメインを管理するDNSサーバーへ「www.yahoo.co.jp」のIPアドレスを問い合わせる。
I「www.yahoo.co.jp」ドメインを管理するDNSを問い合わせられた「www.yahoo.co.jp」ドメインを管理するDNSサーバーは、キャッシュサーバーに対し、「www.yahoo.co.jp」ドメインを管理するDNSサーバーの情報を返答する。
J「www.yahoo.co.jp」ドメインを管理するDNSサーバーの情報を「yahoo.co.jp」ドメインを管理するDNSサーバーより返答されたキャッシュサーバーは、次にその「www.yahoo.co.jp」ドメインを管理するDNSサーバーへ「www.yahoo.co.jp」のIPアドレスを問い合わせる。
K「www.yahoo.co.jp」のIPアドレスを問い合わせられた「www.yahoo.co.jp」ドメインを管理するDNSサーバーは、実際に「www.yahoo.co.jp」の情報を知っているので、「www.yahoo.co.jp」のIPアドレスである「1.1.1.1(ここでは例)」を返答する。
※先に出てきた、「jp」や「co.jp」を管理するDNSサーバーのように管理するDNSサーバーを返答する訳ではないことに注意。
K「www.yahoo.co.jp」の名前解決が完了し、IPアドレスを求めることが出来たので、キャッシュサーバーは、その情報をスタブリゾルバへ返答する。
Lスタブリゾルバは、キャッシュサーバーから返答があった「www.yahoo.co.jp」のIPアドレスを元に、「1.1.1.1(ここでは例)」へアクセスし、ブラウザ上にyahooのWebサイトを表示させる。
この様に、キャッシュサーバーがツリー構造の上位のDNSサーバーから順々に問い合わせることで、名前の解決が行われ、クライアントは目的のサーバーへアクセスできる。
このHPはDNSの機能(名前解決の動作)についてまとめたものです。
1-1 DNSの動作について
サーバー、端末、各種デバイスで動作する各種のプログラムは、ネットワークを介してアクセスしようすとする対象がドメイン名で指定されていたら、まずそのドメイン名をIPアドレスに変換し、その後に、そのIPアドレスを指定して、対象と通信を始める。この変換の際にDNSが使用される。
また、DNSには「名前解決」と「ゾーン転送」という2つの仕組みを提供している。
この2つは役割や機能、使用しているレイヤー4プロトコル等、あらゆる点で大きな違いがある。
■名前解決
IPアドレスとドメイン名を相互に変換する処理のことを「名前解決」という。
DNSによる名前解決は、「スタブリゾルバ(DNSクライアント)」、「キャッシュサーバー(フルサービスリゾゾルバ)」、「権威サーバー」が相互に連携しあうことによって成り立っている。
◆名前解決の手順
では具体的にどのように名前解決がされるのか、ブラウザから「www.yahoo.co.jp」へアクセスしたときの名前解決の手順を見てみる

@ユーザーがWebブラウザで、「https://www.yahoo.co.jp」と入力する。ブラウザはスタブリゾルバに「www.yahoo.co.jp」のドメイン名を渡してIPアドレスを要求する。
Aブラウザから名前解決の指示を受け取ったスタブリゾルバは、その指示をキャッシュサーバーに送り、名前解決をリクエストする。
Bキャッシュサーバーは、自身が持つゾーン情報から、「www.yahoo.co.jp」のIPアドレスを検索するが、該当する情報がないため、まず「ルートDNS」へ、「www.yahoo.co.jp」のトップレベルドメインである「jp」ドメインを管理するDNSサーバーを問い合わせる。
ルートDNSサーバーのゾーン情報には、「com」,「net」,「jp」等の下位層(セカンドレベルドメイン)の情報が登録されている。
ルートDNSサーバーは下位のDNSサーバーのIPアドレスを返信する。
C「jp」ドメインを管理するDNSの情報を問い合わせられたルートDNSサーバーは、キャッシュサーバーに対し、「jp」ドメインを管理するDNSサーバーの情報を返答する。
D「jp」ドメインを管理するDNSサーバーの情報を、ルートDNSサーバーより返答されたキャッシュサーバーは、次に問い合わせられた「jp」ドメインを管理するDNSサーバーへ、「www.yahoo.co.jp」のセカンドレベルドメインである「co.jp」ドメインを管理するDNSサーバーを問い合わせる。
E「co.jp」ドメインを管理するDNSサーバーを問い合わせられた「jp」ドメインを管理するDNSサーバーは、キャッシュサーバーに対し、「co.jp」ドメインを管理するDNSサーバーの情報を返答する。
F「co.jp」ドメインを管理するDNSの情報を管理するDNSサーバーの情報を「jp」ドメインを管理するDNSサーバーより返答されたキャッシュサーバーは、次にその「co.jp」ドメインを管理するDNSサーバーへ、「www.yahoo.co.jp」ドメインを管理するDNSサーバーを問い合わせる。
G「yahoo.co.jp」ドメインを管理するDNSを問い合わせられた「co.jp」ドメインを管理するDNSサーバーは、キャッシュサーバーに対し、「yahoo.co.jp」ドメインを管理するDNSサーバーの情報を返答する。
H「yahoo.co.jp」ドメインを管理するDNSサーバーの情報を「co.jp」ドメインを管理するDNSサーバーより返答されたキャッシュサーバーは、次にその「yahoo.co.jp」ドメインを管理するDNSサーバーへ「www.yahoo.co.jp」のIPアドレスを問い合わせる。
I「www.yahoo.co.jp」ドメインを管理するDNSを問い合わせられた「www.yahoo.co.jp」ドメインを管理するDNSサーバーは、キャッシュサーバーに対し、「www.yahoo.co.jp」ドメインを管理するDNSサーバーの情報を返答する。
J「www.yahoo.co.jp」ドメインを管理するDNSサーバーの情報を「yahoo.co.jp」ドメインを管理するDNSサーバーより返答されたキャッシュサーバーは、次にその「www.yahoo.co.jp」ドメインを管理するDNSサーバーへ「www.yahoo.co.jp」のIPアドレスを問い合わせる。
K「www.yahoo.co.jp」のIPアドレスを問い合わせられた「www.yahoo.co.jp」ドメインを管理するDNSサーバーは、実際に「www.yahoo.co.jp」の情報を知っているので、「www.yahoo.co.jp」のIPアドレスである「1.1.1.1(ここでは例)」を返答する。
※先に出てきた、「jp」や「co.jp」を管理するDNSサーバーのように管理するDNSサーバーを返答する訳ではないことに注意。
K「www.yahoo.co.jp」の名前解決が完了し、IPアドレスを求めることが出来たので、キャッシュサーバーは、その情報をスタブリゾルバへ返答する。
Lスタブリゾルバは、キャッシュサーバーから返答があった「www.yahoo.co.jp」のIPアドレスを元に、「1.1.1.1(ここでは例)」へアクセスし、ブラウザ上にyahooのWebサイトを表示させる。
この様に、キャッシュサーバーがツリー構造の上位のDNSサーバーから順々に問い合わせることで、名前の解決が行われ、クライアントは目的のサーバーへアクセスできる。