DNSとは?について初心者でもわかりやすく解説したいと思います。
この記事を読むことでDNSの仕組みがざっくりと理解することができます。
Table of Contents
DNSの仕組み概要
まずDNSとはドメイン・ネーム・システム
ドメインとIPアドレスの紐づけを行う仕組みのことです。
Webページを閲覧するにしても、そのWebページのもととなっているHTMLやCSS、その他PHPなどのプログラミング言語で記載されたファイルがサーバーに存在しています。
閲覧する際にはサーバーに対してkyrieee.comのページを表示したい、と指示したとしても、相手の住所がわからないと目的にたどり着けないですよね。
「kyrieee.comのサイトを見たい」と言ったら、「住所はここだよ」と教えてくれる仕組みが
DNSです。
DNSの仕組み詳細
「kyrieee.com.comを見たい」と言ったら、「住所はここだよ」と教えてくれる仕組みがDNSです。
というお話をしましたが、コンピュータにはそれぞれIPアドレスを保持しています。
このIPアドレスが住所と思っていただければ良いです。(厳密にはIPアドレスはもう少し細分化して
説明が必要ですが)
よく見る、100.217.161.67みたいなドットで区切った数字の羅列です。
WebページはHTMLやCSS,PHPなどのファイルによって表示していますが、そのファイルがサーバーの中に格納されていて、そのサーバーがいわば今回の目的地になるわけですが、目的地のサーバーにたどり着くにはこのIPアドレスが必要になるわけです。
IPアドレスが分かって、目的のサーバーにたどり着くことができれば、無事自分のパソコンの画面に「kyrieee.com.com」のページが表示されるわけです。
DNSの仕組み名前解決
では、「kyrieee.com.com」のIPアドレスが100.xxx.xxx.xxxのようには、どうすればわかるのか?
ここでDNSの登場です。
ここからDNSの仕組みをお伝えします。
自分のPCから「kyrieee.comのIPアドレスを教えて」、とリクエストすると、最終的にIPアドレスに変換されるわけですが、
この「kyrieee.com」からIPアドレスへの変換の仕組みを名前解決と言います。
名前解決するためにはいくつか、手順が必要です。
名前解決するためには、Windowsの場合、まずはhostsファイルを参照します。
このファイルにkyrieee.comのIPアドレスの情報が記載されていれば、名前解決を行い、ブラウザにkyrieee.comのページを表示することができます。
DNSの仕組みできる以前はこの方法で、名前解決を行っていました。
しかし、このhostsファイルでの運用に限界が生じてきて、そこからDNSサーバーがドメインとIPアドレスの対応表を管理し、対応付けを行う仕組みが出来上がった。
図にすると以下のようになります。
clientは自身のPCをイメージしてもらえればと思います。
①clientPCからkyrieee.comとURLに入力すると、前述した通り、まずはhostsファイルに情報があるかどうかを確認します。なければDNSキャッシュサーバーに問い合わせを行います。
②hostsファイルにDNSキャッシュサーバーにkyrieee.comのIPアドレスはありますか?と問い合わせを行います。
このDNSキャッシュサーバー、いわば司令塔のような役割を果たし、こいつを起点に多数のDNSサーバーにkyrieee.comのIPアドレスのありかを探るように指示します。
DNSキャッシュサーバーに情報がない場合、ルートサーバーに問い合わせを行います。
③ルートサーバーは「.jp」「.com」のようなTLD(トップレベルドメイン)と言われるドメインを管理しているサーバーになります。
世界中で13台存在しか存在しないサーバーで、こいつが機能しなくなると名前解決ができなくなる超重要なサーバーです。
ルートサーバーは「.com」に関する情報なら、.comのDNSサーバーが知っているよ、とDNSキャッシュサーバーに返答します。
④.comのDNSサーバーに問い合わせを行い、.comのDNSサーバーはkyrieee.comのIPアドレスはNameサーバーが知っているよ、とDNSキャッシュサーバーに返答します。
⑤そして、やっとこさ、kyrieee.comのIPアドレスを知っているサーバーのNameサーバーを見つけ、
kyrieee.comのIPアドレスは「100.xx.xx.x」だよ。
と返答をもらい、DNSキャッシュサーバーはclientに対して、IPアドレスの情報を渡し、無事にブラウザ上にkyrieee.comのページを表示するわけです。
①~⑤までの流れをコンピュータは一瞬で行います。
すごいですね。
ちなみにDNSキャッシュサーバーですが、情報をキャッシュ、要するに情報を一時保管します。
一時保管をすることで、どうなるかというと、いちいち各サーバーに問い合わせをしなくても、
DNSキャッシュサーバーが、ドメインに対応するIPアドレスの情報を保持しているため、問い合わせの手間が省けます。
DNSの仕組みまとめ
ここまでDNSはドメインとIPアドレスの対応付けを行う重要な役割である。
ということを解説してきました。
すこーしご理解いただけたでしょうか?
このDNSの仕組みが頭の中で理解ができていると、なんでURLにドメインを入力するとブラウザに表示できるんだろう?という概念が理解でき、どういう流れでブラウザにページが表示されるか?が一瞬で頭の中をめぐってフロー図を思い浮かべることができるようになります。
\無料コンテンツを配布しております/
毎日エンジニアとして勉強をしているのに
そんな毎日に悩みを抱えている方
もしかしたら間違った勉強方法をしているかもしれません。
エンジニアとして生きていくための正しい勉強とは
一体何でしょうか?
以下からご確認ください