Dig はドメイン情報グルパーの略です。
dig コマンドを使用すると、DNS ルックアップ関連のタスクのために DNS ネーム サーバーにクエリを実行できます。この記事では、dig コマンドの使用方法に関する 10 の例を説明します。
1.単純な dig コマンドの使用法 (dig の出力を理解する)
ドメイン名を dig コマンドに渡すと、デフォルトでは、以下に示すように A レコード (照会されたサイトの IP アドレス) が表示されます。
この例では、A が表示されます。 dig コマンド出力の「ANSWER SECTION」にある redhat.com のレコード。
$ dig redhat.com ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62863 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;redhat.com. IN A ;; ANSWER SECTION: redhat.com. 37 IN A 209.132.183.81 ;; AUTHORITY SECTION: redhat.com. 73 IN NS ns4.redhat.com. redhat.com. 73 IN NS ns3.redhat.com. redhat.com. 73 IN NS ns2.redhat.com. redhat.com. 73 IN NS ns1.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 73 IN A 209.132.186.218 ns2.redhat.com. 73 IN A 209.132.183.2 ns3.redhat.com. 73 IN A 209.132.176.100 ;; Query time: 13 msec ;; SERVER: 209.144.50.138#53(209.144.50.138) ;; WHEN: Thu Jan 12 10:09:49 2012 ;; MSG SIZE rcvd: 164
dig コマンドの出力には次のセクションがあります:
- ヘッダー:これには、dig コマンドのバージョン番号、dig コマンドで使用されるグローバル オプション、いくつかの追加ヘッダー情報が表示されます。
- 質問セクション:DNS に尋ねた質問が表示されます。つまり、これはあなたの入力です。 「dig redhat.com」と言いましたが、dig コマンドが使用するデフォルトのタイプは A レコードであるため、このセクションでは、redhat.com Web サイトの A レコードを要求したことを示しています
- 回答セクション:DNS から受信した回答が表示されます。つまり、これはあなたの出力です。これにより、redhat.com の A レコードが表示されます
- AUTHORITY SECTION:このクエリに応答する権限を持つ DNS ネーム サーバーが表示されます。基本的に、これは redhat.com の利用可能なネーム サーバーを表示します
- 追加セクション:権限セクションにリストされているネームサーバーの IP アドレスが表示されます。
- 下部の統計セクションには、このクエリの実行にかかった時間など、dig コマンドの統計がいくつか表示されます
2. Dig コマンド出力の ANSWER SECTION のみを表示
ほとんどの場合、dig コマンドの「ANSWER SECTION」だけを確認する必要があります。したがって、以下に示すように、他のすべてのセクションをオフにすることができます。
- +nocomments – コメント行をオフにします
- +noauthority – 権限セクションをオフにします
- +noadditional – 追加セクションをオフにします
- +nostats – 統計セクションをオフにする
- +noanswer – 回答セクションをオフにします (もちろん、回答セクションをオフにしたくないでしょう)
次の dig コマンドは、ANSWER SECTION のみを表示します。
$ dig redhat.com +nocomments +noquestion +noauthority +noadditional +nostats ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +nocomments +noquestion +noauthority +noadditional +nostats ;; global options: +cmd redhat.com. 9 IN A 209.132.183.81
不要なすべてのセクションを 1 つずつ無効にする代わりに、+noall を使用してすべてのセクションを無効にし (これにより回答セクションもオフになります)、回答セクションのみを表示する +answer を追加できます。
上記のコマンドは、以下に示すように短い形式で記述することもできます。これは、ANSWER SECTION のみを表示します。
$ dig redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +noall +answer ;; global options: +cmd redhat.com. 60 IN A 209.132.183.81
3. dig -t MX を使用して MX レコードを照会する
MX レコードをクエリするには、以下に示すように MX を引数として dig コマンドに渡します。
$ dig redhat.com MX +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com MX +noall +answer ;; global options: +cmd redhat.com. 513 IN MX 5 mx1.redhat.com. redhat.com. 513 IN MX 10 mx2.redhat.com.
以下に示すように、オプション -t を使用してクエリ タイプ (例:MX) を渡すこともできます。
$ dig -t MX redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t MX redhat.com +noall +answer ;; global options: +cmd redhat.com. 489 IN MX 10 mx2.redhat.com. redhat.com. 489 IN MX 5 mx1.redhat.com.
4. dig -t NS を使用して NS レコードを照会する
NS レコードを照会するには、以下に示すようにタイプ NS を使用します。
$ dig redhat.com NS +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com NS +noall +answer ;; global options: +cmd redhat.com. 558 IN NS ns2.redhat.com. redhat.com. 558 IN NS ns1.redhat.com. redhat.com. 558 IN NS ns3.redhat.com. redhat.com. 558 IN NS ns4.redhat.com.
以下に示すように、オプション -t を使用してクエリ タイプ (例:NS) を渡すこともできます。
$ dig -t NS redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t NS redhat.com +noall +answer ;; global options: +cmd redhat.com. 543 IN NS ns4.redhat.com. redhat.com. 543 IN NS ns1.redhat.com. redhat.com. 543 IN NS ns3.redhat.com. redhat.com. 543 IN NS ns2.redhat.com.
5. dig -t ANY を使用してすべての DNS レコード タイプを表示する
すべてのレコード タイプ (A、MX、NS など) を表示するには、以下に示すようにレコード タイプとして ANY を使用します。
$ dig redhat.com ANY +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ANY +noall +answer ;; global options: +cmd redhat.com. 430 IN MX 5 mx1.redhat.com. redhat.com. 430 IN MX 10 mx2.redhat.com. redhat.com. 521 IN NS ns3.redhat.com. redhat.com. 521 IN NS ns1.redhat.com. redhat.com. 521 IN NS ns4.redhat.com. redhat.com. 521 IN NS ns2.redhat.com.
(または) -t ANY を使用
$ dig -t ANY redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t ANY redhat.com +noall +answer ;; global options: +cmd redhat.com. 367 IN MX 10 mx2.redhat.com. redhat.com. 367 IN MX 5 mx1.redhat.com. redhat.com. 458 IN NS ns4.redhat.com. redhat.com. 458 IN NS ns1.redhat.com. redhat.com. 458 IN NS ns2.redhat.com. redhat.com. 458 IN NS ns3.redhat.com.
6. dig +short を使用して短い出力を表示
Web サイトの IP アドレス (つまり A レコード) のみを表示するには、以下に示すように短い形式のオプションを使用します。
$ dig redhat.com +short 209.132.183.81
+short オプションを使用して、表示するレコード タイプを指定することもできます。
$ dig redhat.com ns +short ns2.redhat.com. ns3.redhat.com. ns1.redhat.com. ns4.redhat.com.
7. dig -x を使用した DNS 逆引き参照
以下に示すように、dig -x を使用して IP アドレスを使用して DNS 逆引き参照を実行するには
たとえば、外部 IP アドレスがあり、それに属する Web サイトを知りたい場合は、次のようにします。
$ dig -x 209.132.183.81 +short www.redhat.com.
DNS 逆引き参照の完全な詳細を表示するには、+short オプションを削除してください。
$ dig -x 209.132.183.81 ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -x 209.132.183.81 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62435 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;81.183.132.209.in-addr.arpa. IN PTR ;; ANSWER SECTION: 81.183.132.209.in-addr.arpa. 600 IN PTR www.redhat.com. ;; AUTHORITY SECTION: 183.132.209.in-addr.arpa. 248 IN NS ns2.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns1.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns3.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns4.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 363 IN A 209.132.186.218 ns2.redhat.com. 363 IN A 209.132.183.2 ns3.redhat.com. 363 IN A 209.132.176.100 ;; Query time: 35 msec ;; SERVER: 209.144.50.138#53(209.144.50.138) ;; WHEN: Thu Jan 12 10:15:00 2012 ;; MSG SIZE rcvd: 193
8.特定の DNS サーバーを使用する dig @dnsserver を使用
デフォルトでは、dig は /etc/resolv.conf ファイルで定義された DNS サーバーを使用します。
別の DNS サーバーを使用してクエリを実行する場合は、コマンド ラインで @dnsserver として指定します。
次の例では、DNS サーバーとして ns1.redhat.com を使用して回答を取得します (/etc/resolv.conf ファイルの DNS サーバーを使用する代わりに)。
$ dig @ns1.redhat.com redhat.com ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> @ns1.redhat.com redhat.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20963 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;redhat.com. IN A ;; ANSWER SECTION: redhat.com. 60 IN A 209.132.183.81 ;; AUTHORITY SECTION: redhat.com. 600 IN NS ns1.redhat.com. redhat.com. 600 IN NS ns4.redhat.com. redhat.com. 600 IN NS ns3.redhat.com. redhat.com. 600 IN NS ns2.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 600 IN A 209.132.186.218 ns2.redhat.com. 600 IN A 209.132.183.2 ns3.redhat.com. 600 IN A 209.132.176.100 ns4.redhat.com. 600 IN A 209.132.188.218 ;; Query time: 160 msec ;; SERVER: 209.132.186.218#53(209.132.186.218) ;; WHEN: Thu Jan 12 10:22:11 2012 ;; MSG SIZE rcvd: 180
9. dig -f (およびコマンドライン) を使用した一括 DNS クエリ
データ ファイルを使用して複数の Web サイトをクエリする:
ファイルのデータに基づいて一括 DNS クエリを実行できます。
まず、クエリを実行する Web サイトを含むサンプルの names.txt ファイルを作成します。
$ vi names.txt redhat.com centos.org
次に、次のように dig -f を実行します。これにより、names.txt ファイルにリストされている Web サイトに対して DNS クエリが実行され、出力が表示されます。
$ dig -f names.txt +noall +answer redhat.com. 60 IN A 209.132.183.81 centos.org. 60 IN A 72.232.194.162
レコード タイプを -f オプションと組み合わせることもできます。次の例は、names.txt ファイルにある複数の Web サイトの MX レコードを表示します。
$ dig -f names.txt MX +noall +answer redhat.com. 600 IN MX 10 mx2.redhat.com. redhat.com. 600 IN MX 5 mx1.redhat.com. centos.org. 3600 IN MX 10 mail.centos.org.
dig コマンド ラインから複数の Web サイトをクエリする:
以下に示すように、dig コマンド ラインから複数の Web サイトをクエリすることもできます。次の例では、コマンド ラインから redhat.com の MX レコードと centos.org の NS レコードをクエリします。
$ dig redhat.com mx +noall +answer centos.org ns +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com mx +noall +answer centos.org ns +noall +answer ;; global options: +cmd redhat.com. 332 IN MX 10 mx2.redhat.com. redhat.com. 332 IN MX 5 mx1.redhat.com. centos.org. 3778 IN NS ns3.centos.org. centos.org. 3778 IN NS ns4.centos.org. centos.org. 3778 IN NS ns1.centos.org.
10. $HOME/.digrc ファイルを使用してデフォルトの dig オプションを保存
常に dig 出力の ANSWER セクションのみを表示しようとしている場合は、すべての dig コマンドで「+noall +answer」と入力し続ける必要はありません。代わりに、以下に示すように、dig オプションを .digrc ファイルに追加してください。
$ cat $HOME/.digrc +noall +answer
これで、dig コマンドを実行するたびに、デフォルトで常に +noall および +answer オプションが使用されます。これで、dig コマンド ラインは非常にシンプルになり、毎回オプションを入力する必要がなくなり、読みやすくなりました。
$ dig redhat.com redhat.com. 60 IN A 209.132.183.81 $ dig redhat.com MX redhat.com. 52 IN MX 5 mx1.redhat.com. redhat.com. 52 IN MX 10 mx2.redhat.com.