2013.03.31
DNSの偉大さ
ネットはたくさんの技術によって成り立っているが、私が特に偉大だと思う技術は、DNSである。

Domain Name System
http://ja.wikipedia.org/wiki/Domain_Name_System

<Domain Name System(ドメイン ネーム システム、DNS)はインターネットを使った階層的な分散型データベースシステムである。1983年に情報科学研究所 (ISI) のポール・モカペトリスとジョン・ポステルにより開発された>。

<現在では主にインターネット上のホスト名や電子メールに使われるドメイン名と、IPアドレスとの対応づけを管理するために使用されている>。

DNSとは、大ざっぱに言うと「ドメイン名をIPアドレスに直すもの」だ。

例えば、当サイトのドメインは「mojix.org」で、現在のIPアドレスは「133.242.174.18」である。「mojix.org」というドメイン名を、「133.242.174.18」というIPアドレスに直すのが、DNSの役割である。ちなみに、ドメイン名をIPアドレスに直すことを「名前解決」と呼ぶ。

当サイトは10年以上やっているが、ドメインは以前から「mojix.org」で、変わっていない。しかしIPアドレスのほうは、たびたび変わってきた。IPアドレスが変わるということは、このサイトを動かしているサーバの環境が変わったことを意味する。

例えば先日、当サイトの仕組みを静的サイト生成に切り替えたが、このときもサーバ環境が変わったので、IPアドレスも変わった。しかし、IPアドレスが変わっても、当サイトは中断したりせずに、いつも通り動かしつづけることができた。

ここに、DNSの偉大さがある。DNSは、「mojix.org」のようなドメイン名と、「133.242.174.18」のようなIPアドレスの対応を保持している。DNSがこの対応を保持してくれているので、わたしたちはIPアドレスを直接使うのではなく、わかりやすいドメイン名を使うことができるわけだ。

この仕組みのメリットは、IPアドレスよりもドメイン名のほうがわかりやすい、というだけではない。ドメイン名に対応させるIPアドレスを変えるだけで、そのドメイン名の「実体」を変えることができるのだ。

私が先日やった変更は、まさにこれである。以前のIPアドレスのサーバでは、動的な仕組みでサイトが動いていた。そして、あたらしいIPアドレスのサーバに、静的に生成したサイトも用意しておく。中身の仕組みは違うが、どちらも外から見れば当サイトであり、まったく同じように見える。そうしておいて、「mojix.org」をどういうIPアドレスに対応させるか、というDNSの設定を切りかえたのだ。

ネットの住所であるURLは、「スキーム名+ホスト名+パス名」という構造をしている。例えば昨日のエントリのURLである、

http://mojix.org/2013/03/30/iwashi-maguro

であれば、

スキーム名 : http
ホスト名 : mojix.org
パス名 : /2013/03/30/iwashi-maguro

となる。このうちホスト名が、大ざっぱにいえば、ドメイン名にあたる。つまり、URLというもの自体、DNSの仕組みに依存しているのだ。

URLは、いまや誰でも目にするものなので、一般人にもよく知られている。いっぽう、それを背後で支えるDNSは、直接目にしないので、あまり知られていないだろう。しかし、DNSこそ、URLの威力を発揮させる「縁の下の力持ち」なのである。あなたがブラウザにURLを打ち込んだり、クリックして別サイトに飛んだりするたびに、DNSはあなたの知らないあいだに、「名前解決」という仕事をしているのだ。

DNSの偉大さは、名前と実体を切り離す「名前解決」にとどまらない。冒頭のウィキペディアの解説文にもあるように、DNSは<階層的な分散型データベースシステム>でもある。この「分散型データベースシステム」というのが、ドメイン名の仕組みとあいまって、じつによくできているのだ(詳しく書くと長くなるので省略。興味ある人はウィキペディアの解説などを参照)。このドメイン名とDNSの仕組みこそ、インターネットの「分散性」を生み出し、かつそれを支えているものだろう。


関連エントリ:
URLの構造とその意味
http://mojix.org/2012/09/12/url-kouzou