トレンド解説

DNSとは? 役割・仕組み・機能をわかりやすく解説

アイキャッチ
目次

DNSやDNSサーバーという言葉を目にしたことはあっても、その意味や仕組みについてしっかりと理解している人は少ないかもしれません。しかし、DNSはインターネットやイントラネットを利用する上で非常に重要な役割を担っています。DNSとは何なのか、その概要や仕組みについて解説します。

DNSとは

DNSとは、IPアドレスとドメイン名を紐付けて管理するシステムのことです。DNSは「Domain Name System」の略称です。

DNSはインターネットやイントラネットなどのIPネットワークを利用するときに不可欠なシステムです。DNSは1983年頃に開発され、RFC881、RFC882、RFC883で標準化されました。以来、現在までほとんど基本設計を変えることなく、インターネット上の重要な仕組みとして利用され続けています。

IPアドレスとドメイン名

DNSについて理解するには、IPアドレスとドメイン名の関係について知っておく必要があります。

IPアドレスは、IPネットワークに接続されている個々のコンピューターやスマートフォンなどの機器の在処を識別するための数値列です。ネットワーク上の住所に相当するものと考えればわかりやすいでしょう。IPはInternet Protocolの略で、コンピューター同士が通信を行うために定められたプロトコル(通信規約)のことです。IPを用いたネットワークがIPネットワークで、インターネットも巨大なIPネットワークの一種です。

一方、ドメイン名もインターネット上の住所の役割をしています。Webページを見たり、メールを送ったりするときに相手がどこにいるのかを特定するためのもので、インターネット上のネットワークに対して付けられます。ドメイン名はIPアドレスと違って、人間が扱いやすいように文字や記号の並びが使われます。

例えば、「xxx.xxx.xxx.xxx」といった数値列で示されるのがIPアドレスです(xには数字が入る)。こちらは、IPv4(Internet Protocol version 4)の表記になります。

これに対し、「https://www.○○○.co.jp」のようなURLの「○○○.co.jp」の部分がドメイン名です。ドメイン名は他と重複しないよう管理されています。

ドメイン名のなかで、「www」の部分がホスト名です。また「ホスト名+ドメイン名」を「FQDN(Fully Qualified Domain Name)」と呼びます。インターネットでは、FQDNはIPアドレスと同じコンピューター(サーバーなど)を指しています。

DNSはIPアドレスとドメイン名を紐付けるシステムです。もともとIPネットワーク上の通信は、機械的にはIPアドレスで通信相手を特定します。しかし、人間にとってIPアドレスは数字の羅列で覚えづらいので、IPアドレスに意味のある名前、ドメイン名を対応付けています。そのドメイン名で通信相手が特定できるようにした仕組みがDNSです。

DNSでは個々のドメイン名を管理するDNSサーバーが、ホスト名、ホストのIPアドレスといった情報を管理しています。ネットワークの利用者は、DNSサーバーにドメイン名やホスト名を問い合わせることで、それに対応しているIPアドレスを知ることができます。これらの処理を実行することを「名前解決」と呼びます。

DNSサービスの構成要素

DNS(ドメインネームシステム)は、インターネットの根幹をなすシステムで、人間が覚えやすいドメイン名と、機械にとって処理しやすいIPアドレスの対応付けを行います。ここでは、DNSの主要な構成要素について解説します。

DNSクライアント

DNSクライアント、またはスタブリゾルバーは、エンドユーザーの端末(例:PC、スマートフォン)や特定のシステムで動作しています。クライアントは名前解決が必要となったタイミングでDNSサーバーに解決要求を送信します。また、過去の問い合わせ結果を一時的に保持するキャッシュ機能をあわせもつ場合も多く、過去に名前解決したドメイン名の場合は、自身内部に一時的に記録しておいた情報を用いて、問合せを省略することもあります。

権威DNSサーバー

