ITを完璧に: Nslookupを使ったDNS問題のトラブルシューティング - TechRepublic

ITを完璧に: Nslookupを使ったDNS問題のトラブルシューティング - TechRepublic

Windows NTまたはWindows 2000ネットワークでDNSサーバーを運用している場合、様々な問題が発生してシステムが混乱する可能性があることはご存知でしょう。そうなると、様々なトラブルシューティングツールを駆使して対処にあたります。Windows NTを運用している場合は、Windows NT DNSネームサーバー管理の主要ツールであるDNSマネージャーを使用する可能性が高いでしょう。Windows 2000を運用している場合は、Windows 2000 DNSネームサーバー管理の主要ツールであるDNSコンソールを使用するのが一般的です。

しかし、どのオペレーティングシステムをご利用かに関わらず、見落とされがちですが、非常に便利なDNSトラブルシューティングツールがもう一つあります。それがNslookupユーティリティです。この便利なサービスは、サーバープラットフォームだけでなくクライアント(Windows NT WorkstationまたはWindows 2000 Professional)からも実行でき、DNSネームサーバーからの情報を表示するDOSベースのプログラムです。DNS関連の問題を特定するのに役立ちます。

このDaily Drill Downでは、Nslookupユーティリティを紹介し、その仕組みを説明します。また、Nslookupユーティリティを使って実行できる、DNSネームサーバーの基本的なトラブルシューティング手法についても解説します。

Nslookupユーティリティの動作
Windows NT/2000に付属する他の多くのTCP/IPユーティリティと同様に、Nslookupユーティリティはコマンドプロンプトから実行します。Windows NT/2000に付属する他のTCP/IPユーティリティとは異なり、Nslookupユーティリティには対話型と非対話型の2つの動作モードがあります。どちらのモードを使用するかは、Nslookupユーティリティに返させたい情報の量によって異なります。

Nslookupユーティリティを非対話型モードで使用するのが、おそらく最も馴染みのある使い方でしょう。他のTCP/IPユーティリティと同様に、コマンド全体をコマンドラインで実行するためです。このモードは、調査対象のサーバーが1つだけで、必要な情報が1つだけの場合に使用します。

対話モードでは、Nslookupユーティリティが独立したアプリケーションとして起動され、専用のプロンプトが表示されます。その後、多数の追加サブコマンドを発行することで、より詳細なテストを実行し、DNSネームサーバーに関する豊富な情報を収集できます。また、対話モードでは複数のDNSネームサーバーを簡単にテストできます。

Nslookupユーティリティを非対話モードで使用する
Nslookupユーティリティを非対話モードで使用するのは簡単です。Nslookupと入力しその後に2つの引数(検索したいシステムのホスト名またはIPアドレスと、DNSネームサーバーのホスト名またはIPアドレス)を指定するだけです。ホスト名を使用する場合は、ホスト名の前にwwwを付ける必要はありません。

たとえば、DNSネームサーバーのデータベースにTechRepublic.comが登録されているかどうかを確認し、DNSネームサーバーのIPアドレスが10.12.35.9の場合は、
「Nslookup techrepublic.com 10.12.35.9」と入力します。

DNSネームサーバーのデータベースにリストが存在する場合、以下に示す応答が表示されます:
サーバー: ns.dnserver.org
アドレス: 10.12.35.9

名前: techrepublic.com
アドレス: 208.50.157.239


ヒント

必要に応じて、DNSネームサーバーの名前またはIPアドレスを省略できます。省略した場合、Nslookupユーティリティは自動的にデフォルトのDNSネームサーバーを使用します。


Nslookupユーティリティを対話モードで使用するには、コマンドプロンプトでNslookup
と入力し、[Enter]キーを押します。すると、ネットワークのデフォルトDNSネームサーバの名前とアドレスが表示され、続いてNslookupユーティリティのプロンプトが表示されます。例:デフォルトサーバ: ns.dnserver.org アドレス: 10.12.35.9 >



 

このプロンプトでは、検索したいシステムのホスト名またはIPアドレスを入力できます。繰り返しますが、ホスト名の前にwwwを付ける必要はありません。また、後ほど説明するNslookupの対話型サブコマンドのいずれかを入力することもできます。ただし、最初に確認しておくべきルールがいくつかあります。

