What is DNS ?

1.コンピュータの識別

コンピュータネットワークには、多くのコンピュータが接続され、多くのユーザが存在します。ネットワークを介して情報をやりとりするためには、それらのコンピュータやユーザを何らかの手段で識別する必要があります。識別することができなければ、メールを送ったり、Webページにアクセスすることもできないことになります。

企業内などの閉じたネットワークであれば、そのネットワーク内でコンピュータやユーザを識別するルールを定めてしまえばよいことになりますが、世界中のコンピュータネットワークに接続されたネットワークであるインターネットでは、インターネット全体で共通化されたルールに基づいた識別がなされる必要があります。

その識別の手段として、インターネットの標準的な通信プロトコルであるTCP/IPではIPアドレスが使用されていることは、すでに今までの勉強会で学んできました。
IPアドレスは32ビットの2進数で表され、それをさらにわかりやすくするために8ビットずつ区切って10進数で表すのが一般的です。

この数字の羅列であるIPアドレスは、TCP/IPが動作しているコンピュータにとっては、わかりやすい(処理しやすい)識別子なのですが、人間にとってはわかりにくい(覚えにくい)識別子です。

ということで、IPアドレスとは別に、人間にとってもわかりやすい(覚えやすい)識別子を、インターネット上で重複しないように、そして楽に管理できるように割り当てることができる手段が求められたというわけなのです。  


2.ドメイン名とDNS

インターネットに接続されているコンピュータを、人間にわかりやすいように識別する手段として用いられているのが、DNSDomain Name System )で、あるコンピュータが属しているネットワークを階層的な名前構造で表す方法です。そして、ネットワークを区別する名前をドメイン名といいます。


日本でのドメイン名の構造
ドメイン名は英字、数字、ハイフンからなる単純名をピリオドで連結した構造となっています。一番右側が第1階層になっており、もっとも大きな階層(広い範囲を表す階層)になります。第1階層はトップレベルドメイン(TLD)と呼ばれ、一般的にはそのネットワークが存在する国の名前が使われます。主なトップドメインは以下の通りです。

トップレベル
ドメイン名

意味づけ

au

オーストラリア

br

ブラジル

de

ドイツ

fr

フランス

jp

日本

kr

韓国

ph

フィリピン

to

トンガ

uk

英国

us

米国(ほとんど使用されていない)

com

営利企業(現在では企業以外の団体、個人も所得可能)

net

ネットワーク管理組織

org

その他組織

インターネットはもともと米国で普及したため、当初は「国名」を表すトップレベルドメインはありませんでした。そのため、インターネットの世界的な普及に伴いできた「us」ドメインは現在もほとんど使用されておらず、com、net、orgといったgTLD(一般TLD)が使用されています。また、gTLDは世界中の全ての人々に開かれており、日本からでも取得することが可能です。

また、第2階層はそのネットワークの種別(どんな性質のコンピュータか?)を表しています。

ドメイン名

種別

ac

学術研究機関
大学、高専、学校法人、専門学校、各種学校、大学校、職業訓練法人

ed

教育機関
保育園、幼稚園、小学校、中学校、高等学校、特殊教育諸学校、他

go

官庁、国立機関、特殊法人

co

日本国内で正式に登記された会社組織

or

その他法人
財団、社団、医療、宗教、監査、社会福祉の各法人、協同組合、国際機関 外国政府機関等

gr

任意団体(登記のない団体)

ne

ネットワークサービス提供事業者

ad

JPNIC会員ネットワーク

地域名

地方公共団体、公立機関、病院、個人

第3階層はそのネットワークの名前です。そのネットワークを持つ組織が公的な機関に申請を行い、重複するものでなければ割り当てられることになります。日本では(社)日本ネットワークインフォメーションセンター(JPNIC)に申請することになります。  


3.ドメイン名とIPアドレスの変換

インターネットにIP接続する場合に、人間はドメイン名やメールアドレス、URLを指定します。しかしコンピュータやルータはドメイン名でなく、IPアドレスをもとにして、目的とする通信相手(のコンピュータ)までパケットを届けることになります。コンピュータがIPアドレスによってルーティングを行う以上、ネットワークのどこかでホスト名とIPアドレスの変換を行うしくみが必要になります。
逆に、一種の認証を行うために、IPアドレスからホスト名への変換が必要な場合もあります。

この変換によって、IPアドレスなどの目的とする情報を得ることを「名前解決」と呼びます。ホスト名からIPアドレスへの変換を「正引き」、IPアドレスからホスト名への変換を「逆引き」といいます。

名前解決を行う一つの方法として、各コンピュータが個別に変換テーブルを持つという方法があります。UNIX互換OSであれば、/etc/hostsに、Windowsであれば、\windows\hostsというファイルにホスト名とIPアドレスを並べて書きます。すると自動的に名前解決を行ってくれます。

