パソナについて
記事検索

DNSとは何か?DNSサーバーの働きやWebサイトへアクセスする流れを解説

本記事ではDNSの働きや、DNSを活用してWebサイトへアクセスする流れについて解説します。また通信を高速化するために行なわれているさまざまな工夫についても紹介します。

DNSとは何か?DNSサーバーの働きやWebサイトへアクセスする流れを解説

本記事ではDNSの働きや、DNSを活用してWebサイトへアクセスする流れについて解説します。また通信を高速化するために行なわれているさまざまな工夫についても紹介します。

知識・情報

2022/11/10 UP

インターネットの通信において接続先のアドレスを探し出す仕組みをDNSと呼び、現代のインターネットなくてはならない存在です。本記事ではDNSの働きや、DNSを活用してWebサイトへアクセスする流れについて解説します。また通信を高速化するために行なわれているさまざまな工夫についても紹介します。

DNSとは

はじめに、DNSの技術の概要を解説します。現代のネットワーク技術ではDNSを用いることでWebサイトにアクセスすることを可能とします。

DNSの概要

DNSとはDomain Name Systemの略であり、ネットワーク上の機器に割り当てられた名称(ドメイン名やIPアドレス)を管理するシステムのことです。インターネット上で接続先の機器を探しだす際には、機器の名称であるIPアドレスまたはドメイン名が必要となります。DNSには人間にとって使いやすいドメイン名と、コンピュータが理解できるIPアドレスを関連づけ、通信相手の機器を探し出す役割があります。

DNSの働きは単に通信相手の機器を見つけるだけではありません。複数のDNSサーバーで作業分担することによる負荷の軽減や、ユーザーを距離の近いWebサーバーへ誘導して通信速度を向上させる働きもしています。

ドメイン名とIPアドレスの関係

ネットワーク上の各機器を識別するため、機器固有の番号であるIPアドレスが割り当てられています。そのため、Webサイトを閲覧する際はコンテンツを保有するWebサーバーに与えられたIPアドレスを知る必要があり、IPアドレスを指定することで相手先からコンテンツを入手できます。

しかしIPアドレスは複数の桁の数字で構成されているため覚えづらく、ネットワーク構成が変わるとアドレスも変わるため、毎回IPアドレスを指定するのは困難となり現実的ではありません。そこで人間が覚えやすいようアルファベットを用いたドメイン名をIPアドレスに対応させています。DNSサーバーは、ユーザーが指定したドメイン名から対応するIPアドレスを探し出し、Webサーバーにアクセスできるようになります。

DNSサーバーの役割

DNSサーバーのおもな役割は、ドメイン名とIPアドレスの関連付けと、ユーザーによるIPアドレスの問い合わせ対応の2つです。

名前解決を行なう

DNSサーバーの役割の一つは、ユーザーが問い合わせたドメイン名に対応するIPアドレスを返すことです。DNSサーバーはドメイン名と、それに対応するIPアドレスの情報を常に保有しており、どこからでも参照できます。接続先を指定するにはIPアドレスが必要となるため、DNSサーバーから情報を得ることで通信が可能となります。

ドメイン名に対応するIPアドレスを明らかにしたり、逆にIPアドレスからドメイン名を求めることを名前解決と呼びます。人間とコンピュータの双方を取り持つことで、通信の課題を「解決」することを表す名称といえるでしょう。なお問い合わせに対応する側はDNSサーバー、問い合わせる側はDNSクライアントと呼ばれています。

サーバーが互いに連携して問い合わせに対応

DNSは世界中のサーバーが自律的に連携する分散管理システムで構成されています。複数のサーバーが階層的に接続され、階層の一番上に配置しているのがルートサーバー、その下にあるのは複数の権威DNSサーバー。そしてユーザーに最も近く、ユーザーの問い合わせを直接引き受ける役割をするのがキャッシュDNSサーバーです。

このようにサーバーを階層化、分散化しているのは効率的に名前解決を行なうためです。ネットワーク上の機器は膨大な数が接続されているため、1台のサーバーですべてを管理しようとすると膨大な容量が必要となり、通信負荷も集中するでしょう。各サーバーが限られた情報のみ所有し、次の問い合わせ先を指示することで役割を分散し、各サーバーの通信の負荷を削減しています。

Webサイトへアクセスする流れ

Webサイトへアクセスする流れ クリックして拡大

DNSサーバーの働きを紹介するため、例としてユーザーがWebサイトを閲覧するケースを取り上げます。各サーバーから情報を集めながら名前解決を行ない、Webサーバーからコンテンツを入手するまでの一連の流れを解説します。

ユーザーからキャッシュDNSサーバーへ問い合わせ

ユーザーがWebサイトを閲覧するには、接続先のドメイン名を含むURLを指定します。まずはキャッシュDNSサーバーに、ドメイン名と対応するIPアドレスの情報があるか問い合わせます。キャッシュDNSサーバーはドメイン名と対応するIPアドレスの情報を一時的に保存しており、情報があれば該当するIPアドレスをユーザーに返します。

