DNSとは?ドメイン名がIPアドレスに変わる仕組みと、サイトが開けないときの確認方法

DNSとは?ドメイン名がIPアドレスに変わるイメージ
DNSとは?ドメイン名がIPアドレスに変わるイメージ

ブラウザにサイトの住所のような文字列を入力すると、ページが開きます。その裏側では、人が読みやすいドメイン名を、コンピュータが接続先として使うIPアドレスへ変換する作業が行われています。この変換を担うのが DNS です。

「サイトが開けないとき、DNSの問題と言われたけれど、どこを見ればいいのか分からない」という方向けに、DNSの役割、名前解決の流れ、代表的なレコード、開けないときの確認先を1本でまとめます。

目次

DNSとは

DNSは「Domain Name System」の略で、ドメイン名とIPアドレスなどを対応づける仕組みです(RFC 1034、RFC 1035)。

たとえば、ブラウザでドメイン名を指定してサイトを開くとき、コンピュータが最終的に必要とするのは接続先のIPアドレスです。DNSは、そのドメイン名に対応するIPアドレスを調べるために使われます。この、名前から必要な情報を調べることを「名前解決」と呼びます。

ドメイン名とIPアドレスの役割分担は、人が名前で相手を指定し、コンピュータが番号で接続先を特定する形に近いものです。ただし、DNSが扱う情報はIPアドレスだけではなく、メール配送先など複数の種類があります。

DNSがネットワーク全体のどこに位置付くかは、OSI参照モデルとは?やTCP/IPモデルとは?の記事もあわせて読むとつながります。アプリケーション層で名前解決が関係する例は、OSI参照モデルの第7層(アプリケーション層)とは?でも触れています。

ドメイン名とIPアドレスの対応づけ

ドメイン名の階層図(ルート、トップレベルドメイン、ドメイン名、ホスト名の関係)

ドメイン名は、ドットで区切られた階層構造を持っています(RFC 1034)。右側ほど大きな範囲を示し、左側へ進むほど具体的な名前になります。DNSでは、この階層に沿って管理が分かれているため、世界中の名前を1か所で管理しなくても済むようになっています。

名前 役割
ドメイン名 人が読みやすい形でサイトやサービスを指定するための名前
IPアドレス ネットワーク上で接続先を特定するための番号
名前解決 ドメイン名に対応するIPアドレスなどをDNSへ問い合わせて調べること

IPアドレスなどの設定を自動で配る仕組みについては、DHCPとは?の記事で解説しています。DHCPは、DNSサーバーのアドレスもあわせて機器へ渡すことがあります。

名前解決の流れ

名前解決の流れ図(ブラウザ/OSのリゾルバ、再帰リゾルバ、ルート、トップレベルドメイン、権威DNSサーバー、IPアドレスの順)

サイトを開くときの名前解決は、おおまかに次の流れで進みます。

  1. ブラウザやアプリが名前解決を求める:指定されたドメイン名について、OS側のリゾルバへ問い合わせが渡されます。
  2. キャッシュを確認する:最近調べた結果が残っていれば、その結果を使います。キャッシュには有効な期間があり、過ぎると調べ直します。
  3. 再帰リゾルバが問い合わせる:キャッシュにない場合、再帰リゾルバが代わりに調べます。再帰リゾルバは、プロバイダー、ネットワーク管理者、公共サービスなどから提供されることがあります。
  4. 階層に沿って権威DNSサーバーをたどる:ルート、トップレベルドメイン、そのドメインを担当する権威DNSサーバーの順に、担当先をたどります(RFC 1034)。
  5. IPアドレスを受け取り、接続する:権威DNSサーバーから返されたレコードをもとにIPアドレスが分かり、ブラウザはその接続先へアクセスします。

ここで大切なのは、担当が分かれている点です。再帰リゾルバは利用者の代わりに調べ、権威DNSサーバーはそのドメインについて正式な情報を保持します。途中の結果はキャッシュされるため、毎回すべてのサーバーへ問い合わせるとは限りません。

代表的なDNSレコード

DNSで管理される情報の単位をレコードと呼びます。レコードには種類があり、調べたい情報に応じて使い分けます(RFC 1035)。

レコード 何を表すか 初心者が押さえるポイント
A ドメイン名に対応するIPv4アドレス サイトへ接続するときの基本になるレコードです
AAAA ドメイン名に対応するIPv6アドレス IPv6で接続するときに使われます(RFC 3596)
CNAME 別名から正式な名前への対応 別名の先にある名前をさらに調べます(RFC 1034)
NS そのドメインを担当する権威DNSサーバー どのサーバーが正式な情報を持つかを示します
MX メール配送先 サイト表示ではなく、メール受信に関係します
TXT 文字列情報 ドメインの確認など、用途に応じた文字列を入れます

サイトが開けない場面では、まずAとAAAAが関係します。一方、メールが届かない場面ではMXなど別のレコードも関係するため、「DNSの確認」と言っても、症状によって見るレコードが変わります。

TTLとキャッシュで、すぐ変わらないことがある

各レコードにはTTLという有効期間の考え方があります。TTLは、その情報をキャッシュしてよい期間を示します(RFC 1034、RFC 1035)。

