DNSの詳細動作

DNSの詳細動作

まず、WebブラウザやメールソフトがDNSサーバにIPアドレスの 問い合わせをすると、各アプリケーションに含まれている 「リゾルバ(resolver)」というプログラムが動作します。

リゾルバとは、DNSサーバにホスト名を通知してIPアドレスの検索を 依頼したり、その逆を依頼したりするクライアント側のプログラムのこと。

Webブラウザやメールソフトなどのアプリケーションからの指示で、 リゾルバがDNSサーバへIPアドレス問い合わせのメッセージを送信します。

このメッセージには、「www.itbook.infoに対するIPアドレスを教えて下さい」 という内容が入っています。

メッセージを受け取ったDNSサーバは、自分が持っている情報から 対応するIPアドレスを探します。

この情報のことを「ゾーン情報」と呼びます。

DNSサーバは対応するIPアドレスを応答メッセージに入れて リゾルバへと返信します。

リゾルバは、受信したメッセージから内容を確認して、 IPアドレスをアプリケーションに伝えます。 こうすることで、WebブラウザやメールソフトがIPアドレスを認識し、 通信が可能になります。

 

名前解決のやり取り

 

DNSの問い合わせのやり取りは、TCPを使って行うことも可能ですが、 通常はUDPを使って行われます。 DNSとのやり取りはパケットサイズが小さく、信頼性よりもレスポンスを 重視することから、TCPよりもUDPの方が効率的であるためです。

分散処理という考え方

インターネット上には非常に多くのドメインが存在して、 すでに世界のドメイン数は1億8000万件を超えて現在も増え続けています。

これほど多くのドメイン数を1台のDNSサーバでまかなうことは当然不可能。 そのため、インターネット上に多数のDNSサーバを置き、 相互に連携してシステムを構成しています。

DNSサーバはリゾルバから問い合わせを受けると、 自分のゾーン情報から答えを探して、もし答えがなければ、 別のDNSサーバに問い合わせて探してくれます。

ドメイン名は「www.test.co.jp」のように「.(ドット)」で 区切られています。

これにはちゃんと理由がありまして、それぞれが階層を示していて、 右側にある文字列ほど上位の階層であることを意味しています。

これは、DNSサーバが「ルート・サーバ」と呼ばれる最上位層の DNSサーバを中心にツリー構造になっているためです。

 

DNSの階層構造

関連記事