権威DNSサーバー(Authoritative DNS Server)は、DNSコンテンツサーバー、権威ネームサーバー、ゾーンサーバーとも呼ばれます。ホスト名とIPアドレスの対応付ける情報を管理し、実質的な名前解決を行います。権威DNSサーバーはインターネット上で一般に公開される場合もあれば、企業内ネットワークなど限定的な範囲で利用されることもあります。

英語の"Authoritative"(オーソリティブ)は、「権威がある」「信頼される」「正式な」といった意味を持っています。
「ホスト名とIPアドレスの対応付ける情報を管理するDNSサーバー」に、この用語が使われている由来は、このサーバーが特定のドメイン名に対応するIPアドレス情報の「正式で信頼される」情報源となるからです。他のサーバーがそのドメインのIPアドレスを知りたいとき、権威DNSサーバーへ問い合わせることで、正確で信頼性の高い情報を得ることができるのです。この権威的な立場が、名称に反映されています。

DNSプロキシー

DNSプロキシー、またはDNSフォワーダーは、クライアントからの問い合わせを受け、適切なDNSサーバーへ転送します。多くのルーターやファイアウォールがこの役割を果たします。権威DNSサーバーに直接問い合わせない理由は、セキュリティ上の配慮と名前解決の効率性の向上です。具体的には、不正なリクエストのフィルタリング、ネットワークの遅延の削減、再帰的な問い合わせの効率化などが挙げられます。

キャッシュDNSサーバー

「キャッシュ(Cache)」は「一時的に保存する」ことを意味し、過去に問い合わせた結果を一時的に保存して、同じ問い合わせに対して高速に応答する役割を果たします。

キャッシュサーバーが存在する理由は、効率的な名前解決とネットワークの負荷分散のためです。過去の問い合わせ結果を保存することで、同じ問い合わせが再度来た場合に権威DNSサーバーに直接問い合わせずに応答できるため、処理速度が速くなり、ネットワークの負荷も軽減されます。

キャッシュDNSサーバーは、フルリゾルバー(Full Resolver)、またはフルサービスリゾルバー(Full Service Resolver)または、参照サーバー(Recursive Server)とも呼ばれます。これらのサーバーは、クライアントからのDNS問い合わせを処理し、必要に応じて権威DNSサーバーに問い合わせを行います。

「リゾルバー(Resolver)」 英語で「解決者」を意味し、ドメイン名をIPアドレスに解決する役割を示しています。

以上、DNSの構成要素について解説しました。権威DNSサーバーが対応付けを担い、DNSプロキシーがセキュリティと効率化の重要な役割を果たす一方で、クライアントとキャッシュサーバーが迅速な応答を支えます。これらの要素が連携して、インターネットの名前解決システム全体を構成し、ネットワーク全体を支えているのです。

DNSサーバーと名前解決の仕組み

DNSサーバーとは、IPアドレスとドメイン名を紐づけ、変換する役割を担うサーバーです。

DNSサーバーは1台のみで全世界のIPアドレスとドメイン名を把握しているのではなく、サーバーを階層化し、分散して、ドメイン名とIPアドレスの対応を管理しています。

階層はドメイン名の構造から見てとれます。ドメイン名はドット(.)で区切られた複数の部分から成っていて、一番右側が最も広い領域を指し、順に範囲を狭めていく階層構造になっています。「×××.○○○.co.jp」というドメイン名なら、「jp」は最上位階層のトップレベルドメイン(TLD)、「co」はセカンドレベルドメイン(SLD)、「○○○」はサードレベルドメイン(3LD)と呼ばれます。また、あるドメイン名の配下に設けられた下位のドメイン名は「サブドメイン」といいます。

そしてDNSサーバーの中で「jp」や「com」「org」といったトップレベルドメインとIPアドレスを管理するのが、最上位のルートサーバーです。ルートサーバーは世界の十数か所に設置されています。ある特定のドメイン名を問い合わせるときは、ルートサーバーにトップレベルドメインのDNSサーバーの所在をたずねて、次にトップレベルドメインのDNSサーバーにセカンドレベルドメインの所在をたずねる……という手順を繰り返して、最下層ドメインのDNSサーバーからIPアドレスの情報を得るという手続きが行われます。

