2
1

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の大まかな仕組みについて調べてみた

Last updated at Posted at 2025-02-13

はじめに

DNS (Domain Name System) について、基本的な部分を調べてまとめました。

目次

概要

DNSとは、ドメイン名とIPアドレスの対応を管理するための仕組みのことです。
例えばhttps://www.hoge.co.jpというURLのWebページにアクセスしたい場合、クライアントPCはこのURLの文字列ではどのWebサーバーに接続すればよいかわかりません。コンピュータはIPアドレスはわかりますが、URLの文字列をみても何のことか分からないからです。そのためDNSサーバーというドメイン名とIPアドレスの対応表をもっているサーバーを使用して、アクセスしたいWebサーバーのIPアドレスを取得します。
例えばブラウザを使用してhttps://www.hoge.co.jpにアクセスしたい場合、DNSサーバーを使用してURLのドメイン名からIPアドレス xx.xxx.xxx.xx (xは数字) に変換します。

このようにドメイン名からIPアドレスを得ることを「名前解決」と呼びます。IPアドレスからドメイン名を得ることも同じく名前解決といいますが、通常はドメイン名からIPアドレスを得るパターンの方が多いです。

アドレスとは、インターネット上における住所を意味します。Addressは英語で「住所」という意味です。
URLといわれる「ホームページアドレス」、メールで使用される「メールアドレス」、コンピュータの住所である「IPアドレス」など、様々な箇所でアドレスという言葉が使用されています。

ドメインとは

ドメインは英語で「領域」や「領土」を指す言葉で、IT用語ではサーバーの位置情報を示すためのIPアドレスを文字列に変換したものを指します。IPアドレスだけしか使用されていないと、人間からみたら数字の違いだけになるので区別がかなり難しいです。そこでIPアドレスを人間に分かりやすく変換したドメインを使用して、URLをみてもどういったサイトに接続している、みたいなイメージができるようになっています。

以下ではURLとメールアドレスの場合の2パターンのドメインを紹介します。

URL

URLはUniform Resource Locator (統一資源位置指定子) の略で、インターネット上のリソース (資源) を特定するための、決まった記号の並びのことです。
例えばhttps://www.hoge.co.jpというURLがあるとするとhoge.co.jpがドメイン部分にあたります。

ドメイン以外の部分について、httpsはプロトコル、https://はスキーム、wwwはホスト名と呼ばれます。

メールアドレス

メールアドレスでは、@より右側の部分がドメインと呼ばれます。@より左側の部分はローカル部と呼びます。その他、ユーザー名と呼ばれたりもします。
例えばhoge@Sample.co.jpというメールアドレスがあるとするとSample.co.jpがドメイン部分にあたります。

歴史

DNSは1983年ごろに誕生しました。それまではホスト名とIPアドレスの対応はSRIが管理している「SRI-NIC」というホストコンピュータが「HOSTS.TXT」というファイルで一元管理していました。また当時はTCP/IPは誕生していなく、NCPという通信プロトコルが使用されており、そのプロトコルではコンピュータのアドレス表記は"192.168.1.1"みたいな表記ではなく、"1"や"2"などの番号がそのまま使用されていました。
ただ1983年にTCP/IPが採用しはじめられてネットワークが急激に拡大していくと、インターネットが成長してユーザー数が増加して一元管理に課題が沢山生じてしまいました。
そこで、「ドメイン名」を使用するアイデアやドメインを管理するサーバーを分散させて階層化させるDNSの仕組みが誕生し、採用されていきました。
今は国際的な非営利団体であるICANNが全体を管理しています。

参考:

DNSサーバーとは

ドメインからIPアドレスを教えてくれる働きをするサーバーのことです。
DNSサーバーは2種類あります。

権威DNSサーバー

コンテンツDNSサーバーとも呼ばれます。ドメインからIPアドレスを割り出す仕事をします。権威DNSサーバーは世界中に多くありますが、それでも権威DNSサーバーだけだと通信が集中してしまいます。そのため、次のキャッシュDNSサーバーというものがあります。

キャッシュDNSサーバー

フルサービスリゾルバとも呼ばれます。よく使用するWebサーバーやメールサーバーのIPアドレスをキャッシュしてくれているサーバーです。
クライアントPCからアクセスしたいWebページがあるとき、まずこのキャッシュDNSサーバーに問い合わせます。DNSサーバーにIPアドレスをもっている場合は権威DNSサーバーを使用せず、そのままIPアドレスの情報をクライアントに返します。これを「キャッシュヒット」といいます。
キャッシュヒットしない場合は、キャッシュDNSサーバー自身が権威DNSサーバーと通信し、IPアドレスを探して答えをもってきてくれます。

  • DNSサーバーは「権威DNSサーバー」と「キャッシュDNSサーバー」の2種類があります。
  • リゾルバは resolve (解決する) のerが付いたものです。解決する人みたいなイメージです。

