ウェブ開発者向けアドバイス ビギナーガイド

ドメインとは、ドメイン名とは一体何でしょうか?

ドメイン名を使用してできることはたくさんあります。この記事では「ドメイン名とは一体何なのか?」ということに焦点を当てて詳細な解説を行います。

ホスト (Hosts)

コンピューターとスマートフォンに加えて、スマートトイレやスマート冷蔵庫、DVRなどインターネットにつながった電化製品が多く誕生しました。

IoTの実生活への広がりからわかるように、身の回りのものが何でもインターネットに接続する時代になりました。

インターネットに接続するためには、それぞれの端末にIPアドレスが割り当てられる必要があります。IPアドレスはインターネットに接続するために必要な数値のことです。

電話番号のように、IPアドレスがないとコンピューター間でのコミュニケーションを行うことはできません。

そして、コンピューターやスマートトイレなどインターネットに接続されているものは「ホスト(host)」となります。

hosts.txt

誰かに電話をかけたい時、一昔前は電話帳で電話をかける相手を探して、その人の電話番号を見つける必要がありました。

また、相手の電話番号を覚えていない、または電話番号をメモしてない場合、相手に電話をかけられるかどうかは家にある電話帳に頼るしかありませんでした。

このような状況は、インターネットが実際に使い始められた時期にも見られたことです。インターネットに接続された他の端末とつながりたい場合、その相手の端末のアドレスを知っている必要がありました。

このアドレスはプレーンテキストのファイルにアドレスやネットワークのホスト名を記載したものでした。

その逆もしかりで、他のコンピューターを他人から電話番号を見つけてもらうようにするためにネットワークに追加したい場合は、そのファイルを配布している人に連絡をとり、そのコンピューターを追加する必要があります。

そのファイルは ”hosts.txt”という名前で、ホスト名やインターネットに接続している端末の全てが含まれていました。

一方、多くのコンピューターがネットワークにつながるようになってくると、そのファイルのリストは長くなっていき、ネットワークに接続されている全てのコンピューターに対応するのが難しくなってきました。

また、ネットワークに端末を追加するということは、Network Information Center (NIC) に電話をして、追加をしてもらう、ということを意味します。今日のネットワーク管理者にとっては一般的なことではないかもしれませんが、当時のNICの担当者は夜には退勤し、休日は出勤しませんので、夜や休日に対応はされませんでした。

初期のインターネットが実用化されるにつれ、hosts.txtのファイルサイズや更新の頻度が増え、それは新しい解決策が必要なことを意味していました。

DNS

DNSは Domain Name System の略で、ネットワークに追加されたリソースを木の枝のように配置するものです。最初は .edu、.gov、.net、.com などのトップレベルドメイン(TLD)に使用されました。

ドメイン名は誰でも登録でき、様々なリソースに対して使用できるものです。また、ドメイン名はドット( . )で区切り使用します。

例えば .net を使用したドメイン名の場合、Gandiでは”gandi”を登録しました。その後、wwwを追加したドメイン名(www.gangi.net)を作成し、ウェブサイトをホスティングしているサーバーに関連付けを行いました。

目的のウェブサイトにアクセスするために、サーバーのIPアドレスを知っておく代わりに、コンピューターはリゾルバと呼ばれるDNSサーバーにアクセスし(通常自分が使用しているISPか公開DNSリゾルバによって行われます)、www.gandi.net を検索する必要があります。リゾルバはどのようにこのドメイン名を検索するのでしょうか?

最初にリゾルバはルートゾーンにアクセスし.netを探します。その後、”gandi.net”を見つけるために .netのDNSサーバーにアクセスし、”gandi.net”のDNSサーバーにアクセスし、”www.gandi.net”を見つけます。これを「名前解決」と呼びます。

より効率的に名前解決をするために、こういったシステムにはキャッシュ機能が搭載されています。

キャッシュとはコンピューターが以前受信した情報を、後ほど参照するために一時的に保存しておく機能を指します。

この場合、DNSリゾルバは最近 www.gandi.net にアクセスしたことがあるかもしれません。数分前にアクセスしていたり、同じリゾルバを使用した人が ”www.gandi.net” にアクセスしていたかもしれません。ルートゾーンにアクセスし、その後 .net や gandi.net のDNSを毎回探して目的のウェブサイトを見つけるよりも、キャッシュ機能によって、そういった遠回りをする必要はなくなります。

DNS (Domain Name System) の仕組みを開発したポール・モカペトリス (Paul Mockapetris)はDNSを一貫性のあるものにし、分散化されたDNSを使用することで、以前のシステムの問題を解決しようとしています。また、どのようなアプリケーションに使われるのかについては一つの用法に限られたものではなく、ドメインというものはその性質上柔軟なものです。

ドメイン名を使用すると、ソーシャルメディアに紐づけたり、ウェブサーバーやメールサーバーに関連づけたりすることができ、DNSのおかげで世界は開かれたものになりました。ドメイン名のDNSレコードの設定をきちんとできるようにすることが、開けた世界に足を踏み入れる第一歩になります。

ドメイン名はどのIPアドレスにでも関連付けることが可能です。あなたのウェブサイトやメール用に使用しているサーバーが停止した場合、または別の会社のレンタルサーバーを使用したい場合、DNSレコードを変更するだけで設定は完了します。

また、CNAMEレコードのような特別な種類のDNSレコードを使用して、自分のドメイン名を別のドメイン名に対応させたりすることも可能です。

DNSが誕生したことによって、コンピューター科学者が hosts.txt ファイルを共有しあってインターネットを使用していた時代からインターネットの時代は一気に広がり、柔軟性を与えました。

ドメイン名というものはただのオンライン上の住所だけではなく、ウェブサイトやメールやその他ツールなどそれぞれ異なるリソースを繋げ、一つの名前の下で管理できるようにするハブのような役割を持つのです。