DNS(Domain Name System)とは、ドメインネームシステムの名の通りドメイン名とIPアドレスを対応関係を管理するシステムのこと。
DNSがないと例えばWebサイトにアクセスするのに「https://it-biz.online/」と入力するのではなく、「https://192.168.1.1」のようにIPアドレスを入力する必要がでてきます。

このページではDNSって何?どういう仕組みで動いている?なぜDNSが必要なの?という疑問をお持ちの方に、分かりやすく3分でDNSについての基礎知識を解説します。
図解付きでご説明します。
Web系エンジニアを目指す方やネットワークエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。
DNSとは?わかりやすく解説

DNS(Domain Name System)とは、ドメイン名をIPアドレスに変換する仕組み(=プロトコル)です。

DNSというと難しく考えてしまう人がいますが、基本的には上記の図を理解できればOK。決して難しい内容ではありません。
ただしこのページでは、「なぜドメイン名とIPアドレスを変換する必要があるのか?」「そもそもIPアドレスって何?」「ドメインって何」という部分まで深堀しながら解説します。
IPアドレス=インターネットの世界における「住所」
IPアドレス(Internet Protocol Address)とは、インターネットの世界における住所のようなもので、コンピュータを一意に特定するための識別子です。
このIPアドレスはインターネットに接続する全てのコンピュータに割り振られており、IPアドレスをもとにお互いに通信を行うことでメールの送受信やWebページの閲覧が可能となります。


例えば誰かに手紙を送りたいとき―。その人の住んでいる「住所」を調べて手紙を郵便局に配達しますよね。
これと同じようにインターネットの世界でも「IPアドレス」を基に、メールをどこに送れば良いか?動画データを誰のスマートフォンに送れば良いか?などを判断します。

IPアドレスについて更に詳しく学習しておきたい方は以下の記事をご覧ください。
IPアドレスのデメリット→数字の羅列で「わかりづらい」
IPアドレスにもデメリットがあります。

それは、ずばり人間にとって理解しづらいという点です。
https://192.168.115.115 という羅列でWebページを指定する場合、一体これがどんなWebページを表しているのか見当がつきません。また、数字の羅列でメールの宛先を指定するような場合、入力ミスで誤って別の宛先に送ってしまうような場合も考えられます。
そこで考え出されたのがドメイン名です。
人間にとって分かりやすい「お名前」を付けることで、ストレスなくインターネットを利用する方法が考え出されたのです。


「https://www.google.com」や「https://it-biz.online」とした方がどんなページなのか想像つきやすいですよね。
この、IPアドレスとドメイン名の対応関係を管理し、リクエストに応じてIPアドレスとドメイン名を変換する役割を担うのがDNS(Domain Name System)です。


ただし、実際には1つのDNSサーバに全世界のコンピュータのドメイン名とIPアドレスの対応表が保存されているわけではありません。
どのように全世界のドメイン名とIPアドレスを管理しているか?次の章ではさらに詳しいDNSの仕組みを解説します。
DNSの仕組みをさらにわかりやすく
ここからは、さらに一歩深くDNS(Domain Name System)の仕組みを解説していきます。

まずは、DNSの仕組みを理解するための前提となるドメイン名の構造について簡単に解説します。
ドメイン名の構造
DNSの仕組みを理解するためにはドメイン名の構造を理解する必要があります。
ドメイン名は以下のように階層構造がとられています。


この階層構造は現実世界の「住所」と同じように考えればOK。

日本という国の下に東京都があり、東京都の下に千代田区、霞が関と続きます。それぞれが階層関係になっているように、ドメイン名も同じように階層構造をとります。
一番右側のドメインをトップレベルドメインと呼び、そこから左に行くにつれ階層が下がっていきます。上位の階層が下位の階層のドメイン名を管理します。
DNSサーバの構造
ドメイン名が階層構造で管理されているため、DNSサーバも階層構造をとります。


1番上の「root」を頂点として、トップレベルドメイン・第2レベルドメイン・・・と各階層が下に続く形です。
上記の図における1つ1つの箱はDNSサーバを表しています。
各DNSサーバは自分の担当するドメイン名についてIPアドレスとドメイン名の対応表を保持しており、同時に自分の配下に存在するドメインのDNSサーバの管理も行っています。
DNSの仕組み―名前解決

さて、上記の前提知識を頭に入れたうえで、実際にどのようにDSNがIPアドレスとドメイン名の変換を行っているかを見ていきます。
例として、Webブラウザ上で「https://www.example.com」と入力した場合の動作を解説します。
まず、最初のステップはリゾルバがローカルのDNSサーバーに問い合わせを行うことから始まります。

DNSサーバへ問い合わせを行うホスト(=コンピュータ)、もしくはその問い合わせを行うソフトウェアのことをリゾルバ(英:Resolver)と呼びます。

DNSサーバの対になる概念なので、DNSクライアントと呼ばれる場合もあります。
ローカルDNSサーバとは、リゾルバが最初に問い合わせを行うDNSサーバのことです。これは通常家庭内ネットワークにおいてはルーターがその役割を兼ねています。
このローカルDNSサーバは、最近利用したドメイン名とIPアドレスの対応表を保持しているのが普通で、もし最近アクセスしたドメインであれば対応するIPアドレスをリゾルバに返します。

ただし、初めてアクセスするドメインについてはIPアドレスの対応表を保持していないため、IPアドレスを返すことができません。その場合は、ルートDNSサーバに問い合わせを行います。

ルートDNSサーバとは、DNSにおける最高権威者。ルートDNSサーバは、対応するIPアドレスが分かればその結果を返しますが、メインとなる役割は世界中のDSNサーバの元締めです。
つまり、ルートDNSサーバからIPアドレスが返ってくることはほとんどなく、実際には「どのDNSサーバであればドメイン名とIPアドレスの対応表を持っているか?」を教えてくれます。

今回の例でいくと、「www.example.co.jp」に対するIPアドレスの問い合わせなので、ルートDNSサーバは、トップレベルドメインの「jp」を管理するDNSサーバを紹介してくれます。


ローカルDNSサーバは、ルートDNSサーバから受け取った返答を確認し「jp」DNNサーバに問い合わせを投げれば良いことを知ります。したがって、そのまま同じ質問を「jp」DNSサーバに問い合わせます。

ここで、「jp」DNSサーバは対応するIPアドレスを知っていれば回答を返します。しかし、対応するIPアドレスがない場合はさらに下の階層のDNSサーバを紹介します。

今回の例でいうと、「jp」ドメインが管理する「com」DNSサーバに問い合わせをすれば良さそうであることが分かりますよね。「jp」DNSサーバは「com」DNSサーバを紹介します。

以降は同様の処理を対象のドメイン名とIPアドレスの対応表を保持するDNSサーバが見つかるまで繰り返します。

最終的に「example」ドメインを管理するDNSサーバから対応するIPアドレスを返してもらい、目的とするIPアドレスを把握することができる仕組みです。
実際にWebブラウザを用いてサイト閲覧を行う際には、取得したIPアドレスを用いられます。

以上がDNSの仕組みの概要です。
ネットワークエンジニアを目指したい方は
IPアドレスだけでなく、ネットワークの基礎を1から学びたい方はこちらの書籍を購入してがっつり学びましょう!
さくっと手軽に読める内容ではないのですが、ネットワークエンジニア全員が必ず読破している本と言っても過言ではありません。是非この機会にチャレンジしてみてみましょう。