DNSをシンプルに解説:インターネットの電話帳
· 12分で読めます
目次
ブラウザにウェブサイトのアドレスを入力するたびに、DNSと呼ばれるシステムが、人間が読める名前をコンピュータに適した IPアドレスに静かに変換しています。DNSがなければ、単に「google.com」と入力する代わりに、142.250.80.46のような数字を記憶しなければなりません。
このガイドでは、DNSの仕組み、重要性、一般的な問題のトラブルシューティング方法を、誰でも理解できるように平易で専門的でない言葉で説明します。
🔍 自分で試してみよう: 私たちの無料DNS検索ツールを使って、今すぐDNSの動作を確認できます。
DNSとは?
DNSはドメインネームシステムの略です。これは本質的にインターネットの電話帳ですが、名前を電話番号に変換する代わりに、ドメイン名(google.comなど)をコンピュータが通信に使用するIPアドレス(142.250.80.46など)に変換します。
こう考えてみてください:誰かに電話をかけたいとき、電話番号を記憶するのではなく、連絡先で名前を検索します。DNSはウェブサイトに対して同じことをします。
DNSが作られた理由
DNSは、増大する問題を解決するために1983年にポール・モカペトリスによって発明されました。インターネット(当時はARPANETと呼ばれていました)の初期には、すべてのコンピュータ名をそのIPアドレスにマッピングするhosts.txtという単一のテキストファイルがありました。このファイルはスタンフォード研究所によって管理され、ネットワーク上のすべてのコンピュータに配布されていました。
インターネットが成長するにつれて、このシステムは完全に管理不可能になりました。誰かが新しいウェブサイトを追加するたびに単一のファイルを更新し、そのファイルを世界中の何百万ものコンピュータに配布することを想像してみてください。DNSは、単一のエンティティがすべての情報を制御しない分散型の階層システムを作成することで、この問題を解決しました。
DNSが解決する問題
コンピュータは、192.168.1.1(IPv4)や2001:0db8:85a3:0000:0000:8a2e:0370:7334(IPv6)のような数値ラベルであるIPアドレスを使用して通信します。これらの数字は機械にとっては正確で効率的ですが、人間が記憶するには非常に困難です。
DNSは、コンピュータが裏で好みの数値アドレスを使い続ける一方で、私たちが記憶しやすい名前を使用できるようにすることで、このギャップを埋めます。
DNSの仕組み(ステップバイステップ)
ブラウザに「example.com」と入力してEnterキーを押すと、複雑ですが非常に高速なプロセスが始まります。正確に何が起こるかを以下に示します:
ステップ1:ブラウザキャッシュの確認
ブラウザはまず、最近このドメインを検索したかどうかを自身のメモリで確認します。最新のブラウザは、繰り返しの訪問を高速化するために、短期間(通常60秒から数分)DNSの結果をキャッシュします。
ブラウザがキャッシュされた結果を見つけ、それが期限切れでない場合、そのIPアドレスをすぐに使用します。これが、ウェブサイトを再訪問する方が最初の訪問よりも速いことが多い理由です。
ステップ2:オペレーティングシステムキャッシュの確認
ブラウザに答えがない場合、オペレーティングシステムに尋ねます。Windows、macOS、Linuxはすべて、システムレベルで独自のDNSキャッシュを維持しています。
Windowsではipconfig /displaydnsコマンドを使用してOSキャッシュを表示したり、ipconfig /flushdnsでクリアしたりできます。
ステップ3:再帰リゾルバへのクエリ
どちらのキャッシュにも答えがない場合、コンピュータは再帰リゾルバにリクエストを送信します。これは通常、インターネットサービスプロバイダ(ISP)またはGoogle(8.8.8.8)やCloudflare(1.1.1.1)のような公開DNSサービスによって運営されています。
再帰リゾルバは仲介者として機能します。その仕事は、あなたに代わって他のDNSサーバーにクエリを送信して答えを追跡することです。
ステップ4:ルートネームサーバーへのクエリ
再帰リゾルバは、13のルートネームサーバーの1つに「.comドメインを誰が処理していますか?」と尋ねることから始めます。これらのルートサーバーは特定のクエリの答えを知りませんが、.com、.org、.netのような各トップレベルドメイン(TLD)を担当するサーバーを知っています。
ルートサーバーは、適切なTLDネームサーバーのIPアドレスで応答します。
豆知識: 実際には物理的なルートサーバーは13台だけではありません。Anycastと呼ばれる技術により、これらの13のIPアドレスは冗長性と速度のために世界中の何百ものサーバーに分散されています。
ステップ5:TLDネームサーバーへのクエリ
次に、再帰リゾルバはTLDネームサーバー(この場合は.comサーバー)に連絡し、「example.comに関する情報はどこで見つけられますか?」と尋ねます。
TLDサーバーは、example.comの権威ネームサーバーのIPアドレスで応答します。これは決定的な答えを持つサーバーです。
ステップ6:権威ネームサーバーへのクエリ
最後に、再帰リゾルバはexample.comの権威ネームサーバーにクエリを送信します。このサーバーは実際のDNSレコードを持ち、IPアドレスで応答します。
ステップ7:応答とキャッシング
再帰リゾルバはIPアドレスを受信し、将来のリクエストのために(TTL値に基づいて)キャッシュし、コンピュータに送り返します。オペレーティングシステムとブラウザもこの結果をキャッシュします。
これで、ブラウザはそのIPアドレスのウェブサーバーに接続してウェブサイトを読み込むことができます。このプロセス全体は通常100ミリ秒未満で完了します。
視覚的な要約
完全なDNS解決パスは次のとおりです:
- ブラウザキャッシュ → OSキャッシュ → 再帰リゾルバ
- 再帰リゾルバ → ルートサーバー → TLDサーバー → 権威サーバー
- 権威サーバー → 再帰リゾルバ → あなたのコンピュータ
- ブラウザがIPアドレスを使用してウェブサイトに接続
DNSレコードタイプの解説
DNSは単にドメイン名をIPアドレスに変換するだけではありません。システムは、さまざまなレコードタイプを使用して多くの異なるタイプの情報を保存します。各レコードタイプには特定の目的があります。
一般的なDNSレコードタイプ
| レコードタイプ | 目的 | 例 |
|---|---|---|
| A | ドメインをIPv4アドレスにマッピング | example.com → 93.184.216.34 |
| AAAA | ドメインをIPv6アドレスにマッピング | example.com → 2606:2800:220:1:248:1893:25c8:1946 |
| CNAME | 別のドメインを指すエイリアスを作成 | www.example.com → example.com |
| MX | ドメインのメールサーバーを指定 | example.com → mail.example.com (優先度 10) |
| TXT | テキスト情報を保存(検証、SPF、DKIM) | "v=spf1 include:_spf.google.com ~all" |
| NS | 権威ネームサーバーを指定 | example.com → ns1.example.com |
| SOA | ゾーンに関する管理情報を含む | プライマリサーバー、管理者メール、シリアル番号 |
| PTR | 逆引きDNS検索(IPからドメイン) | 93.184.216.34 → example.com |
| SRV | サービスの場所を指定 | VoIP、インスタントメッセージングなどに使用 |
AレコードとAAAAレコード
Aレコードは最も基本的なDNSレコードタイプです。ドメイン名をIPv4アドレスに直接マッピングします。ウェブサイトにアクセスするとき、ほぼ常にAレコード検索を使用しています。
AAAAレコード(「クワッドA」と発音)は同じことをしますが、IPv6アドレス用です。インターネットがIPv4からIPv6に移行するにつれて、AAAAレコードはますます重要になっています。最新のウェブサイトのほとんどは、AレコードとAAAAレコードの両方を持っています。
CNAMEレコード:エイリアスの作成
CNAMEレコードは、IPアドレスに直接ではなく、別のドメイン名を指すエイリアスを作成します。これは、複数のドメイン名を同じ場所に向けたい場合に便利です。
たとえば、www.example.comをexample.comを指すCNAMEとして持つことができます。こうすることで、IPアドレスが変更された場合、example.comのAレコードのみを更新すればよくなります。
プロのヒント: ルートドメインレベル(example.com)でCNAMEレコードを使用することはできません。これはDNSプロトコルの制限です。代わりにAレコードまたはALIASレコードを使用してください。
MXレコード:メールルーティング
MXレコード(メール交換)は、ドメインのメールをどこに配信するかをメールサーバーに伝えます。各MXレコードには優先度番号が含まれており、数字が小さいほど優先度が高くなります。
たとえば、Google Workspaceは冗長性のために異なる優先度を持つ複数のMXレコードを使用します。プライマリメールサーバーがダウンしている場合、メールは自動的にバックアップサーバーにルーティングされます。
TXTレコード:検証とセキュリティ
TXTレコードは任意のテキストデータを保存し、非常に汎用性があります。一般的な用途には次のものがあります:
- ドメイン検証: GoogleやMicrosoftなどのサービスにドメインを所有していることを証明
- SPFレコード: あなたに代わってメールを送信できるサーバーを指定
- DKIMレコード: メール認証のための暗号署名
- DMARCレコード: メール認証ポリシー
- サイト検証: さまざまなウェブサービスの所有権を証明
DNSサーバーの種類
DNSシステムは、解決プロセスにおいてそれぞれ特定の役割を持つ、いくつかの異なるタイプのサーバーに依存しています。
1. 再帰リゾルバ(DNSリゾルバ)
これらは、コンピュータが直接通信するサーバーです。答えが見つかるまで他のDNSサーバーに再帰的にクエリを送信するすべての作業を行うため、「再帰的」と呼ばれます。
ISPは通常、再帰リゾルバを自動的に提供しますが、代わりに公開DNSサービスを使用することもできます:
- Google Public DNS:
8.8.8.8と8.8.4.4 - Cloudflare DNS:
1.1.1.1と1.0.0.1 - Quad9:
9.9.9.9 - OpenDNS:
208.67.222.222と208.67.220.220
2. ルートネームサーバー
DNS階層の最上位を形成する13のルートネームサーバーアドレス(AからMまでラベル付け)があります。これらのサーバーは特定のクエリの答えを知りませんが、クエリをどのTLDサーバーに向けるべきかを知っています。
ルートサーバーは、Verisign、NASA、メリーランド大学、ICANNを含むさまざまな組織によって運営されています。1日に数十億のクエリを処理します。
3. TLDネームサーバー
トップレベルドメインサーバーは、.com、.org、.netのような特定のドメイン拡張子、または.ukや.jpのような国コードを担当します。
たとえば、Verisignは.comと.netドメインのTLDサーバーを運営しています。これらのサーバーは、各セカンドレベルドメインをどの権威ネームサーバーが処理するかに関する情報を維持します。
4. 権威ネームサーバー
これらのサーバーは最終