MailData

DNSとは何か

DNSとは何か

2024年6月13日
著者: Ahona Rudra
翻訳: 岩瀨 彩江

この記事はPowerDMARCのブログ記事 What is DNS? の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


DNSとは「ドメインネームシステム(Domain Name System)」の略で、ドメイン名をIPアドレスに変換する仕組みです。
ドメイン名は、私たちがWebサイトを識別するために使用する人間が読みやすいアドレスであり、IPアドレスはコンピュータがインターネット上で相互に通信するために使用する数値のアドレスです。
DNSがなければ、私たちはお気に入りのWebサイトにアクセスするために長い数字の列を覚えなければならなくなります。

Webブラウザにドメイン名を入力すると、コンピュータのオペレーティングシステム内のDNSクライアントは、まずローカルキャッシュ内に対応するIPアドレスがあるかを確認します。
もしローカルに見つからない場合、そのリクエストはローカルエリアネットワーク(LAN)上のDNSサーバ、つまり通常はインターネットサービスプロバイダ(ISP)が提供する再帰リゾルバに送信されます。
DNSサーバはそのクエリを解決しようとします。

もし過去のリクエストからそのレコードをキャッシュしていれば、すぐにIPアドレスを返します(これを「非権威応答」と呼びます)。
そうでない場合、DNSサーバは他のDNSサーバに問い合わせを行います。
最初にルートサーバ、次にトップレベルドメイン(TLD)サーバ、そして最終的に対象ドメインの権威ネームサーバを順にたどり、正しいIPアドレスを見つけます。

見つかったIPアドレスはDNSサーバからコンピュータに返され、Webサイトへの接続が可能になります。
DNSサーバは、Time-to-Live(TTL)値で定められた期間、そのレコードをキャッシュし、次回以降のリクエストを高速化します。

DNSはインターネットの動作に不可欠な要素であり、IPアドレスを記憶する代わりに覚えやすいドメイン名を使用できるようにしています。
また、WebサイトがIPアドレスを変更しても、ユーザがブックマークを更新したり新しいIPアドレスを覚えたりする必要がないという利点もあります。

重要なポイント

  1. DNSは、人間が読みやすいドメイン名を数値のIPアドレスに変換し、インターネットの電話帳のような役割を果たします。
  2. ドメイン名は階層構造(例:subdomain.domain.TLD)に従っており、右から左へ読み取られます。
    また、その命名規則はRFC 1035で定義されています。
  3. DNSクエリには、リゾルバが完全な検索を行う「再帰的(recursive)」、次のサーバを紹介する「反復的(iterative)」、キャッシュ済みの情報を直接返す「非再帰的(nonrecursive)」の3種類があります。
    キャッシュを利用することで、パフォーマンスの向上が図られます。
  4. DNSトラフィックのログは、フォレンジック調査において貴重なデータを提供し、悪意のある活動やユーザの閲覧傾向を特定するのに役立ちます。
  5. 動的DNS(Dynamic DNS:変動するIPに対応)やプライベートDNS(Private DNS:内部ネットワーク向け)といった特殊なDNSの種類は、特定の技術的要件に対応しています。

DNS – ドメインネームシステム(Domain Name System)

DNSとは「ドメインネームシステム」の略です。
これはインターネットの電話帳のようなもので、ドメイン名をIPアドレス(文字や数字で構成され、コンピュータがインターネット上で自分自身を識別するために使用するもの)に変換することで、コンピュータ同士の通信を可能にします。

DNSは、たとえば「amazon.com」のような人間が読みやすいWebサイト名を、「198.245.240.6」のようなコンピュータが読み取れる数値アドレスに変換するサーバの階層構造です。
このプロセスは「名前解決(name resolution)」と呼ばれ、各サーバが他のサーバに関する情報を自分のデータベースに記録していることで機能します。

DNSの階層構造は、木(ツリー)のように視覚化できます。
最上位にあるルートサーバから枝分かれして、下位の枝(レベル)へと広がっていきます。
最下層のリーフノード(葉ノード)は、親サーバに保存されている情報以外の追加情報を持たず、より具体的な回答を求めるクライアントによってのみ使用されます。

DNSの構造

URLには通常、ドメイン名が含まれています。
ドメイン名はいくつものラベルで構成されており、ドメイン階層の各部分は区分を表し、右から左に向かって読み取ります。

