PR

DNSとは何か?初心者向けにわかりやすく3分で解説【ネットワーク】

IT-Skills

DNS(Domain Name System)とは、ドメインネームシステムの名の通りドメイン名とIPアドレスを対応関係を管理するシステムのこと。

DNSがないと、例えばWebサイトにアクセスするのに「https://it-biz.online/(=ドメイン名)」と入力するのではなく、「https://192.168.1.1」のようにIPアドレスを入力する必要がでてきます。

このページではDNSって何?どういう仕組みで動いている?なぜDNSが必要なの?という疑問をお持ちの方に、分かりやすく3分でDNSについての基礎知識を解説します。

図解付きでご説明します。

このページで学べる内容
  • DNSとは?
  • ドメイン名/IPアドレスの基礎知識
  • DNSの仕組み
    • DNSサーバとは?
    • リゾルバとは?
    • ルートDNSサーバとは?
  • DNSキャッシュ

Web系エンジニアを目指す方やネットワークエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。

スポンサーリンク

DNSとは?わかりやすく解説

DSNとは わかりやすく

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

DNSとは わかりやすく
図1:DNSとは

DNSというと難しく考えてしまう人がいますが、基本的には上記の図を理解できればOK。決して難しい内容ではありません。

ただしこのページでは、「なぜドメイン名とIPアドレスを変換する必要があるのか?」「そもそもIPアドレスって何?」「ドメインって何」という部分まで深堀しながら解説します。

IPアドレス=インターネットの世界における「住所」

IPアドレス(Internet Protocol Address)とは、インターネットの世界における住所のようなもので、コンピュータを一意に特定するための識別子です。

IPアドレスは以下のように3桁区切りの整数値で表記されます。

192.168.115.115

関連 Internet Protocolとは? / IPアドレスとは?

このIPアドレスはインターネットに接続する全てのコンピュータに割り振られており、IPアドレスをもとにお互いに通信を行うことでメールの送受信やWebページの閲覧が可能となります。

IPアドレスとは
図2:IPアドレスとは

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

IPアドレスのデメリット→数字の羅列で「わかりづらい」

IPアドレスにもデメリットがあります。

それは、ずばり人間にとって理解しづらいという点です。

https://192.168.115.115 という羅列でWebページを指定する場合、一体これがどんなWebページを表しているのか見当がつきません。また、数字の羅列でメールの宛先を指定するような場合、入力ミスで誤って別の宛先に送ってしまうような場合も考えられます。

そこで考え出されたのがドメイン名です。

人間にとって分かりやすい「お名前」を付けることで、ストレスなくインターネットを利用する方法が考え出されたのです。

IPアドレスとドメイン名
図3:IPアドレスとドメイン名

「https://www.google.com」や「https://it-biz.online」とした方がどんなページなのか想像つきやすいですよね。

この、IPアドレスとドメイン名の対応関係を管理し、リクエストに応じてIPアドレスとドメイン名を変換する役割を担うのがDNS(Domain Name System)です。

図4:DNSの仕組み/動作原理

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

前半のまとめ DNS(ドメインネームシステム)の仕組み(概要)

  1. ドメイン名とIPアドレス
    • DNSはインターネット上の各デバイス(サーバーなど)に割り当てられたユニークなIPアドレスを、人間が覚えやすいドメイン名(例:it-biz.online)に変換するためのプロトコル。
  2. 問い合わせのプロセス
    • ユーザーがブラウザにURLを入力すると、そのリクエストに応じてDNSサーバーはIPアドレスとドメイン名を変換してレスポンスを行う。

DNSの仕組みをさらにわかりやすく

ここからは、さらに一歩深くDNS(Domain Name System)の仕組みを解説していきます。

まずは、DNSの仕組みを理解するための前提となるドメイン名の構造について簡単に解説します。

ドメイン名の構造

DNSの仕組みを理解するためにはドメイン名の構造を理解する必要があります。

ドメイン名は以下のように階層構造がとられています。

ドメインの階層構造
図5:ドメインの階層構造

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

