DNS の問題を診断する

完了

DNS は、Windows Server オペレーティング システムの基盤となるネーム サービスです。 Windows Server における DNS サーバーの役割:

  • 名前解決サービスを提供します。

  • DNS クライアントから次のようなネットワーク サービスを見つけられるようにします。

    • Active Directory Domain Services (AD DS) ドメイン コントローラー。

    • グローバル カタログ サーバー。

    • メッセージング サーバー。

DNS インフラストラクチャの構成が不適切な場合、または正しく機能しない場合、これらの重要なネットワーク サービスにアクセスできなくなる可能性があります。 そのため、この重要なサービスのトラブルシューティング方法を理解しておくことが重要です。

基礎を確認する

クライアントの名前解決のトラブルシューティングを始める前に、DNS サーバーとそのゾーンなどの上位のコンポーネントが稼働し、使用可能であることを確認することが重要です。 DNS サーバーに関連すると思われる名前解決の問題が発生している場合に推奨されることは次のとおりです。

  • DNS サーバーのサービスが稼動していることを確認します。

  • イベント ログに記録された DNS に関連したエラーを確認します。

  • 不正な応答が権限を持つサーバーからのものかどうかを判断します。 その場合、問題の原因として次のことが考えられます。

    • ゾーンにデータが入ってきたときの管理エラー。 ゾーン データにエラーがないことを確認します。

    • Active Directory レプリケーションまたは動的更新に影響する問題。 AD DS のレプリケーションを確認します。

  • サーバーに権限がない場合は、構成したマスターからの同期 (ゾーン転送) の問題が原因と考えられます。

    ヒント

    プライマリ サーバーの DNS ゾーン データが正しいかどうかを確認します。 そうである場合は、セカンダリ サーバーを再同期します。 そうでない場合は、レコードを修正し、セカンダリを同期します。

DNS サーバーが稼働しており、ゾーン データが正しいと思われる場合は、クライアント側から名前解決ら調査することを検討します。

DNS サーバーのログを確認する

既定では、DNS には DNS サーバー ログが保持しされており、イベント ビューアーで確認できます。 このイベント ログは、イベント ビューアーの [アプリケーションとサービス ログ] フォルダーにあります。 次のような一般的なイベントが記録されます。

  • DNS サービスの開始と停止。

  • バックグラウンドの読み込みとゾーン署名イベント。

  • DNS 構成設定の変更。

  • さまざまな警告とエラー イベント。

DNS ログを構成する

より詳細なログを記録するには、デバッグ ログを有効にします。 デバッグ ログ オプションは既定では無効になっていますが、必要に応じて有効にすることができます。 次のようなデバッグ ログ オプションがあります。

  • パケットの方向。

  • パケットの内容。

  • トランスポート プロトコル

  • 要求の種類。

  • IP アドレスに基づくフィルター処理。

  • %windir%\System32\DNS ディレクトリ内にあるログ ファイルの名前と場所の指定。

  • ログ ファイルの最大サイズ制限。

デバッグ ログはリソースを大量に消費する可能性があります。また、サーバー全体のパフォーマンスに影響を与え、ディスク領域を消費する可能性があります。 そのため、サーバーのパフォーマンスに関する詳細な情報が必要な場合にのみ、一時的に有効にするようにしてください。 DNS サーバー上でデバッグ ログを有効にするには、次の手順を実行します。

  1. DNS マネージャー コンソールを開き、該当する DNS サーバーを右クリックして、[プロパティ] を選びます。

  2. [プロパティ] ダイアログ ボックスで、次のスクリーンショットに表示されているように [デバッグのログ] タブを選びます。

  3. [デバッグのためにパケットのログを記録する] を選び、DNS サーバーにデバッグ ログを記録するイベントを選びます。

This screenshot displays the DNS Manager console with the Debug Logging tab of the Properties dialog box open. The Log packets for debugging checkbox is selected.

名前解決のトラブルシューティングに使用できるツールと手法

他のほとんどのテクノロジと同様に、名前解決にはトラブルシューティングが必要になることがあります。 問題は、DNS サーバー、そのゾーン、およびそのリソース レコードが適切に構成されていない場合に発生することがあります。 リソース レコードが問題の原因となっている場合は、構成の問題が必ずしも明らかではないため、問題の特定が困難になることがあります。 DNS サーバーと名前解決の問題を構成、管理、およびトラブルシューティングするために使用できるツールがいくつかあります。

