DNS

【初心者向け】DNSサーバーとは?用途と仕組みを理解しよう!

こんにちは、インフラエンジニアのryuです。

今回の記事は、初心者向けにDNSサーバーとは何かについて解説します。

DNSサーバーとは名前解決のサーバーです。サーバーの名前とIPアドレスを紐づける役割をしています。DNSが何か分からない人のために、DNSサーバーがどのような用途で使われているのか、DNSの仕組みはどうなっているのかを詳しく解説します。

以下のような方向けの記事です。

  • DNSについて勉強したい
  • DNSの概要を知りたい

さらに詳しく解説します!

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

【初心者向け】DNSサーバーとは?

DNSサーバーって何?

DNSサーバーはサーバーの場所を教えてくれるサーバーです!

DNSサーバーはサーバーの場所を教えてくれるサーバー」ってどういうこと??

このような疑問を持っている方のために、現役エンジニアの私がDNSサーバーについて詳しく説明します!

今回の記事の内容は以下の通りです。

今回の記事を読めば、DNSサーバーがどのようなものかを理解することができます!インフラエンジニア以外のプログラマーなど、ITに携わっている方は必須の知識となります。

図を使って、初心者の方にもわかりやすく解説します!

DNSサーバーとは?

DNSサーバーとは名前解決を行うサーバーです。

そもそも名前解決って何??

いきなり、名前解決と言われても分からないですよね。

DNSの動作を理解するためには、まず以下の2点の理解が必要です。

  • IPアドレス
  • ドメイン名

なぜなら、DNSサーバーはIPアドレスとドメイン名を紐づけるものだからです。

では、「IPアドレス」と「ドメイン名」について簡単に説明します。

IPアドレスとは?

IPアドレスとは、パソコンの住所のことです。

パソコン同士が通信するために必要な情報です。

例えば、手紙を送るとき、家の住所を書きますよね。それと同じようなものです。

「192.168.1.1」のように数字と”.(ドット)”で表されます。

詳しくはこちらの記事をご覧ください。

ひとまず、IPアドレスは数字で表す住所だと思っておいてください。

ドメイン名とは?

次にドメイン名について解説します。

ドメイン名とは、

ドメイン名(ドメインめい、domain name)は、IPネットワークにおいて、個々のコンピュータを識別し、接続先を指定するために使用される名称の一部。多くの場合、ドメイン名は複数のホストを擁するドメインの名称か、あるいはドメイン名それ自身がホスト名であり、URLの一部を構成している。

(wikipedia)

具体的には、“google.com”であったり、このサイトの場合は、”engineer-ninaritai.com”がドメイン名です。

WebサイトにアクセスするときのURLの部分がドメイン名だと思っておけば大丈夫です。

DNSサーバーはドメイン名からIPアドレスを調べる

DNSサーバーはドメイン名からIPアドレス(サーバーの住所)を調べるものです。

イメージはこんな感じです。

DNSサーバーの動作

この図のように、使用者はサーバーの場所をDNSサーバーに問い合わせを行い、DNSサーバーが答えるという動作をします。

では、このような動作は具体的にどのような場面で使われるでしょうか?

一番分かりやすいのは、Webサイトにアクセスするときです。

DNSの用途とは?

DNSは名前解決をするサーバーってことは分りました。

ここからは、DNSがどのような場面で使われるのかを理解しましょう!

DNSサーバーはどのような場面で使われるの?

DNSサーバーはどのような場面で使われるでしょうか?

皆さんが身近で使っているのは、Webサイトへアクセスするときです。

Webサイトにアクセスするとき、URLがブラウザ上に表示されます。このURLにサーバーの名前(FQDN)が書かれています。

FQDNを名前解決

私のサイトの場合、「engineer-ninaritai.com」という名前になります。

Webサイトへアクセスするときは、この名前をDNSサーバーに問い合わせし、Webサーバーの場所を確認しています。そして、使用者はDNSサーバーから返ってきたIPアドレスにアクセスすることで、Webページを表示しています。

Webサイトへのアクセス以外にも、DNSサーバーは様々な場所で使われています。システムを構築する上で、必ず必要な技術になります。DNSサーバーは何かをしっかり理解しましょう。

DNSサーバーはサーバーへ通信するときに使われる

