MENU
「安心のセキュリティをお得な価格」でご提供!
Fortinet商品など
ENGAGE fotinet

DNSルックアップとは

DNSルックアップとは、ドメイン名に対応する通信先の情報を調べる処理のことです。

Webサイトを見るときには、主にドメイン名からIPアドレスを調べる名前解決を指します。

たとえば、ブラウザで example.com と入力しても、コンピュータはその文字列だけでは通信先を特定できません。

実際に通信するには、93.184.216.34 のようなIPアドレスが必要です。

そこでDNSが、ドメイン名に対応するIPアドレスなどの情報を調べます。

この一連の処理がDNSルックアップです。

DNSとは何か

DNSは Domain Name System の略で、インターネット上の名前解決を行う仕組みです。

人間は example.com のようなドメイン名の方が覚えやすい一方で、コンピュータはIPアドレスを使って通信します。

DNSはこの両者を結びつけ、通信先を見つけられるようにしています。

簡単に言えば、DNSはインターネット上の電話帳や住所録のようなものです。

DNSルックアップの流れ

DNSルックアップは、次のような流れで行われます。

端末内のキャッシュを確認する

最初にブラウザやOSに残っているDNSキャッシュが確認されます。

すでに同じドメインを最近参照していれば、その情報を再利用できるため、すぐに通信先が分かります。

また、環境によっては hosts ファイルの内容も参照されます。

再帰DNSサーバーに問い合わせる

端末内に情報がない場合は、設定されている再帰DNSサーバー(リカーシブリゾルバ)に問い合わせます。

これは、利用中の回線事業者のDNSサーバーであったり、CloudflareやGoogle Public DNSのような公開DNSであったりします。

この再帰DNSサーバーが、利用者の代わりに必要な情報を探します。

ルートDNSサーバーを参照する

再帰DNSサーバーにもキャッシュがない場合、DNSの階層構造に沿って問い合わせが進みます。

まず参照されるのがルートDNSサーバーです。

ルートDNSサーバーは最終的なIPアドレスを返すのではなく、「.com ならこの先を見てください」といった案内を返します。

TLDサーバーを参照する

次に.com.jp などのトップレベルドメインを管理するTLDサーバーに問い合わせます。

ここでも最終回答そのものではなく、「example.com の正式な情報はこの権威DNSサーバーが持っています」という案内が返されます。

権威DNSサーバーから正式な情報を取得する

最後に、そのドメインの正式な情報を管理している権威DNSサーバーに問い合わせます。

ここで初めて、AレコードやMXレコードなどの正式なDNS情報が返されます。

たとえば example.com に対するAレコードとして、IPアドレスが返されます。

取得した情報を使って通信する

ブラウザやアプリケーションは、取得したIPアドレスを使って通信先へ接続します。

その後にHTTPやHTTPSの通信が始まり、Webページが表示されます。

DNSルックアップは何を調べるのか

DNSルックアップというと、ドメイン名からIPアドレスを調べるイメージが強いですが、実際にはそれ以外の情報も調べます。

代表的なのは次のようなDNSレコードです。

Aレコード

ドメイン名をIPv4アドレスに対応づけるレコードです。

例:
example.com192.0.2.1

AAAAレコード

ドメイン名をIPv6アドレスに対応づけるレコードです。

CNAMEレコード

あるホスト名を、別のホスト名の別名として定義するレコードです。

例:
www.example.comexample.com

ただし、CNAMEはどこにでも自由に設定できるわけではなく、ルートドメインでは使えない場合があります。

MXレコード

メールを受信するサーバーを指定するレコードです。

メール運用で重要になります。

NSレコード

そのドメインを管理しているネームサーバーを示すレコードです。

TXTレコード

文字列情報を保持するレコードです。

SPF、DKIM、DMARC、ドメイン所有確認などでよく利用されます。

PTRレコード

IPアドレスからドメイン名を調べる逆引きで使われるレコードです。

正引きと逆引き

DNSルックアップには大きく分けて2種類あります。

正引き

ドメイン名からIPアドレスを調べる処理です。

Webサイトの閲覧ではこちらが一般的です。

逆引き

IPアドレスからドメイン名を調べる処理です。

メールサーバーの信頼性確認やログ解析などで使われます。

TTLとキャッシュの関係

DNSルックアップでは、毎回最初から問い合わせを行うと時間がかかるため、結果がキャッシュされます。

このキャッシュの保存時間を決めるのが TTL(Time To Live) です。

TTLは、「このDNS情報を何秒間キャッシュしてよいか」を表します。

たとえばTTLが300なら、5分間はその情報を再利用できます。

TTLが短い場合

  • 設定変更が反映されやすい
  • 問い合わせ回数が増えやすい

TTLが長い場合

  • キャッシュが効きやすく安定しやすい
  • 設定変更の反映に時間がかかりやすい

サイト移転やメールサーバー切り替えの前にTTLを短くしておくのは、よくある運用方法です。

DNS変更がすぐ反映されない理由

DNSの設定を変更しても、すべての環境で同時に切り替わるわけではありません。

これは各所に残っているキャッシュが、TTLの期限まで保持されるためです。