日本という国の下に東京都があり、東京都の下に千代田区、霞が関と続きます。それぞれが階層関係になっているように、ドメイン名も同じように階層構造をとります。

一番右側のドメインをトップレベルドメインと呼び、そこから左に行くにつれ階層が下がっていきます。上位の階層が下位の階層のドメイン名を管理します。

ポイント ドメイン名の仕組み/ルール

  1. 階層的構造
    • ドメイン名は階層的な構造を持つ → 一般的には右から左に読む。
    • 最も右側に位置する部分を「トップレベルドメイン(TLD)」と呼ぶ。→代表的なものとして(.com、.org、.net)や国コードTLD(.jp、.uk、.us)などが存在。
    • TLDの左側に位置するのが「セカンドレベルドメイン」。これは具体的なWebサイトや組織を指す(例:google.comの「google」部分)。
    • これらに続く任意の下位のレベルを「サブドメイン」と呼ぶ(例:mail.google.comの「mail」部分)。
  2. 命名規則
    • ドメイン名は英数字とハイフン(-)を使用可能。ただし、ハイフンはドメイン名の最初や最後には置けない。
    • 文字数の制限があり一般的には各レベルで1文字から63文字まで、全体で最大253文字まで。
    • 大文字と小文字は区別されず、どちらも同じドメイン名として扱われる。
  3. ユニークな識別子
    • 各ドメイン名は世界で唯一のものであり、重複することはない。

DNSサーバの構造

ドメイン名が階層構造で管理されているため、DNSサーバも階層構造をとります。

DNSサーバーの階層構造
図6:DNSサーバーの階層構造

1番上の「root」を頂点として、トップレベルドメイン・第2レベルドメイン・・・と各階層が下に続く形です。

上記の図における1つ1つの箱はDNSサーバを表しています。

各DNSサーバは自分の担当するドメイン名についてIPアドレスとドメイン名の対応表を保持しており、同時に自分の配下に存在するドメインのDNSサーバの管理も行っています。

ポイント DNSサーバーの種類

  • ルートDNSサーバー
    • 最上位に位置し、トップレベルDNSへの問い合わせを案内。
  • トップレベルDNSサーバー
    • 特定のドメイン(.com、.netなど)の情報を保持
  • オーソリティブDNSサーバー
    • 特定のドメインに対する正確なIPアドレス情報を保持。

DNSの仕組み―名前解決

さて、上記の前提知識を頭に入れたうえで、実際にどのようにDSNがIPアドレスとドメイン名の変換を行っているかを見ていきます。

例として、Webブラウザ上で「https://www.example.com」と入力した場合の動作を解説します。まず、最初のステップはリゾルバがローカルのDNSサーバーに問い合わせを行うことから始まります。

DNSとは わかりやすく
リゾルバ

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

DNSサーバの対になる概念なので、DNSクライアントと呼ばれる場合もあります。

ローカルDNSサーバとは、リゾルバが最初に問い合わせを行うDNSサーバのことです。これは通常家庭内ネットワークにおいてはルーターがその役割を兼ねています。

このローカルDNSサーバは、最近利用したドメイン名とIPアドレスの対応表を保持しているのが普通で、もし最近アクセスしたドメインであれば対応するIPアドレスをリゾルバに返します。

DNSとは わかりやすく

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

DNSとは わかりやすく

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

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

DNSとは わかりやすく

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

DNSとは わかりやすく

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

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

DNSとは わかりやすく

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

DNSとは わかりやすく

最終的に「example」ドメインを管理するDNSサーバから対応するIPアドレスを返してもらい、目的とするIPアドレスを把握することができる仕組みです。

実際にWebブラウザを用いてサイト閲覧を行う際には、取得したIPアドレスを用いられます。

DNSとは わかりやすく

以上がDNSの仕組みの概要です。

DNSレコード

ドメイン名 ⇔ IPアドレス の対応を整理した情報を「DNSレコード」と呼び、そのドメインに関するDNSレコードを1個にまとめたものを「ゾーンファイル」ます。

このページでは、Webサイトのドメイン名とIPアドレスの変換を例に説明を進めていますが、DNSレコードにはメールサーバーとIPアドレスの対応表やドメイン ⇔ ドメインの対応表など、様々な情報が記載されています。

