close
コンテンツにスキップ

Domain Name System

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ドメインの階層構造

Domain Name System(ドメイン・ネーム・システム、DNS)とは、コンピュータネットワーク上のホスト名電子メールのアドレスに使われるドメイン名と、IPアドレスとの対応づけ(正引き逆引き)を管理するために使用されているシステムである。後述の通りインターネットのシステムとして開発されているが、インターネットに限定したシステムではなく、それ以外のネットワークでも応用できる。

1983年に、インターネットを使った階層的な分散型データベースシステムとして、Information Sciences Institute(ISI)のポール・モカペトリスジョン・ポステルにより開発された[1]

インターネットに接続されているすべてのコンピュータ(ノード)は、IPアドレスを持っている。インターネット上のコンピュータにアクセスするためには、そのコンピュータの IPアドレスを知る必要がある。しかし、IPアドレスは0から255までの数値を4つ組み合わせ(IPv4の場合)で表現されるため、人間には記憶しにくい。そのため、IPアドレスを文字列で扱うことができるような機構として、インターネットドメイン名が考案された。そして、ドメイン名からIPアドレスを引き出す機能(正引き)が、DNSの代表的な機能である。このほか、ドメイン名に関連するメールサーバ情報なども取り扱っている。

動作

[編集]

ホスト名から、そのホストにアクセスするためのIPアドレスを得ることを、ホスト名の「名前解決」(resolve)と呼ぶ。インターネットにおいて、この名前解決を行う仕組みをDNSという。

DNSは、ホスト名(例:ja.wikipedia.org)に対して、そのホストが持つIP アドレス(たとえば130.94.122.197)に変換(またはその逆の変換)を行うシステムである[2]。喩えるならば、DNSは「(決して重複しないよう制限されて名付けられた前提での)氏名」から電話番号を自動で調べる世界規模の電話帳である。

DNSサーバと呼ばれるコンピュータを参照し、

例えば、ウェブブラウザURIを入力してネットワークにアクセスする際、ブラウザはURIを解析してアクセスすべきWebサーバのホスト名を取り出し、OS内部のスタブリゾルバリゾルバ」またはネームリゾルバ)に引き渡す。スタブリゾルバは、フルリゾルバ(DNSキャッシュサーバ)にWebサーバのホスト名を問い合わせる。フルリゾルバ(DNSキャッシュサーバ)から返ってきたIPアドレスをブラウザに返すことで、名前解決が完了する。ブラウザは、得られたIPアドレスを使用して、Webサーバとの通信を開始する。このようにしてブラウザはインターネットにアクセスする。

DNSに格納されている情報を「レコード」(DNSレコード、リソースレコード)と呼ぶ。レコードは格納する情報によって種類が分類分けされている。レコードの種類は「DNSレコードタイプの一覧」を参照。

これらの情報は、インターネット上のいくつものDNSサーバに分散して格納されている。インターネットには莫大な数のコンピュータが接続されており、これらのホスト名と IPアドレスは日々更新されつづけているため、インターネット上のすべてのホスト名を一台のコンピュータで集中管理することは現実的ではなかった。そのためインターネット上のコンピュータをある単位で区分けして、それぞれのグループがもつデータをグループごとのコンピュータに別々に管理させるようにした。これが DNS の基本的なアイデアである。このグループをドメインと呼ぶ。各グループには英数字とハイフン( - )からなるラベル(ドメイン名)がつけられており、異なるドメインの情報は異なるコンピュータに格納される。

今でこそDNSはホスト名とIPアドレスの対応づけに使用されるのがほとんどだが、もともとは電子メールの配送方法やコンピュータの機種名を登録するなどといった用途も考えられていた。

ドメイン名で構成される空間はドメイン名空間と呼ばれるが、これは階層構造をなしている。たとえばja.wikipedia.orgというホスト名はjawikipediaorgという3つの階層に区切ることができる。ja.wikipedia.orgというホストはwikipedia.orgドメインに所属しており、このドメインはさらにorgドメインに所属している。階層構造の頂点には.で表されるルートドメインがただ一つあり、そこから.com.org.jp などの各トップレベルドメイン(TLD)が分かれている。さらに、TLDも子ドメインを持つことができ、セカンドレベルドメイン(SLD)と呼ばれる[2]

各ドメインはゾーンと呼ばれる管轄に分けて管理されている。ゾーンはドメイン名前空間上のある一部分に相当し、それぞれのゾーンは独立したDNSコンテンツサーバと呼ばれるコンピュータによって管理されている(ドメイン名の委譲)。DNSコンテンツサーバは、管理しているゾーンのホスト名とIPアドレスの組を記述したデータベースを持っており、クライアントマシン(あるいはDNSキャッシュサーバ)からの要求に応じて、あるホスト名に対応するIPアドレスを返す。DNSクライアントはルートサーバからいくつものDNSサーバをたどっていき、最終的なホスト名のIPアドレスを得る(DNSの再帰検索)。

DNSサーバの役割

[編集]
www.wikipedia.orgを名前解決する流れ

