あなたのIPv4アドレス:
オペレーティングシステム:
プロバイダー:

DNSとは?

DNS(ドメインネームシステム)は、アプリケーションがネットワーク上のリソースを見つけるための分散型の名前管理システムです。Webサイトの名前はIPv4やIPv6のアドレスに解決され、ほかのレコードはメールの配送先を指定したり、権威DNSサーバーを示したりします。1つのドメイン名が1台のサーバーだけを指している必要はありません。

DNSの問い合わせの流れ

通常、端末はフルリゾルバーに応答を問い合わせます。リゾルバーはキャッシュに答えがなければ、ルートからトップレベルドメインへとDNSの委任をたどり、その名前を担当する権威DNSサーバーにたどり着きます。権威DNSサーバーはゾーンのデータを公開しており、リゾルバーは該当する応答をクライアントに返します。レジストラとDNSの運用者が別の組織であることもあります。

リゾルバーは、各レコードのTTL(生存時間)に応じた期間、応答をキャッシュします。一部の否定応答をキャッシュすることもあります。そのため、レコードを追加・変更した直後は、ユーザーによって異なる結果が見えることがあります。レジストラでネームサーバーを変更すると委任が変わり、既存の権威DNSサーバー上でAレコードを編集するとゾーンのデータが変わります。この2つは別々の操作です。

よく使われるDNSレコード

Aレコードは名前をIPv4アドレスに、AAAAレコードはIPv6アドレスに対応付けます。MXはメールサーバーを、NSは権威DNSサーバーを示し、CNAMEは名前の別名を作ります。TXTは、ドメインの所有権確認やメール認証などに使うテキストを格納します。問い合わせるレコードタイプは明示的に確認しましょう。MXレコードが正常でも、Webサイトにアクセスできるかどうかはわかりません。

サイトを移転するだけなら、アドレスのレコードを更新すれば済む場合があります。DNSプロバイダーも変える場合は、委任を切り替える前に、必要なMX、TXTなどのレコードをコピーしておいてください。メール関連のレコードが抜けていると、Webサイトは表示されてもメールの配送が止まることがあります。DNSの応答が示すのは名前に関するデータだけです。サーバーが接続を受け付けるか、有効なTLS証明書を持っているか、アプリケーションが正常に動いているかまでは証明できません。

プライバシーとDNSSEC

クライアントとリゾルバーの間でやり取りされる従来のDNSクエリは、一般に暗号化されていません。DNS over HTTPSやDNS over TLSはこの区間を暗号化しますが、選んだリゾルバーからは処理したクエリが見えています。DNSSECは、信頼の連鎖が有効であれば、署名されたDNSデータが正しいことを検証します。ただし、クエリを暗号化するわけでも、Webサイトを安全にするわけでもありません。これらの仕組みは、それぞれ別の問題を解決するものです。

トラブルシューティングの手順

新しいサイトが表示されないときは、AレコードとAAAAレコードを問い合わせ、権威DNSサーバーを特定します。その応答を、1つまたは複数のフルリゾルバーの応答と比べてみましょう。権威DNSサーバーの応答は新しいのにフルリゾルバーの応答が古ければ、キャッシュが原因である可能性が高いでしょう。権威DNSサーバーの応答自体が間違っている場合は、ゾーンと委任を確認します。サポートに問い合わせるときのために、正確な名前、レコードタイプ、リゾルバー、時刻を記録しておいてください。

DNSが期待どおりのアドレスを返すようになったら、次の層は切り分けて調べます。ネットワークの到達性、サーバーの応答、TLS、アプリケーションのエラーといった順です。こうすれば、Webサーバーの問題を直そうとして正しいDNSレコードを書き換えてしまうことを避けられます。プロトコルの基礎はRFC 1034とRFC 1035に記載されています。

リゾルバーのプライバシーとDNSリーク

DoHやDoTが暗号化するのはクライアントからリゾルバーまでの区間だけで、どのリゾルバーを使うかはまた別の問題です。ブラウザー、OS、VPNがそれぞれ異なる設定を使っていることもあります。DNSリークテストでわかることとDoHとDoTの比較の記事もご覧ください。