一般には「DNS浸透」と呼ばれることがありますが、実態としては世界中に一斉に伝わるというより、キャッシュの失効タイミングに差があると考える方が正確です。

DNSルックアップが遅いと何が起きるのか

DNSルックアップが遅いと、通信先の特定に時間がかかるため、接続開始が遅れます。

その結果、Webページの表示開始や外部リソースの取得が遅くなることがあります。

特に次のような場合は、影響が出やすくなります。

  • DNSキャッシュがない
  • 利用中のDNSサーバーの応答が遅い
  • 外部ドメインの数が多い
  • 広告タグや解析タグ、SNS埋め込み、外部フォントなどを多数利用している

なお、DNSルックアップ時間そのものはCore Web Vitalsの独立した指標ではありません。

ただし、接続開始やリソース取得の遅れを通じて、ページ全体の体感速度に影響することがあります。

Web運用でDNSルックアップが重要な理由

DNSルックアップは、単にWebサイト表示だけの話ではありません。

実務では次のような場面で重要になります。

サイト表示速度に関わる

外部ドメインが多いサイトでは、DNSルックアップの回数が増え、初回表示に影響することがあります。

メール配信に関わる

MX、SPF、DKIM、DMARCなどの設定はDNSを使います。

メールが届かない、迷惑メール扱いされるといった問題の原因になることもあります。

サイト移転やサーバー切り替えで必要になる

DNS設定の変更時には、AレコードやMXレコード、ネームサーバー設定などを正しく管理しないと、サイトやメールに不具合が出ることがあります。

CDNや外部サービス導入時に関わる

CDN、計測ツール、広告配信、チャットツールなど、多くの外部サービスがDNSに依存しています。

よくある誤解

DNSルックアップは「接続そのもの」ではない

DNSルックアップは、あくまで通信先を調べる処理です。

その後にTCP接続、TLSハンドシェイク、HTTP通信などが続きます。

DNSはIPアドレスだけを返すわけではない

DNSではAレコードだけでなく、MX、TXT、NS、CNAMEなど、さまざまな情報が管理されています。

1つのドメインに1つのIPとは限らない

実際には、複数のIPアドレスが返されたり、地域や負荷状況によって異なる応答が返されたりすることがあります。
CDNや負荷分散では一般的です。

DNS関連のトラブル例

DNS設定に問題があると、次のような不具合が起こることがあります。

サイトが表示されない

  • Aレコードの設定ミス
  • ネームサーバー変更の不備
  • 古いキャッシュが残っている
  • 権威DNS側の設定ミス

メールが届かない

  • MXレコードの設定ミス
  • SPF、DKIM、DMARCの不備
  • 逆引き設定の不整合

一部のユーザーだけ不具合が出る

  • 環境ごとにキャッシュ状況が異なる
  • IPv4とIPv6の設定差がある
  • 地域ごとに応答内容が異なる

DNSルックアップの確認方法

DNSの状態を確認するには、次のようなコマンドが使われます。

nslookup

もっともよく知られている確認コマンドです。

nslookup example.com

MXレコードを確認する例です。

nslookup -type=mx example.com

dig

より詳細な情報を確認したいときによく使われます。

dig example.com

Aレコードを確認する例です。

dig example.com A

MXレコードを確認する例です。

dig example.com MX

ping

ping はDNS確認専用のコマンドではありませんが、名前解決された結果を簡単に確認できる場合があります。

ping example.com

ただし、ping は本来疎通確認に使うコマンドであり、ICMPが無効化されている環境もあるため、DNS確認の主目的には dignslookup の方が適しています。

DNS Prefetchとは

Web制作では DNS Prefetch という仕組みも使われます。

これは、後でアクセスする可能性が高い外部ドメインについて、ブラウザに先回りしてDNS解決させるための仕組みです。

<link rel="dns-prefetch" href="//example-cdn.com">

これにより、実際にその外部リソースへアクセスするときの待ち時間を減らせることがあります。

preconnectとの違い

dns-prefetch と似た仕組みに preconnect があります。

dns-prefetch

DNS解決だけを先に行う。

preconnect

DNS解決に加えて、TCP接続やTLSハンドシェイクまで先に進める。

重要な外部リソースに対しては、preconnect の方が効果的な場合もあります。

まとめ

DNSルックアップとは、ドメイン名に対応する通信先の情報を調べる処理です。

Web閲覧では特に、ドメイン名からIPアドレスを取得する名前解決として使われます。

流れとしては、

  1. キャッシュを確認する
  2. 再帰DNSサーバーに問い合わせる
  3. 必要に応じてルートDNS、TLDサーバー、権威DNSサーバーをたどる
  4. 取得した情報を使って通信する

という形になります。

DNSはWebサイト表示だけでなく、メール配信、CDN、外部サービス連携、ドメイン移管など、さまざまな実務に関わっています。

そのため、Web担当者にとっても基礎知識として理解しておく価値は大きい仕組みです。

以上、DNSルックアップについてでした。

最後までお読みいただき、ありがとうございました。

カテゴリ一覧

ページトップへ