DNS

DNSとは

DNSはDomain Name Systemの略で、1983年にアメリカの研究所で計算機の科学者をしていたポール・モカペトリスとジョン・ポステルにより開発された階層型かつ分散型のデータベースシステム。インターネット上にあるサーバの名前(ドメイン名)とIPアドレスを紐づけし変換するシステムのこと。

概説

4バイト(32bit)で表されるIPv4のIPアドレスは192.168.111.222のような数字の羅列で表記されるが、例えばウェブサイト毎にこれらの数字を覚えておくことは至難の業で、人間にとってわかりやすい意味のある名前(ドメイン名、サーバ名)と例えばwww.example.co.jp=192.168.111.222といった具合にIPアドレスを対応付けているシステムがDNSになる。DNSにおける対応付けは一般にゾーンファイルと呼ばれるテキストファイルに記述されブラウザの様なFQDNを受け付けるアプリケーション等からの問い合わせに応じて、対応するIPアドレスを応答している。

基本的なDNSの役割はドメイン内の個別のサーバ名とIPアドレスの対応を格納する多対多型のデータベースであり、そこにサーバの役割を示す個別の識別子を与えることが出来るようになっている。また、DNSは多対多型であるから1つのIPアドレスに複数のサーバ名を定義する事も1つのFQDNに複数のIPアドレスを対応させることも可能となっている。

DNSの階層・分散構造について

DNSは階層型のデータベースであるが基本的にはその階層構造はFQDNの右端から「.」で区切られた単位で階層があると考える事が出来る。

例えば日本における「.jp」ドメインでは次の階層として「.co」や「.go」「.ac」等が存在しているが、原則としてその階層ごとにDNSが構築されており、利用者は逐次的に問い合わせを行う事で最終的に目的のDNSにたどり着くことが出来るようになっている。
www.example.co.jpというFQDNに対する名前解決の問い合わせはまずjpドメインを管轄するDNSにcoドメインのDNSのアドレスを聞きそのcoドメインを管轄するDNSからexampleドメインを管轄するDNSのアドレスを得る。最終的にexampleドメインのDNSからwwwサーバのIPアドレスを得て、目的のサーバに到達している。

ただし、このDNSはドメイン毎に必ず別々のサーバである必要は無くexample.co.jpとexample2.co.jp、example3.co.jp…と複数のドメインを管轄するDNSとすることも可能である。またDNSは複数のシステム間で相互にデータをレプリケーションすることが可能で特定のドメインを管理するメインDNSに障害が発生しても運用を継続することが出来るようになっている。

DNSのゾーンファイルとレコードについて

DNSでは、まずSOAレコードと呼ばれる管理するドメインに関する設定情報を記載するレコードがあり、ここに現在のデータのバージョンを示すシリアル番号やデータのリフレッシュ時間、キャッシュ時間などを設定する。その次に1つ1つのサーバ名とアドレスを対応付けるAレコードやその逆を示すPTRレコード、さらにはサーバ名のエイリアスを定義するCNAMEレコードなどがある。

DNSはサーバ名とIPアドレスを関連付けるだけの簡単なものであるがインターネット上の名前解決に特化したシステムでもあるので単なる多対多の対応付けだけではなく特別な定義をする事が可能になっている。他ではDNSの特別な役割のレコードの1つにNSレコードがあり、NSレコードはそのドメインにおけるネームサーバのアドレスを定義していてこのNSレコードが存在することで、ドメインを管轄するDNSへ容易にたどり着くことが出来るようになっている。同じようにMXレコードはメールサーバのアドレスを定義していてaaa@example.co.jp宛のメールはどのメールサーバへ配信させるかという指示が定義できるようになっている。

免責事項

用語集ドットコムでは記事の内容が正確であるように努めておりますが、掲載されている情報はその内容を保障するものではありません。そのため当サイトの情報やその利用によって発生する損害・損失に対しては一切の責任を負いかねます。また、利用に際してはこの免責事項に同意するものとみなしますのでご理解ください。