GNU/Linux >> Linux の 問題 >  >> Linux

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

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の出力について説明しましょう。 コマンド:

  1. 出力の最初の行には、インストールされているdigが出力されます。 バージョン、および照会されたドメイン名。 2行目には、グローバルオプションが表示されます(デフォルトでは、cmdのみ)。

    ; <<>> DiG 9.13.3 <<>> linux.org
    ;; global options: +cmd

    これらの行を出力に含めたくない場合は、+nocmdを使用してください オプション。このオプションは、digの後の最初のオプションである必要があります コマンド。

  2. 次のセクションには、要求された機関(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を使用して削除できます オプション。他のセクションのヘッダーも無効にします。

  3. 「OPT」疑似セクションは、新しいバージョンのdigでのみ表示されます。 効用。 DNS(EDNS)の拡張メカニズムについて詳しくは、こちらをご覧ください。

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096

    このセクションを出力から除外するには、+noednsを使用します オプション。

  4. 「質問」セクションでdig クエリ(質問)を表示します。デフォルトでは、dig Aレコードを要求します。

    ;; QUESTION SECTION:
    ;linux.org.			IN	A

    このセクションは、+noquestionを使用して無効にできます オプション。

  5. 「回答」セクションでは、質問に対する回答を提供します。すでに述べたように、デフォルトではdig Aレコードを要求します。ここでは、ドメインlinux.org 104.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を使用して、このセクションを出力から削除できます。 オプション。

  6. 「権限」セクションは、照会されたドメインに関するDNSクエリに応答するための権限であるサーバーを示します。

    ;; AUTHORITY SECTION:
    linux.org.		86379	IN	NS	lia.ns.cloudflare.com.
    linux.org.		86379	IN	NS	mark.ns.cloudflare.com.

    +noauthorityを使用して、出力のこのセクションを無効にすることができます オプション。

  7. 「追加」セクションには、権限セクションに表示される権限のある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 オプションは、返信の追加セクションを無効にします。

  8. 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
逆引きDNSルックアップ#

特定の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にリストされているドメインをクエリしています。 ファイル。

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関連の問題をトラブルシューティングするためのコマンドラインツールです。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. LinuxでDigコマンドを使用する方法

  2. Linuxmvコマンド

  3. Linux での dig コマンドの例

  1. Linuxduコマンド

  2. Linuxipコマンド

  3. Linuxcdコマンド

  1. Linux digコマンドの使用方法(DNSルックアップ)

  2. Linuxifconfigコマンド

  3. 10 Linux nslookup コマンドの DNS ルックアップの例