インターネット

ドメイン名とは?構造やDNSについて初心者にもわかりやすく解説!

勉強結構好き マン
勉強結構好き マン

こんな悩みを解決できます!

営業職から会社員WEBエンジニア、
その後フリーランスWEBエンジニアに転向した自分が解説します。

ドメイン名とは?

ドメイン名とはインターネットにおけるコンピュータの住所です。

インターネット上に存在する無数のコンピュータの中から目当てのものを特定するために使われます。

ドメイン名は

example.com

のように文字列をドットで区切った形で扱われます。

ドメイン名とは

ドメイン名はURLやメールアドレスの一部として使われています。

URLやメールアドレスにドメイン名を使うことで、コンピュータ側が『どのコンピュータとデータをやり取りするか』を判断できるようになります。

URLとメールアドレス内のドメイン名

IPアドレスとの関係

ドメイン名はIPアドレスを人間が読みやすい形に変換したものです。

IPアドレスはドメイン名と同じくインターネットにおけるコンピュータの住所を表しますが、コンピュータ内部で使われる値です。

本来は2進数なのですが、流石に読みづらいので以下のように10進数表記で扱われます。

192.0.2.0

ですが、人間にとってはこのままでも非常に覚えづらいです。

そのため、この数字の羅列を人間が覚えやすい形に変換したものがドメイン名になります。

IPアドレスはドメイン名を変換したもの

IPアドレスについて詳しく知りたい方はこちらの記事がおすすめです。

ドメイン名の構成

ドメイン名は文字列をドットで繋げた形で構成されます。

ドメイン名を構成する要素は右から順番に、

  1. TLD(Top Level Domain : トップレベルドメイン)
  2. 2LD(2nd Level Domain : セカンドレベルドメイン)
  3. 3LD(3rd Level Domain : サードレベルドメイン)

と呼ばれます。

ドメイン名の構造

「.jp」や「.com」は代表的なTLDです。

TLDの種類

ドメイン名のうち、TLD(Top Level Domain)には大きく分けて2種類あります。

  1. ccTLD(Country Code Top Level Domain)
  2. gTLD(Generic Top Level Domain)

ccTLDは国や地域ごとに割り当てられるTLDです。

Japan => .jp China => .cn United Kingdom => .uk など、国名を2文字で表したものになります。

gTLDは国や地域によらないTLDです。

.com.net など、個人が簡単に取得できるものが多いです。

ただ一部米国の教育機関限定の .edu や、同じく米国の政府機関限定の .gov など、特定の制限が設けられているgTLDも存在します。

ドメイン名とIPアドレスを紐付ける仕組み

私たちがWebサイトを閲覧する時はURLとしてドメイン名を指定しますが、コンピュータ側が欲しいのはIPアドレスです。

そのため、ドメイン名をIPアドレスに変換してあげる仕組みが必要です。

この「ドメイン名に紐づけられたIPアドレスを取得する」仕組みのことを『名前解決』と言います

名前解決を行うための仕組みは以下の2つです。

  1. HOSTSファイル
  2. DNS(Domain Name System)

HOSTSファイル

HOSTSファイルとは、IPアドレスとそれに紐づくドメイン名をまとめたテキストファイルです。

以下のようにIPアドレスとそれに対応する名前をつけることで、名前解決を行ってくれます。

# IPアドレス ホスト名 別名
192.0.2.0 example example.co.jp

この例だと https://example.co.jp/ にアクセスすると 192.0.2.0 のコンピュータに接続できるようになります。

まだ開発中でインターネット上に公開されていないサイトにドメイン名を使ってアクセスしたい時などに使われます。

昔はHOSTSファイルを使ってインターネット全体の名前解決を行っていたのですが、インターネットの普及に伴ってコンピュータの数が激増し、管理に限界が来てしまいました。

その結果、現在は後述のDNS(Domain Name System)がメインで扱われています。

HOSTSファイルはほとんどのOSに存在します。
Windowsでは C:\Windows\System32\drivers\etc\hosts
Macでは /private/etc/hosts
にあります。

DNS(Domain Name System)

DNS(Domain Name System)とは、「ドメイン名に紐づけられたIPアドレスを取得する」処理を行うシステムです。

以下の図は example.co.jp というドメイン名を名前解決する時の流れになります。

まずは全体像をざっと把握してみてください。

DNSの処理の流れ

DNSでは大きく分けて3つの登場人物がいます。

  1. スタブリゾルバー
  2. フルリゾルバー
  3. 権威サーバー

スタブリゾルバー

『名前解決の窓口』です。

私たちが使うPCやスマートフォン上で動作します。

この後説明するフルリゾルバーに「名前解決お願いします」と依頼をして、名前解決の結果得た情報を受け取ります。

フルリゾルバー

『名前解決の請負人』です。

スタブリゾルバーから名前解決を依頼されると、権威サーバーにIPアドレスを問い合わせます。

また同じサイトに何度もアクセスするのに毎回問い合わせを行うのは非効率なため、一度名前解決を行なって得た情報をフルリゾルバー内に保存しておくことができます。

保存された情報は『キャッシュ』と呼ばれるため、フルリゾルバーは別名『キャッシュDNSサーバー』とも呼ばれます。

権威サーバー

『ドメイン名とIPアドレスの管理者』です。

権威サーバーは複数存在し、階層構造でドメイン名を管理しています。

最上位管理者であるルートは直下のTLD(下図で言うところの「jp」「com」「net」)を管理します。

そして各TLDの管理者は各々の直下にある2LD(「jp」であれば「example」「co」「tokyo」)を管理します。

そして各2LDの管理者は各々の直下にある3LDを...といった形で管理が行われています。

DNSの管理方法

それぞれのサーバーは

  1. 自分で管理するドメイン情報
  2. 子サーバーが管理しているドメイン名

の2つを持っています。

名前解決の流れ

登場人物の概要がわかったところで、名前解決の流れを説明します。

  1. スタブリゾルバーからフルリゾルバーに対して「名前解決お願いします」という依頼がされる
  2. フルリゾルバーは最初にルートサーバーに対して問い合わせをする
  3. ルートサーバーはドメイン名の情報は持っていないが、どの子サーバーが該当のドメイン名を管理しているのか知っているので、その子サーバーの情報を教える
  4. フルリゾルバーは教えてもらったサーバーに対して問い合わせをする
  5. 問い合わせを受けたサーバーがドメイン名の情報を持っていればフルリゾルバーへ渡す、持っていなければそのドメイン名を管理している子サーバーの情報を渡す
  6. ドメイン名の情報を受け取ったフルリゾルバーは、スタブリゾルバーへ情報を渡す

上記の流れを知った上で改めて以下の図を見てもらうと、DNSの処理の流れが理解しやすいと思います。

DNSの処理の流れ

まとめ

最後にもう一度ポイントをまとめておきます。

  • ドメイン名とはインターネットにおけるコンピュータの住所
  • ドメイン名はIPアドレスを人間が覚えやすい形に変換したもの
  • ドメインに紐づいたIPアドレスを取得する仕組みとして、HOSTSファイルとDNSがある

この記事で、まずはドメイン名の全体像を把握できるよう努めました。

特にDNSは奥が深いので、気になった方は調べてみることをお勧めします。

DNSについてわかりやすく解説しているおすすめの教材は紹介こちらです。

DNSがよくわかる教科書

  • この記事を書いた人

勉強結構好きマン

『"わからない"を"だいたいわかる"に変える』 をテーマにテクノロジーに関するややこしい知識について解説しています。【経歴】営業職→会社員WEBエンジニア→フリーランスWEBエンジニア【資格】TOEIC L&R 930点

-インターネット