DNS ルックアップ: ドメイン名をIPアドレスに解決
· 12分で読めます
目次
DNSとは?
ドメインネームシステム(DNS)は、現代のインターネットを支える巨大なオンラインディレクトリのように機能します。DNSがなければ、お気に入りのウェブサイトを訪問するために172.217.14.206のような複雑な数値アドレスを記憶する必要があります。代わりに、DNSは人間にわかりやすいドメイン名を、コンピュータがネットワーク上で互いを識別するために使用する数値のIPアドレスに変換します。
DNSはインターネットの電話帳のようなものだと考えてください。ブラウザに「nettool1.com」と入力すると、DNSサーバーはこの読みやすい名前を「192.168.1.1」のようなIPアドレスに変換し、リクエストを正しいウェブサーバーに誘導します。この変換はミリ秒単位で行われ、私たちが当たり前だと思っているシームレスなブラウジング体験を生み出しています。
DNSは1983年にポール・モカペトリスによって、増大する問題を解決するために発明されました。インターネットは急速に拡大しており、既存のホストファイルシステムではスケールできませんでした。今日、DNSは毎秒数十億のクエリを処理し、インターネットの最も重要なインフラストラクチャコンポーネントの1つとなっています。
クイックヒント: DNSはウェブサイトだけのものではありません。メールルーティング、VoIPサービス、インスタントメッセージング、そして日常的に使用するほぼすべてのインターネット接続アプリケーションに使用されています。
DNSルックアップの仕組み
DNSルックアップは目的地への道順を尋ねるように機能し、ドメイン名に関連付けられたIPアドレスを見つけたり、その逆を行ったりするのに役立ちます。このシステムは分散データベースアーキテクチャを使用しており、単一のサーバーがすべてのDNS情報を含んでいるわけではありません。代わりに、データは世界中の数千のサーバーに分散されています。
DNSルックアップには主に2つのタイプがあります:
- 正引きDNSルックアップ: ドメイン名を対応するIPアドレスに変換します。例えば「example.com」を「93.184.216.34」に変換します。これは最も一般的なタイプのルックアップで、ウェブサイトを訪問するたびに発生します。
- 逆引きDNSルックアップ: IPアドレスをドメイン名にマッピングします。例えば、「93.184.216.34」が「example.com」に属していることを発見できます。これは、メールサーバーがメッセージソースを検証したり、セキュリティアプリケーションがネットワークトラフィックの発信元を識別したりするのに特に役立ちます。
DNSクエリは、処理方法によっても分類できます:
- 再帰クエリ: DNSサーバーが答えを見つける完全な責任を負い、必要に応じて他のサーバーにクエリを送信し、最終的な応答を返すまで続けます。
- 反復クエリ: DNSサーバーは現在持っている最良の答えを返します。これは、より多くの情報を知っている別のサーバーへの参照である可能性があります。
- 非再帰クエリ: DNSサーバーは、他のサーバーにクエリを送信せずに、キャッシュまたは権威データから答えます。
DNS解決プロセスのステップバイステップ
DNS解決の仕組みを理解することで、接続の問題をトラブルシューティングし、ネットワークパフォーマンスを最適化できます。ブラウザにURLを入力したときに何が起こるかを以下に示します:
- ブラウザキャッシュチェック: ブラウザはまず、最近このドメインを検索したかどうかを確認するために、独自のキャッシュをチェックします。最新のブラウザは、数分から数時間DNSレコードをキャッシュします。
- オペレーティングシステムキャッシュ: ブラウザキャッシュがミスした場合、OSはDNSキャッシュをチェックします。Windows、macOS、Linuxはすべて独自のDNSキャッシュを維持しています。
- ルーターキャッシュ: 家庭やオフィスのルーターも、ネットワーク上のすべてのデバイスの繰り返しルックアップを高速化するためにDNSクエリをキャッシュします。
- ISP再帰リゾルバ: ローカルキャッシュのいずれにも答えがない場合、クエリはインターネットサービスプロバイダーのDNSリゾルバに送られ、重い作業を処理します。
- ルートネームサーバー: ISPリゾルバは、トップレベルドメインサーバーの場所を知っている13のルートネームサーバークラスター(AからMまでラベル付けされている)の1つにクエリを送信します。
- TLDネームサーバー: ルートサーバーは、適切なトップレベルドメイン(TLD)サーバー(.com、.org、.netなど)にクエリを誘導します。
- 権威ネームサーバー: TLDサーバーは、実際のDNSレコードを保持する特定のドメインの権威ネームサーバーを指します。
- 最終応答: 権威サーバーはIPアドレスを返し、それはチェーンを通って戻り、将来のクエリのために各レベルでキャッシュされます。
このプロセス全体は通常20〜120ミリ秒で完了しますが、キャッシュされた結果ではより速く、ネットワークの問題ではより遅くなる可能性があります。
プロのヒント: DNSキャッシングはインターネット速度を大幅に向上させます。DNSレコードのTime To Live(TTL)値は、サーバーが更新をチェックする前に情報をキャッシュする期間を決定します。TTL値が低いほど、更新は頻繁になりますが、DNSトラフィックが増加します。
DNSレコードの種類
DNSレコードは、ドメインに関する情報を提供する権威DNSサーバーに保存された指示です。各レコードタイプは、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、ドメイン検証 |
| NSレコード | 権威ネームサーバーを識別 | example.com → ns1.nameserver.com |
| SOAレコード | ゾーンに関する管理情報を含む | プライマリネームサーバー、管理者メール、シリアル番号 |
| PTRレコード | 逆引きDNSルックアップに使用 | 93.184.216.34 → example.com |
一般的なDNSレコードの使用例
AレコードとAAAAレコードは、DNSの基礎であり、ドメイン名をIPアドレスに直接マッピングします。すべてのウェブサイトには、少なくとも1つのAレコード(IPv4用)と、理想的にはAAAAレコード(IPv6用)が必要で、すべてのネットワークでアクセス可能であることを保証します。
CNAMEレコードは、サブドメインを管理するのに最適です。サーバーIPが変更されたときに複数のAレコードを更新する代わりに、CNAMEですべてのサブドメインをメインドメインに向け、1つのAレコードだけを更新できます。ただし、CNAMEレコードは同じ名前で他のレコードタイプと共存できません。
MXレコードは、メール配信に不可欠です。ドメインのメールを処理するサーバーを指定し、優先度の値を含みます。優先度番号が低いものが最初に試行され、バックアップメールサーバーを設定できます。
TXTレコードは非常に汎用性が高くなっています。メール認証(SPF、DKIM、DMARC)、ドメイン所有権の検証(Google、Microsoft)、さらには任意のデータの保存にも使用されます。単一のドメインは、異なる目的のために複数のTXTレコードを持つことができます。
DNSルックアップのツール
DNSルックアップは、コマンドラインユーティリティからWebベースのインターフェースまで、さまざまなツールを使用して実行できます。各ツールには、ニーズと技術的専門知識に応じた強みがあります。
コマンドラインツール
nslookupは、Windows、macOS、Linuxで利用可能な古典的なDNSクエリツールです。使いやすく、ほとんどのシステムにプリインストールされています:
nslookup nettool1.com
このコマンドは、デフォルトのDNSサーバーにクエリを送信し、ドメインのIPアドレスを返します。特定のDNSサーバーを指定することもできます:
nslookup nettool1.com 8.8.8.8
dig(Domain Information Groper)はより強力で、詳細な出力を提供します。DNS専門家に好まれるツールで、Unix系システムでは標準です:
dig nettool1.com
digの出力には、クエリ時間、使用されたサーバー、回答セクション、および追加情報が含まれます。特定のレコードタイプをクエリできます:
dig nettool1.com MX
dig nettool1.com TXT
dig nettool1.com ANY
hostは、簡潔な出力を提供するdigのよりシンプルな代替手段です:
host nettool1.com
WebベースのDNSルックアップツール
グラフィカルインターフェースを好むユーザーや、コマンドラインアクセスのないデバイスからルックアップを実行する必要があるユーザーにとって、Webベースのツールは利便性と追加機能を提供します。当社のDNSルックアップツールは、クリーンなインターフェースで即座に結果を提供し、任意のドメインのすべてのレコードタイプを表示します。
Webベースのツールには、次のような機能が含まれることがよくあります:
- グローバルサーバー全体のDNS伝播の視覚的表現
- 履歴DNSレコード追跡
- 一括ドメインルックアップ
- DNSヘルスチェックと検証
- レポートのエクスポート機能
プロのヒント: DNSの問題をトラブルシューティングする際は、複数のDNSサーバー(Googleの8.8.8.8、Cloudflareの1.1.1.1、ISPのリゾルバなど)にクエリを送信して、問題がDNS伝播にあるのか、特定のサーバーにあるのかを特定します。
DNSルックアップの実行
さまざまなシナリオでDNSルックアップを実行する実用的な例を見ていきましょう。これらの例は、DNSレコードから特定の情報を抽出する方法を理解するのに役立ちます。
基本的な正引きルックアップ
nslookupを使用してドメインのIPアドレスを見つけるには:
nslookup google.com
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: google.com
Address: 142.250.185.46
出力には、DNSサーバー、クエリタイプ、および結果のIPアドレスが表示されます。「Non-authoritative answer」は、応答が権威ネームサーバーではなくキャッシュから来たことを意味します。
特定のレコードタイプのクエリ
チェックするには