fbpx

DNSとは?サーバーの設定に出てくる単語を初心者向けに徹底解説!

blank

ネットワーク設定をしていますと「DNS」という文言を必ず目にします。
なんとなくは分かっているのですが言葉では説明が出来ない……なんて方って意外と多いのはないでしょうか。はたまたネットワーク用語をご存じないような一般の方にとっても、とても身近に使われているシステムなので、これを機会に覚えて頂ければと思います。

このDNSですが、GoogleやAmazonはもちろんのこと、LINEやTwitterといったSNSやメール送受信にいたるまで、インターネットを利用するうえで不可欠な技術なのです。使っていることを意識する機会は無いんですけどね。

ただ横文字かつ略語というのがいただけない。苦手意識が出て当然です。
今回はそんなPC初心者の方にとっても分かりやすくお伝えできるよう、喩えを交えて解説をしていきますので、ぜひ参考にしてくださいね。

DNSとは何か

そもそもどういう略語なのでしょうか。正式名称は「Domain Name System」となっており、インターネット上でのドメイン管理システムを指します。……つまり?と聞こえてくるようです。余計に混乱させてしまいましたね。ご説明の中にはご存じの部分も多いかもしれませんが、基本に立ち返ったつもりでご覧ください。

とりあえずDNSとは「私たちの見慣れた単語」(ドメイン)とWEBサイトの住所(IPアドレス)を紐付ける技術なんだ、とお考えいただければ結構ですよ。

ドメインとは?

ドメインとは、IPアドレスを私たちが覚えやすい単語に置き換えたものです。あだ名、ですね。実例でお伝えしますとhttps://www.google.comの「google.com」の部分です。ちなみにhttps://wwwはWEBアドレスですよという共通の目印なのでドメインの中には含みません。

(上記のドメインの説明も、正しくは「ホスト名」+「ドメイン名」でGQDNが正式名称となるのですが、今回は割愛させていただきます)

IPアドレスとは?

ネットワークに繋がるコンピュータには、それぞれマイナンバーカードのように一意の番号が振られています。これをIPアドレスと呼びます。

私たちのパソコンはもちろんのこと、GoogleやAmazon、YouTubeも全てインターネットに繋がっているため、それぞれ独自のIP番号が振られています。そしてマイナンバーカードに喩えたように、この番号が重複することはありません。

私たちは、目的のコンピューターやWEBサイトを表示したい場合、このIPアドレスを入力しアクセスしています。と、書きますと反論の声が上がってきそうですね。わざわざIPアドレスなんて入力してないし、数値の羅列なんて覚えてられないよと。

おっしゃる通りです。私たちがGoogleのWEBサイトを表示するために「https://www.google.com」と入力する事はあっても、「172.217.31.142」とIPアドレスを打つは無いでしょう。(なお、上のIPアドレスからでもGoogleに繋がります)

IPアドレスの問題点から考案されたのがDNS

さきほどの例の中で、IPアドレスからでもWEBサイトにアクセスが出来るとお伝えしました。けれどもIPアドレスのような複雑な番号の羅列ですと入力の時に間違えてしまいそうです。そもそもWEBサイトごとに記憶しておくこと自体難しいですよね。またWEBサイトの都合によりIPアドレス自体が変わってしまう場合もあります。そうなりますと、せっかく記憶していた古いIPアドレスからではWEBサイトにアクセス出来なくなってしまいます。

上記のような問題点を解決するために考案されたのがこのDNSとなります。WEBサイトの住所である「IPアドレス」とあだ名である「ドメイン」を紐づけることで、私たちにとって理解しやすい形でWEBサイトにアクセスが出来るようになりました。コンピューターにとっては、覚えづらいIPアドレスが正しい情報であり、DNSを通してドメインをIPアドレスに読み替えているというわけです。