ドメイン名のピリオドの後に続く部分が「TLD(トップレベルドメイン:Top-Level Domain)」です。
トップレベルドメインにはさまざまな種類がありますが、代表的なものには「.com」「.org」「.edu」などがあります。
また、「.us」(アメリカ)や「.ca」(カナダ)のように、国コードや特定の地理的地域を示すものもあります。
さらに、「.gov」(政府機関)、「.mil」(軍関連組織)のような業界特化型のドメイン拡張子や、「人工知能(AI)」関連の企業や個人に人気の高まっている「.ai」ドメイン拡張子など、新しいオプションも登場しています。

TLDの左側にある各ラベルには、それぞれ2つのサブドメインが関連付けられています。
例えば、URL「www.techtarget.com」では、「techtarget」は「.com」のサブドメインであり、「www」は「techtarget.com」のサブドメインです。
1つのラベルにつき最大63文字まで使用でき、サブドメインは最大127階層まで設定可能です。

ドメイン全体の文字数は最大253文字まで許可されています。
数値のみのTLD名は使用できず、ラベルをハイフン(-)で始めたり終わらせたりすることも禁止されています。
インターネット技術タスクフォース(IETF)が発行した「Request for Comments(RFC)1035」には、ドメイン名を設定するための標準が定められています。

関連資料:DNSの種類 ― DNSクエリの種類、サーバ、およびレコードの解説

DNSの動作仕組み

ユーザがブラウザに人間が読みやすいアドレスを入力すると、オペレーティングシステムのDNSクライアントはローカルキャッシュを検索し、対応する情報があるかどうかを確認します。
目的のアドレスが見つからない場合は、ローカルエリアネットワーク(LAN)上のDNSサーバを探します。

ローカルDNSサーバがクエリを受信し、目的のドメイン名を見つけるとすぐに応答します。
もし名前を取得できない場合、ローカルサーバはそのリクエストをDNSキャッシュサーバに転送します。
このキャッシュサーバは、一般的にインターネットサービスプロバイダ(ISP)によって提供されています。

DNSサーバは、DNSレコードを一時的にキャッシュに保存しているため、リクエストに迅速に応答することができます。
これらのDNSキャッシュサーバは、権威DNSサーバから取得したキャッシュ値に基づいてリクエストを解決するため、「非権威DNSサーバ(nonauthoritative DNS server)」と呼ばれます。

すべてのトップレベルドメイン(.com、.org など)に対応する権威ネームサーバの一覧は、「権威ルートネームサーバ(Authoritative Root Name Server)」によって管理・更新されています。
また、「権威トップレベルドメインネームサーバ(Authoritative Top Level Domain Name Server)」は、各ドメイン(例:gmail.com、wikipedia.orgなど)に対応する権威ネームサーバを保持しています。
DNSが指定されたドメインの正しい権威ネームサーバを特定するためには、これらのネームサーバに順に問い合わせを行う必要があります。

DNSクエリの種類

DNSクエリは、DNSリゾルバに送信されるリクエストの一種です。
クライアントはDNSサーバにクエリを送信し、サーバはそれに対して応答を返します。

再帰的DNSクエリ
再帰的クエリでは、DNSクライアントはDNSサーバに対して、要求されたリソースレコードを返すか、見つからなかった場合はエラーメッセージを返すよう要求します。
サーバは、単にクライアントを別のDNSサーバへ案内することはできません。
もしサーバが回答を持っていない場合は、クライアントの代わりに他のサーバ(ルート、TLD、権威サーバ)へ順に問い合わせを行い、回答を見つけるか、存在しないことを確認するまで処理を続けます。
これは、クライアント(例:あなたのコンピュータ)とローカルDNSリゾルバとの間で一般的に使用されるクエリの種類です。
反復的DNSクエリ

反復的クエリでは、DNSクライアントはDNSサーバに対して、その時点でサーバが持っている最良の回答を返すことを許可します。
もし問い合わせを受けたDNSサーバが、クエリ名に一致する情報を持っていない場合、そのサーバは「リファラル(referral)」と呼ばれる応答を返します。
これは、ドメイン階層のより下位レベルにある権威ネームサーバへの参照情報(ポインタ)です。

その後、クライアントはリファラルで指定されたサーバに直接クエリを送信します。
このプロセスは、クエリチェーンに沿ってさらに他のDNSサーバへと続き、エラーまたはタイムアウトが発生するか、回答が見つかるまで繰り返されます。
この方式は、DNSサーバ同士の間で一般的に使用されるクエリタイプです。