具体的な例として、ja.wikipedia.orgというホスト名の IPアドレスを検索することを考えると、再帰検索は、トップレベルドメインルートサーバに問い合わせることからはじまる。ja.wikipedia.orgというホスト名はwikipedia.orgドメインに属し、またwikipedia.orgドメインはorgドメインに属するため、クライアントは最初にorgドメインのDNSサーバ(ネームサーバ)のIPアドレスを得なければならない。

まず、クライアントは適当なルートサーバをひとつ選ぶ。ここでは A.ROOT-SERVERS.NET198.41.0.4)とする。2026年において、ルートサーバに登録されているorgドメインのネームサーバは13クラスタあり、そのうちのひとつはa7.nstld.com192.5.6.36)である。

つぎにクライアントは、このネームサーバにwikipedia.orgドメインのネームサーバの IPアドレスを問い合わせる。するとそのネームサーバのホスト名はdns34.register.com216.21.226.87)であることがわかる。

最後に、このネームサーバにja.wikipedia.orgのIPアドレスを問い合わせる。するとこのサーバは最終的な答130.94.122.197を返す。こうして目的とするホスト名のIPアドレスを検索できる。

権威サーバ(DNSコンテンツサーバ)

[編集]

DNSはデータを分散して保持する多数の権威サーバ(DNSコンテンツサーバ)とフルリゾルバ(DNSキャッシュサーバ)からなる。権威サーバ(DNSコンテンツサーバ、権威DNSサーバ」[3]、権威あるDNS[4]とも)は自らが担当する一定の範囲のドメイン名の名前解決を内部のデータベースを使って行い、その結果のIPアドレスを送り返す[3]

フルリゾルバ(DNSキャッシュサーバ)

キャッシュDNSサーバは権威DNSサーバの回答結果を一定期間保存して代わりに回答する機能を持ち、権威サーバ(DNSコンテンツサーバ)の負荷を分散する[5]

DNS over HTTPS (DoH) / DNS over TLS (DoT)

[編集]

DNS over HTTPS (DoH)は、スタブリゾルバとフルリゾルバ(DNSキャッシュサーバ)の間で行われるDNSクエリ(問い合わせ)とDNSレスポンス(応答)のやり取りをHTTPS上で行う[注 1]ことで、セキュリティとプライバシーを向上させる。これは RFC 8484 で定義され、MIMEタイプとしてapplication/dns-messageを使う。

DNS over TLS(DoT)は、同様のDNSクエリとDNSレスポンスを、TLSプロトコルを介して暗号化してやり取りする技術であり、得られるセキュリティ効果はDoHと同様である。

存在意義

[編集]

DNSは、ほとんどのインターネット利用者が普段意識していない透過的なシステムだが、その役割は非常に重要である。あるドメインを管理しているDNSサーバが停止してしまうと、そのドメイン内のホストを示すURLメールアドレスの名前解決などができなくなり、ネットワークが利用者とつながっていてもそのドメイン内のサーバ類には事実上アクセスできなくなる。そのため、重要なDNSサーバは二重化されていることが多い。

またDNS偽装を行うと、情報を容易に盗聴・偽装することができてしまう。情報レコードの不正な書き換えを防止するため、コンテンツサーバのマスタ(プライマリ)はインターネット(外部)から隠匿し、インターネットには特定のマスタのコピー(ゾーン転送)を受け取るスレーブ(セカンダリ)を公開するなどの構成を組んで、防衛手段を講じる。

関連語句

[編集]

関連プロトコル

[編集]
  • STD0013
    • RFC 1034 : DOMAIN NAMES - CONCEPTS AND FACILITIES
    • RFC 1035 : DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
  • RFC 8310: Usage Profiles for DNS over TLS and DNS over DTLS - TLS(TCPを使用)およびDTLS(UDPを使用)上でDNSメッセージのやり取りを行うプロトコルの規定。セキュリティやプライバシー保護の向上を意図している。
  • RFC 8484: DNS Queries over HTTPS - HTTPS上でDNSメッセージのやり取りを行うプロトコルの規定。使用するHTTPのバージョンとしてはHTTP/2が推奨されている。こちらも、セキュリティやプライバシー保護の向上を意図している。
  • RFC 9499:DNS Terminology - DNSの用語
  • マルチキャストDNS - mDNS とも表現される
  • LLMNR - Link Local Multicast Name Resolution

脚注

[編集]

注釈

[編集]
  1. つまり、ポート53を使わずにポート443を使う。

出典

[編集]
  1. ISI Marks 20th Anniversary of Domain Name System”. Information Sciences Institute (2003年6月26日). 2013年11月26日時点のオリジナルよりアーカイブ。2022年11月6日閲覧。
  2. 1 2 セキュアなドメインネームシステム(DNS)の導入ガイド”. IPA. pp. 2-1-2-8 (2026年5月9日). 2026年5月9日閲覧。
  3. 1 2 インターネット用語1分解説~権威DNSサーバ(authoritative name server)とは~”. JPNIC (2012年9月18日). 2022年11月6日閲覧。
  4. 第7回 DNSの仕組みについて”. Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]. 2022年11月6日閲覧。
  5. 重要技術 DNSの仕組み”. 国民のための情報セキュリティサイト. 2021年4月15日時点のオリジナルよりアーカイブ。2022年11月6日閲覧。

外部リンク

[編集]