もう一つの利点として、たとえサーバの入替などによりWEBサイトのIPアドレスが変更になったとしても、ドメインに紐づくIPアドレスを更新するだけで、私たちは違和感なく使うことが出来ます。昨今はIaaSが提供するパブリッククラウドで簡単にサーバーを立て直す事ができ、そのような場合はIPアドレスは頻繁に変わってしまう可能性があります。DNS周りはうまく設定しなければサービスの根本的な不具合に繋がるので、注意が必要です。(具体例:AWSのEC2でサーバーは自由に立て直せるがIPアドレスは変わってしまう。hoge.comのIPをEC2のパブリックIPに直で指定するのではなく、Elastic IP経由などにするなど工夫が必要)

DNS、DNSサーバーの仕組みについて

次にDNSとDNSサーバーの仕組みについて解説したいと思います。

まずはDNSの成り立ちから。さきほどIPアドレスとドメインを紐付ける技術をDNSとご案内しましたが、この前段階として「hosts」という仕組みが考案されました。と、過去形で記載しておりますが、この「hosts」は現在も生きた技術であると断りを入れさせていただきます。

たとえば皆さんのパソコンの中にも「hosts」ファイルがあります。端末によって下記にそれぞれ保存されています。

  • Windowsの場合:C:\Windows\System32\drivers\etc
  • Macの場合:/private/etc/hosts

興味がありましたら一度hostsファイルをメモ帳などのテキストエディタでご確認ください。

hostsファイル内には「IPアドレス」と「ドメイン名」が対となって記録されています。つまり対照表の役割を担っているという事ですね。このhostsファイルをもとにWEBサイトへアクセスするためのドメイン名をIPアドレスに読み替えるという手法です。

良い方法ではありますが2つ問題点がありました。

  • WEBサイトが増えるごとに対照表である「hosts」ファイルも増加する。増加容量や更新頻度が現実的ではない
  • WEBサイトのIPアドレスは変更される可能性がある。その場合は世界中のPCの「hosts」ファイル情報を更新しなければならない。

ならばと、各PCに対照表の情報を持たせるのではなく、それを問い合わせる先を作ってしまおう、という発想に至りました。ドメイン名を管理している場所にお尋ねし、対応するIPアドレス情報を教えてもらおうという事ですね。この一連のシステムをDNSと呼びます。これらは80年代に発案実施されました。

DNSの仕組みが確立することによって、私たちはPCごとに情報を持つ必要が無くなったのです。

 

 

WEBサイトが表示されるまで、どのような動作をDNSはしている?

ではここまでのおさらいとして、URLを入力してWEBサイトが表示されるまで、どのような動作をDNSはしているのか、まとめさせていただきます。

