DNSサーバーを設定していて思ったのですが、DNSとはこんなものでは
ないのでしょうか?
インターネットでホームページのURLを指定する時に、例えば
「http://www.kaze.com/hkita/」としますが、どうしてこれだけで世界中の
URLを指定できるのか???不思議に思ったことはありませんか。
インターネット自体は、各ホスト(コンピュータ)はIP
(Internet Protocol)アドレスを持っており、このIPアドレスでデータ
転送先を指定します。
あるホストのIPアドレスは世界で唯一のものであり、他のホストと重複して
はなりません。
そうすると、そのIPアドレスを管理する組織がなくてはなりません。
この組織がInterNICやjpNICなのです。
インターネットと接続するためには、ここにドメイン名の登録が必要で、
これに対してここからIPアドレスが割り当てられます。
ドメイン名と言うのは最初に書いたURLの例で言うと「kaze.com」に当りま
す。
「www.kaze.com」と言うのはこのドメイン上にあるWWWサーバ名を指してい
ます。
このWWWサーバのIPアドレスは「204.254.7.166」です。よって、URL
指定を「http://204.254.7.166/hkita/」としても同じWWWサーバにアクセ
スできます。
この場合DNS(Domain Name Service)は不要です。
実は、「www.kaze.com」を「204.254.7.166」に変換するのがDNSでインタ
ーネットの世界ではBIND(Berkeley Internet Name Domain)が一般的に
用いられます。
>>でも、自分のDNSサーバーに全世界のドメイン名とそれに対応するIP
アドレスデータを持っていたら、それだけでディスクがパンクするぞ???
DNSサーバーでは、まず自分のネットワークに関するDNS情報
(サーバ名とIPアドレスデータ)を持っています。
また、ディスクにはキャッシュと言う形で、外部のネットワークのDNS情報
を記憶します。
一度アクセスした外部DNS情報を記憶する訳です。
キャッシュと名前が付いているように、一定時間アクセスしなかった外部
DNS情報は忘れてしまいます。(DNS情報を捨てることです。)
クライアントからDNSサーバーにドメイン名からIPアドレスへの変換要求
があった場合、まず、自分自身で解決できるか試みます。解決できれば対応
IPアドレスをクライアントに回答します。
自分で解決できなかったら自分の上位の外部DNSサーバーに問題の解決を
依頼します。
依頼して問題(ドメインのIPアドレス)が解決したら、今度は接続先ドメイ
ンのDNSサーバに指定サーバ名のIPアドレス変換を依頼しその回答を自分
のディスクにキャッシングします。
問題が解決できない場合はクライアントにその旨を通知します。
すなわち、DNSはDNS情報の分散データベースなのです。
インターネットに接続した場合、DNSサーバーは少なくとも自分のネットワ
ークに関するDNS情報は正確に回答する義務があります。ウソを回答すると
少なからずインターネットの世界に迷惑をかけることになります。
この意味でDNSサーバーは大変重要と言えます。