アンドロイド

LinuxのDigコマンド(DNSルックアップ)

目次:

Anonim

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 をインストールします

sudo yum install bind-utils

Arch Linuxに dig をインストールします

sudo pacman -S bind-tools

Dig出力を理解する

最も単純な形式で、追加の引数なしで単一のホスト(ドメイン)を照会する場合、digコマンドはかなり冗長です。

次の例では、クエリを実行して linux.org ドメインに関する情報を取得します。

dig linux.org

出力は次のようになります。

セクション dig に行って、 dig コマンドの出力を説明しましょう。

  1. 出力の最初の行は、インストールされている発掘バー​​ジョンと呼び出されたクエリを出力します。 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 ます。

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 ファイルを作成します。

〜/.digrc

+nocmd +noall +answer

結論

dig は、DNS情報を照会し、DNS関連の問題をトラブルシューティングするためのコマンドラインツールです。

発掘ターミナル