ドメインネームシステム(DNS)は、ネットワーク上のデバイス間で人間が理解できる通信を可能にするプロトコルです。 最も一般的な用途として、人間が読みやすいドメイン名(bluecatnetworks.com など)を、コンピュータが理解しやすいインターネットプロトコル(IP)アドレス(104.239.197.100 など)に変換します。

IPアドレス指定とは、ネットワーク上のデバイスにアドレスを割り当てる論理的な手段です。ネットワークに接続された各デバイスには、一意のIPアドレスが必要です。

DNSの目的は、名前解決、すなわち完全修飾ドメイン名を人間が読みやすいIPアドレスに変換することです。

本質的に、DNSのおかげで、IPv4の「104.239.197.100」のような数字の羅列を覚えることなく、ウェブサイトに接続することができます。 あるいは、新しいIPv6における「2002:db8::8a3f:362:7897」のような、さらに複雑な英数字のアドレスを覚える必要もありません。さらに、DNSにより、ブラウザがどのドメイン名を要求するかによって、1台のサーバーが異なるウェブサイトを提供できるようになります。

DNS があれば、ウェブブラウザを開く際に知っておく必要があるのは、ウェブサイトの名前だけです。

この用語解説では、まずDNSの歴史と、DNSクエリの仕組みの基本について触れます。次に、ルックアップ処理を行う4種類のサーバーについて解説します。最後に、いくつかの高度な概念とベストプラクティスについて言及します。

Graphic showcasing Unified DDI for DNS simplification. Explore further to understand its advantages.

DNSの背景と基礎

DNSとは何か、そしてそれがどのように機能するかを理解することは、ネットワーク管理やWeb開発に携わるすべての人にとって不可欠です。

簡単な歴史

IPはもともと、米国国防総省のARPANET(先進研究プロジェクト局ネットワーク)によって開発されました。その結果、米国の研究機関間での情報共有がより迅速に行えるようになりました。これを実現するために、ウェブサイトとその対応するIPアドレスを網羅した巨大なディレクトリ、いわば「デジタル電話帳」のようなものが使用されていました。

1970年代になると、このネットワーク内のコンピュータ数は急速に増加しました。それらを追跡するシステムは扱いにくく、断片化していました。その結果、数値によるIPアドレスはますます長くなり、暗記することが不可能になっていきました。ネットワークを簡素化するためには、統一されたシステムが必要とされました。

1983年、米国のコンピュータ科学者でありインターネットの先駆者であるポール ・モカペトリスとジョン・ポステルは、ドメインネームシステム(DNS)を発明しました。1986年、インターネット技術タスクフォース(IETF)は、これを初期のインターネット標準の一つとして認定しました。 このプロトコルの機能と、それが伝送可能なデータ型については、IETFの2つの文書、RFC 1034およびRFC 1035で説明されています。

DNSは、OSIモデルにおけるレイヤー7(アプリケーション層)に位置する。このモデルは、コンピュータネットワーク間の通信を7つの抽象的な層に分割しており、各層はネットワーク通信において独自の機能を果たす。レイヤー7には、アプリケーションがその役割を果たし、エンドユーザーにデータを伝達するために依存するプロトコルが含まれる。

基本的な動作:クエリ

コンピュータやスマートフォン(クライアントデバイスとも呼ばれる)に、Webサイトにアクセスするよう指示します。その際、デバイスはDNSクエリ(リクエスト)を送信します。スタブリゾルバーとは、クライアントデバイス内でこれらのリクエストを処理する部分のことです。

DNSネームサーバーは、DNSレコードを保存したり、他のサーバーと通信したりします。デバイスからクエリが送信されると、ドメインネームサーバーとリゾルバーが介入します。これらは、クエリが関連するレコードから応答を受け取れるようにします。

クエリには一般的に2つのタイプがあります:

  • 再帰的クエリ:これは、クライアントデバイスとローカルのDNSリゾルバーまたはサーバーの間で発生します。クライアントは名前解決を要求し、サーバーは完全な回答を提供しなければなりません。一方、サーバーが回答を提供できない場合は、反復的クエリを開始します。
  • 非再帰的(または反復的)クエリ:これは、ローカルDNSサーバーと他のDNSサーバーとの間で発生します。多くの場合、ルートネームサーバーから始まります。ローカルサーバーは名前解決を要求しません。その後、他のサーバーは回答を返すか、別のサーバーへの参照情報を返すことができます。

Two types of DNS queries: recursive and non-recursive

クエリ(DNSルックアップとも呼ばれる)は常に発生しています。これらの活動の一部はネットワーク内部で行われており、こうした内部DNSクエリはパブリックインターネットには決して到達しません。ビジネス環境では、専用の内部DNSサーバーがネットワーク内のすべての内部DNS名を解決します。

一方、外部のウェブサイトについては、クエリはネットワーク外に送信され、解決には外部サーバーに依存します。

DNSサーバーの仕組み

