treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

nslookupで名前解決の正常性を確認する

ある.comドメイン開通時に名前解決ができなくて、nslookupを使ったのですが、そのときの知識をご報告です。
nslookupのオプションについての話です。

nslookupとは

DNSを管理している人間にとってはnslookupとは使いこなせるようにしておきたいツールの一つです。
コマンドnslookupでDNSサーバの正常性や名前解決で参照されるレコード情報の確認ができます。

今回、いままで使ったことなかったオプションを使ったので、備忘のため記録しておきます。

基本の使い方

基本的には、「nslookup」に続いてIPが知りたいホスト名や、ホスト名を知りたいIPアドレスを入力してDNSに問合せすることができます。

以下は、基本的な使い方の一例。


nslookup ホスト名(FQDN)でIPアドレスを名前解決しています。
これを正引きといいます。

このホスト名部分がIPアドレスになると、


このようにIPアドレスからホスト名を教えてくれます。
これを逆引きといいます。

コマンドなので、オプションを付加すると、さらに詳しい確認ができます。

全部教えてくれる「all」オプション

nslookupコマンドのオプションとして「-type」オプションを使うとAレコード以外の種別のレコードについても確認ができます。中でも「all」を指定するとレコード情報にまつわる情報が詳細に表示されます。

「-type」オプションの記述方法は以下。

nslookup -type=all hoge.com

「all」の部分はデフォルトのA(AAAA)レコード以外にも、「ns」でネームサーバの情報を確認したり、「mx」でドメインのメール配送情報を制御したり、「txt」でメール配送に使われる認証情報を確認したりといろいろな使い方があります。

この「-type=all」はよく使っていたのですが、今回初めて使ったのはタイプ指定でなく、より詳細な情報を表示してくれるオプションです。

途中の処理を教えてくれる「-debug」オプション

通常のnslookupでは、途中の処理は全部飛ばして(画面に表示されることなく)結論である「DNSが教えてくれたIPアドレスとホスト名」だけが表示されます。

しかし、「-debug」オプションを付けたnslookupの実行結果には、実際に実行された名前の問合せや、問合せ時に得た応答を詳細に画面に表示してくれます。書式は以下。

nslookup -debug hoge.com

digコマンドを使っている人ならおなじみの「QUESTIONS:」セクションと「ANSWERS:」セクションで、問合せとDNSが応答してくれた内容を詳細に確認することができます。

途中の経過までを出力できるのはdigコマンドの専売特許だと思っていたので「-debug」オプションは新たな発見となりました。

DNSサーバ管理者はnslookupを学んでおくといいかも

インフラエンジニアはDNSサーバ管理者になることも多く、接続性の問題をトラブルシューティングする時に「名前解決が上手くできない」「名前解決で障害が起きている」というケースに出会うこともあります。
そのとき、有用なのがこのnslookup、Windows環境なら標準で使えるコマンドなので、正常に稼働している平常時にどんな出力がされるのか、またどのDNSがどの名前解決をするのか、自身のローカルエリアネットワーク内でDNSの応答結果を学んでおくと、いざ障害発生時に「○○の名前解決ができていない」とか「名前解決でエラーが発生している」という具合に名前解決の問題かどうかを切り分けすることができるので有用といえます。