連載
» 2014年09月12日 05時00分 公開

Tech TIPS:nslookupの基本的な使い方(イントラネット編)

DNSサーバーの動作状態を確認するにはnslookupコマンドを利用する。nslookupの引数にホスト名やIPアドレスを指定すると、該当するDNSレコードが表示される。nslookupの第2引数には、対象となるDNSサーバーを指定できる。

[打越浩幸, 島田広道,デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象OS:Windows XP/Windows 7/Windows 8/Windows 8.1/Windows Server 2003/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2


nslookupとは?

 nslookupはDNSサービスのトラブルシューティングの場合に必ずといってよいほど使われる、非常に基本的なコマンドである。DNSサーバーの設定の状態を調べたり、DNSのクライアントにおけるDNS関連の設定を調査したりする場合に利用される(一般的には後者の方が多いだろう)。

 nslookupは、最初にUNIX上でDNSが開発されたときから利用されている、非常に歴史の古いコマンドである。同様のコマンドとして、UNIXやLinuxなどではdigやhostといった、より高機能なコマンドの利用が推奨されている。しかしWindows OSではデフォルトでnslookup.exeしか用意されておらず、現在でも広く使われている。

 ここではイントラネットでの利用を前提に、nslookupコマンドの基本的な使い方について解説しておく。インタラクティブモードやゾーン/ネームサーバー/MXレコード、DNSサーバー間のゾーン転送、IPv6での動作の確認などといった、より高度な使い方については別のTIPSで取り上げることにする。

DNSの基本

 nslookupの使い方を説明する前に、DNSサービスの機能をごく簡単に説明しておこう。

 DNSは、例えば「www.atmarkit.co.jp」といったFQDN名(ホスト名+ドメイン名を完全に指定した形式)と、それに対応付けられている「202.218.219.147」などというIPアドレスを相互に変換するサービスである。

 DNSサーバーには、名前(ホスト名)に対するIPアドレスの定義(AレコードまたはIPv6用のAAAAレコード)や、逆に、IPアドレスに対する名前の定義(PTRレコード)、ドメイン名に対するネームサーバー情報(NSレコード)、サービス名に対するサーバーのポート番号などの情報(SRVレコード)など、多くのレコードが登録されている。DNSサーバーは、DNSのクライアントからの要求に応じて、これらのレコードを検索し、レコード情報を返すことになっている。

 例えばDNSのクライアントが「www.atmarkit.co.jp」というホストを表す文字列をDNSサーバーに渡すと、DNSサーバーはこの文字列に割り当てられているIPアドレス「202.218.219.147」(Aレコード)を返してくる。逆に、「202.218.219.147」というIPアドレスを渡すと、「www.atmarkit.co.jp」という名前(PTRレコード。「PTR」は「pointer」の略)を返す。

nslookupコマンドが必要とされるワケ

 ユーザーがコンピューターを利用する場合、このようなDNSサーバーとDNSクライアントによる名前解決処理は自動的に行われる。しかし、DNSサーバー側の設定ミスやDNSクライアント側でのDNSサーバー指定の間違い、DNSサーバーとクライアント間での通信エラーなどにより、名前解決が正しく行えない場合がある。このようなトラブルが発生した場合に役に立つのがnslookupコマンドである。

 nslookupコマンドは、DNSのサーバーに対して直接DNS要求を送り、その結果を表示する。DNSサーバーとのやりとりが直接表示されるので、DNSサーバーと正しく通信ができているか、DNSクライアントからの要求に対するサーバーの応答は正しいか、サーバーに設定されているレコード情報は正しいか、といったことを調査できる。

 Windows OSでは、DNSサーバーに要求を出すクライアント側のプログラムとして「DNS Client」サービスが動作している。これは直接DNSサーバーに問い合わせるだけでなく、サービス内部にキャッシュされた情報から検索したり、複数のDNSサーバーに順に問い合わせたりするなど、いくらか高度な処理を行っている。そのため、DNSサーバーに登録された最新のレコード情報と食い違っていたりする可能性がある。

 だがnslookupを使えば、DNSサーバーに対して直接DNS要求を送信してその結果を得ることができる。また特定のDNSサーバーを指定することもできるので、DNSレコード情報を直接提供しているDNSサーバー(「権威のある(Authoritative)DNSサーバー」プライマリDNSサーバーともいう)だけでなく、セカンダリDNSサーバーやキャッシュDNSサーバー、フォワードのみのDNSサーバーなど、いろいろなサーバーを指定して、それぞれからのDNS応答が正しいかどうかを検査できる。

 以下では、Windows 7以降のWindows OSでnslookupを実行したときの例を記している。ただしWindows XP/Windows Server 2003でも、出力メッセージの表記が英語(「サーバー:」ではなく「Server:」など)なだけで、その他の基本的な動作は共通である。

nslookupの基本――Aレコードの検索

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。