以下の記事でDNSレコード(ゾーンファイル)の記載内容/設定方法について詳しく解説しておりますので、合わせてご覧下さい。

DNSキャッシュ

毎回↑のようなフローでドメイン名→IPアドレスの変換を行っていると、通信のスピードも下がってしまいます。ここでは、その問題を解決するDNSキャッシュについてもご説明しておきます。

DNSキャッシュとは、以前にアクセスしたWebサイトのドメイン名とIPアドレスのペアを一時的に保存する仕組み・機能です。このキャッシュは、Webページをロードする際の時間を短縮し、効率を高めるために重要な役割を果たします。

  1. 定義
    • DNSキャッシュは、DNSクエリの結果(ドメイン名とそれに対応するIPアドレス)を一時的に保存するシステム。
  2. 目的:
    • インターネットの速度と効率を向上させるために、DNSリクエストの回数を減らす。

DNSキャッシュの機能

Webサイトにアクセスする際、コンピューターは最初にローカルDNSキャッシュをチェックします。もしそれ以前にそのサイトにアクセスしていてキャッシュがまだ有効な場合、コンピューターは直接そのIPアドレスにアクセスします。これにより外部のDNSサーバーに問い合わせる手間が省かれ、時間が節約されます。

  1. DNSリクエストの処理
    • ユーザーがWebサイトにアクセスするとき、そのデバイスのDNSリゾルバは最初にローカルのDNSキャッシュをチェック。
  2. キャッシュの確認
    • キャッシュに該当するドメイン名の記録があれば、そのIPアドレスを直ちに使用する。
  3. キャッシュヒットとキャッシュミス
    • キャッシュに記録がある場合を「キャッシュヒット」と呼び、ない場合を「キャッシュミス」と呼びます。

DNSキャッシュの更新

キャッシュには有効期限が設定されており、これを「TTLTime To Live)」と呼ばれます。

この期間が過ぎると、キャッシュされた情報は「期限切れ」となり、次にそのドメイン名にアクセスする際には新たにDNSサーバーに問い合わせが行われます。こうすることで、ドメイン名のIPアドレスが変更されても、最終的には新しい情報に更新されることになります。

  1. TTL(Time To Live)
    • 各DNSレコードにはTTL(=キャッシュに保存される時間)が設定されている。
  2. キャッシュの期限切れ
    • TTLが経過すると、キャッシュは「期限切れ」となり、次回のリクエスト時に新たなDNSクエリが発生。

DNSキャッシュの欠点

キャッシュの情報が最新でない場合、ユーザーは古い or 不正確な情報に基づいたアクセスを行うことになります。例えば、Webサイトが新しいサーバーに移動した場合、TTLが切れるまでの間古いサーバーのIPアドレスがキャッシュされ続ける可能性があります。

また、セキュリティ面では、DNSキャッシュポイズニングのような攻撃がリスクとして存在します。

  1. 最新情報の遅延
    • DNSレコードが更新された後も、TTLが切れるまでは古い情報がキャッシュされたままになることがあります。
  2. セキュリティリスク
    • DNSキャッシュポイズニングなどの攻撃により、不正な情報がキャッシュされるリスクがあります。

このように、DNSキャッシュはインターネットの効率性を高める重要な機能ですが、最新情報の遅延やセキュリティリスクなど、適切な管理が必要な側面もあります。

まとめ DNS(ドメインネームシステム)とは?

