ホスト名とIPアドレスの対応表
「hostsファイル」は名前解決の基本だ
TCP/IPで通信相手を指定する場合、IPアドレスを使用する。IPアドレスは32ビットのビット列で構成され、8ビットずつ10進数に変換し、「.」で区切って表記する。例えば、「192.168.1.1」というようになる。しかし、数字の羅列では覚えるのがたいへんだ。そこで、コンピュータに名前をつけて指定する方法が登場した。それが、「ホスト名」だ。コンピュータそれぞれに対して意味のある名前をホスト名に設定すれば、処理は楽になる。
ただし、通信するためにはIPアドレスが必要だ。というのも、IPヘッダで送信元IPアドレスと宛先IPアドレスの情報が必要だからである。つまり、ホスト名からIPアドレスを割り出すなんらかの仕組みを構築しなければならない。このような、ホスト名からIPアドレスを求めることを「名前解決(Name Resolution)」と呼ぶ。
では、この名前解決はどのようにして行われるのだろうか。以前は、各コンピュータに「hostsファイル」というテキストファイルを格納していた(図1)。hostsファイルには、ホスト名とIPアドレスの対応表を記述する。通信相手のホスト名を指定すると、hostsファイルの中からホスト名に対応したIPアドレスを引き出し、変換してから通信を行う。
|
図1● 以前の名前解決では、ホスト名とIPアドレスの対応表であるhostsファイルを各コンピュータに格納し、通信の際にそれを参照して変換作業を行っていた |
|
しかし、この方法ではある問題が発生する。それは、新しいコンピュータがネットワークに追加されるたびに、そのコンピュータのホスト名とIPアドレスの対応を各コンピュータのhostsファイルに追加するという作業だ。新しいコンピュータが1台であれば問題ないかもしれないが、10台、20台、100台ともなれば、相当の作業が必要となる。さらに、hostsファイルを保持するコンピュータの数も多ければ、倍の作業が生じるだろう。
hostsファイルはDNSサーバに格納
追加作業の負荷を減らそう
そこで、考え出された仕組みが「DNS(Domain Name System)」だ。ホスト名とIPアドレスの対応表を個々のコンピュータではなく、DNSサーバで管理して変換作業を行うというものである。各コンピュータは、必要に応じてDNSサーバに通信を要求し、名前解決を行う。つまり、コンピュータはDNSサーバのIPアドレスを登録するだけで、ネットワーク上のどのコンピュータとも通信できるというわけだ。
例えば、図2のようなネットワークで、ホスト名「venus」というコンピュータから「mars」というコンピュータに通信をする場合、venusはまずDNSサーバに対してmarsのIPアドレスを問い合わせる。これに対して、DNSサーバは該当のIPアドレスを返し、venusはそのIPアドレスを使用して目的のmarsと通信する。
|
図2● hostsファイルをDNSサーバに格納し、各コンピュータはホスト名を問い合わせてIPアドレスを取得する |
|
DNSサーバのメリットは、ネットワーク上に新しいコンピュータが追加されたとしても、DNSサーバ上のhostsファイルを更新するだけでよいということだ。ネットワーク管理者は、1台のサーバをメンテナンスするだけで、以前の仕組みよりも作業負荷は大幅に軽減される。
ちなみに、インターネットでウェブページを見るためのURLで、例えば「www.yahoo.co.jp」などはウェブサーバのホスト名だ。つまり、ブラウザでウェブページを見る場合、このホスト名をDNSサーバに問い合わせてIPアドレスを取得していることになる。
それでは、インターネット上のすべてのコンピュータのホスト名とIPアドレスをDNSサーバに登録しているのかというと、それは無理な話だ。インターネットには何億というコンピュータがつながっており、すべての情報を登録するのは現実的ではない。この問題の解決方法については、次回解説する。
(C) Office N-Study http://www.n-study.com/
|