・人間が扱いやすいように,コンピュータに名前を付けたのが,ドメイン名である。
・ドメイン名は,一つのルートから枝葉に分かれる階層構造になっている。
・階層構造に合わせて多数のDNSサーバーが担当範囲を分担して,
ドメイン名とIPアドレスの対応関係を管理している。
インターネットには,数多くのコンピュータが接続されている。これらが互いに相手を間違えることなくデータを送受信し合えるには,住所が必要だ。インターネットには,そのために二つのしくみが用意されている。
その一つはIPアドレス。32ビットの0と1の数字で表す。「110100101001 00010111010110000100」といった具合である。しかし,これはコンピュータが処理するには都合がいいが,人間が覚えたり入力するのは面倒なので,8ビットずつに区切って10進数で表現するのが一般的だ。上記のビット列は,「210.145.117.132」となる。しかし,これでもまだ扱いにくい。
そこで,もっと人間が扱いやすい「名前」を付けたのが,ドメイン名である。つまり,IPアドレスはコンピュータが利用する表記方法,ドメイン名は人間が使用する表記方法である。
階層構造を持った名前
図 ドメイン名を管理するDNSのしくみ クライアントがIPアドレスを最寄りのDNSサーバーへ問い合わせると,DNSサーバーはドメインの階層をルートから順番にたどることで,目的のドメイン名のIPアドレスが調査でき,その結果をクライアントへ返信する。 |
ドメインをサブドメインに分割していくことにより,コンピュータの住所であるドメイン名は階層構造を持つことになる。例えば,nikkeibp.co.jpというドメインは,co.jpドメインに所属するサブドメインである。さらに,co.jpドメインはjpドメインのサブドメインになる。したがって,あるコンピュータのドメイン名は,大もとになるルート・ドメインを幹にして枝をたどっていくことができる(図[拡大表示]の右側)。
DNSサーバーがドメイン内を管理
階層構造を持ったドメイン名とIPアドレスの対応関係を管理するのが,DNSサーバーである。DNSサーバーも,ドメインによる階層に合わせて,自分自身が管理する範囲(「ゾーン」と呼ぶ)を分担する。ドメイン名は無数にあるから,これを管理するDNSサーバーもインターネット上に無数に散らばって存在することになる。
ただ,無数のDNSサーバーは自分の担当範囲だけを管理する。例えば,ルート・ドメインを管理するDNSサーバーは,直下に位置するjpドメインやcomドメインを管理するDNSサーバーのIPアドレスだけを知っていればよい。jpドメインの配下に,どんなドメインがあるかは,jpドメインを管理するDNSサーバーだけが知っていればよい。DNSサーバーは自身のドメイン情報だけの管理に専念できるのだ。
では具体的に,クライアントが「www.nikkeibp.co.jp」というドメイン名のIPアドレスを求めるまでの流れを見てみよう(図[拡大表示]の左側)。
クライアントは,最寄りのDNSサーバーへ「www.nikkeibp.co.jp」というドメイン名のIPアドレスを検索してほしいと要求する。要求を受け取ったDNSサーバーは,自分自身が管理していないドメインについての問い合わせに対しては,ルートDNSサーバーから順に,目的の答えを探していく。
まずルートDNSサーバーへアクセスして,jpドメインを管理しているDNSサーバーのIPアドレスを取得する。次に,jpドメインのDNS サーバーへアクセスしてco.jpドメインのDNSサーバーのIPアドレスを得る。同様の処理を繰り返し,最後にnikkeibp.co.jpドメインのDNSサーバーへアクセスして,www.nikkeibp.co.jpのIPアドレスが202.26.186.35だという回答を受け取り,これをクライアントへ返信するのである。
論理的な名前の利点
ドメイン名を使う利点は,ほかにもある。例えば,コンピュータを別の場所に移したためにIPアドレスが変わってしまっても,従来と同じ名前を使い続けられる。また,1台のコンピュータに複数の名前を付けることもできる。例えば,www11.nikkeibp.co.jpというコンピュータは,別名(ニックネーム)としてnnw.nikkeibp.co.jpとも命名できるのである。
つまり,ドメイン名は物理的なIPアドレスとは無関係に,論理的な名前を付けられるのである。