私たちが日常的に使用するすべてのウェブサイトのIPアドレスを覚えなければならないとしたら、どのようなことになるか想像してください。私たちが驚異的な記憶力を持っていても、ウェブサイトにアクセスするプロセスは非常に遅く、時間がかかるものになるでしょう。
また、同じマシンや仮想ホストに存在する複数のウェブサイトやアプリケーションにアクセスする必要がある場合はどうでしょうか?それは私が考えられる最悪の頭痛の一つです – 事前の通知なしにウェブサイトやアプリケーションに関連付けられたIPアドレスが変更される可能性もあります。
それを考えるだけでも、インターネットや内部ネットワークの使用をやめる十分な理由になるでしょう。
それがまさにドメイン名システム(またはDNS)のない世界です。幸いにも、このサービスは上記で挙げたすべての問題を解決します – IPアドレスと名前の関係が変更された場合でもです。
そのため、この記事では、ドメイン名をIPアドレスに変換し、逆もまた可能にするサービスである簡単なDNSサーバーの設定と使用方法を学びます。
DNS名解決の紹介
頻繁に変更されない小規模なネットワークでは、/etc/hostsファイルを使用してドメイン名からIPアドレスを解決することができます。
非常にシンプルな構文を持つこのファイルでは、次のように名前(および/またはエイリアス)をIPアドレスに関連付けることができます:
[IP address] [name] [alias(es)]
例えば、
192.168.0.1 gateway gateway.mydomain.com 192.168.0.2 web web.mydomain.com
このようにして、ウェブマシンには名前、web.mydomain.comのエイリアス、またはIPアドレスで到達することができます。
大規模なネットワークや頻繁に変更されるネットワークでは、ドメイン名をIPアドレスに解決するために/etc/hostsファイルを使用することは適切な解決策ではありません。そのため、専用のサービスが必要となります。
内部では、DNSサーバーはツリー形式の大規模なデータベースをクエリし、ルートゾーン(“.”)
から始まります。
以下のイメージは、説明するのに役立ちます:

上記のイメージでは、ルートゾーン(.)
にはcom、edu、およびnetのドメインが含まれています。これらのドメインは(または)異なる組織によって管理されるため、大きな中央組織に依存することなく適切にリクエストを階層的に分散させることができます。
では、内部ではどのような処理が行われているのか見てみましょう:
1.クライアントがweb1.sales.me.comのDNSサーバーにクエリを送信すると、サーバーはクエリを最上位(ルート)DNSサーバーに送信し、.com
ゾーンの名前サーバーにクエリをポイントします。
これが、次のレベルの名前サーバー(me.com
ゾーン内の名前サーバー)にクエリを送信し、その後sales.me.com
に送信されます。このプロセスは、FQDN(この例ではFully Qualified Domain Name、web1.sales.me.com)が所属するゾーンの名前サーバーによって返されるまで必要な回数繰り返されます。
2. この例では、sales.me.com.
の名前サーバーが、web1.sales.me.com
のアドレスに応答し、要求されたドメイン名とIPの関連付け、およびその他の情報(設定されている場合)を返します。
この情報は元のDNSサーバーに送信され、最初に要求したクライアントに戻されます。将来の同一のクエリのために同じ手順を繰り返さないようにするために、クエリの結果はDNSサーバーに格納されます。
これらが、この種のセットアップが一般的に「再帰型キャッシュDNSサーバー」として知られている理由です。
Source:
https://www.tecmint.com/setup-recursive-caching-dns-server-and-configure-dns-zones/