DNSサーバーには、再帰的リゾルバーと権威ネームサーバーの2種類があります。後者には、ルートサーバーやトップレベルドメイン(TLD)サーバーが含まれます。 (TLDとは、ドメイン名の末尾部分(例:.comや.org)のことです。)権威ネームサーバーは、権威DNSサーバーと呼ばれることもあります。

通常、これらはルックアップチェーンを形成して連携し、クライアントデバイスにIPアドレスを返します。

キャッシュ

重要な注意点:この情報は、多くの場合、デバイス内部やDNSサーバーインフラストラクチャ内のどこかにローカルにキャッシュされます。その結果、キャッシュされた情報によって追加の手順が省略され、レコードが提供されます。確かに、サーバーはクエリをより効率的に解決するために応答をキャッシュします。

ほとんどのスタブリゾルバーも、レコードを一定期間(TTL:Time to Live)キャッシュするように設計されています。TTLが切れると、サーバーはクエリを再度解決する必要があります。

DNS 検索の 8 つのステップ

多くのシナリオでDNSルックアップが必要となります。ここでは、Webブラウザを使用した非常に一般的なケースにおける8つの基本的な手順を説明します:

  1. ユーザーがWebブラウザに「example.com」と入力します。その後、クライアントデバイスはIPアドレス情報を要求し、デバイス上でローカルにその答えを見つけようとします。見つからない場合、次のステップは…
  2. 再帰的リゾルバー。これは、クライアントと権威ネームサーバーの間に位置するDNSサーバーの一種です。(通常、インターネットサービスプロバイダー(ISP)が再帰的リゾルバーを提供します。ただし、パブリックDNSリゾルバーを使用することを選択する場合もあります。) クエリを受信すると、再帰型リゾルバーはキャッシュされた情報で応答するか、あるいは…へリクエストを転送します。
  3. ルートネームサーバーへリクエストを転送します。これは、ドメイン名をIPアドレスに変換する最初のステップです。その主な役割は、より具体的なサーバーの場所を指し示すことです。ルートネームサーバーは、そのドメインに関する情報を格納しているTLDネームサーバーの名前をリゾルバーに返します。
  4. 再帰的リゾルバーは、TLDネームサーバーにリクエストを送信します。
  5. TLDネームサーバーは、要求されたドメインの権威ネームサーバーの名前と、該当するIPアドレス(ある場合)を返します。
  6. 再帰的リゾルバーは、権威ネームサーバーにリクエストを送信します。検索チェーンの末端に位置するこのサーバーは、リソースレコードを保持しており、最終的な判定者となります。プロセスの最終段階として、このサーバーはウェブブラウザが必要とするレコードを返すことができます。
  7. 権威ネームサーバーは、要求されたデータを再帰的リゾルバーに返します。
  8. 再帰的リゾルバーは、要求されたデータをWebブラウザに返し、ユーザーは回答を受け取ります。

もちろん、クエリが常に正常に解決されるとは限りません。解決されない場合、DNS応答コードから問題の原因に関する手がかりが得られることがあります。

DNSの高度な概念と導入のベストプラクティス

DNSとは何かを理解したことで、シームレスなインターネット接続とナビゲーションを確保する上でのその役割をより深く理解できるでしょう。

さらに、ドメインネームシステムは、さまざまな種類のサービス検出にも使用されます。例えば、メールアドレスに適したメールサーバーや、最も近いActive Directoryサーバーを見つける場合などです。

ゾーン

より効果的な管理を行うために、DNS ネームスペースを個別の DNS ゾーンに分割することができます。各ゾーンは、特定の組織や管理者が管理できます。この手法により、管理者は権威ネームサーバーなどの特定のコンポーネントをより細かく制御できるようになります。

DDI integrates DNS, DHCP, and IPAM into one solution

ただし、ゾーンは1つのドメイン名や単一のサーバーに限定される必要はありません。同じサーバー上に複数のゾーンが存在することも可能です。さらに、各ゾーンは通常、複数のサーバー上に存在し、自動レプリケーションによって各コピーを同期させます。

ゾーンは、ドメイン名内のドットで区切られます。これにより、TLDネームサーバーはサブゾーンを子ドメイン(例:careers.example.com、blog.example.com)に委任することができます。

DDIトライアドの一部

DDIとは、DNS、DHCP、およびIPアドレス管理(IPAM)の頭文字を取ったものです。これは、ネットワークの3つのコアコンポーネントを1つの中央管理ソリューションに統合することを表す略語としてよく使用されます。

DNSはIPアドレスを提供し、DHCPはIPアドレスを割り当て、IPAMはIPリソースを管理します。これらのコアサービスをDDIソリューションに統合することで、ネットワーク管理を一新することができます。

アーキテクチャのレイヤー

DNSサービスを構築するには、アーキテクチャに対して階層的なアプローチが必要です。これには、内部再帰、内部権威、外部再帰、および外部権威の各層が含まれます。もちろん、それぞれに長所と短所があります。信頼性、安全性、そして回復力に優れたネットワーク基盤を構築するための利用可能なソリューションについて、さらに詳しくご覧ください。

関連コンテンツ