しかし、この方法では小規模なネットワークでしか実用になりません。ネットワーク上にコンピュータを1台追加するだけでも、ネットワークに接続されている全てのマシンのファイルを書き換えなければならないからです。

インターネットへの接続では、この問題はさらに深刻です。インターネットに接続されている数千万台(もっと?)のコンピュータの情報を、全てのコンピュータが持つことなど不可能です。

 


4.ネームサーバーのしくみ

そこで、これらの問題点を解決する名前解決の方法が考え出されました。それがDNSDomain Name System )です。DNSでは名前解決にサーバーを用います。ネットワーク内の他のコンピュータは、このサーバーのデータベース(ホスト名とIPアドレスの変換テーブル)を参照することで名前解決を行います。この役割を担うサーバーをネームサーバー、あるいはDNSサーバーといいます。

サーバーに名前解決のデータベースを持たせるといっても、一つのネームサーバーにインターネットに接続されている全てのコンピュータの情報が収められている必要はありません。ネームサーバーは、インターネット全体では巨大な分散データベースとして機能するのです。では、ネームサーバーのしくみを例を挙げて説明してみましょう。


ドメイン名を管理するDNSのしくみ
@ クライアントはISP指定のDNSサーバーに「www.tamra.co.jp」の検索を要求する。
A 要求を受け取った指定DNSサーバーは、自分自身が管理していないドメインなので、ルートDNSサーバーに「www.tamra.co.jp」の検索を要求する。
B 要求を受け取ったルートDNSサーバーは、「.jp」を管理する.jpのDNSサーバーのIPアドレスを指定DNSサーバーに回答する。
C 指定DNSサーバーは、.jpのDNSサーバーに「www.tamra.co.jp」の検索を要求する。
D 要求を受け取った.jpのDNSサーバーは、「.co.jp」を管理する.co.jpのDNSサーバーのIPアドレスを指定DNSサーバーに回答する。

E 指定DNSサーバーは、.co.jpのDNSサーバーに「www.tamra.co.jp」の検索を要求する。
F 要求を受け取った.co.jpのDNSサーバーは、「tamra.co.jp」を管理するtamra.co.jpのDNSサーバーのIPアドレスを指定DNSサーバーに回答する。
G 指定DNSサーバーは、tamra.co.jpのDNSサーバーに「www.tamra.co.jp」の検索を要求する。
H 要求を受け取ったtamra.co.jpのDNSサーバーは、「www.tamra.co.jp」のIPアドレスを指定DNSサーバーに回答する。
I 指定DNSサーバーは、クライアントに「www.tamra.co.jp」のIPアドレスを回答する。クライアントはこのIPアドレスに対してパケットを送ることで、「www.tamra.co.jp」とIP接続することができる。

これらの問い合わせ作業はリゾルバー(resolver)と呼ばれるソフトウェアによって自動的に行われるので、人間が特別に意識する必要はありません。
また、一度名前解決を行った情報は、一定の時間ネームサーバーにキャッシュされ、その時間内に名前解決のための問い合わせがあった場合は、インターネット側に問い合わせが行われるのではなく、そのネームサーバーにキャッシュされている内容を答えることになります。


5.ネームサーバーが必要となるネットワーク

インターネットに常時接続回線で接続していて、ISPのドメイン名でない独自のドメイン名を使っている場合で、外部に対して名前解決の手段を提供したいとき(つまり、外部から自分のネットワークのコンピュータにホスト名を指定して接続できるようにしたいとき)は、そのドメイン名のためのネームサーバーが必要ということになります。
この場合、必ずしも自分のネットワークにネームサーバーを設ける必要はありません。他のネットワークにあるネームサーバーに間借りすることも可能です。

ただし、独立したネットワークとドメイン名を持つということは、自由度の高いネットワーク運用を行いたいということが動機になっていることが多いでしょうから、実際には自分のネットワークにネームサーバーを設ける場合が多いようです。

ネームサーバーが動作を停止してしまうと、名前解決ができず、ホスト名を指定して他のコンピュータと接続することができなくなってしまいます。また、外部から接続してもらうこともできません。従って、ネームサーバーはインターネット接続に関する大変重要な機能を受け持っているといえます。そのため、信頼性を考えて、ひとつのドメイン名について、最低でも2台のネームサーバーを設置することが事実上の標準となっています。

信頼性を考慮して、1台目(プライマリ)を自分のネットワークに、2台目(セカンダリ)を他のネットワークに設けることが多いようです。普通は接続先のISPがセカンダリネームサーバーの役割を受け持ってくれるはずです。


Copyright (C) 2001 kowdows.com / What is DNS?