非再帰的クエリ
非再帰的クエリは、DNSリゾルバがすでに回答を知っているDNSサーバ(そのレコードの権威サーバであるか、またはレコードをキャッシュに保持しているサーバ)に問い合わせを行う場合に発生します。
この場合、サーバは他のサーバに問い合わせを行う必要がなく、即座に結果を返すか、レコードが存在しないことを示します。

Webパフォーマンス向上におけるDNSの役割

サーバがDNSクエリから取得するAレコード、つまりIPアドレスは、あらかじめ設定された期間キャッシュに保存することができます。
キャッシュによって効率が向上し、同じIPアドレスへのリクエストを再度受け取った際に、サーバは迅速に応答できるようになります。

たとえば、職場の全員が同じ日に特定のWebサイト上の研修ビデオを見る必要がある場合、ローカルDNSサーバは最初の1回だけ名前解決を行えばよく、その後はキャッシュから後続のリクエストすべてに応答できます。
このレコードを保持する期間は「TTL(Time To Live)」と呼ばれ、管理者によって設定されます。
TTLの長さはさまざまな要因に依存し、短く設定すればより正確な応答が得られ、長く設定すればサーバの負荷を軽減できます。

DNSプロバイダとは

DNSプロバイダとは、あなたのドメインをホスティングし、DNS(ドメインネームシステム)のレコードを使用して、ドメインをメール、Webページ、その他のWebサービスに接続する組織のことです。
ドメインホストが提供するDNSゾーンにアクセスすることで、DNSレコードを管理できます。
これらのレコードは、Webサイトやメールの運用において非常に重要な役割を果たします。

自分のDNSを確認する方法

自分のドメインがどこでホストされているかわからない場合は、以下の手順で確認できます。

  1. Webブラウザで指定のリンクを開き、ドメイン欄に自分のドメイン名を入力します。
  2. 下にある「DNS Lookup」ボタンをクリックすると、あなたのドメインホストが表示されます。

プライベートDNSとは

プライベートDNSサーバとは、自身が管理するドメイン名に関する情報の権威ある情報源として機能するネームサーバのことです。
プライベート」という言葉は、これらのサーバが一般公開されるのではなく、所有者によって厳密に管理されていることを意味します。
プライベートDNSサーバは、企業が自社のDNSインフラを運用したいものの、社内のユーザ(内部顧客)に外部アクセスを許可したくない場合によく使用されます。

プライベートDNSの利用例

以下は、プライベートDNSの主な利用ケースの一部です。

1.VCN内でのカスタムDNSゾーン
プライベートゾーンとは、内部用途のために使用されるパブリックゾーンのサブドメインです。
たとえば、「mycompany.com」という会社があり、「mycompany.myprivate.com」という別のドメインを持っている場合、このプライベートゾーンを社内ネットワーク専用に割り当てることができます。
これは、社内専用の複数のドメインやサブドメインを持つ企業にとって便利です。
2.リージョン内での共有プライベートDNSゾーン
インターネットアクセスを必要とする人数が少ない一方で、他のユーザからその接続を非公開にしたい場合に有効です。
この場合、特定のリージョン内で共有プライベートゾーンを設定し、別のリージョンや国にある権威ネームサーバを参照させることができます。
ただし、この構成ではレイテンシやスループットが増加する可能性があります。
3. スプリットホライズン
スプリットホライズン技術(スプリットビューDNSとも呼ばれる)は、クエリを送信したクライアントの送信元IPアドレスに応じて、同じクエリに異なる応答を返す仕組みです。
つまり、内部ユーザがドメイン名を問い合わせた場合は内部IPアドレスを返し、外部ユーザが同じドメイン名を問い合わせた場合はパブリックIPアドレスを返します。
この仕組みにより、1つのインターフェースからのみパケットを送信することでループを防止し、複雑なネットワーク内でのアクセス制御やルーティング管理に役立ちます。

動的DNSとは

動的DNS(DDNS:Dynamic DNS)とは、ドメイン名に関連付けられたIPアドレスが変更されるたびに、DNSレコードを自動的に更新できるソフトウェアサービスのことです。
これは、動的に割り当てられるIPアドレス(家庭用インターネット接続など)を使用しているデバイスやネットワークで、一定のドメイン名でアクセス可能にしたい場合に特に便利です。

動的DNSを利用する主な利点