DNSの設定を変更しても、利用者側や再帰リゾルバ側に古いキャッシュが残っている間は、前の結果が使われることがあります。そのため、変更直後に「まだ反映されていない」ように見える場合があります。反映までの時間はTTLやキャッシュの状態によって変わるため、一律に何分と断定できません。

逆に、TTLが短いほどキャッシュの保持期間は短くなりますが、問い合わせは増えやすくなります。TTLは、変更のしやすさと問い合わせ回数のバランスで決められます。

DHCPとの関係

家庭や職場のネットワークでは、機器がIPアドレスを自動取得するとき、DNSサーバーのアドレスも一緒に受け取ることが一般的です。この配布を担うのがDHCPです。くわしくはDHCPとは?IPアドレスが自動で割り当たる仕組みをご覧ください。

つまり、DHCPは「自分のIPアドレスと、DNSの問い合わせ先」を配り、DNSは「開きたいドメイン名のIPアドレス」を調べます。両方がそろって、ブラウザで名前を指定するだけでサイトへ接続できるようになります。

名前を指定してもサイトへつながらないトラブルの切り分けでは、エックスサーバーでサイトにつながらないときの確認手順や、ポートフォワードとは?の記事が関係する場合もあります。ただし、原因がDNSとは限らないため、順番に確認することが大切です。

サイトが開けないときの確認方法

サイトが開けないときの確認フロー図(URL確認、ほかのサイト/端末、名前解決の確認、キャッシュと時間をおく判断)

1. URLと、ほかのサイトが開けるかを見る

まず、ドメイン名の入力間違いがないかを確認します。そのうえで、ほかのサイトも開けないのか、特定のサイトだけ開けないのかを分けます。すべて開けない場合は、回線やWi-Fiなど接続そのものの問題も考えられます。特定のサイトだけの場合は、そのサイト側、DNS、ブラウザのキャッシュなど範囲を絞れます。

2. 別の端末や回線でも同じかを見る

別の端末でも同じなら、端末固有の問題ではない可能性が高くなります。逆に、1台だけ開けない場合は、その端末のネットワーク設定、ブラウザ、セキュリティソフトなどの影響も考えられます。

3. 名前解決の結果を見る

Windowsでは、コマンドプロンプトなどで名前解決の結果を確認できます。ドメイン名の部分は、調べたい名前に置き換えてください。ここでは例として example.com を使います。

nslookup example.com

macOSやLinuxでも確認できます。環境によっては、追加のツールを入れる必要があります。

dig example.com

結果を見るときは、IPアドレスが返っているか、名前が見つからないという結果か、一時的な失敗か、を分けて読みます。名前が見つからない場合は、入力した名前や、その名前のレコード設定を確認します。一時的な失敗の場合は、時間を置いて再確認したり、ほかの端末や回線で同じ結果かを見たりします。

プロキシを使っている環境では、名前解決の見え方が通常と異なることがあります。その場合は、プロキシサーバーとは?の記事も参考にしてください。

4. 自分が管理するサイトなら、レコードとTTLを見る

自分のサイトが開けない場合は、ドメインを担当するサービス側で、対象の名前のAやAAAAレコードが意図どおりか、NSが意図した権威DNSサーバーを指しているかを確認します。変更した直後であれば、TTLとキャッシュのため、場所によって結果が一時的に異なることがあります。

確認や変更は、自分が管理するドメインと機器の範囲で行ってください。分からない設定を推測で変えると、サイトやメールに影響することがあります。

よくある疑問

DNSを変えるとサイトは速くなりますか

DNSは主に、接続先のIPアドレスを調べる役割です。名前解決にかかる時間が変わる場合はありますが、ページ表示の速さは回線、サーバー、ページの作りなど多くの要素で決まります。DNSだけで表示全体が必ず速くなるとは言えません。

ドメイン名があればIPアドレスは不要ですか

利用者がIPアドレスを直接入力する必要は通常ありません。ただし、コンピュータ同士の接続では最終的にIPアドレスが使われるため、裏側ではDNSによる変換が必要です。

設定変更がすぐ反映されないのはなぜですか

TTLにもとづくキャッシュが残っているためです。古い結果を持つ場所では前の情報が使われ、新しく調べた場所では新しい情報が返る、という状態が一時的に起こります。

まとめ

  • DNSは、ドメイン名に対応するIPアドレスなどを調べる仕組みです。
  • 名前解決では、リゾルバと再帰リゾルバが、階層に沿って権威DNSサーバーをたどります。
  • AはIPv4、AAAAはIPv6、CNAMEは別名、NSは権威DNSサーバー、MXはメール配送先を表します。
  • TTLとキャッシュのため、設定変更がすぐ全員に反映されるとは限りません。
  • サイトが開けないときは、URL、ほかのサイトや端末、名前解決の結果、自分のサイトならレコードとTTLの順に確認します。

関連記事:DHCPとは?/OSI参照モデルとは?/TCP/IPモデルとは?/OSI参照モデルの第7層(アプリケーション層)とは?/ポートフォワードとは?

参考資料

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

社内エンジニアとして、SREとセキュリティの仕事をしています。サーバーの構築や運用、クラウド環境の設計にも関わってきました。趣味はゲームと漫画・アニメ。

コメント

コメントする

目次