メインコンテンツまでスキップ

DNS(Domain Name System)

Overview

DNS(Domain Name System)とは「example.com」のようなドメイン名を「192.0.2.1」のようなIPアドレスに変換するシステムのこと

Image from Gyazo

DNSルートサーバとは

【図解】DNSルートサーバはどこにある?世界13か所の場所や運用組織を紹介!
[初心者向け] APEX ドメインと CNAME レコード制約についてまとめてみた

世界で13か所にしかない。
DNSルートサーバは、クライアントのDNSサーバ(これをフルサービスリゾルバーと呼びます)が名前解決する際にアクセスしていくDNSサーバの中でもっとも上位にあるサーバのこと。
.jp、.com、.net、.info などのドメインをトップレベルドメインと呼ぶ。DNSルートサーバは、これらトップレベルドメインを管理するDNSサーバの情報を保管している。

DNSサーバーの種類

DNSを構成するサーバーは、役割別に以下の種類がある。

  • 権威DNSサーバー
  • キャッシュDNSサーバー

権威DNSサーバー

権威DNSサーバー(Authoritative DNS Server)は、特定のドメイン(例:example.com)に関するDNSレコードの最終的な情報源です。このサーバーは、そのドメインに関連付けられたすべてのサブドメイン(例:www.example.com)のIPアドレスやその他のDNSレコード(MXレコード、TXTレコードなど)に関する「権威ある」情報を保持しています。DNSの名前解決プロセスにおいて、リカーシブリゾルバー(またはフルサービスリゾルバー)は、最終的にこの権威DNSサーバーに問い合わせを行い、求められたドメイン名のIPアドレスを取得します。

「権威DNSサーバーにZone Apexを設定する時、Zone ApexのNSレコードを必ず登録する必要があります」という文言について説明します:

  • Zone Apex(ゾーンの頂点):ドメイン名のもっとも根本的な部分で、サブドメインを持たないドメイン名のことを指します。たとえば、example.com がZone Apexで、www.example.comwww はサブドメインです。
  • NSレコード:Name Serverレコードのことで、特定のドメインのDNS情報を管理しているDNSサーバー(ネームサーバー)のアドレスを指定します。

この文言は、あるドメイン(例:example.com)のDNS設定を行う際に、そのドメインを管理する権威DNSサーバーを指すNSレコードをDNSゾーンファイルに設定しなければならないという意味です。実質的に、この設定により、インターネット上のどこからでもそのドメイン名に関する問い合わせがあった場合に、どのDNSサーバーに問い合わせれば正確な情報が得られるかが指定されます。

つまり、ドメインの権威DNSサーバーは、そのドメインおよびその下にあるすべてのサブドメインに関するDNSクエリに対して「権威ある」答えを提供するサーバーであり、NSレコードはその権威DNSサーバーを指し示すために必要な設定です。これにより、インターネット上でのドメイン名の解決とアクセスが可能になります。

キャッシュDNSサーバー

クライアントからDNSクエリを受け取り、権威DNSサーバーにDNSクエリを反復して送るサーバーです。権威DNSサーバーから受け取った応答結果を、クライアントへ返しつつ自身にキャッシュします。キャッシュされたものと同一のDNSクエリを受け取った場合は、キャッシュから応答を返すことで応答速度が向上します。

解決順番

DNSの名前解決プロセスは、インターネット上でドメイン名をIPアドレスに変換するための重要なステップです。基本的には以下のような順序で行われます:

  1. ローカルキャッシュのチェック: DNSリゾルバー(通常はユーザーのコンピューターやISPのDNSサーバーがこれにあたります)は最初に、すでに解決したドメイン名の情報がローカルキャッシュに存在するかをチェックします。キャッシュに存在すれば、その情報を使用してプロセスを終了します。

  2. リカーシブリゾルバーへの問い合わせ: キャッシュに情報がない場合、リカーシブリゾルバー(フルサービスリゾルバーとも呼ばれる)が問い合わせを行います。ユーザーのコンピューターは直接ルートサーバーに問い合わせを行うのではなく、このリカーシブリゾルバーを通じてDNSクエリを行います。

  3. ルートDNSサーバーへの問い合わせ: リカーシブリゾルバーは、最初にルートDNSサーバーに問い合わせを行います。ルートDNSサーバーはトップレベルドメイン(TLD、例:.com.net.org など)の名前サーバーの情報を提供します。

  4. トップレベルドメイン(TLD)名前サーバーへの問い合わせ: 次に、リカーシブリゾルバーはTLD名前サーバー(たとえば .com ドメインの名前サーバー)に問い合わせを行い、該当するセカンドレベルドメイン(例:example.com)の名前サーバーのアドレスを取得します。

  5. ドメインの名前サーバーへの問い合わせ: TLD名前サーバーから得られた情報をもとに、リカーシブリゾルバーはドメイン名に対応する具体的な名前サーバー(例:example.com の名前サーバー)に問い合わせを行います。この名前サーバーは、そのドメイン名に対応するIPアドレスの情報を持っています。

  6. IPアドレスの取得とキャッシュ: ドメインの名前サーバーは、求められたドメイン名のIPアドレスをリカーシブリゾルバーに返します。リカーシブリゾルバーはこのIPアドレスをキャッシュし、クエリを行ったクライアントに対して応答します。

  7. クライアントへの応答: 最終的に、リカーシブリゾルバーはドメイン名に対応するIPアドレスをクライアント(たとえば、ユーザーのウェブブラウザ)に返し、名前解決プロセスが完了します。クライアントはこのIPアドレスを使用して、目的のサーバーに接続します。

このプロセスを通じて、ドメイン名から最終的なIPアドレスが得られ、インターネット上のリソースにアクセスするための具体的なアドレス情報が提供されます。

レコード

Image from Gyazo

Aレコード

ドメイン名に対応するIPv4アドレス

AAAAレコード

ドメイン名に対応するIPv6アドレス

CNAMEレコード

ドメイン名の別名

NSレコード

Name Serverレコード
特定のドメインのDNS情報を管理しているDNSサーバー(ネームサーバー)のアドレスを指定する
ドメインのゾーン情報を管理するDNSサーバー

MXレコード

ドメイン宛メールの配送先メールサーバー