.
Counter: 41529, today: 2, yesterday: 4

digコマンドとnslookupコマンドの違いについて

digコマンドもnslookupコマンドも、ネームサーバに対して問い合わせを行い、その応答結果を表示するコマンドですが、一番の違いは、digコマンドがネームサーバの応答を比較的そのまま表示するのに対し、nslookup コマンドは応答を加工して表示するという点です。 nslookupコマンドは実際に行いたい問い合わせ以外にもサーバに対して問い合わせを行い、場合によっては意図しない結果に見えることがあります。

■nslookupの検証

nslookup www.apple.com
Server:         127.0.0.1
Address:        127.0.0.1#53

→上記は、問い合わせたDNSの名前と位置です。

www.apple.com   canonical name = www.apple.com.akadns.net.
Name:   www.apple.com.akadns.net
Address: 17.112.152.32 

→Name : サーバーマシンの名称。
→Address : IPアドレス。www.apple.comのIPアドレスは17.112.152.32です。

■digコマンドの検証

# dig @192.168.24.160 apple.com

; <<>> DiG 9.2.1 <<>> @192.168.24.160 apple.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26028
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 0

;; QUESTION SECTION:
;apple.com.                     IN      A

;; ANSWER SECTION:
apple.com.              3600    IN      A       17.254.3.183

;; AUTHORITY SECTION:
apple.com.              172800  IN      NS      nserver.asia.apple.com.
apple.com.              172800  IN      NS      nserver.euro.apple.com.
apple.com.              172800  IN      NS      nserver.apple.com.
apple.com.              172800  IN      NS      nserver2.apple.com.
apple.com.              172800  IN      NS      nserver3.apple.com.
apple.com.              172800  IN      NS      nserver4.apple.com.

;; Query time: 162 msec
;; SERVER: 192.168.24.160#53(192.168.24.160)
;; WHEN: Tue Mar 16 09:55:24 2004
;; MSG SIZE  rcvd: 188


◆最初の数行は実行したdigコマンド自身のバージョンとコマンド行の内容
続いて応答のヘッダ部の内容です。

status……正しく情報を得られた場合はNOERROR、ドメイン名が存在しない場合は
     NXDOMAINと表示されます。

flags……この応答がどういう意味を持つのかを示すフラグが表示されています。
     特に「aa」が付く場合は、応答を返したネームサーバが権威付きの
     回答をしていることを示します。

QUERY/ANSWER/AUTHORITY/ADDITIONAL……それぞれのセクションに何個のリソース
                     レコードを返したかが表示されます。

■digコマンド使い方詳細

名称
     dig - ドメイン名問い合わせパケットをネームサーバに送る

書式
     dig [@server] domain [] [] [+]
     [-] [%comment]

解説
     dig (ドメイン情報手探り器; domain information groper) は、 DNS (Domain
     Name System) サーバから情報を集めるために使われる柔軟なコマンドラインツー
     ルです。 dig は 2 つのモードを持っています。これは、1 つの問い合わせを行
     う単純な対話的利用モードと、いくつかの問い合わせ行のリスト中の各問い合わ
     せを実行するバッチモードです。すべての問い合わせオプションは、コマンドラ
     インから利用可能です。

     普通の簡単な dig の使用法は、以下のような形式です。

                 dig @server domain query-type query-class

     ここで、

     server      は、ドメイン名かドット表記のインターネットアドレスのどちらか
                 です。もし、このオプションフィールドが省略された場合、 dig
                 は、そのマシンのデフォルトのネームサーバを利用しようとしま
                 す。

                 注: ドメイン名が指定された時は、ドメイン名システムリゾルバ (
                 つまり、BIND) を使うことで解決しようとします。システムが DNS
                 を提供していない時は、ドット形式のアドレスを指定する必要があ
                 ります。利用できるサーバがどこかにある場合は、必要なことは
                 /etc/resolv.conf が存在し、 server 自身が解決できるように、そ
                 のデフォルトネームサーバがどこにあるかが記述されていることだ
                 けです。 /etc/resolv.conf についての情報は resolver(5) を参照
                 してください。 警告: /etc/resolv.conf を変更すると、標準のリ
                 ゾルバライブラリと (潜在的に) それを使ういくつかのプログラム
                 に影響を与えます。オプションとして、ユーザは環境変数 LOCALRES
                 を設定し、 /etc/resolv.conf の代わりに使うファイルの名前を指
                 定できます。 (LOCALRES 変数は dig リゾルバ固有のもので、標準
                 のリゾルバでは 参照されません) 。 LOCALRES 変数が設定されてい
                 ないか、設定されたファイルが読み込めない場合は、
                 /etc/resolv.conf が使われます。

     domain      は、あなたが情報を要求しているドメイン名です。逆アドレスの問
                 い合わせのための便利な方法は、 -x オプションを参照してくださ
                 い(この節の その他のオプションの項で述べられています)。

     query-type  は、あなたが要求している情報のタイプ(DNS 問い合わせタイプ)で
                 す。省略された場合のデフォルトは、 ``a'' (T_A = アドレス) が
                 使われます。以下のタイプが認識されます。

                 a       T_A        ネットワークアドレス
                 any     T_ANY      指定されたドメインのすべて/任意の情報
                 mx      T_MX       ドメインのメール交換情報 (MX)
                 ns      T_NS       ネームサーバ
                 soa     T_SOA      ゾーンの権威者を表すレコード
                 hinfo   T_HINFO    ホスト情報
                 axfr    T_AXFR     ゾーン転送情報(権威を持ったサーバに尋ねな
                                    ければなりません)
                 txt     T_TXT      任意の数の文字列

                 (完全なリストは、RFC 1035 を参照してください。)

     query-class
                 は、問い合わせで要求されるネットワーククラスです。省略された
                 場合のデフォルトは、 ``in'' (C_IN = Internet) です。以下のク
                 ラスが認識されます。

                 in      C_IN       インターネットクラスドメイン
                 any     C_ANY      すべて/任意のクラスの情報

                 (完全なリストは、RFC 1035 を参照してください。)

                 注: ``any'' は、 クラスや問い合わせの タイプを指定するために
                 使われます。 dig は、最初に現れた ``any'' を query-type =
                 T_ANY として解析します。 query-class = C_ANY にするためには、
                 ``any'' を 2 度指定するか、 -c オプション(以下参照)を利用して
                 問い合わせクラスを指定しなければなりません。


nslookupコマンドは得られた情報を見やすい形に加工してあるのが分かりますが、digコマンドから得られる情報はネームサーバの挙動を知るといった視点からは非常に重要な情報となる為、ネームサーバのトラブルシューティングなどを行う際にはdigコマンドを使うことが推奨されます。


リロード   差分 ソース ファイル添付 添付ファイル一覧   Wikiトップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
トラックバック [ トラックバック(0) ]
トラックバック URL: http://linuxexpert.ne.jp/modules/pukiwiki/tb/56

Expert Menu
最新記事
なぜここへ
Yahoo Japanから
検索結果から
友人に聞いて
前からURLを知っていた
他サイトからリンク
最新バージョンの確認

Linuxexpert is one of the service presented by InfomationSquare. / OmakaseBlog Login  |  Register Now!