非再起問合せと再起問合せ

DNSには2種類の問合せがあります。それぞれの特性と関連性について解説します。

非再起問合せ(Non-Recursive Query)

非再起問合せは、直接権威DNSサーバーに問い合わせをし、そのサーバーが持っている情報で応答するプロセスです。他のサーバーへの転送は行わず、一回の問い合わせで終了します。

直感的に分かりやすい名前解決の方法ですが、一般に、全てのDNSクライアントが権威DNSサーバーに直接問合せを行うことはありません。サーバーへの負荷が増加し、通信効率が悪化してしまいためです。また、クライアントが目当てのホスト名をどの権威サーバーが管理しているのかを知っていなければならず、その情報量は膨大になります。

このため、DNSサービスでは「再起問合せ」というプロセスが存在します。

再起問合せ(Recursive Query)

再起問合せとは、クライアントからの問い合わせがキャッシュDNSサーバーに送られ、そのサーバーがさらに他のサーバーへ問い合わせを行い、このプロセスが繰り返されるものです。クライアントは一度の問い合わせで応答を得られ、権威サーバーへの負荷も分散されます。

再起問合せの利点は、クライアントが一度の問い合わせで答えを得られる効率性、権威サーバーへの負荷分散、通信効率の向上などが挙げられます。

非再起問合せと再起問合せは、DNSの名前解決の中心的なプロセスです。この組み合わせによって、インターネットの名前解決システムの効率性と堅牢性が維持されています。

DNSレコードの種類

DNSでは名前解決を行うために様々なレコードが使用されます。各レコードは特定の目的とシーンで利用されます。

レコードの種類説明
Aレコード
(Address Record)
Aレコードは、ドメイン名をIPv4アドレスにマップします。インターネットの初期に導入され、ドメイン名の使用が主流となる礎を築きました。IPアドレスだけでは覚えにくいため、このAレコードが人々に親しまれたドメイン名の使用を可能にしました。例えば、ウェブブラウザでURLを入力すると、Aレコードを参照してIPアドレスを取得し、そのアドレスに対して通信を開始します。
AAAAレコード
(Quad-A Record)
AAAAレコードは、IPv6アドレスに対応するDNSレコードです。IPv4アドレスの枯渇が進んだことから、IPv6が導入され、それに伴いAAAAレコードが生まれました。IPv4と同じく、IPv6アドレスをドメイン名に関連付け、同じURLでIPv4とIPv6の両方のクライアントからの接続を受け入れることができます。
MXレコード
(Mail Exchange Record)
MXレコードは、電子メールの送受信に使用されます。このレコードは、メールの送信先サーバーを指定し、どのメールサーバーがメールの受信を担当するかを示します。複数のMXレコードがある場合、優先度に基づいて送信先が選ばれます。これにより、障害時のフォールバックなど、メールの柔軟なルーティングが可能になります。
NSレコード
(Name Server Record)
NSレコードは、特定のドメインに責任を持つネームサーバーを指定します。これにより、DNSの階層構造が構築され、規模の拡大に対応します。NSレコードによって、特定のサブドメインを異なるネームサーバーに委任することも可能で、企業内の異なる部署や組織間でのドメイン管理が容易になります。
TXTレコード
(Text Record)
TXTレコードは、ドメインに関連する任意のテキスト情報を保存するためのレコードです。主に認証用の情報を保存するのに使用されます。例えば、SPF(Sender Policy Framework)の情報を保存して、メール送信元の検証を行ったり、DKIMの公開鍵を公開したりする用途に使用されます。
CNAMEレコード
(Canonical Name Record)
CNAMEレコードは、別名を提供するためのレコードです。他のドメイン名にリダイレクトしたい場合や、同一のサービスを複数のドメイン名で提供したい場合に使用されます。これにより、サーバーの管理が効率化され、一元化された設定変更が可能になります。
PTRレコード
(Pointer Record)
PTRレコードは、IPアドレスからドメイン名への逆引きを行うためのレコードです。サーバー間の通信で相手方の正当性を確認する場合などに使用されることが多いです。例えば、メールサーバーがSPFチェックを行う際に、PTRレコードによって送信元IPアドレスのドメイン名を確認できます。
SOAレコード
(Start of Authority Record)
SOAレコードは、DNSゾーンの全体的な設定情報を提供します。ゾーンの主要なネームサーバー、ゾーンの責任者のメールアドレス、リフレッシュ間隔、再試行間隔などのパラメータが含まれます。これにより、ゾーン内の他のネームサーバーとの同期が円滑に行われます。
SPFレコード
(Sender Policy Framework Record)
SPFレコードは、メールの送信元として許可されるIPアドレスのリストを提供します。これにより、偽造されたメールの受信を防ぐことができます。セキュリティ対策として、不正なメール送信元からのメールをフィルタリングするために用いられます。

