nslookupコマンドとは

通常、DNSサーバへのIPアドレスの問い合わせは自動的に行われます。WebブラウザでWebサイトを見るときやメールソフトでメールを送受信するときに、ユーザはDNSサーバへの問い合わせを意識することはありません。

普段は意識することはないのですが、DNSサーバのリソースレコードの登録を確認したり、何らかの障害やDNSサーバの設定ミスなどでDNSの動作が正しくないとき、DNSサーバへの問い合わせを手動で行わなければいけない場合があります。

nslookupコマンドによって、DNSサーバへのIPアドレスの問い合わせを手動で実行することができます。

nslookupコマンドのモード

nslookupコマンドには以下の2つのモードがあります。

  • 非対話モード
  • 対話モード

非対話モードは、nslookupコマンドのあとにホスト名などの引数やオプションの指定を直接指定します。そして、結果が表示されるとすぐにコマンドが終了します。

一方、対話モードは1回の問い合わせだけでコマンドの実行が終了せずに、次々と連続して問い合わせを行うことができます。その際、オプションの指定や問い合わせるDNSサーバの切り替えなども可能です。対話モードを実行するには、nslookupコマンドだけを入力します。すると、「>」だけの表示になり、対話モードに入っていることがわかります。対話モードから抜けるときには、「exit」または「Ctrl+C」を入力してください。

nslookupの非対話モードと対話モード
図 nslookupの非対話モードと対話モード

nslookupコマンドの例

nslookupコマンドには、たくさんのオプションがあり、DNSサーバに対してさまざまな問い合わせを行うことができます。対話モードで以下のリソースレコードの問い合わせの例について解説します。

  • Aレコード
  • PTRレコード
  • MXレコード
  • NSレコード
以降の例のIPアドレスやホスト名は記事執筆時点のものです。IPアドレスやホスト名は変更されることがあります。

Aレコードの問い合わせ

Aレコードには、ホスト名に対するIPアドレスが登録されています。DNSサーバに対する問い合わせで最も多いのがAレコードの問い合わせです。Aレコードを問い合わせるときには、単に問い合わせるホスト名を入力します。以下は、www.google.co.jp のAレコードの問い合わせの例です。

Aレコードの問い合わせの例
図 Aレコードの問い合わせの例

「サーバー」および「Address」は問い合わせを行なっているDNSサーバの情報です。「サーバー」がUnknownとなっているのは、DNSサーバのホスト名がわからない状態だからです。問い合わせるDNSサーバを特に指定していないので、パソコンで設定されているDNSサーバの情報が表示されます。家庭内ネットワークでは、たいていの場合、ブロードバンドルータのIPアドレスとなります。

その下の部分が問い合わせ結果です。「権限のない回答」とあるのは、問い合わせを行ったDNSサーバではなく、別のDNSサーバに登録されている情報であることを表しています。「名前」がサーバのホスト名で、「Addresses」が対応するIPアドレスです。そして、対応するIPアドレスとして、IPv4アドレス「172.217.25.227」とIPv6アドレス「2404:6800:4004:80c::2003」があります。

PTRレコードの問い合わせの例

PTRレコードは、IPアドレスに対応するホスト名の情報です。サーバがクライアントから何らかのリクエストを受信するとき、クライアントのIPアドレスがわかってもホスト名がわからないことがあります。そのような場合、PTRレコードを問い合わせて、IPアドレスに対応するホスト名の情報を調べることができます。

DNSサーバに必ずしもPTRレコードが登録されているとは限りません。PTRレコードを登録していないDNSサーバもあります。

nslookupコマンドはAレコードの問い合わせか、PTRレコードの問い合わせかは自動的に判別してくれます。PTRレコードの問い合わせは、IPアドレスを指定するだけです。先ほどのwww.google.co.jp のAレコードで調べたIPアドレスを指定してPTRレコードの問い合わせをしてみましょう。

PTRレコードの問い合わせの例
図 PTRレコードの問い合わせの例

「172.217.25.227」に対するホスト名として「nrt12s14-in-f227.1e100.net」であることがわかります。「www.google.co.jp」ではありません。GoogleのWebサーバは実際には何台もあり、それぞれホスト名とIPアドレスが設定されています。何台ものWebサーバをグループ化したホスト名が「www.google.co.jp」です。

MXレコードの問い合わせの例

MXレコードとはメールサーバの情報を登録しているものです。電子メールは、メールサーバからメールサーバへと転送されていきます。転送先のメールサーバの情報を調べるためにMXレコードの問い合わせを行います。以下は、「ネットワークのおべんきょしませんか?」のドメイン「n-study.com」のMXレコードの問い合わせの例です。

 MXレコードの問い合わせの例
図 MXレコードの問い合わせの例

「set type=MX」によってMXレコードの問い合わせを行うように変更しています。そしてドメイン名を入力すると、入力したドメイン名のMXレコードの問い合わせを行います。ドメイン名はメールアドレスの@から右の部分です。すると、指定したドメインのメールサーバの情報が表示されます。

メールサーバの情報は、複数登録することができます。複数のメールサーバの優先度を示しているのが「MX preference」です。値が大きいほど優先度が高いメールサーバです。

MXレコードでは、メールサーバのホスト名がわかります。IPアドレスを調べるためには、さらにAレコードの問い合わせを行います。

NSレコードの問い合わせ

NSレコードはドメインのDNSサーバの情報が登録されています。NSとはName Serverのことです。以下は、NSレコードの問い合わせの例です。

NSレコードの問い合わせの例
図 NSレコードの問い合わせの例

「set type=NS」によってNSレコードの問い合わせを行うように変更しています。そしてドメイン名を入力すると、入力したドメイン名のNSレコードの問い合わせを行います。n-study.comのDNSサーバは「dns01.muumuu-domain.com」および「dns02.muumuu-domain.com」というサーバであることがわかります。