DNSとは?DNSサーバー、名前解決の仕組み、ドメインの意味とIPアドレスの違い

DNS、ドメインとは?DNSサーバー、名前解決の仕組み、ドメインとIPアドレスの違い

DNSとは?

インターネットに接続されているコンピューターは、それぞれに固有のIPアドレスを持っています。IPアドレスとはインターネット上の住所のようなもので、決められた桁数の数字の組み合わせで構成されています。例えば「192.0.2.100」のような値です。

インターネット上のコンピューターに接続するためには、そのコンピューターのIPアドレス(Internet Protocol Address)が必要となりますが、ただの数字の並びでは人は覚えづらく、そのまま扱うのは非常に不便です。

そこで、IPアドレスに対して人が分かりやすい「名前」を付けて、名前からIPアドレスを特定する仕組みが考えられました。この仕組みのことを「DNS(Domain Name System)」と呼びます。

ドメイン名とは?

IPアドレスが人にも理解できるように、IPアドレスに対して付ける名前を「ドメイン名」と呼びます。

ドメイン名は、「example.co.jp」のようにドット(.)で区切られた階層構造になっています。現実世界の日本語での住所の書き方では、都道府県→市区町村→建物名、と右に進むほど空間の範囲が絞られていきますが、ドメイン名は逆の考え方で、英語での住所のように右に行くほど大きな空間(上位の階層)を表し、階層ごとにトップレベルドメイン、セカンドレベルドメイン、サードレベルドメインに分類されます。

トップレベルドメイン(TLD:Top Level Domain)

ドメイン名の一番右側にあるトップレベルドメイン(以降:TLD)は、階層構造の最上位レベルに位置します。「yahoo.co.jp」の場合は「jp」の部分に該当します。

TLDは大きく2つのグループに分類されます。

○国別トップレベルドメイン(ccTLD:Country Code Top Level Domain)
ccTLDは、国ごとに割り当てられたTLDです。日本であれば「jp」、アメリカ合衆国であれば「us」といったように、英字2文字で構成されています。基本的に、ccTLDはその国に在籍している個人・団体でないと取得できないという制限があります。

国別トップレベルドメイン(ccTLD:Country Code Top Level Domain)一覧

○ジェネリックトップレベルドメイン(gTLD:Generic Top Level Domain)
gTLDは、特定の分野ごとに割り当てられたTLDです。例えば商取引事業者を表す「com」、教育機関を表す「edu」などがあります。

誰でも取得できるものや個人向け、 特定の業界向けのものなど、さまざまな種類があります。ccTLDのように国や地域の制限なく取得することができます。

ジェネリックトップレベルドメイン(gTLD:Generic Top Level Domain)一覧

セカンドレベルドメイン(SLD:Secand Level Domain)

ドットで区切られたドメイン名のうち、右から二番目にあるのがセカンドレベルドメインです。「yahoo.co.jp」の場合は、「co」の部分になります。

日本のTLDである「jp」のセカンドレベルドメインは、大きく以下3つの種類に分類されています。

○都道府県型JPドメイン
東京都であれば「tokyo.jp」のように、47都道府県の名称を含むドメイン名。

○属性型JPドメイン
組織の種別ごとに区別されたドメイン名。主に以下のようなものがあります。

・「co.jp」・・・日本国内で登記されている企業が登録可能。
・「or.jp」・・・財団法人、社団法人などの法人組織が登録可能。
・「ac.jp」・・・高等教育機関、学校法人などが登録可能。

○汎用JPドメイン
ccTLDの前に、任意の文字列を自由に登録できるドメイン名。かなや漢字などの日本語も使うことができます。

サードレベルドメイン(3LD:3rd Level Domain)

ドットで区切られたドメイン名のうち、右から三番目にあるのがサードレベルドメインです。

サードレベルドメインは、ドメイン名の重複がない限り、そのドメイン名の所有者が自由に決められます。「yahoo.co.jp」の場合は「yahoo」の部分が該当します。

サブドメイン名とホスト名について

ドメインに関連する用語として「サブドメイン」と「ホスト名」があります。

両者はしばしば混同されがちですので、それぞれの意味について明確にしておきます。

サブドメイン

広義の意味において、ドメインは階層構造になっていますが、あるドメインにおいて自身より下位層にあるドメインは、すべてサブドメインであると言えます。

下の図でいうと、「example.co.jp」「co.jp」「example.jp」は、すべて「jp」のサブドメインです。


画像引用元:https://jprs.jp/glossary/index.php?ID=0075

一方、狭義の意味においては、あるドメインを目的・用途別に区別するため任意に設定する文字列のことをサブドメインと呼びます。

例えばヤフーの場合、メインのドメインである「yahoo.co.jp」はポータルサイトとして利用していますが、お天気やニュースなど独自のコンテンツを持った自社サイトは「weather.yahoo.co.jp」「news.yahoo.co.jp」という別のドメイン(サブドメイン)で運営しています。

サブドメインの利用によって、これらがヤフーの運営するサイトであることを明示するとともに、ポータルサイトとは別のサイトとして運営を切り分けることができているのです。

ホスト名

ホスト名とは、広義の意味では「ネットワークに接続されたコンピューターなどの機器を一意に識別するための名前」となります。半角英数字やハイフン(-)、ドット(.)など使用可能な文字種は限られていますが、名前は基本的に好きなものを使うことができます。例えば「abc123」「example.com」「local_host」なども可能です。

一方、インターネット上では、DNS上でIPアドレスが割り当てられている名前のことをホスト名と呼びます(「インターネットホスト名」と表現する場合もあります)。この場合は「www.yahoo.co.jp」もホスト名ということができます。

