Windows基礎

コマンドプロンプト【nslookup】の使い方,見方,オプション~権限のない回答,unknown,逆引き,DNSサーバ指定方法,キャッシュについて~

nslookup とは?

nslookup とは、Windows のコマンドの 1 つで、DNS による名前解決を行うツールです。

例えば佐川急便の Web サイトの URL は『www.sagawa-exp.co.jp』ですが、この IP アドレスを知りたいとき (つまり正引きしたいとき = A レコードを知りたいとき) は以下のようにします。

Windowsキー + R
⇒ "cmd" と入力し、[Enter]
⇒ "nslookup www.sagawa-exp.co.jp" と入力し、[Enter]

www.sagawa-exp.co.jp の IP アドレスが 42.124.125.51 だと分かります。ブラウザでhttp://42.124.125.51 でアクセスしても、www.sagawa-exp.co.jp と同じ Web ページが表示されます。

Unknownとは?

『サーバー: Unknown』とは、DNS サーバ自体のAddress: 192.168.100.1 の逆引き (PTR レコード) を調べたけど『レコード無し』だったことを示しています。もし逆引きに成功した場合は『サーバー』のところにDNSサーバのホスト名が表示されます。

『権限のない回答』とは?

『権限のない回答』とは"問合せをした DNS サーバ"が自分で『www.sagawa-exp.co.jp』の情報を持っていた訳ではなく、『他の DNS サーバに聞いたらそういう回答があったよ』ということを示しています。

では権限のある回答にするためにはどうすればよいか?『www.sagawa-exp.co.jp』の情報を持っているDNSサーバはどのサーバなのでしょうか?

それを調べるにはその 1 つ上のドメイン『sagawa-exp.co.jp』の NS レコードを調べます。

NS レコードは、そのドメインの管理している (つまり権限のある) DNS サーバを探すときに使うレコードです。

NS レコードを調べるには、以下のように nslookup のあとに -type=ns というオプションを付けます。

C:¥> nslookup  -type=ns  sagawa-exp.co.jp

143.90.130.58 が『sagawa-exp.co.jp』に関するドメイン情報を持っていることが分かります。

この DNS サーバに直接聞きに行くには、nslookup sagawa-exp.co.jp の後に DNS サーバの IP アドレスを指定します。例えば sagawa-exp.co.jp の公開 DNS サーバ 143.90.130.58 に聞きに行く場合は以下のようにします。

C:¥> nslookup sagawa-exp.co.jp 1.1.1.1

また、nslookup で [Enter] した後、『server』オプションでその DNS サーバの IP アドレスを指定することでも可能です。具体的には以下のように打ちます。

C:¥> nslookup
> server 143.90.130.58
> www.sagawa-exp.co.jp

今度は『権限のない回答』とは出てきません。これは 143.90.130.58 の DNS サーバが www.sagawa-exp.co.jp の情報を持っており、nslookup コマンドの server 指定で直接聞きに行っているからです。

なお、このような DNS サーバに別のドメインの名前を聞こうとすると、通常は拒否されます。もしこれが拒否されないと、セキュリティ上の問題になるからです。

以下は、佐川急便の DNS サーバに www.yahoo.com を聞きに行った場合の結果です。

nslookup のオプション

レコード指定

既に使い方の例が出ていますが、"nslookup -type=[レコードタイプ]" で知りたいレコードタイプの情報を取得できます。-typeを入れないと IP アドレスフォーマットなら "A レコード"、FQDNフォーマットなら "PTR レコード" として探索されます。

レコードタイプは [ A , MX , NS , PTR , SRV , TXT ] 等が使えます。

逆引き(PTR)レコードの探索

例えば yahoo.co.jp の逆引きをしたい場合は以下のようにします。(前述の通り、-type=ptr は省略しても OK)

C:¥> nslookup -type=ptr yahoo.com

MXレコードの探索

例えば hogehoge@yahoo.com のメールアドレスをどのメールサーバへ送ればよいかを調べるときは以下で確認できます。

C:¥> nslookup -type=mx yahoo.com

メールサーバがたくさんあることが確認できます。おそらくどれに送っても同じように扱われるはずです。

DNSサーバ指定

nslookup とだけ打つとオプションを指定しながら名前解決が出来ます。server オプションでは DNS サーバの指定が出来ます。また、set type=[レコードタイプ] でレコードタイプの指定も出来ます。

C:¥> nslookup
> server 8.8.8.8    # google のDNSサーバを指定
> set type=ptr
> 124.108.103.103

yahoo.com の正引き (Aレコード) を調べると 124.108.103.103 が返ってきますが、これの逆引き (PTR レコード) を調べると media-router-fp1.prod1.media.vip.tp2.yahoo.com というホスト名が返ってきます。このように、正引きの逆引きは必ずしも一致しません。

この記事全般を通して『何をやっているか分からない』という方は、以下のページも参考にしてみて下さい。

DNS について分かり易く解説しています。

【図解】初心者に分かりやすいDNSの仕組み〜GoogleのIP確認, 逆引きの必要性, レコードの種類等〜
DNSとは DNS とは、文字列を IP アドレスに変換(およびその逆変換)をす...

nslookup のキャッシュについて

nslookup コマンドによる DNS の回答結果は PC 内にキャッシュされません。つまり、nslookup コマンドを打つたびに毎回 DNS サーバに聞きに行きます。

ですが、DNS サーバ側では、前述した『権限のない回答』をする DNS サーバについては基本的にキャッシュされます。

例えば CentOS+bind の DNS サーバ上でキャッシュをクリアするには以下コマンドを打ちます。

# rndc flush

なお、Windows のクライアント PC 側で、(nslookupではなく) ブラウザ等の URL の名前解決で使っている DNS キャッシュをクリアするにはコマンドプロンプトで以下を打ちます。

C:¥> ipconfig /flushdns

【厳選 3 冊】Windows を学ぶための本

Windows Serverのエディションやライセンス、用語といった基本から、セットアップ、ネットワーク、ユーザー/グループ、ディスク、ハードウェア、アクセス許可、クォータ、ボリュームシャドウコピー(VSS)、ファイル/フォルダー共有、プリンター、サーバー管理、WebサーバーやFTPサービスを提供するInternet Information Services(IIS) 10.0、Hyper-Vやコンテナー等の仮想化技術、Active Directoryまで説明します。
Active Directoryの概念および導入、構成管理方法を詳細な手順と豊富な画面を使ってわかりやすく解説します。本書では、ドメインサービスを中心に解説し、その他のサービスについても概要を解説します。Active Directoryを初めて使う方でも、画面を見ながら手順に従って操作するだけで簡単に目的の作業を行うことができます。ある程度使いなれている方には、Active Directoryをより使いこなすためのリファレンスとしてお使いいただけます。
全操作、全機能が載ってるから迷わない!基本から便利技・トラブル対応まで全部わかる!基本の操作から最新アプリ、昔ながらの操作も全部できる!はじめてのタッチ操作、はじめてのWindows10の人も安心!「やりたいこと」がすぐできるTIPS400!わかりやすい索引で「あれがしたい」「これがしたい」から探せる、側にあれば安心な1冊!自由自在Windows10を操ろう。

コメント

タイトルとURLをコピーしました