目次:
dig
インストール- UbuntuおよびDebianに
dig
をインストールします - CentOSおよびFedoraに
dig
をインストールします - Arch Linuxに
dig
をインストールします - Dig出力を理解する
- 回答のみを印刷する
- 1.短い回答を得る
- 2.詳細な回答を取得する
- クエリネームサーバー
- レコードタイプのクエリ
- 1. Aレコードのクエリ
- 2. CNAMEレコードのクエリ
- 3. TXTレコードのクエリ
- 4. MXレコードのクエリ
- 5. NSレコードのクエリ
- 6.すべてのレコードのクエリ
- 逆引きDNSルックアップ
- 一括クエリ
- .digrcファイル
- 結論
Dig(Domain Information Groper)は、DNSネームサーバーを照会するための強力なコマンドラインツールです。
dig
コマンドを使用すると、ホストアドレス、メール交換、ネームサーバーなど、さまざまなDNSレコードに関する情報を照会できます。 柔軟性と使いやすさから、DNS問題のトラブルシューティングにシステム管理者の間で最も一般的に使用されるツールです。
このチュートリアルでは、最も一般的な
dig
オプションの実用的な例と詳細な説明を通して、
dig
ユーティリティを使用する方法を示します。
dig
インストール
システムで
dig
コマンドが使用可能かどうかを確認するには、次を入力します。
dig -v
出力は次のようになります。
DiG 9.11.3-1ubuntu1.1-Ubuntu
システムに
dig
が存在しない場合、上記のコマンドは「dig:command not found」を出力します。 ディストリビューションのパッケージマネージャーを使用して、
dig
ツールを簡単にインストールできます。
UbuntuおよびDebianに
dig
をインストールします
sudo apt update && sudo apt install dnsutils
CentOSおよびFedoraに
dig
をインストールします
Arch Linuxに
dig
をインストールします
Dig出力を理解する
最も単純な形式で、追加の引数なしで単一のホスト(ドメイン)を照会する場合、digコマンドはかなり冗長です。
次の例では、クエリを実行して
linux.org
ドメインに関する情報を取得します。
dig linux.org
出力は次のようになります。
セクション
dig
に行って、
dig
コマンドの出力を説明しましょう。
-
出力の最初の行は、インストールされている発掘バージョンと呼び出されたクエリを出力します。 2行目には、グローバルオプション(デフォルトではcmdのみ)が表示されます。
; <<>> DiG 9.13.3 <<>> linux.org;; global options: +cmd
最初のセクションには、要求された機関(DNSサーバー)から受け取った回答に関する技術的な詳細が含まれています。 ヘッダーには、オペコード(digによって実行されるアクション)とアクションのステータスが表示されます。 この例では、ステータスは
NOERROR
。これは、要求された機関が問題なくクエリを処理したことを意味します。;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5
このセクションは、
+nocomments
オプションを使用して削除できます。このオプションは、他のセクションのヘッダーも無効にします。「OPT」疑似セクションは、digユーティリティの新しいバージョンでのみデフォルトで表示されます。 DNSの拡張メカニズム(EDNS)については、こちらをご覧ください。
;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096
「QUESTION」セクションでは、
dig
がクエリ(質問)を示しています。 デフォルトでは、dig
はAレコードを要求します。;; QUESTION SECTION:;linux.org. IN A
+noquestion
オプションを使用して、このセクションを無効にできます。「回答」セクションは、質問への回答を提供します。 すでに述べたように、デフォルトでは、
dig
はAレコードを要求します。 ここでは、ドメインlinux.org
は104.18.59.123
IPアドレスを104.18.59.123
ます。;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123
通常、回答をオフにしたくないのですが、
+noanswer
オプションを使用して出力からこのセクションを削除できます。「AUTHORITY」セクションは、照会されたドメインに関するDNSクエリに応答するための権限を持つサーバーを示します。
;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.
+noauthority
オプションを使用して、出力のこのセクションを無効にできます。「追加」セクションには、権限セクションに表示される権限のあるDNSサーバーのIPアドレスに関する情報が表示されます。
;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82
+noadditional
オプションは、返信の追加セクションを無効にします。dig出力の最後のセクションには、クエリに関する統計が含まれています。
;; Query time: 58 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Fri Oct 12 11:46:46 CEST 2018;; MSG SIZE rcvd: 212
+nostats
オプションを使用して、この部分を無効にできます。
回答のみを印刷する
ほとんどの場合、発掘クエリに対する迅速な回答のみを取得します。
1.短い回答を得る
クエリに対する短い回答を得るには、
+short
オプションを使用します。
dig linux.org +short
104.18.59.123 104.18.58.123
出力には、AレコードのIPアドレスのみが含まれます。
2.詳細な回答を取得する
より詳細な回答を得るには、
+noall
オプションを使用してすべての結果をオフにし、
+noall
オプションを使用して回答セクションのみをオンにします。
dig linux.org +noall +answer
; <<>> DiG 9.13.3 <<>> linux.org +noall +answer;; global options: +cmd linux.org. 67 IN A 104.18.58.123 linux.org. 67 IN A 104.18.59.123
クエリネームサーバー
デフォルトでは、ネームサーバーが指定されていない場合、
dig
は
/etc/resolv.conf
ファイルにリストされているサーバーを使用します。
クエリを実行するネームサーバーを指定するには、
@
(アット)記号の後にネームサーバーのIPアドレスまたはホスト名を続けます。
たとえば、使用する
linux.org
ドメインに関する情報をGoogleネームサーバー(8.8.8.8)に照会するには、次のようにします。
dig linux.org @8.8.8.8
; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;linux.org. IN A;; ANSWER SECTION: linux.org. 299 IN A 104.18.58.123 linux.org. 299 IN A 104.18.59.123;; Query time: 54 msec;; SERVER: 8.8.8.8#53(8.8.8.8);; WHEN: Fri Oct 12 14:28:01 CEST 2018;; MSG SIZE rcvd: 70
レコードタイプのクエリ
Digでは、クエリの最後にレコードタイプを追加することにより、有効なDNSクエリを実行できます。 次のセクションでは、A(IPアドレス)、CNAME(正規名)、TXT(テキストレコード)、MX(メールエクスチェンジャー)、NS(NSネームサーバー)。
1. Aレコードのクエリ
ドメイン名のすべてのアドレスのリストを取得するには、
a
オプションを使用します。
dig +nocmd google.com a +noall +answer
google.com. 128 IN A 216.58.206.206
ご存じのとおり、DNSレコードタイプが指定されていない場合、digはAレコードを要求します。 オプションを指定せずにAレコードを照会することもできます。
2. CNAMEレコードのクエリ
エイリアスドメイン名を見つけるには、
cname
オプションを使用します。
dig +nocmd mail.google.com cname +noall +answer
mail.google.com. 553482 IN CNAME googlemail.l.google.com.
3. TXTレコードのクエリ
txt
オプションを使用して、特定のドメインのすべてのTXTレコードを取得します。
dig +nocmd google.com txt +noall +answer
google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
4. MXレコードのクエリ
特定のドメインのすべてのメールサーバーのリストを取得するには、
mx
オプションを使用します。
dig +nocmd google.com mx +noall +answer
google.com. 494 IN MX 30 alt2.aspmx.l.google.com. google.com. 494 IN MX 10 aspmx.l.google.com. google.com. 494 IN MX 40 alt3.aspmx.l.google.com. google.com. 494 IN MX 50 alt4.aspmx.l.google.com. google.com. 494 IN MX 20 alt1.aspmx.l.google.com.
5. NSレコードのクエリ
特定のドメインの信頼できるネームサーバーを見つけるには、
ns
オプションを使用します。
dig +nocmd google.com ns +noall +answer
google.com. 84527 IN NS ns1.google.com. google.com. 84527 IN NS ns2.google.com. google.com. 84527 IN NS ns4.google.com. google.com. 84527 IN NS ns3.google.com.
6.すべてのレコードのクエリ
特定のドメインのすべてのDNSレコードのリストを取得するには、
any
オプションを使用します。
dig +nocmd google.com any +noall +answer
google.com. 299 IN A 216.58.212.14 google.com. 299 IN AAAA 2a00:1450:4017:804::200e google.com. 21599 IN NS ns2.google.com. google.com. 21599 IN NS ns1.google.com. google.com. 599 IN MX 30 alt2.aspmx.l.google.com. google.com. 21599 IN NS ns4.google.com. google.com. 599 IN MX 50 alt4.aspmx.l.google.com. google.com. 599 IN MX 20 alt1.aspmx.l.google.com. google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" google.com. 21599 IN CAA 0 issue "pki.goog" google.com. 599 IN MX 40 alt3.aspmx.l.google.com. google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 21599 IN NS ns3.google.com. google.com. 599 IN MX 10 aspmx.l.google.com. google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60
逆引きDNSルックアップ
特定のIPアドレスに関連付けられたホスト名を照会するには、
-x
オプションを使用します。
たとえば、
208.118.235.148
逆ルックアップを実行するには、次を使用します。
dig -x 208.118.235.148 +noall +answer
次の出力からわかるように、IPアドレス
208.118.235.148
はホスト名
208.118.235.148
に関連付けられています。
; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer;; global options: +cmd 148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.
一括クエリ
次の例では、
domains.txt
ファイルにリストされているドメインを照会して
domains.txt
ます。
lxer.com linuxtoday.com tuxmachines.org
dig -f domains.txt +short
108.166.170.171 70.42.23.121 204.68.122.43
.digrcファイル
digコマンドの動作は、
${HOME}/.digrc
ファイルでユーザーごとのオプションを設定することにより制御できます。
.digrc
ファイルがユーザーのホームディレクトリに存在する場合、指定されたオプションはコマンドライン引数の前に適用されます。
たとえば、回答セクションのみを表示する場合は、テキストエディターを開き、次の
~/.digrc
ファイルを作成します。
結論
dig
は、DNS情報を照会し、DNS関連の問題をトラブルシューティングするためのコマンドラインツールです。