[ トラックバック(0) ]
Counter: 50788,
today: 6,
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コマンドを使うことが推奨されます。