管理の自動化
ネットワーク管理者は、IPアドレスが変更されるたびにDNS設定を手動で再構成する必要がなくなり、ネットワーク全体の健全性維持に集中できます。
リモートアクセスの利便性
自宅のサーバ、Webサイト、または他のネットワーク機器に、固定ドメイン名を使用してリモートアクセスすることが可能です。
たとえ自宅のIPアドレスが頻繁に変わっても、ネットワーク上のクライアントアプリケーションが現在のIPアドレスを定期的にDDNSプロバイダへ送信し、それに基づいてDNSレコードが更新されます。
コスト効率の向上
IPアドレス変更時にDNSレコードを手動で更新する必要がなくなり、静的IPアドレスを購入するよりもコストを抑えられます。
特に家庭や小規模ビジネスでの利用において、経済的かつ実用的なソリューションです。

DNSトラフィックとは

DNSトラフィックとは、クライアント(あなたのコンピュータやスマートフォンなど)とDNSサーバとの間で送受信される、すべてのクエリおよび応答パケットを指します。
Webサイトを閲覧したり、メールを送信したり、インターネット接続されたアプリケーションを使用したりするたびに、あなたのデバイスはドメイン名をIPアドレスに変換するためのDNSトラフィックを生成します。

DNSトラフィックが重要な理由

DNSは、企業のエンドユーザがインターネットに接続する際に極めて重要な役割を果たします。
クライアントデバイスがドメインへ接続するたびに、その接続情報はDNSログに記録されます。
クライアントデバイスとローカル再帰リゾルバ間のDNSトラフィックを分析することで、フォレンジック調査やセキュリティ監視に役立つ膨大な情報を得ることができます。

DNSクエリの分析で判明する可能性のある情報

ボットネットやマルウェアの通信パターン
コマンド&コントロール(C&C)サーバと通信している兆候を検出できます。
従業員のWeb閲覧履歴
ポリシーの遵守状況の確認やインシデント調査に利用できます。
悪意あるドメインやフィッシングサイトへのアクセス試行
また、マルウェアが使用することの多い「ドメイン生成アルゴリズム(DGA)」によって作成されたドメインへのアクセスも検出可能です。
動的DNS(DynDNS)の使用検出
これは、悪意ある活動と関連している場合があるため、監視対象となります。
DDoS攻撃の兆候検出
たとえば、「NXDomain(存在しないドメイン)」応答の急増を分析することで、攻撃の可能性を特定できます。

さらに、DNSはWeb展開においても欠かせない存在です。
WebサイトやWebサービスをドメイン名を通じて利用可能にするため、DNS設定は適切なWeb展開と管理を確実に行う上で重要な役割を果たします。

DNS設定とは

DNS設定とは、特定のドメイン名に関連付けられたドメインネームシステム(DNS)内の構成レコードを指します。
これらの設定は、ドメイン名に向けられたインターネットトラフィック(例:Webサイトやメール)が、どのサーバへルーティングされるかを決定します。

DNS設定は「DNSレコード」とも呼ばれ、たとえばAレコード、CNAMEレコード、MXレコード、TXTレコードなどが含まれます。
これらのレコードは、Webサイトや関連サービス(メール、FTPなど)のオンラインでの名前解決を制御します。
DNS設定は通常、ドメイン登録業者またはDNSホスティングプロバイダが提供する「DNS管理インターフェース」から操作でき、さまざまな設定変更を行うことが可能です。

DNS設定を変更した場合、その変更内容が世界中のDNSサーバネットワークに反映(伝播)されるまでには一定の時間がかかります。
この伝播時間は、TTL(Time To Live)の値や中間サーバのキャッシュ状態によって異なり、数分から数時間、場合によってはそれ以上かかることもあります。
頻繁な設定変更は伝播時間をさらに延ばす可能性があるため、ドメインのDNS設定を変更する際は、その影響を十分に理解し、確信を持って行うことが重要です。

関連資料:DNSレコードとは?|主要な8種類のDNSレコード

まとめ

以上が、DNSの基本を網羅した簡単な説明です。
ここで紹介した原則のいくつかが、DNSの仕組みをより深く理解し、その重要性を実感する助けになれば幸いです。
DNSは階層的なサーバ構造の中で動作しており、それぞれのサーバが特定のドメインまたはゾーンを管理しています。
DNSの動作を理解することで、私たちのオンライン活動を支える複雑なネットワークの仕組みをより正しく評価できるようになります。

インターネットは、この不可欠なサービスがあってこそ成り立っています。
ぜひ、舞台裏で動いているDNSの働きに注目してみてください。
もしかすると、あなた自身がDNSを活用する日が来るかもしれません。