DNSサーバーはWebサイトへアクセスするときに使用するとお伝えしました。しかし、名前解決を必要とする場面は他にもあります。

基本的には、サーバーへアクセスするときはDNSサーバーを使用すると覚えておきましょう。

なぜなら、サーバーの指定はIPアドレスではなく、サーバー名(FQDN)で行われるからです。

例えば、メールを使用するとき、メールサーバーを指定します。以下のように設定してあります。

DNSの使用例

DNSの仕組みとは?【脱初心者】

次にDNSの仕組みを解説します。

ここからは中級者向けです。下記の内容について解説します。

  • DNSのゾーン
  • フォワーダーと委任
  • ゾーン転送

応用情報技術者試験やネットワークスペシャリストレベルの内容です。

DNSサーバーを構築する人は理解しておきましょう!

DNSのゾーンについて

DNSサーバーにはゾーンと呼ばれるものがあります。

DNSゾーンとは、インターネットのドメイン名の管理において、あるDNSサーバ(ネームサーバ)が自ら管理するドメインの範囲のこと。管理権限(オーソリティ)を持つドメインとそのサブドメインが含まれるが、管理を他のサーバに委任したサブドメインはそのゾーンから外れる。

(IT用語辞典より)

つまり、名前解決できるドメインのことです。

google.comというゾーンを持っていれば、google.comについて名前解決できます。それ以外のドメインについては名前解決できません。

DNSのゾーンについての説明

ゾーンを持っていないドメインはどうやって名前解決するのか?

ゾーンを持っていないドメインは自身で名前解決できません。

自分で名前解決できないなら、名前解決できる他のDNSサーバに問い合わせるしかありません。

他のDNSサーバに問い合わせる方法は大きく2種類あります。

フォワーダ委任です。この違いは今回は特に説明しませんが、実際に設定すると違いが分かります。

イメージはこんな感じです。

DNSサーバーの用語

DNSサーバーをさらに細かく分けると、「マスタサーバー」「スレーブサーバー」「コンテンツサーバー」「フルリゾルバサーバー」というものがあります。

DNSサーバーの動作によって、呼び方が変わります。

それぞれの用語について解説していきます。

マスタサーバー、スレーブサーバーとは?

マスタサーバーとはゾーンを管理するサーバー

スレーブサーバーとはマスターサーバーが管理しているゾーンのバックアップをしているサーバーのことです。

マスターサーバとスレーブサーバは同じゾーン情報を持ち、マスターサーバに障害が発生したときにスレーブサーバがバックアップの役割を果たします。

マスターサーバのゾーンをスレーブサーバにコピーすることをゾーン転送と言います。

DNSマスターサーバーとスレーブサーバーの説明

コンテンツサーバー、フルリゾルバサーバーとは?

コンテンツサーバとは自身でゾーンを管理して、名前解決要求に答えるサーバーのことです。

フルリゾルバサーバとは自身で名前解決できないものを他のDNSサーバに問い合わせる働きをさせるものです。

ネットワークスペシャリストの問題ではコンテンツサーバとフルリゾルバサーバを1台のDNSサーバで構築していたが、DNSキャッシュポイズニング攻撃の対策として別々のサーバに構成変更するという内容が出題されていました。

イメージはこんな感じです。

LinuxでDNSサーバーを構築してみよう

ここまでDNSサーバーの概要について解説しました。

DNSサーバーをさらに理解するために、Linuxサーバーを用いてDNSサーバーを構築してみましょう。DNSサーバーの構築はInfraAcademyというインフラ学習ツールで実施できます。

Linuxの環境構築が不要で、DNSサーバーが構築できるようになっているので、ぜひ試してみてください。無料でお試しすることができます。

DNSサーバーを構築してみる

関連:【Linux】サーバー構築の練習方法を解説!サーバー構築のスキルを身につけよう

関連:コマンドを動かして実践的に学ぶInfraAcademy(インフラアカデミー)

DNSサーバーとは?まとめ

今回の記事ではDNSサーバーの仕組みと用語を解決しました。 仕組みはわかり易さ重視で書いたので、実際とは若干違う部分があるかもしれませんがご了承ください。

DNSサーバーを実際に構築してみたい方はこちらの記事を参考にしてください。

DNSなどサーバーについて詳しく知りたい方はこちらの参考書がオススメです。


ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST