インターネットに接続された全ての機器はIPアドレス(たとえば、192.168.0.1など)を使って通信を行っています。しかし、人間が入力を行う時はwww.google.co.jpなどの名前を使っているため、IPアドレスをそのまま見る事は少ないと思います。
これは、人間に理解しやすいようにドメイン名・ホスト名という仕組みが用意されているためです。ここでは、IPアドレス・ドメイン名・ホスト名に関する説明を行いたいと思います。
人間のためにわかりやすくする(名前付け)
32ビットのIPアドレスは人間にとって直感的ではありませんし、非常に覚えにくいのでこのままでは使いにくいです。インターネットでは、人間がわかりやすいようにIPアドレスに「名前」を関連付けています。
たとえば、www.yahoo.co.jpやwww.google.comなども「名前」です。これらの「名前」は、IPアドレスに変換されてから通信が開始されます。「名前」からIPアドレスへの変換を行ってくれるのがドメインネームシステム(DNS、Domain Name System)です。
IPアドレス⇔名前変換システム(DNS)
名前とIPアドレスの変換は、DNSサーバに対して名前に対応するIPアドレスを問い合わせることにより行われます。名前を変換したいと思った機器は、DNSサーバに対して問い合わせを行います。DNSサーバは、問い合わせを受け取ると対応するIPアドレスを教えてくれます。DNSサーバに教えてもらったIPアドレスを使って実際のインターネット上の通信は行われています。
以上のように書くと、DNSサーバというのは何でも知っている魔法の箱のように聞こえるかも知れません。しかし、インターネット上の全ての名前と全てのIPアドレスを一箇所で把握するのは不可能です。そのため、名前情報を一箇所で集中管理しなくても良いように、DNSは自律分散協調するシステムとしてできています。具体的には、名前に階層を持たせて各DNSサーバに各自の守備範囲を持たせています。
以下にDNSの階層構造を示します。
上記図のように、DNS階層の一番上にはルートDNS(Root DNS)と呼ばれるDNSサーバがあります。ルートDNSは全てのDNSの大本となる重要部分です。このルートDNSには多大な負荷がかかりますし、ルートDNSが落ちるとインターネット全体が大混乱に陥るため、それを狙った攻撃も数多く行われている部分です(そこら辺の話は、今後書くかも知れません)。
ルートDNSの下にはTLD(Top Level Domain)と呼ばれるドメインを管理するDNSがいます。たとえば、日本のドメインを表すTLDである「.jp」もルートDNSの下にいます。TLDには以下のようなものがあります。
gTLD(Generic TLD)
- .com 商業用
- .net ネットワーク
- .org 非営利団体
その他、.info、.biz、.nameなどもあります。
ccTLD(国別コード)
ccTLDは、国に割り当てられたトップレベルドメインです。たとえば「.jp」は日本に割り当てられたccTLDです。注意が必要なのは、ccTLDは対応する機器が物理的にその国にあるということを示すものではないことです。たとえば、「.to」というトンガドメインがつくサーバが物理的にはアメリカに置いてあるというものもあります。
ccTLDは、IANA(Internet Assigned Numbers Authority)により規定されています。より詳細を知りたい方はIANAで公開されているリストをご覧ください。
サブドメイン
日本のドメインである「.jp」の下には「.co.jp」や「.or.jp」などがあります。さらに、「.co.jp」の下に「.yahoo.co.jp」や「.google.co.jp」のドメインがあります。
各階層を管理している人は、それ以下の階層の作り方を自分で管理できます。「.yahoo.co.jp」を管理している団体は、さらに下にサブドメインを作っても良いですし、そのまま「www.yahoo.co.jp」というホスト名を登録しても構いません。
インターネットでは、このように各ドメインの管理を分散させることにより負荷を一箇所に集中せずに名前の管理を実現しています。
最後に
人間にわかりにくいIPアドレスを隠蔽するDNSはインターネットの重要システムのひとつです。多くのインターネットユーザはDNSのおかげでIPアドレスの存在を全く知らずに通信を行えます。
さて、次はIPブロードキャストとIPマルチキャストに関して説明しようと思います。流れ的には、ちょっとズレますが、その後のルーティング等の説明をするときに登場するので、それらを次に説明します。