DNSサーバは、クライアントコンピュータとサーバとの間で翻訳のようなことをしています。

私たちが特定のWebサイトを探すことができるのは、Web上のコンテンツすべてに固有の名前がついているからです。
しかし、これらの名前は人間にはとても覚えることのできない数字の羅列として名づけられています。

DNSサーバがあるおかげで、そんな煩雑な名前にニックネームのようなものをつけ、見つけやすくすることができます。
そんな普段は目立たないけど実は重要な「縁の下の力持ち」に焦点を当てて見ていきましょう。

オンラインプライバシーを保護するならセキュリティソフトの導入を検討してみませんか?
インターネットアクセスを暗号化し、ハッカーの攻撃からコンピュータを守りましょう!
オフィシャルサイト【NordVPN】

クライアント・サーバシステム

Webはクライアント・サーバシステムという構造になっています。
はじめに、このシステムによってWebサイトが表示されるまでの流れについて確認しておきます。

まず私たちは、自分のPCをクライアントとして世界中にあるサーバに対してWebページをリクエストします。
そしてサーバが要求されたWebページをレスポンスすることで、クライアントがそれを受け取ることができるという仕組みです。

このように、Webサイトを表示するためにクライアントサイドとサーバサイドで役割を明確に分けた仕組みをクライアント・サーバシステムといいます。

Web上のリソースとは

URI、URL、URNについて

Web上に存在する情報のことをリソースといいます。
HTMLで作成されたサイトや画像、動画、ファイルといったものすべてがリソースです。

そしてWebサイトというのは家のようなものです。
Webサイトの中のそれぞれのページなどのファイルがその家の住人(リソース)になります。

そしてWebリソースには、それを特定するための住民票のようなものがあります。
これをURI(Uniform Resource Identifier)といいます。

大抵の場合はこの住民票に書かれた住所であるURL(Uniform Resource Locator)を用いてWebリソースを特定します。
また、URLの代わりにIDのようなものであるURN(Uniform Resource Name)を用いる場合もあります。
URLやURNは世界中にひとつしか存在しない、一意的な値となります。
つまりURLやURNさえわかれば、Web上に存在するリソースにアクセスすることができるということになります。

もう少し正確に言うと、Webサイトとはリソースを集めたフォルダを指しています。
このフォルダが世界中のどこに存在しているのかを表すのがURLです。
そのフォルダの中にあるファイルが、そのWebサイトを構成しているリソースとなるのです。

場所を特定する2種類の方法

現実にある建物について考えてみます。
その建物の場所を特定するには、住所がわかればよいですよね。
世界中のどこを探しても同じ住所というのは存在しません。

しかし住所(つまり国名や県名、市町村名を組み合わせたもの)は人間が考えて付けた名前のようなものです。
例えば「東京都」という場所は自然界にはもともとなかったものですが、人間がある区画に対してこの名前をつけたことによって認識できるようになっています。

人間がつけた名前ではなく、より数学的に場所を示す方法があります。
それは経度や緯度を組み合わせた座標です。
数値の組み合わせにより地球上のどこの地点でも表すことができます。
しかしこれは、人間にとってはわかりにくい表現です。

以下は東京タワーの住所による表現と座標表現の比較です。

住所表現 :東京都港区芝公園四丁目2番8号
座標表現 :35.6585805,139.7432442,17z

住所も座標も、場所を一意に表現することができます。
住所は人間がつけた名前なので、わかりやすい反面コンピュータには理解できません。
一方で座標は、コンピュータで処理しやすいものの人間にはとても覚えられるものではありません。

これを踏まえてWebリソースの特定方法について見ていきましょう。

Webリソースの座標と住所

Webリソースを特定する時には、IPアドレスからサーバを識別します。
IPアドレスはコンピュータに割り当てられている番号のようなもので、8ビット区切りで4つのオクテットからなる32ビットの2進数からなります。
また、2進数を10進数に変換した表現を用いることも多々あります。

<IPアドレス>

 2進数 :11000000.10101000.00000001.00000001
10進数 :192.168.1.1

これは座標のようなもので、人間には覚えにくいもののコンピュータで扱いやすい形式になっています。

そこで、人間が理解しやすいような名前を付けます。
これはドメイン名といい、例えばこのサイトであれば以下のように表されます。

<ドメイン名>

hash-drip.com

ドメイン名はサイト管理者がつけた名前で、人間が覚えやすいような形で表現されている住所のようなものです。

ということでドメイン名とIPアドレスはそれぞれ、住所や座標に対応しているイメージになります。

高いセキュリティと自動データバックアップなどビジネスに安心して使えるVPSサービスで、今すぐ安全を確保したいならこちらです。
規模に合わせて簡単にスペックUPが可能です!
WebARENA(Suite PRO)

リソース表示の案内

住所と座標を結び付けるカーナビ

ここで、カーナビを思い出してみてください。
通常ナビで行きたい場所を探すときには、目的地の住所を検索します。
しかしコンピュータには住所形式で表された文字列を理解することはできないため、その住所に対応する座標に変換しています。
そして、現在地の座標から目的地の座標までの道筋を案内してくれます。

つまりカーナビには、私たちが行きたい目的地の住所を指定することでその座標を割り出し、道案内をしてくれるシステムがあるといえます。

このような変換はWeb上でも行われており、その役割を果たしているのがDNS(Domain Name System)というものになります。

また、カーナビには建物の名前から座標を特定する仕組みも備わっています。
例えば「イオン」と検索すれば、そのキーワードと関連する建物の一覧を表示し、任意のものを選択すればその場所までの案内を開始してくれますね。
これはブラウザ上にキーワードを入力して検索するのによく似ています。

ブラウザはカーナビに、DNSは住所と座標を変換するシステムに対応していると考えましょう。

DNSについて

DNSは、ドメイン名(住所)とIPアドレス(座標)を結び付けるシステムのことです。

クライアントがサーバに対してURLをリクエストしてからドメイン名を元にIPアドレスをレスポンスするまでの流れは以下のようになっています。

DNSサーバは階層構造になっており、複数のホストで分散化して管理するようになっています。

  1. まずブラウザはルートDNSサーバにアクセスする
  2. 次に「.com」や「.jp」や「.net」といったドメインの種類別のDNSサーバへのアクセスを促す
  3. さらにその種類別のDNSサーバから、探しているWebサイトのDNSサーバの情報を入手する
  4. 目的とするWebサイトのIPアドレスを取得し、Webサーバへアクセスする

図を見て気づいたかもしれませんが、ルートDNSサーバには世界中からのアクセスが集中することになります。
これがダウンしてしまうと、誰もWebサイトを閲覧することができなくなってしまいます。

そこで、DNSキャッシュという仕組みを利用して負荷を軽減しています。
これはクライアントPCがアクセスしたいサイトのIPアドレス情報を持っている場合にそれを再利用する仕組みです。
一度アクセスしたサイトのIPアドレスはDNSキャッシュサーバにしばらく保存され、再度リクエストされたときに再利用します。

自分のコンピュータのセキュリティが不安な方は、今すぐセキュリティ対策ソフトの導入をご検討ください。
まずは脆弱性診断からコンピュータが危険にさらされていないかをチェックしましょう。
Webサイトの脆弱性診断なら【SiteLock(サイトロック)】

関連記事

この記事のタグ