キャッシュDNSサーバー内に情報がない場合でも、ユーザーの問い合わせへの対応を一手に引き受けます。キャッシュサーバーから別サーバーに問い合わせを行ない、どのDNSサーバーが情報を持つか探索します。

キャッシュDNSサーバーから別サーバーに問い合わせ

キャッシュDNSサーバーが情報を持たない場合、最初にルートサーバーに問い合わせをします。ルートサーバーは名前解決に関する問い合わせの起点の役割を持ちます。仮に「www.sample.com」というドメイン名について問い合わせる場合、ルートサーバーはcomサーバーのIPアドレスを知らせます。

次にキャッシュサーバーがcomサーバーに問い合わせると、comサーバーはsample.comサーバーのIPアドレスを返します。キャッシュサーバーがsample.comサーバーに問い合わせると、目的のwww.sample.comサーバーのIPアドレスを返します。こうしてルートサーバーや下位のサーバーに繰り返し問い合わせることで、最終的に目的のIPアドレスを入手できました。

DNSサーバーの分散処理で負荷軽減

キャッシュDNSサーバーが繰り返し問い合わせをし、目的のIPアドレスの情報を得ることを再帰検索と呼びます。各サーバーは自身の責任範囲内で知っている情報のみ教えるため、負荷が1つのサーバーに集中せず分散処理できることがメリットです。

目的のIPアドレスがわかれば、キャッシュDNSサーバーからユーザーに返します。ユーザーは入手したIPアドレスでWebサーバーを指定し、目的のコンテンツを入手できます。ユーザーがそのコンテンツを頻繁に利用するのであれば、そのたびに再帰検索するのは手間となってしまうでしょう。キャッシュDNSサーバーは問い合わせから得た結果をある程度の時間は保存しておき、再度問い合わせがあった場合は即座にキャッシュ内の内容を解答できるようにしています。

通信高速化の工夫

通信高速化の工夫

ここまでDNSサーバーの働きでWebサイトを閲覧する方法を説明しました。通信を高速化するためにさまざまな工夫がされており、その一部を紹介します。

ユーザーを最寄りのWebサーバーへ誘導

多くの人々が閲覧するWebサイトは複数のサーバーで情報を保有し、負荷を分散しています。ユーザーがWebサーバーからデータを取得するとき、各々が自分と近いサーバーから情報を入手できると通信が早くなります。実際のところ、国内でWebサイトを閲覧しようとする際には国内のサーバーから情報を取得できるよう仕向けられています。

例えば、日本からアメリカのサーバーにアクセスする場合、光ファイバーを経由したとしても光速よりは遅くなるでしょう。ファイバー中を流れる光信号が光速以下の速度であるだけでなく、光信号と電気信号との変換時にも遅延が発生するためです。国内のサーバーにコンテンツが保存されていれば、物理的に距離が近いためその分だけ早く情報を取得できることになります。

tracerouteでキャッシュDNSサーバーをマッピング

各ユーザーにとって最適なサーバーを選択するためには、ユーザーがサーバーにアクセスする経路や距離を計測しなければなりません。tracerouteというコマンドを活用することで、複数のキャッシュDNSサーバーのマッピングが可能となります。

tracerouteでキャッシュDNSサーバーをマッピング クリックして拡大

Tracerouteの表示画面の例

tracerouteは通信したいIPアドレスを指定すると、通信相手までの経路情報を検索できます。各パケットに記されたTTL(Time To Live)という値はパケットの生存時間を示し、パケットがルーターで転送されるごとに減算されます。そのためTTLの数字からパケットが通ったルーターの数が判明します。tracerouteでは、TTLの数を増やしながらパケットを何度も送り出すことで、各サーバーまでの経路の算出が可能です。

pingでサーバー間の距離を計測

Tracerouteの表示画面の例 クリックして拡大

Pingのコマンド例

pingとは発信してから応答があるまでの通信速度を数値化したもので、通信の往復時間であるms(ミリ秒)の単位で表されます。通常はpingを用いて相手の機器との接続の可否を確認することが多いでしょう。それだけではなく、pingから求めたパケットの往復時間により、機器同士の距離の測定が可能です。

tracerouteで算出したDNSサーバーまでの経路、pingで算出したDNSサーバー間の距離を用いることでネットワーク上の混雑の様子などをリアルタイムで把握できるようになります。こうして遅延の影響が少ないルートを割り出し、ユーザーが目的のWebサーバーに通信できるまでの時間を短縮化できます。

DNSサーバーの名前解決でWebサイトが閲覧できる

DNSとは機器のドメイン名とIPアドレスを管理するシステムのことです。DNSサーバーの名前解決の仕組みにより、指定したドメイン名から目的の機器のIPアドレスを求めることができるようになりました。私たちがWebサーバーに接続してWebサイトを閲覧できるのも、DNSの仕組みのおかげといえるでしょう。

DNSサーバーは複数台で役割を分担する分散処理によって、1台あたりの負荷を軽減させています。またユーザーがWebサーバーにアクセスする際の通信を高速化する工夫の一つとして、tracerouteやpingのコマンドを用いて遅延の少ないルートを算出する方法があります。このようにDNSは目的の機器への通信を手助けし、インターネットの利便性を高めています。