また新しい用語として「DNSキャッシュサーバー」「DNSルートサーバー」「権威DNSサーバー」「ゾーン情報)が出てきます。先に流れを見ていただくと理解しやすいかと思いますので、こちらは後ほどご説明させて頂きます。

  1. URL(https://www.google.com)の入力を行います。コンピューターはDNSキャッシュサーバーに問合せを行います。過去にアクセスした事がありキャッシュが残っていれば、DNSキャッシュサーバーから対応するIPアドレス「172.217.31.142」が返ってきます。そのIPアドレス情報をもとにGoogleのHPが表示されます。キャッシュが無ければ2に移行します。
  2. DNSキャッシュサーバーからDNSルートサーバーへドメイン情報の問合せを行います。DNSルートサーバーは「.com」のドメイン管理情報を持つ権威DNSサーバーを紹介します。
  3. DNSキャッシュサーバーは紹介された権威DNSサーバーに再度問合せを行います。権威DNSサーバーは管理しているゾーン情報より該当ドメイン「google.com」に対応するIPアドレス「172.217.31.142」を回答します。(問合せした権威サーバが該当のゾーン情報を持っていない場合は、さらに下層の権威DNSサーバーが紹介されます)
  4. DNSキャッシュサーバーはそのIPアドレス情報をそのままコンピューターへ回答します。
  5. 回答を得たIPアドレス情報をもとにGoogleのHPが表示されます。

いかがでしょうか。ドメイン名から直接WEBサイトにアクセス出来ているわけでは無いということがご理解いただけたかと思います。

こちら要点としては下記の2つとなります。

  1. 過去に問合せ実績のあるドメイン名の場合、キャッシュ情報が残っていればDNSキャッシュサーバーよりIPアドレスの回答を得られます。
  2. キャッシュ情報が無い場合はDNSルートサーバーに問合せをし、該当ドメインを管理している権威DNSサーバーの存在を教えてもらいます。DNSキャッシュサーバーは、管理情報をもつ権威DNSサーバーへ問合せを行いIPアドレスの回答を受け取ります。

ここまででDNSの流れについての解説は終了となります。では、いくつか未説明の用語がありましたので、それぞれご説明をさせていただきたいと思います。

DNSキャッシュサーバーとは

まずキャッシュとは一時データの保存をする仕組みのことです。となると、DNSキャッシュサーバーとは、ドメイン名とIPアドレスの対照表を一時的に保存しているサーバーというわけです。キャッシュに情報が残っていれば、下記の2つを図ることができます。

  1. すでに記録している情報のため、IPアドレス回答までのスピードアップ
  2. 問合せ件数が減るため、DNSルートサーバーへの負担軽減

なおDNSキャッシュサーバは、個人宅ですとルータがその機能を担っています。

DNSルートサーバーとは

問合せを受けたドメイン名から、該当ドメインのIPアドレス情報を持つDNSサーバーを紹介する役割を持ったサーバーです。

ドメイン名は「~.com」や「~.co.jp」のように、ピリオドで区切ったツリー構造となっており、DNSルートサーバーはその頂点に位置するサーバーです。ツリー構造となっているドメイン階層を辿ることで、DNSルートサーバーは問合せを受けたドメイン名のDNSサーバーを突き止めるわけですね。

なおDNSルートサーバーは世界中で13個のみ、というのも驚きですね。13、という数値には理由がありますので、より詳しく知りたいという方は調べてみてください。(実際の物理的なサーバー数が13台のみ、というわけではないのでご安心を。しっかりと分散や冗長化されています)

ドメイン階層とは

さきほどドメイン名はツリー構造となっているとご説明しました。

ルート直下がトップレベルドメイン(TLD)、その下層がセカンドレベルドメイン(2LD)と階層構造となっています。

下記に代表的なドメインについて書かせて頂きました。みなさん一度はご覧になったことがあると思います。

  • トップレベルドメイン:com(商業組織用)、net(ネットワーク用)、org(非営利組織用) , info(制限なし)、jpやusなど国名、など
  • セカンドレベルドメイン: co(商用)、ac(大学など学校法人) 、ne (ネットサービス)、など

仮に「~co.jp」というURLがあった場合、日本国内の商用を目的としたサイト、を表しています。このように階層化して分散管理していることがDNSの特徴となります。

権威DNSサーバーとは

ドメイン情報とIPを管理しているDNSサーバーの事を「権威DNSサーバー」と呼びます。

  • 権威DNSサーバーはドメインごとに建てられており、配下のゾーン情報を管理しています。
  • 権威DNSサーバーは、対象のドメイン名に対応するIPアドレスを教えてくれます。

ゾーン情報とは

対応ドメインの権威DNSサーバーが管理している、ドメイン名とIPアドレスの対照情報のことです。

DNSキャッシュサーバーから問合せを受けた権威DNSサーバーはゾーン情報のファイルを確認し、対応するIPアドレスを回答しています。

また依頼ドメインを別の権威DNSサーバーへ委託していた場合でも、ゾーン情報のファイルから委託先を回答しています。

 

終わりに

いかがでしたでしょうか。

馴染みあるDNSですが、コンピューター用語に慣れない初心者の方には、単語一つをとってもハードルがあると思います。今回はそんな方でも分かっていただけるような解説を目指しました。

繰り返しとなりますが、DNSとは「私たちにとって覚えやすい言葉」と「IPアドレス」を紐づけて相互に変換してくれるシステム、というように覚えて頂ければ幸いです。

またDNSは80年代に考案・実装された技術であり、かなり古くからあるシステムです。40年以上も現役と考えると素晴らしいですね。

普段のインターネットやメール利用の時に、ふとDNSを思い出してください。ネットワークの基礎知識だからこそ、しっかりと覚えていきたいですね。