URLからDNSを使用してWebページが表示されるまで

一例として、クライアントPCからURLを指定してDNSサーバーを使用してWebページが表示されるまでの流れを記載しました。
クライアントPCからhttps://www.hoge.co.jpというURLにアクセスしたいという場合で説明します。

1. キャッシュDNSサーバーに問い合わせる

クライアントPCは、まずは接続したいWebサイトのページを持っているWebサーバーのIPアドレスを知ろうとします。そこで最初にキャッシュDNSサーバーに問い合わせます。
キャッシュDNSサーバーがIPアドレスを持っていれば、WebサーバーのIPアドレスをクライアントPCに返します。持っていなければ権威DNSサーバーに聞きに行きます。

クライアントPCからキャッシュDNSサーバーへ行われる問い合わせは「再帰問い合わせ」と呼ばれます。② 以降で説明しますが、キャッシュDNSサーバー内に情報が無いと、キャッシュDNSサーバーはいろいろな権威DNSサーバーに問い合わせてIPアドレスの情報を取得しようとします。権威DNSサーバーへの問い合わせを再帰的に行い必ずWebサーバーのIPアドレスを教えて、みたいなニュアンスがあります。

ちなみに、②以降で出てくるDNSサーバーはたくさんありますが、キャッシュDNSサーバー以外は全て権威DNSサーバーになります。

2. ルートDNSサーバーに問い合わせる

(1)でキャッシュDNSサーバーにWebページの情報が無い場合、キャッシュDNSサーバーはルートDNSサーバーに問い合わせに行きます。ルートDNSサーバーがhttps://www.hoge.co.jpという情報を受け取ると、これは「jp」ドメインを管理している権威DNSサーバーに聞いて、と返答します。

  • URLのドメイン部分は後ろからたどっていきます。なのでルートDNSサーバーからは「jp」を知っている権威DNSサーバーを紹介されます。
  • ルートDNSサーバーは世界に13台しかありません。しかもそのうちの10台はアメリカにあります。アジアでは日本に一つしかありません。残りの2台はそれぞれオランダ、スウェーデンにあります。
    こちらのサイトにDNSルートサーバーの設置場所の世界地図が掲載されています。
    ※厳密には台数が13台ではありません。冗長化や分散化が行われているからです。13のルートゾーンがあるようなイメージです

3.「jp」ドメインを管理している権威DNSサーバーに問い合わせる

「jp」ドメインを管理している権威DNSサーバーがhttps://www.hoge.co.jpという情報を受け取ると、これは「co」ドメインを管理している権威DNSサーバーに聞いて、と返答します。
※「jp」ドメインを管轄しているグループの中の「co」ドメインを知っているサーバーを紹介されるイメージです。

ここで「jp」ドメインの中の「co」ドメインを知っているサーバーを紹介されましたが、権威DNSサーバーはこのように階層構造のようになっています。階層構造にして権威DNSサーバーを何台も使用して、サーバーの負荷を減らしています。

4. 「co」ドメインを管理している権威DNSサーバーに問い合わせる

「jp」ドメインの中の「co」ドメインを管理している権威DNSサーバーがhttps://www.hoge.co.jpという情報を受け取ると、これは「hoge」ドメインを管理している権威DNSサーバーに聞いて、と返答します。

5. 「hoge」ドメインを管理している権威DNSサーバーに問い合わせる

「jp」ドメインの中の「co」ドメインの中の「hoge」ドメインを管理している権威DNSサーバーがhttps://www.hoge.co.jpという情報を受け取ると、「このページを管理しているWebサーバーのIPアドレスは知っているよ」といってIPアドレスを教えてくれます。
これで、クライアントPCはどのWebサーバーにアクセスすればいいかがわかりました。
このようにキャッシュDNSサーバーはいくつかの権威DNSサーバーからたらい回しにされて、得たいIPアドレスを取得できます。

クライアントPCからキャッシュDNSサーバーへ行う問い合わせは「再帰問い合わせ」といいましたが、キャッシュDNSサーバーが権威DNSサーバーへ行う問い合わせを「反復問い合わせ」といいます。

6. IPアドレスをもとにWebサーバーに接続する

取得したIPアドレスを元に、クライアントPCがWebサーバーに接続して、Webページを表示します。