DNSとは わかりやすく
  1. リゾルバによる問い合わせ:
    • ユーザーのデバイス上のDNSリゾルバが、Webサイトへのアクセス時にローカルDNSサーバにドメイン名(例:www.example.com)と対応するIPアドレスの関係を問い合わせる。
  2. ローカルDNSサーバの役割:
    • ローカルDNSサーバに該当するドメイン名の情報がない場合、さらに上位のDNSサーバーに問い合わせを行う。
  3. ルートDNSサーバへの問い合わせ:
    • 最初の問い合わせ先は通常、ルートDNSサーバ。このサーバはトップレベルドメイン(例:.com、.org)に関する情報を保持するDNSサーバを紹介する。
  4. 階層的な問い合わせ:
    • 紹介されたDNSサーバが対応するドメインの情報を持っていない場合、その下の階層(例:特定のドメインに対するオーソリティブDNSサーバ)への問い合わせを紹介。
  5. IPアドレスの特定:
    • 最終的に、目的のドメイン名に対応するIPアドレスが見つかるまで、このプロセスが繰り返される。
  6. DNSキャッシュ:
    • DNSリクエストが行われると、その結果(ドメイン名とIPアドレス)はDNSリゾルバやローカルDNSサーバに一時的にキャッシュ(保存)される。
  7. キャッシュによる効率化:
    • キャッシュされた情報は、次に同じドメイン名へのアクセスがある場合に再利用される。これにより、繰り返しのDNSリクエストを行う必要がなくなり、応答時間が短縮。
  8. キャッシュの有効期限(TTL):
    • キャッシュされた各レコードには「Time To Live(TTL)」が設定されており、これはキャッシュが有効な時間を表す。TTLが切れると、次回のアクセス時に新たなDNSリクエストが必要となる。
DNSの仕組みをさらに詳しく

DNSの仕組みをより具体的な値とコマンドのやり取りを使って説明します。ここでは、一般的なWebブラウザからのDNSクエリのプロセスを例にします。

  1. ユーザーのアクション:
    • ユーザーがブラウザに www.example.com を入力します。
  2. オペレーティングシステムのDNSリゾルバ起動:
    • オペレーティングシステム(OS)はDNSリゾルバを起動し、www.example.com のIPアドレスを見つけるためにローカルDNSキャッシュをチェックします。
# コマンド例 (Windows)
nslookup www.example.com

# コマンド例 (Unix/Linux)
dig www.example.com
  1. ローカルDNSキャッシュのチェック:
    • もしローカルキャッシュに該当ドメインの情報があれば、そのIPアドレスを使用します。
    • キャッシュに情報がなければ、リクエストは設定されているDNSサーバ(例えばISPのDNSサーバ)に転送されます。
  2. ISPのDNSサーバへの問い合わせ:
    • ISPのDNSサーバは、まず自身のキャッシュをチェックします。
    • キャッシュになければ、ルートDNSサーバに問い合わせを行います。
# ルートDNSサーバに対する問い合わせの例
dig @a.root-servers.net www.example.com
  1. ルートDNSサーバの応答:
    • ルートDNSサーバは.comドメインのトップレベルDNSサーバへのリダイレクトを提供します。
  2. トップレベルDNSサーバへの問い合わせ:
    • ISPのDNSサーバは、指示されたトップレベルDNSサーバ(例えば.comの場合)に問い合わせを行います。
# トップレベルDNSサーバに対する問い合わせの例
dig @m.gtld-servers.net www.example.com
  1. オーソリティブDNSサーバへのリダイレクト:
    • トップレベルDNSサーバは、example.comドメインのオーソリティブDNSサーバのアドレスを返します。
  2. オーソリティブDNSサーバへの問い合わせ:
    • 最終的にISPのDNSサーバはオーソリティブDNSサーバに問い合わせを行い、www.example.com のIPアドレスを取得します。
# オーソリティブDNSサーバに対する問い合わせの例
dig @ns.example.com www.example.com
  1. IPアドレスの取得とキャッシュ:
    • 取得したIPアドレスは、ユーザーのデバイスのローカルDNSキャッシュに保存され、ブラウザはこのIPアドレスを使用してWebサイトにアクセス。

ネットワーク学習の決定版(ネットワークエンジニアを目指すなら必見!)

blank
インターネットのプロトコルTCP/IP入門書の決定版!

↑ページ数が多く誰でも手軽に読める内容ではありませんが、ネットワークエンジニアであれば、ほぼ全員が一度は読んだことがある超・有料書籍。是非一度読破しておきたい1冊のご紹介です。

読者特典> 0から学ぶネットワーク入門

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
IT-SkillsNetwork
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました