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クエリは、処理方法によっても分類できます:

DNS解決プロセスのステップバイステップ

DNS解決の仕組みを理解することで、接続の問題をトラブルシューティングし、ネットワークパフォーマンスを最適化できます。ブラウザにURLを入力したときに何が起こるかを以下に示します:

  1. ブラウザキャッシュチェック: ブラウザはまず、最近このドメインを検索したかどうかを確認するために、独自のキャッシュをチェックします。最新のブラウザは、数分から数時間DNSレコードをキャッシュします。
  2. オペレーティングシステムキャッシュ: ブラウザキャッシュがミスした場合、OSはDNSキャッシュをチェックします。Windows、macOS、Linuxはすべて独自のDNSキャッシュを維持しています。
  3. ルーターキャッシュ: 家庭やオフィスのルーターも、ネットワーク上のすべてのデバイスの繰り返しルックアップを高速化するためにDNSクエリをキャッシュします。
  4. ISP再帰リゾルバ: ローカルキャッシュのいずれにも答えがない場合、クエリはインターネットサービスプロバイダーのDNSリゾルバに送られ、重い作業を処理します。
  5. ルートネームサーバー: ISPリゾルバは、トップレベルドメインサーバーの場所を知っている13のルートネームサーバークラスター(AからMまでラベル付けされている)の1つにクエリを送信します。
  6. TLDネームサーバー: ルートサーバーは、適切なトップレベルドメイン(TLD)サーバー(.com、.org、.netなど)にクエリを誘導します。
  7. 権威ネームサーバー: TLDサーバーは、実際のDNSレコードを保持する特定のドメインの権威ネームサーバーを指します。
  8. 最終応答: 権威サーバーは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サーバー(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」は、応答が権威ネームサーバーではなくキャッシュから来たことを意味します。

特定のレコードタイプのクエリ

チェックするには