サーバーやパソコンには、コンピュータを識別するための番号である「IPアドレス」が割り振られています。IPアドレスは、「203.137.3.234」などのように数字を「.(ピリオド)」で区切ったもので、アクセスしたいサイト(サーバー)ごとに異なるIPアドレスが割り振られています。
ホームページやメールを利用するときにも、IPアドレスを指定すると直接サーバーにアクセスすることができます。
しかし、アクセスしたいサーバー(サイト)のIPアドレスをすべて覚えておくのは現実的ではありません。
そこで活躍するのがドメイン名とDNSです。
一般的に、ホームページやメールを利用するときにはIPアドレスではなくドメイン名を使いますよね。インターネット通信では、ドメイン名をIPアドレスに変換して通信が行われています。
DNSは、インターネット上でドメイン名を管理・運用するために開発されたシステムで、インターネット通信時にドメイン名をIPアドレスに変換する作業を担っています。
たとえば、クライアントが「zenlogic.jp」とWEBブラウザに入力すると、「zenlogic.jp」のサーバーを探すためにDNSサーバーに問い合わせに行きます。
そこで、「zenlogic.jp」のIPアドレスを知っているDNSサーバーがドメイン名をIPアドレスに変換して「203.137.3.234」を返します。
クライアントはそのIPアドレスを得て「zenlogic.jp」を運営しているWEBサーバーにアクセスし、ホームページを表示させることができるのです。
ドメイン名からIPアドレス(またはIPアドレスからドメイン名)へ変換することを「名前解決」といいます。
名前解決を行う際には、クライアントからDNSサーバーに問い合わせを行います。
DNSサーバーは名前解決の処理を分散化させるために、ドメイン名を「.(ドット)」で区切ったレベルで階層構造になっています。それぞれのDNSサーバーは、自身の下位にあるDNSサーバーの情報を管理しています。
名前解決を行う際には、一番上位にある「ルートサーバー」から順に問い合わせを行っていき、最終的に該当ドメイン名の情報を知っているDNSサーバーにたどり着くという仕組みになっています。
しかし、名前解決のたびに「ルートサーバー」に問い合わせを行うと、ルートサーバーに処理が集中し応答に時間がかかるなどの問題が発生します。
そこで、キャッシュサーバーと呼ばれる「DNSサーバーに問い合わせを行うためのサーバー」を用意し、クライアントからこのキャッシュサーバーを介して名前解決が行われています。
前述したように、DNSで名前解決を行う際にはキャッシュサーバーを経由しますが、キャッシュサーバーは毎回ルートサーバーへの問合せは行いません。これは、ルートサーバーをはじめ、他のDNSサーバーへの負荷を減らすための対応です。
キャッシュサーバーは、一度問い合わせをして得た情報は一定期間保持しています。
これがDNSキャッシュです。
キャッシュサーバーに再び同じ問合せがあった場合は、キャッシュサーバーが持っているDNSキャッシュの情報をクライアントに返します。
しかし、世界中にあるDNSサーバーが保持している情報は、いつでも変更することができます。
キャッシュサーバーが一度知った情報をずっと保持していると、いつまでたっても新しい情報を入手することができません。
そこで、DNSではTTL(Time To Live)という値で、DNSキャッシュの保持時間を指定できるようになっています。TTLで指定された時間を経過すると、キャッシュサーバーは再びDNSサーバーに問い合わせを行い、新しい情報を取得します。そしてまた、DNSキャッシュとして保持します。これを繰り返し行っているのです。
※キャッシュ情報は、キャッシュサーバー以外でも保持しています。
環境によって、各DNSサーバーやクライアントPCなどもキャッシュ情報を保持しています。
ポイント!
DNS情報の変更を行った場合は、DNSキャッシュの影響で、新しい情報が全世界に反映するまで一定の時間が必要となります。DNS情報の変更を行う場合は、DNSキャッシュの影響を考慮した上で作業を行いましょう。