例えばURLがhttps://www.hoge.co.jp/fuga/piyoの場合も、ドメイン部分は変わらずhoge.co.jpの部分です。fuga/piyoの部分はパスと言われ、ドメインから割り出されたWebサーバーがこのパスをみてどのWebページを表示したらよいか判断します。なのでfuga/piyoというパスの部分はDNSとは直接関係はありません。

(1)~(6)を図にするとこのようになります。(キャッシュヒットしていない場合です)

メールアドレスからDNSを使用してメールが送信されるまで

メールアドレスからメールを送信する際のDNSの仕組みも大きくは一緒です。
例えば、宛先hoge@Sample.co.jpにメールを送信したい、となったときに、メールアドレスのドメイン部分からメールサーバーのIPアドレスを取得します。まずはキャッシュDNSサーバーに問い合わせて、なければ権威DNSサーバーを使用してトップレベルドメインからたどっていく、という形も同じです。
ただしURLの場合はクライアントPCからキャッシュDNSサーバーに直接名前解決を依頼しましたが、メール送信の場合はまずクライアントPCから送信メールサーバーに情報が渡り、送信メールサーバーからキャッシュDNSサーバーに接続して、メールを送る宛先のメールサーバーのIPアドレスを割り出します。

ルートドメインについて

ここまでドメインという言葉を多く使用しましたが、一般的に使用されているドメインは「ルートドメイン」が省略されています。ルートドメインとはドメイン名空間の最上位階層を明示的に示すためのドメインで、ドメインの最後に付く「.」のことを指します。
なので本来は最後に「.」があるものが正しいドメインとなります。

https://www.hoge.co.jp.完全修飾ドメイン(正しい)
https://www.hoge.co.jp ← 不完全なドメイン(一般的なURL表記)

完全修飾ドメインについて

省略できるところを省略せず、きちんと全部書いたドメイン名のことを完全修飾ドメインといいます。
FQDN (Fully Qualified Domain Name) とも呼ばれます。例えばhttps://www.hoge.co.jpだと、www.hoge.co.jp.が完全修飾ドメインになります。

ドメインの種類

ドメインの種類も色々あります。ここではトップレベルドメイン、セカンドレベルドメイン、サードレベルドメインを紹介します。

トップレベルドメイン (TLD)

一般的な表記のドメイン (例:https://www.hoge.co.jp) をピリオド (.) で区切ったときの一番後ろの部分です。
ドメインの種類ごとに主な対象者は決められていますが、大半は誰でも取得が可能です。

ドメイン例

.jp

意味 日本
元の英単語 Japan
URL例 https://www.yahoo.co.jp
https://www.ipa.go.jp

.com

意味 商用
元の英単語 Commercial
URL例 https://www.youtube.com

.org

意味 団体
元の英単語 Organization
URL例 https://foundation.mozilla.org/en
  • .jpや.de (ドイツ) など、国名を表すTLDを「ccTLD(country code TLD)」と呼びます。
  • .edu (教育機関)や.mil (軍事) など、特定の組織によって提供されるTLDを「sTLD (Sponsored TLD) 」と呼びます。
  • 上記以外の.comや.orgなどは一般的なTLDとして「gTLD(generic TLD)」と呼びます。
  • comは最も人気なドメインになっています。
  • 「org」は「オーグ」、または「オルグ」と読むらしいです。

参考

セカンドレベルドメイン (SLD)

ドメインをピリオド (.) で区切ったときの後ろから2番目の部分のことです。

ドメイン例

.co

意味 企業、会社
元の英単語 commercial
URL例 https://www.yahoo.co.jp

.ne

意味 ネットワーク
元の英単語 network service
URL例 https://biz.biglobe.ne.jp/index.html

サードレベルドメイン (3LD)

ドメインをピリオド (.) で区切ったときの後ろから3番目の部分のことです。

例えばhttps://www.yahoo.co.jpならyahoohttps://www.ipa.go.jp/ならipaになります。

キャッシュDNSサーバーと権威DNSサーバーの設置場所について

一般的には家庭用のルーターがキャッシュDNSサーバーの役割を担っています。

権威DNSサーバーは当たり前ですが自宅にはなく、データセンターのような場所に設置されています。

その他

自⁠分だ⁠け⁠のド⁠メ⁠イ⁠ン⁠名をこ⁠こ⁠か⁠ら検⁠索

こちらのサイトでドメイン名を入力することで、ドメイン名が使用できるか確認ができます

終わりに

知らなかったことが多くて勉強になりました。引き続き、詳しい部分も学んでいきたいです。

参考

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?