Nslookup ユーティリティのプロンプトの行の最大長は 256 文字です。Nslookup ユーティリティの対話型サブコマンドのいくつかを組み合わせる場合には、この点に留意する必要があります。2 番目に、対話型サブコマンドの 1 つを開始し、操作を続行する前にキャンセルする場合は、[Ctrl]C を押すことができます。3 番目に、Nslookup ユーティリティは認識できない対話型サブコマンドをコンピュータ名として解釈するため、エラー メッセージが表示されることがあります。異常なエラーが表示された場合は、コマンド ラインに入力ミスがないか必ず確認してください。まれに、コンピュータ名が Nslookup 対話型サブコマンドのいずれかと同じ場合は、名前の前にエスケープ文字 (この場合はバックスラッシュ文字 (\)) を付けることができます。最後に、Nslookup ユーティリティのプロンプトを閉じて通常のコマンド プロンプトに戻るには、「Exit 」と入力します。[Ctrl]Z を押してから [Enter] を押すこともできます。

先に進む前に、ちょっとしたヒントを一つお伝えします。Nslookupユーティリティのプロンプトから操作する際は、入力したすべてのコマンドの履歴リストがプロンプトに保存されていることにご注意ください。つまり、上下矢印キーを使って履歴を切り替えられるということです。

前述したように、Nslookupユーティリティを対話モードで使用すると、多数の追加サブコマンドが利用できます。これらの追加サブコマンドの一覧は、 Nslookupユーティリティのプロンプトに「Help」または疑問符(?)を入力することでいつでも表示できます。入力すると、図Aに示すような一覧が表示されます。

図A
Nslookup ユーティリティ プロンプトで「Help」または疑問符 (?)を入力すると、Nslookup ユーティリティのすべてのサブコマンドのリストを表示できます。

ご覧のとおり、Setサブコマンドにはいくつかの基本サブコマンドと、追加キーワードのサブセットが関連付けられています。これらの追加キーワードを使用すると、Nslookupユーティリティの設定を変更できます。すべてのSetキーワードを確認するには、Nslookupユーティリティのプロンプトで「Set All」と入力してください。

トラブルシューティング手法
Nslookup ユーティリティがどのように動作するかについて理解できたので、次に一般的なトラブルシューティング手法をいくつか見ていきましょう。

DNSネームサーバーの応答性確認
DNSネームサーバーがダウンしていると思われる場合は、この簡単な非対話型モードのトラブルシューティング手法を使用できます。この手法では、特別なループバックIPアドレス(127.0.0.1)を使用して、DNSネームサーバーの応答性を確認します。このテストを実行するには、
「Nslookup 127.0.0.1 10.12.35.9」と入力します。

ここで、10.12.35.9 は DNS ネームサーバーの IP アドレスです。DNS ネームサーバーが応答している場合は、以下のような応答が表示されます。
サーバー: ns.dnserver.org
、アドレス: 10.12.35.9、

名前: localhost、
アドレス: 127.0.0.1

DNSネームサーバーの切り替え
デフォルトでは、NslookupユーティリティはデフォルトのDNSネームサーバーにクエリを送信します。ネットワーク上の他のDNSネームサーバーをテストしたい場合は、対話モードから簡単に実行できます。そのためには、Serverサブコマンドを使用します。例えば、デフォルトのDNSネームサーバーが10.12.35.9にあり、10.12.35.8にある別のDNSネームサーバーでテストを実行したい場合、Nslookupプロンプトで
Server 10.12.35.8と入力します。

すると、次の応答が表示されます:
デフォルトサーバー: ns.otherdnserver.org
アドレス: 10.12.35.8

デバッグモードの使用
Nslookupユーティリティでトラブルシューティングを行う際に、実際に何が起こっているかを確認するには、Nslookupの対話型モードでデバッグモードを使用するようにサービスを設定できます。これにより、DNSネームサーバーとの間で送受信される内容に関する詳細情報が画面に表示されます。

Nslookupユーティリティをデバッグモードに設定するには、SetサブコマンドにキーワードDebugを指定します。より詳細な情報が必要な場合は、キーワードD2を指定します。D2は完全なデバッグモードを有効にします。デバッグモードでは、Nslookupユーティリティはコマンドを完了するために実行される各ステップを一覧表示します。

