});DNSは不思議の海へそもそもドメインって何なんでしょうか?素朴な疑問DNSは不思議の海へそもそもドメインって...複数の要素が入っているメリットはほかにありますか分散強調している姿を、もう少し具体的に説明してください詳しくホンモノのDNSを知るところで.jpのネームサーバはどうやって探すんですかDNS全体の動作の様子を具体的に教えてくださいDNSの現場を見てみようDNSサーバにはどんな種類がありますかセカンダリサーバって何ですかところでDNSのプロトコルってどうなっているんですか?DNSもtelnetで接続テストができますか?「覗いてみればディープな世界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は「分散協調システムである」という話をしました。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のネームサーバの仕事はここまでです。振り分けた先のことは関知しません。DNSの動作を簡単に書くと......(図をクリックすると拡大表示します))co.jpを管理するネームサーバも同じようなものです。ここには例えば「atmarkit.co.jpはNS-AITが管理している」といったような情報が登録されています。これも「仕事の振り分け先」情報ということになります。co.jpを管理するネームサーバには、そのほかの日本の各会社のドメイン名と、それを管理するネームサーバの名前が登録されています。次はいよいよatmarkit.co.jpを管理するネームサーバを見てみましょう。ほかの2つと違い、このネームサーバは仕事を振り分けません。いうと、自分のデータベースにはwwwというドメイン名に対するIPアドレスが登録されているからです。このネームサーバにwww.atmarkit.co.jpという名前を問い合わせると、振り分け先を教えてくれるのではなく、IPアドレスそのものを教えてくれます。このように、各ネームサーバは個々が独立したものであり、同時に、それぞれが連携して初めて1つの結果が得られるような構造になっています。各ネームサーバは自分の行うべき仕事がキチッと決まっていて、一般に、その範囲がドメイン名の1つの要素に対応するようになっています。ドメイン名がDNSの分散協調の仕組みに深く関連しているというのは、こういうところからうかがい知ることができます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。