DNSレコードはインターネットの基盤となり、多岐にわたる役割を果たしています。様々なタイプのレコードがそれぞれの用途に応じて設計され、それらが組み合わさることで複雑なネットワークの運用が可能になります。上記のレコードがいかに重要であるかを理解し、適切に設定することが、効率的かつセキュアなインターネットの基盤を築く鍵となります。

DNSの仕組みを悪用した攻撃手法

DNSサービスは、その重要性から攻撃者にとって主要なターゲットとなっています。

DNSキャッシュポイズニング

DNSキャッシュポイズニングは、その名前が示すように、「毒」のようにDNSキャッシュに不正な情報を混入させる攻撃です。攻撃者が偽のDNS応答を送り、レジットのサーバーからの応答よりも早くキャッシュサーバーに到達させます。結果として、キャッシュサーバーに不正なIPアドレス情報がキャッシュされ、クライアントは偽のウェブサイトに誘導され、個人情報などが盗まれる可能性があります。DNSSEC(DNS Security Extensions)の導入やキャッシュの有効期限の厳格な管理などが対策として挙げられます。

DNSアンプリフィケーション攻撃

DNSアンプ攻撃は、要求と応答の間で情報量が「増幅」することから名付けられました。この攻撃では、攻撃者が偽装したIPアドレスから大量のDNS要求を送信し、その応答がターゲットに送られるようにします。その結果、ターゲットのネットワークリソースが飽和し、サービス運用が妨げられる可能性があります。リクエストレートの制限や不正なトラフィックのフィルタリングといった対策が求められます。

ドメイン名ハイジャック

ドメイン名ハイジャックは攻撃者がドメインの登録情報に不正にアクセスし、その情報を改ざんすることでドメインを乗っ取る攻撃です。オリジナルのウェブサイトにアクセスできなくなり、ビジネスに深刻な影響を及ぼす可能性があります。これに対する防衛策としては、二要素認証の導入や、ドメインの登録情報を定期的にチェックすることが推奨されます。

DNSトンネリング

DNSトンネリングとは、DNSのプロトコルを悪用してデータを隠密に送受信する攻撃手法です。このような攻撃を通じて、不正な通信が隠蔽されたり、機密情報が外部に漏洩したりするリスクが生じます。このような攻撃から身を守るためには、異常なDNSトラフィックを検出できるモニタリングシステムの導入や、フィルタリングルールの適用が効果的です。

ファストフラックス

ファストフラックスは攻撃者がDNSレコードを高頻度で変更し、攻撃のソースを隠蔽する技術です。これにより、攻撃の追跡が困難になり、対策が遅れる可能性があります。DNSの挙動分析や、不正なトラフィックのフィルタリングといった対策が重要となります。

まとめ

インターネットやイントラネットにおいてDNSは重要な役割を果たしています。その仕組みがなければ、Webサイトを閲覧することもメールを使うこともできません。DNSの仕組みを理解しておきましょう。

ご参考


【ウェビナー】企業ネットワークの必須要件 ~重要インフラの信頼性を高めてくれるNWサービスを運用する方法~ | ネットアテスト

netattest.com

og_img


記事を書いた人

ソリトンシステムズ・マーケティングチーム