DNS(Domain Name System)とは、ドメイン名とIPアドレスを関連付けて管理するためのサービスです。
当記事は、現在のネットワーク社会において、重要な役割を持つDNS技術について解説します。
名前解決とは
私たちが手紙や荷物を送る際に宛先の住所が必要なように、コンピュータ同士が通信を行うには、宛先の位置情報が必要となります。
しかし、コンピュータの住所は、IPアドレスという数字の羅列を使っており覚えにくいものです。
そこで、IPアドレスに対応するドメイン名(コンピュータの名前)を使うことでコンピュータを識別しやすいようにしています。
※例えば、WEBサイトにアクセスするとき、IPアドレス(例:192.0.2.1)を指定することもできるが覚えづらいため、通常はドメイン名(例:www.example.com)で指定します。
注)HTTPSなどの含むWEBサイトでは、IPアドレスだけで接続しようとすると、ホスト名情報などが不足していて、実際には正しく接続・表示できないこともあります。
DNSの登場と背景
このドメイン名とIPアドレスの対応付けは、以前は各コンピュータの中のHostsファイルというテキストファイルに記述されていました。
いわば、コンピュータが持つアドレス帳です。初期のネットワークは、接続するホストが限られており、テキスト上での管理が可能でした。
しかし、インターネットが普及し、ネットワークへ接続するホストが増加すると、テキストファイルでの管理は不可能になっていきました。
※WindowsOSでは、コンピュータ>C:ドライブ>Windows>System32>drivers>etc>host LinuxOSでは、/etc/hosts
そこで、登場したのがDNSです。
DNSでは、DNSサーバというコンピュータにドメイン名とIPアドレスの対応付けを管理しており、私たちは使用するクライアントコンピュータからドメイン名で検索をするだけで対象のホストのアドレスを取得し、そのアドレスへアクセスできるようなっています。
また、DNSでは一つのサーバコンピュータへの負荷を軽減させるため、複数台のサーバに管理する情報を分散させた管理方法をとっています。
まず、ドメイン名の構成から説明しましょう。
ドメイン名の構成は、すべてのドメインの基点となるルートドメインから始まり、国や地域・組織を表すトップレベルドメイン、そこに属する企業や組織を表すセカンドレベルドメイン、さらにそのドメインに属するホストやグループを表すサードレベルドメイン、といったように複数の異なる範囲のドメインの組み合わせてできています。これらのドメインは、ツリー構造を形成しており、それぞれのドメインの情報を管理するDNSサーバが対応するように構成されています。
また、クライアントコンピュータは名前解決の問い合わせをする際に、登録されているDNSサーバに問い合わせを行いますが、そのサーバのもつ情報では解決できない場合があります。
そのような時、問い合わせを受けたDNSサーバは問い合わせのドメイン名を元にそのドメインを管理するDNSサーバに順に問い合わせを行っていきます。DNSサーバはドメインのツリー構造に対応しており、各階層のDNSサーバは対応するドメインの配下のドメイン情報のみを管理すればいいため、DNSサーバ1台に対する問い合わせの負荷を分散させることができます。
DNSはこのような仕組みで構成されているため、多くのドメイン情報の管理ができるようになり、またクライアントからの問い合わせにも対応できるシステムとなりました。
現在では様々なところでインターネットが使われていますが、その発展を陰で支えてきた技術の一つがDNSといえるかもしれません。
いかがでしたでしょうか。
ぜひお勉強の際にお役立て下さい。