はじめに
DNS (Domain Name System) について、基本的な部分を調べてまとめました。
目次
- 概要
- ドメインとは
- 歴史
- DNSサーバーとは
- URLからDNSを使用してWebページが表示されるまで
- メールアドレスからDNSを使用してメールが送信されるまで
- ルートドメインについて
- ドメインの種類
- キャッシュDNSサーバーと権威DNSサーバーの設置場所について
- その他
概要
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サーバーに聞いて、と返答します。
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
ならyahoo
、https://www.ipa.go.jp/
ならipa
になります。
キャッシュDNSサーバーと権威DNSサーバーの設置場所について
一般的には家庭用のルーターがキャッシュDNSサーバーの役割を担っています。
権威DNSサーバーは当たり前ですが自宅にはなく、データセンターのような場所に設置されています。
その他
自分だけのドメイン名をここから検索
こちらのサイトでドメイン名を入力することで、ドメイン名が使用できるか確認ができます
終わりに
知らなかったことが多くて勉強になりました。引き続き、詳しい部分も学んでいきたいです。