また、FQDNの左端部分(「www.yahoo.co.jp」の「www」)がホスト名である、という説明も見かけます。これも間違いではありません。
「yahoo.co.jp」というドメイン空間のなかで見た場合には正しい説明となります。

ホスト名という言葉がどちらの意味合いで使われているかは、前後の文脈によって変わってきますので、適宜読み替えるようにしてください。

FQDN(Fully Qualified Domain Name:完全修飾ドメイン名)

FQDNとは、TLDからサブドメイン名・ホスト名まで、すべて省略することなく書いたドメイン名の形式のことを指します。DNSの仕組みにおいて、通信先のコンピューターのIPアドレスを得るためには、このFQDNが必要です。

後述する「DNSレコード」のうち、Aレコードとして設定されている(=IPアドレスと対応付けて管理されている)名前がFQDNである、と考えることもできます。

ドメイン名からIPアドレスを取得する仕組み【名前解決】

DNSにおいて、ドメイン名からそれに対応するIPアドレスなどの情報を得ることを「名前解決」と呼びます。この名前解決の仕組みについて説明します。

図は、example.co.jpという架空のドメイン名を例に、DNSサーバーへIPアドレスを問い合わせてから結果を受け取るまでの流れを簡単に表しています。

DNSの仕組みにおいて、利用者からの問い合わせに応答するサーバーは、キャッシュDNSサーバーと権威DNSサーバーの2つがあります。

キャッシュDNSサーバー
利用者(主にWebブラウザ。DNSクライアントとも呼ばれる)からの名前解決要求に対して、DNSサーバーへ代理で問い合わせを行なうサーバーです。
問い合わせ結果を一定期間保存(キャッシュ)する機能を持ち、キャッシュの活用により、権威DNSサーバーへの負荷を減らし、利用者への応答時間を短縮することができます。

権威DNSサーバー
ドメイン名と対応するIPアドレスを管理する権限を持ち、問い合わせがあった時に応答するサーバーです。DNSコンテンツサーバーとも呼ばれます。
権威DNSサーバーは、世界に13台しかなく、自身が管理するドメイン名の範囲(ゾーン)がそれぞれ定められており、範囲外のドメイン名の管理は、他のサーバーに委任する形を取っています。

ドメイン名からIPアドレスを取得する名前解決の流れは、次のようになります。

①DNSクライアント→キャッシュDNSサーバー
DNSクライアントがキャッシュDNSサーバーへ、ドメイン「example.co.jp」のIPアドレスを問い合わせる。

②キャッシュDNSサーバー→DNSクライアント
キャッシュDNSサーバーは、問い合わせを受けた「example.co.jp」のIPアドレスが自身のキャッシュにあるかどうか確認します。
キャッシュにある場合、そのデータをDNSクライアントに返却します。キャッシュにない場合、権威DNSサーバーの最上位層であるルートDNSサーバー(※)に対して「example.co.jp」のIPアドレスを問い合わせます。

※ルートDNSサーバーは、ドメイン名の最上位層であるTLD部分の名前解決を担当するサーバーで、DNSの名前解決の起点となる非常に重要なサーバーです。DNSの名前解決において、権威DNSサーバーへ問い合わせた際には、かならず最初に呼び出されます。

③ルートDNSサーバー→キャッシュDNSサーバー
ルートDNSサーバーは、問い合わせを受けたドメインのTLDを確認し、TLDのDNSサーバーにドメイン「example.co.jp」のIPアドレスを問い合わせるよう返却する。

④キャッシュDNSサーバー→TLDのDNSサーバー
キャッシュDNSサーバーはTLDのDNSサーバーへ、ドメイン「example.co.jp」のIPアドレスを問い合わせる。

⑤TDLのDNSサーバー→キャッシュDNSサーバー
TLDのDNSサーバーは、問い合わせを受けた「jp」ドメインのSLDを確認し、SLDのDNSサーバーにドメイン「example.co.jp」のIPアドレスを問い合わせるようキャッシュDNSサーバーへ返却する。

⑥キャッシュDNSサーバー→SLDのDNSサーバー
キャッシュDNSサーバーはSLDのDNSサーバーへ、ドメイン「example.co.jp」のIPアドレスを問い合わせる。

⑦SLDのDNSサーバー→キャッシュDNSサーバー
SLDのDNSサーバーは、問い合わせを受けたドメインのIPアドレスをキャッシュDNSサーバーに返却する。

⑧キャッシュDNSサーバー→DNSクライアント
キャッシュDNSサーバーは、問い合わせを受けたドメインのIPアドレスを自身のキャッシュデータに書き込み、DNSクライアントヘIPアドレスを返却する。

このようにDNSの名前解決においては、最上位層のルートDNSサーバーから順に、複数のサーバーに対して反復的に問い合わせが発生していることが分かります。

これはDNSサーバーに権限の分散(権限移譲)の仕組みが備えられているためで、権限を複数のサーバーに分散させることで、特定のサーバーに対してデータ管理や通信の負荷が集中することのないよう工夫されています。

DNSサーバーにはどんな内容を設定する内容?

権威DNSサーバーに設定するドメイン名とIPアドレスの対応表のことを、「ゾーンファイル」と呼びます。
また、この対応の一つ一つを「DNSレコード」と呼びます。

DNSレコードには、ドメイン名とIPアドレスの対応の他にも様々な設定がありますが、主なものは次のようになります。

レコード種別
A(Adress) ドメイン名に対応するIPアドレスを設定します。
例)example.co.jp XXX.XXX.XXX.XXX
CNAME ドメイン名の別名を設定します。
例)abc.example.co.jp IN CNAME example.co.jp

DNSクライアントからの名前解決要求に対して、DNSサーバーがどのように応答するかは、このゾーンファイルの設定によって決まります。