ドメイン名とは、インターネット上のコンピュータやサーバ、Webサイトなどを識別するために使われる、人間にとって覚えやすい文字列です。
インターネット上で通信する際には、通信先を識別するためにIPアドレスが使われます。例えば、IPv4アドレスは 192.0.2.1 のように数値で表されます。しかし、IPアドレスは人間にとって覚えにくく、サーバの移転などによって変更されることもあります。
そこで、IPアドレスの代わりに www.example.com のような名前を使って通信先を指定できるようにしたものが、ドメイン名です。
ドメイン名はWebサイトの閲覧だけでなく、電子メールの送受信など、インターネット上のさまざまなサービスで利用されています。
ドメイン名の構造
ドメイン名は、ピリオド(.)で区切られた複数の部分から構成され、右側ほど上位になる階層構造をもっています。
例えば、www.example.co.jp は次のように分けられます。
| 部分 | 意味 |
jp | トップレベルドメイン。日本を表します。 |
co | jp の下位にある区分。企業向けの登録区分を表します。 |
example | 登録した組織などを識別する名前です。 |
www | Webサーバなどに付けられるホスト名として使われる部分です。 |
最も右側に位置する jp、com、net などをトップレベルドメイン(TLD)といいます。jp は日本を表す国別トップレベルドメインであり、com や net は分野別トップレベルドメインの例です。
日本の jp ドメインには、組織の種類によって登録資格が定められた区分もあります。代表的なものには、企業向けの co.jp、大学などの高等教育機関や学校法人などを対象とする ac.jp、小学校・中学校・高等学校などを対象とする ed.jp、政府機関などを対象とする go.jp があります。
www.example.co.jp の場合、example.co.jp が組織などによって登録されたドメイン名です。その左側にある www はWebサービスに使われることの多い名前ですが、必ず付けなければならないわけではありません。
同じ階層で同じドメイン名を複数の組織がそれぞれ独立して登録することはできません。一方、一つのドメイン名の下に複数のホスト名を設けることはできます。
DNSの階層上での位置を省略せずに表した名前を完全修飾ドメイン名(FQDN:Fully Qualified Domain Name)といいます。www.example.co.jp はその例です。厳密には、ルートを表す末尾のピリオドを付けて www.example.co.jp. と表すこともあります。
なお、一般には www.example.co.jp のようなホスト名を含む名前全体も、単にドメイン名と呼ぶことがあります。
URLとドメイン名の違い
URL(Uniform Resource Locator)は、インターネット上のWebページやファイルなどの場所と、それらにアクセスする方法を表すものです。
例えば、次のURLを考えます。
https://www.example.co.jp/jouhou/index.html
このURLは、次のように分けられます。
| 部分 | 意味 |
https | 通信に利用する方式(プロトコル)です。 |
www.example.co.jp | 接続先を表すホスト名です。 |
example.co.jp | 登録されたドメイン名です。 |
/jouhou/index.html | サーバ内の対象となるページなどを示すパスです。 |
ドメイン名は通信先を名前で識別するためのものであり、URLはその通信先にあるWebページやファイルなどを指定するためのものです。
ドメイン名とDNSの関係
コンピュータがインターネット上で通信するためには、通常、接続先のIPアドレスを知る必要があります。
そこで、ドメイン名とIPアドレスなどの情報を対応付ける仕組みとして、DNS(Domain Name System)が利用されます。
例えば、利用者がWebブラウザに www.example.com と入力すると、一般に次のような流れで通信が行われます。
- 利用者がブラウザで
www.example.com を指定します。
- コンピュータがDNSを利用して、その名前に対応するIPアドレスを調べます。
- DNSから得られたIPアドレスを使って、通信先のWebサーバへ接続します。
- WebサーバからWebページのデータを受信し、ブラウザに表示します。
このように、ドメイン名などの名前から対応するIPアドレスを調べる処理を名前解決といいます。
DNSでは、主に次のような情報を扱います。
- Aレコード:ドメイン名などとIPv4アドレスの対応を表します。
- AAAAレコード:ドメイン名などとIPv6アドレスの対応を表します。
- MXレコード:そのドメイン宛ての電子メールを受け取るメールサーバを指定します。
なお、ドメイン名とIPアドレスは必ずしも一対一に対応するわけではありません。一つのドメイン名に複数のIPアドレスを対応付けたり、複数のドメイン名を同じIPアドレスに対応付けたりすることもできます。
DNSの階層的・分散的な管理
インターネット上には膨大な数のドメイン名が存在するため、それらの情報を一台のDNSサーバですべて管理しているわけではありません。
DNSは、複数のDNSサーバが情報を階層的・分散的に管理する仕組みです。
例えば、www.example.co.jp の名前解決では、必要に応じて次のような階層をたどって情報を調べます。
- 最上位のルートDNSサーバから、
jp を担当するDNSサーバの情報を得ます。
jp を担当するDNSサーバから、co.jp 以下を調べるための情報を得ます。
- さらに問い合わせを進め、
example.co.jp を担当するDNSサーバを調べます。
- 最終的に、
www.example.co.jp に対応するIPアドレスなどの情報を取得します。
実際には、利用者のコンピュータから問い合わせを受けたDNSリゾルバが、必要なDNSサーバへの問い合わせを行います。また、一度調べた情報を一定期間保存するキャッシュによって、毎回すべての階層をたどらずに名前解決できる場合もあります。
このような分散管理によって、膨大な数のドメイン名を扱うことができ、管理や運用の負荷を分散できます。
ドメイン名は階層構造によって管理されており、登録済みの同じドメイン名を、無関係な複数の組織がそれぞれ独立して重複登録することはできません。ただし、ドメイン名の管理者は、その下位にサブドメインを設けて利用できます。
DNSに問題が発生した場合
DNSによる名前解決ができなくなると、通信先のWebサーバが正常に稼働していても、ドメイン名を使ってアクセスできないことがあります。
例えば、次のような状況を考えます。
www.example.com を指定するとWebページを開けません。
- 同じWebサーバのIPアドレスを直接指定するとWebページを開けます。
この場合、Webサーバそのものや通信経路には問題がなく、DNSによってドメイン名をIPアドレスに対応付ける処理に問題が生じている可能性が高いと考えられます。
ただし、実際のWebサイトでは一つのIPアドレスで複数のサイトを運用している場合があり、IPアドレスを直接指定しても同じページが表示されるとは限りません。
メールアドレスとドメイン名
ドメイン名は電子メールの送受信にも利用されます。
メールアドレスは、一般に次のような形式で表されます。
shinobu@example.ed.jp
@ より前の shinobu は、利用者名などを表す部分(ローカル部)です。一方、@ より後ろの example.ed.jp はドメイン名であり、どの組織やメールシステム宛てのメールであるかを識別するために使われます。
電子メールを送信するとき、送信側メールサーバは、受信者のドメイン名を基にDNSなどを利用して配送先のメールサーバを調べ、メールを届けようとします。
そのため、メールアドレスを間違えたときは、@ の前を間違えたのか、後ろを間違えたのかによって、配信できないことが検出される段階が異なります。
例えば、正しいメールアドレスが shinobu@example.ed.jp の場合を考えます。
① ユーザ名を間違えた場合
sinobu@example.ed.jp(正しいユーザ名は shinobu)
example.ed.jp というドメイン名が存在し、メールサーバも正常に利用できるなら、送信側は受信側メールサーバを調べて接続できます。しかし、受信側に sinobu という利用者名が存在しない場合、受信側メールサーバがその誤りを検出します。
② ドメイン名を間違えた場合
shinobu@exmple.ed.jp(正しいドメイン名は example.ed.jp)
@ より後ろの exmple.ed.jp が存在しないドメイン名であれば、送信側メールサーバは配送先を調べる段階で問題を検出します。
このように、メールアドレスでは @ の前後を区別することが重要です。
なお、存在しない利用者名をどの段階で検出するかは、メールサーバの設定や運用方法によって異なります。受信側メールサーバが宛先確認時に存在しない利用者名をエラーとして返す設定であれば、上記①のようになります。
ドメイン名とWebサイトの安全性
ドメイン名は、Webサイトが正規のものかどうかを確認する際にも重要です。
悪意のある第三者が、銀行や通販サイトなどの正規のドメイン名とよく似た文字列を使って偽のWebサイトを作成し、利用者からIDやパスワードなどをだまし取ろうとする場合があります。こうした手口はフィッシングと呼ばれます。
例えば、正規サイトのドメイン名と一文字だけ異なるドメイン名を使い、画面のデザインやロゴを正規サイトに似せている場合があります。
検索結果の上位に表示されたり、広告として表示されたりしていても、それだけで正規サイトであるとは判断できません。
特に、個人情報や認証情報を入力する前には、URLのドメイン名を確認することが大切です。不審なドメイン名に気付いた場合は情報を入力せず、事前に登録した正規のブックマークや公式アプリなどからアクセスし直すことが望ましいです。