Dig(Domain Information Groper)は、DNSネームサーバーにクエリを実行するための強力なコマンドラインツールです。
dig コマンドを使用すると、ホストアドレス、メール交換、ネームサーバーなどのさまざまなDNSレコードに関する情報を照会できます。柔軟性と使いやすさから、DNSの問題をトラブルシューティングするためにシステム管理者の間で最も一般的に使用されるツールです。
このチュートリアルでは、digの使用方法について説明します 最も一般的なdigの実用的な例と詳細な説明によるユーティリティ オプション。
digのインストール #
digかどうかを確認するには コマンドはシステムタイプで使用できます:
dig -v 出力は次のようになります。
DiG 9.11.3-1ubuntu1.1-Ubuntu
digの場合 システムにが存在しない場合、上記のコマンドは「dig:コマンドが見つかりません」と出力します。 dig ツールは、ディストリビューションのパッケージマネージャーを使用してインストールできます。
digをインストールします UbuntuとDebianで#
sudo apt update && sudo apt install dnsutils digをインストールします CentOSとFedoraで#
sudo yum install bind-utils dig Arch Linuxの場合# sudo pacman -S bind-tools digを理解する 出力#
最も単純な形式では、追加のオプションなしで単一のホスト(ドメイン)をクエリするために使用される場合、dig コマンドはかなり冗長です。
次の例では、linux.orgで実行しています。 ドメイン:
dig linux.org 出力は次のようになります。
セクションごとに移動して、digの出力について説明しましょう。 コマンド:
-
出力の最初の行には、インストールされている
digが出力されます。 バージョン、および照会されたドメイン名。 2行目には、グローバルオプションが表示されます(デフォルトでは、cmdのみ)。; <<>> DiG 9.13.3 <<>> linux.org ;; global options: +cmdこれらの行を出力に含めたくない場合は、
+nocmdを使用してください オプション。このオプションは、digの後の最初のオプションである必要があります コマンド。 -
次のセクションには、要求された機関(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このセクションを出力から除外するには、
+noednsを使用します オプション。 -
「質問」セクションで
digクエリ(質問)を表示します。デフォルトでは、digAレコードを要求します。;; QUESTION SECTION: ;linux.org. IN Aこのセクションは、
+noquestionを使用して無効にできます オプション。 -
「回答」セクションでは、質問に対する回答を提供します。すでに述べたように、デフォルトでは
digAレコードを要求します。ここでは、ドメインlinux.org104.18.59.123を指します IPアドレス。;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123通常、回答をオフにする必要はありませんが、
+noanswerを使用して、このセクションを出力から削除できます。 オプション。 -
「権限」セクションは、照会されたドメインに関する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で無効にできます オプション。
通常、digに対する簡単な回答のみを取得する必要があります。 クエリ。
1。短い回答を得る#
クエリに対する簡単な回答を得るには、+shortを使用します オプション:
dig linux.org +short 104.18.59.123
104.18.58.123
出力には、AレコードのIPアドレスのみが含まれます。
2。詳細な回答を得る#
より詳細な回答については、+noallを使用してすべての結果をオフにしてください オプションを選択し、+answerを使用して回答セクションのみをオンにします オプション。
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(メールエクスチェンジャー)などの最も一般的なレコードを検索する方法の例を示します。ネームサーバー)。
1。 Aレコードのクエリ#
ドメイン名のすべてのアドレスのリストを取得するには、aを使用します オプション:
dig +nocmd google.com a +noall +answer google.com. 128 IN A 216.58.206.206
ご存知のとおり、DNSレコードタイプが指定されていない場合は、dig Aレコードを要求します。 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。すべてのレコードのクエリ#
anyを使用する 特定のドメインのすべてのDNSレコードのリストを取得するオプション:
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
特定のIPアドレスに関連付けられているホスト名を照会するには、-xを使用します オプション。
たとえば、208.118.235.148で逆引き参照を実行するには 次のように入力します:
dig -x 208.118.235.148 +noall +answer
以下の出力からわかるように、IPアドレス208.118.235.148 ホスト名wildebeest.gnu.orgに関連付けられています 。
; <<>> 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.
一括クエリ#
多数のドメインをクエリする場合は、それらをファイルに追加して(1行に1つのドメイン)、-fを使用できます。 オプションの後にファイル名を続けます。
次の例では、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を作成します。 ファイル:
+nocmd +noall +answer
結論#
dig は、DNS情報を照会し、DNS関連の問題をトラブルシューティングするためのコマンドラインツールです。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。