たとえば、キーワード Debug を指定した Set サブコマンドを使用して TechRepublic.com をテストすると、図 Bに示す結果が得られます。

図B
Nslookup ユーティリティをデバッグ モードを使用するように構成すると、コマンドを完了するために実行された各ステップの詳細なリストが提供されます。

結果を見ると、NslookupユーティリティがDNSネームサーバーから応答を受信し、3つの権限レコードと3つの追加レコードがあることがわかります。前者は、TechRepublic.comをデータベースに含むパス上の他のDNSネームサーバーを示しており、後者はDNSネームサーバーのホスト名に関連付けられたIPアドレスを単純にリストしています。

デバッグモードを終了するには、SetサブコマンドにキーワードNodebugを指定します。完全デバッグモードを使用している場合は、キーワードNod2を使用します。ただし、キーワードNod2を使用すると、標準デバッグモードに戻るだけなので注意してください。デバッグモードを完全に終了するには、キーワードNodebugを使用する必要があります。

エラー メッセージの解釈
Nslookup ユーティリティを使用して DNS ネーム サーバーのトラブルシューティングを行っているときに、次のような一般的なエラー メッセージが表示されることがあります。

  • タイムアウト: DNSネームサーバーが一定時間経過後、一定回数の再試行をしてもリクエストに応答しない場合、このエラーが表示されます。テストを続行する場合は、Setコマンドとキーワードtimeout=valueおよびretry=valueを使用して、タイムアウト値と再試行値を変更できます。
  • サーバーからの応答がありません: DNS ネーム サーバーがサーバー上で実行されていない場合、このエラーが表示されます。
  • レコードなし: ホスト名が有効であるにもかかわらず、DNSネームサーバーに現在のクエリタイプに対応するリソースレコードがない場合、このエラーメッセージが表示されます。クエリタイプは、Setコマンドとキーワードquerytypeを使用して変更できます。
  • 存在しないドメイン: ホスト名または DNS ドメイン名が存在しない場合は、このエラー メッセージが表示されます。
  • 接続が拒否されました/ネットワークに到達できません: DNS ネーム サーバーに接続できなかった場合、このエラー メッセージが表示されます。
  • サーバー障害: DNS ネーム サーバーがデータベース内に問題を発見し、有効な応答を返すことができなかった場合、このエラー メッセージが表示されます。
  • 拒否: DNS ネーム サーバーが要求の処理を拒否した場合、このエラー メッセージが表示されます。
  • フォーマットエラー: DNSネームサーバーがリクエストパケットのフォーマットが適切でないことを検知した場合、このエラーメッセージが表示されます。これは、DNSネームサーバーではなく、Nslookupに問題があることを示している可能性があります。

Windows 9x/MeでNslookupを実行する
Windows 9x/MeシステムからNslookupクエリを実行したい場合は、これらのオペレーティングシステムにはNslookupユーティリティが付属していないため、サードパーティ製のオプションを検討する必要があります。例えば、Nslookup2000は作者のサイトから無料でダウンロードできます。

Nslookupユーティリティの詳細情報
Nslookupユーティリティについて詳しく知りたい場合は、O'Reilly and Associatesの書籍『DNS and BIND』( Paul Albitz氏とCricket Liu氏共著)をご覧ください。本書は現在第4版となっており、DNSの仕組みに関する詳細な情報が必要な方にとって非常に役立ちます。本書ではNslookupユーティリティについて幅広く解説しており、このユーティリティを活用できる、あまり知られていない、見落とされがちなタスクについても解説しています。また、人気のdigコマンドとの比較も行っています。

結論
:Windows NT/2000には現在、DNSマネージャやコンソールといった独自のユーティリティが搭載されていますが、Nslookupプログラムについて知っておくと役立つでしょうか?もちろんです。Nslookupの対話型モード機能を使えば、豊富なサブコマンドを使ってDNSの問題をトラブルシューティングする能力がさらに高まります。Nslookupは、GUIが利用できない状況でもDNSのトラブルシューティングに使用できる、柔軟性の高いDOSコマンドラインプログラムです。

Tagged: