「覗いてみればディープな世界DNS(前編)」でDNSの一番大事な働きは「ドメイン名をIPアドレスに変更すること」だと書いてきました。でもこの「ドメイン名」って一体何なんでしょう?
コンピュータに付けられたインターネットでの名前? 確かにそのとおりです。でも、これでは「ドメイン名」のキモがイマイチ見えてきません。
じゃあ、あらためてドメイン名をじっくり観察してみましょう。例えば「www.atmarkit.co.jp」というドメイン名。ご存じのとおり@ITのWebサーバの名前です。この名前の特徴を挙げるとしたら、あなたは何を挙げますか? そう「.」が入っていること、これは1つの特徴です。そしてこの「.」で区切られて「jp」「co」「atmarkit」「www」など、意味のありそうな単語が並んでいます。
ここからくみ取れることは、ドメイン名が単純な名前ではなく、複数の要素を組み合わせてできた名前だという点です。ではどういった要素を組み合わせているのでしょうか。同じatmarkitのWebサイトのドメイン名で見ると図1のようになります。ドメイン名を右から読んでゆくと、「日本にある、企業の中の、@ITという会社の、Webサーバ」だと読むことができます。
もしお隣韓国に同じ名前の会社があったら、その会社はきっと「www.atmarkit.co.kr」というドメイン名を利用することでしょう。どちらの会社もその国内では「@IT」と呼ばれるでしょうから、ドメイン名の中にatmarkitという名前を含むこの名前は、その会社をうまく表しているといえます。その一方で、国を表す部分に「jp」と「kr」の違いがありますので、世界全体で見たとき、この2つの名前が混乱して困ることもありません。
全然話は違いますが、Hotmailのようなフリーメールの利用登録をするとき、自分が使いたいメールアドレスが使用中であることは非常に多いですよね。そこでtanaka0401みたいに、数字をくっつけた妙なメールアドレスになりがちです。これはhotmailのメールアドレスが、1つの要素しか持っておらず、それを世界各国のユーザーが先を競って奪い合うために起こることです。
もしドメイン名も同じような状況だったら、それはちょっと不幸な状況です。例えば日本の@ITがatmarkit01.com、韓国の@ITがatmarkit02.comだったら、利用者は混乱しますし、会社としてもそんな覚えにくいドメインを使用するのは不本意です。
幸い、現在のドメイン名は、「日本の会社」という数少ないライバルの中で、名前を取り合う形になっています。そのため、わずか1つの要素しかない名前の場合に比べれば、はるかに分かりやすい名前を利用できるというわけです。
ドメイン名に複数の要素を取り入れることは、さらに別のメリットもあります。その1つは、どんな名前を使っていいか、その国内だけで管理できるという点です。@ITという会社が“atmarkit”という名前の割り当てを申請したとします。このとき、ドメイン名の割り当てをする機関では、ほかに同じ名前を使っている会社がないかどうか、日本国内を調べるだけで済みます。国名や団体の種類を表す部分(co.jp)が違うので、たとえ海外でatmarkitという名前が使われていても全く問題ないからです。
つまり、ドメイン名は名前の中に複数の要素を持ち込むことで、名前を付けやすくすると同時に、それぞれの国で分散して管理をすることができる構造になっています。
さて、この辺から、前回の話題を少し思い出してみてください。DNSは「分散協調システムである」という話をしました。その中にはDNSは「機能の分散」をしているという項目があったことを覚えていらっしゃるでしょうか? 1台のコンピュータの前に列を成していては使い物にならない、いろんなところで登録や更新ができる必要がある、というあれです。
こうしてみるとドメイン名の構造は、実に「機能の分散」がしやすいものになっていることに気付きませんか? 先の例でいえば、世界全体で見たときのドメイン名の唯一性は維持しながら、割り当てや変更などの実務は、各国のドメイン名割り当て機関が独立して、つまり機能を分散して実施できるわけです。
このようにドメイン名の構造は、DNSの基本的なアイデアである分散協調の仕組みに、非常に深く関連しています。こうして見ていると、ドメイン名がまたちょっと違って見えてくるかもしれません。
DNSを形作る1つ1つのサーバを、一般に「ネームサーバ」とか「DNSサーバ」といいます。ここでは、たくさんのコンピュータが協調して動くシステム全体をDNSと呼んできたので、個々のサーバはネームサーバと呼ぶことにします。
それぞれのネームサーバは、自分が管理する範囲が決まっています。例えば.jpを管理するネームサーバなら、xx.jpのxxの部分についてだけを管理しています。図2の例では「co.jpはNS-COが管理している」という情報が登録してあります。これは「co.jpのことはNS-COに聞きなさい」という意味です。いわば「仕事の振り分け先」が書いてあるデータベースです。同じように「ne.jp」の場合はここ、「ac.jp」の場合はここと、それぞれの振り分け先が書かれています。.jpのネームサーバの仕事はここまでです。振り分けた先のことは関知しません。だから「分散」なんですね。
co.jpを管理するネームサーバも同じようなものです。ここには例えば「atmarkit.co.jpはNS-AITが管理している」といったような情報が登録されています。やっぱりこれも「仕事の振り分け先」情報ということになります。co.jpを管理するネームサーバには、そのほかの日本の各会社のドメイン名と、それを管理するネームサーバの名前が登録されています。
次はいよいよatmarkit.co.jpを管理するネームサーバを見てみましょう。ほかの2つと違い、このネームサーバは仕事を振り分けません。なぜかというと、自分のデータベースにはwwwというドメイン名に対するIPアドレスが登録されているからです。このネームサーバにwww.atmarkit.co.jpという名前を問い合わせると、振り分け先を教えてくれるのではなく、IPアドレスそのものを教えてくれます。
このように、各ネームサーバは個々が独立したものであり、同時に、それぞれが連携して初めて1つの結果が得られるような構造になっています。だから、「分散」「協調」型といわれます。
また、各ネームサーバは自分の行うべき仕事がキチッと決まっていて、一般に、その範囲がドメイン名の1つの要素に対応するようになっています。ドメイン名がDNSの分散協調の仕組みに深く関連しているというのは、こういうところからうかがい知ることができます。
Copyright © ITmedia, Inc. All Rights Reserved.