1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[初心者向け] DNSの仕組み 〜 ブラウザがWebサイトを表示するまで

Posted at

はじめに

ブラウザでWebサイトを表示する際、最初に行われるのがDNS(Domain Name System)による名前解決。
これは、人間が理解しやすい「www.google.com」のようなドメイン名を、コンピュータが理解できるIPアドレス「172.217.161.68」に変換する仕組みである。

ちなみに、

dig www.google.com

をターミナルで出力すると、IPアドレスが返ってくる。

DNS解決の流れ

例として「www.google.com」にアクセスする場合のフローを見ていく。

1. DNSキャッシュによるチェック

 まず、www.google.comがブラウザ内でクリックされると、以下の順番でキャッシュをチェックする。

  1. ブラウザのDNSキャッシュ
  2. ローカルDNSキャッシュ
  3. ルーターのDNSキャッシュ (設定されている場合)

 これらは、最近アクセスしたサイトの情報が一時的に保存される場所。「一時的に」なので、設定された有効期限を過ぎるとその情報は破棄される。有効期限は、TTL(Time To Live)といい、秒単位で設定される。

 ローカルDNSキャッシュとは、ローカルマシン(あなたが使用しているMacBookなど)のOSレベルのキャッシュのこと。

 もし直近で同じサイトにアクセスしたことがあり、これらのキャッシュに情報が残っていたら、情報が取得できた地点でWebサイトが表示される。

(補足)

TTL(Time To Live)は、ドメインの管理者が設定する。ちなみに、冒頭で紹介したコマンド「dig www.google.com」を実行してみると、下記の記述部分があった。

;; ANSWER SECTION:
www.google.com.		27	IN	A	172.217.161.68

この「27」は、TTLの残り時間を示している。通常、googleは300秒のTTLを設定しているみたい。つまり、このコマンドを打ったのは、www.google.comにアクセスしてから273秒後だった、ということ。

2. ISPのDNSサーバーへの問い合わせ

 1のローカルDNSキャッシュに情報がなかった場合、次にISP(Internet Service Provider、 NTTとか)のDNSサーバーに問い合わせる。

 ISPは日本全国の各地域にDNSサーバーを設置しており、負荷分散と冗長性のため、通常はプライマリとセカンダリの2つのサーバーが設定されている。

 もしこのDNSサーバーに情報があったら、ここから情報を取得してWebサイトが表示される。

⚠︎これ以降のプロセスは、ISPのDNSサーバーが代わりに行う

3. ルートDNSサーバーへの問い合わせ

 もしISPのDNSサーバーにもなかったら、ルートDNSサーバーに問い合わせる。

 ルートDNSサーバーとは、道案内役みたいなもの。www.google.comというドメインに対して、TLD(トップレベルドメイン)は「.com」だからこのサーバーにアクセスしてみてね、という情報を返す。

 ちなみに、よく「ルートDNSサーバーは世界に13台」と言われているが、これは語弊がある。物理的なサーバーが13台しかないというわけではないからだ。13個あるのは、ルートDNSサーバーアドレス。同じアドレスを持ったサーバーが世界中に分散されており、もっとも近いサーバーに誘導される。

4. TLDサーバーへの問い合わせ

ルートDNSサーバーからTLDサーバーの情報を受け取ると、ここに辿り着く。

 TLDサーバーは、特定のトップレベルドメイン(.com、.org、.netなど)を管理しているサーバー。ここでは、www.google.comの「google.com」部分を担当するDNSサーバーの情報を提供する。このサーバーは、最終的なIPアドレスを持つサーバーの場所を教えてくれる。

5. オーソリティDNSサーバー

 TLDサーバーから情報を取得すると、このオーソリティDNSサーバーに辿り着く。

 オーソリティDNSサーバーは、ドメインレジストラ(例:お名前.com)が提供するDNSサーバーで、そのドメインの正式な(権威のある)情報を持つサーバーである。ここから最終的な「www.google.com」に対応するIPアドレスが返され、ブラウザは目的のWebサーバーに接続することができるようになる。

最後に

 以上が、ブラウザがWebサイトを表示するまでの、DNSのフローである。

 これらの ルートDNSサーバーTLSサーバーオーソリティDNSサーバー という階層的な構造により、世界中の膨大な量のドメインが効率的に管理され、キャッシュの活用により高速な名前解決が実現されている。

 ただ、留意が必要なのは、実際は「3. ルートDNSサーバーへの問い合わせ」以降はISPのDNSサーバーが代わりに行う、ということ。また、通常はこれらのプロセスがミリ秒単位で実行されるため、ユーザーがこの複雑な過程を意識することはない。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?