多数のコマンドライン ツールと PowerShell コマンドレットを使って、環境内の DNS インフラストラクチャのトラブルシューティングとテストを行うことができます。 次の表で、これらのツールについて説明します。

コマンド 説明
Nslookup このツールを使って DNS 情報のクエリを実行します。 このツールは柔軟性があり、DNS サーバーの状態に関する重要な情報がわかります。 また、リソース レコードを参照し、その構成を検証するためにも使用できます。 さらに、ゾーン転送、セキュリティ オプション、MX レコード解決をテストすることもできます。
DNSCmd このコマンドライン ツールを使って DNS サーバーの役割を管理します。 このツールは、バッチ ファイルを作成して、日常的な DNS 管理タスクを自動化する場合やネットワークに新しい DNS サーバーを無人で簡単にセットアップして構成する場合に便利です。
DNSlint このツールを使って、一般的な DNS の問題を診断します。 このツールは、DNS の構成の問題を迅速に診断し、テストしているドメインの状態に関するレポートを HTML 形式で生成できます。
IPConfig このコマンドを使って、コンピューターが使う IP 構成の詳細を確認し、変更します。 このコマンドには、DNS クライアントのトラブルシューティングとサポートに使用できる追加のコマンドライン オプションが含まれています。 ipconfig /displaydns コマンドを使ってクライアント コンピューターのローカル DNS キャッシュを確認し、ipconfig /flushdns コマンドを使ってローカル DNS キャッシュを消去できます。 DNS にホストを登録する場合は、ipconfig /registerdns コマンドを使用できます。

Windows Server には、DNS クライアントおよびサーバーの管理に使用できる Windows PowerShell コマンドレットがあります。 最も一般的に使用されるコマンドレットの一部を次の表に示します。

コマンドレット 説明
Clear-DNSClientCache このコマンドレットは、ipconfig /flushdns コマンドと同様に、クライアント キャッシュをクリアします。
Get-DNSClient このコマンドレットは、ネットワーク インターフェイスの詳細を表示します。
Get-DNSClientCache このコマンドレットを使うと、ipconfig /displaydns コマンドと同様にローカル DNS クライアント キャッシュの内容を表示できます。
Register-DNSClient このコマンドレットは、コンピューター上のすべての IP アドレスを、構成済みの DNS サーバーに登録します。
Resolve-DNSName このコマンドレットを使うと、nslookup の動作と同様に、特定の名前に対して DNS 名前解決を実行できます。
Set-DNSClient このコマンドレットは、コンピューター上のインターフェイス固有の DNS クライアント構成を設定します。
Test-DNSServer このコマンドレットは、指定されたコンピューターが、DNS サーバーとして機能しているかどうかをテストします。

一般的な名前解決テストを実行する

名前解決をトラブルシューティングするには、コンピューターが使う名前解決方法と、コンピューターが使う順序を理解しておく必要があります。

重要

解決を試行するたびに、DNS リゾルバーのキャッシュをクリアしてください。

リモート ホストに接続できず、名前解決の問題が疑われる場合は、次の手順を実行して名前解決をトラブルシューティングすることができます。

  1. 管理者特権でのコマンド プロンプトを開き、ipconfig /flushdns を実行して DNS リゾルバー キャッシュをクリアします。

    ヒント

    PowerShell コマンドレット Clear-DNSClientCache を使うこともできます。

  2. IP アドレスを使ってリモート ホストに ping を試行します。 これは、問題が名前解決に関連しているかどうかを識別するのに役立ちます。

  3. ホスト名を使ってリモート ホストに ping を試行します。 たとえば、Contoso, Ltd. に勤務している場合は、Ping LON-DC1.contoso.com を実行します。

    ヒント

    IP アドレスを使って ping が成功しても、ホスト名を使うと失敗する場合、その問題は名前解決に関係しています。

  4. コマンド プロンプトで、 Nslookup.exe d LON DC1.contoso.com. > filename.txtを実行します。

  5. filename.txt ファイルの内容を調べて、名前解決が失敗した段階を特定します。